/* ========== 爱心按钮 + 鱼缸（v2.43.7） ========== */

.menu-fishtank-wrap{
  position:relative;
  width:100%;
  max-width:min(92vw,360px);
  margin:6px auto 4px;
  padding:0;
  box-sizing:border-box;
  flex-shrink:0;
}
.menu-fishtank-stage{
  position:relative;
  touch-action:pan-y;
}
.menu-fishtank{
  display:block;
  width:100%;
  height:168px;
  border-radius:14px;
  box-shadow:0 10px 28px rgba(0,0,0,.45), inset 0 0 22px rgba(56,189,248,.28), inset 0 -12px 24px rgba(0,0,0,.25);
  background:rgba(8,20,40,0.4);
  border:2px solid rgba(125,211,252,.45);
  cursor:pointer;
  touch-action:none;
  -webkit-tap-highlight-color:transparent;
  transition:box-shadow .12s ease, transform .12s ease, filter .12s ease;
}
.menu-fishtank.menu-fishtank-tap{
  transform:scale(.985);
  filter:brightness(1.12);
  box-shadow:0 12px 30px rgba(14,165,233,.45), inset 0 0 26px rgba(125,211,252,.35);
}
.menu-fishtank-wrap:active .menu-fishtank:not(.menu-fishtank-tap){
  transform:scale(.99);
}
.menu-fishdex-chip{
  position:absolute;
  top:8px;
  left:8px;
  z-index:6;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(125,211,252,.45);
  background:rgba(8,20,40,.78);
  color:#bae6fd;
  font-size:11px;
  font-weight:800;
  backdrop-filter:blur(4px);
}
.menu-fishdex-chip:active{ transform:scale(.96); }
.menu-fishtank-bar{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:8px;
}
.menu-deepfish-fab{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:44px;
  padding:10px 14px;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,#0284c7 0%,#1d4ed8 55%,#312e81 100%);
  color:#fff;
  font-size:14px;
  font-weight:900;
  box-shadow:0 6px 18px rgba(14,165,233,.4), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .15s ease, box-shadow .2s ease;
}
.menu-deepfish-fab:active{ transform:scale(.97); }
.menu-deepfish-fab.has-pending{
  animation:mdfPulse 1.6s ease-in-out infinite;
}
@keyframes mdfPulse{
  0%,100%{ box-shadow:0 6px 18px rgba(14,165,233,.4); }
  50%{ box-shadow:0 6px 22px rgba(250,204,21,.55), 0 0 0 2px rgba(250,204,21,.35); }
}
.menu-deepfish-fab .mdf-ico{ font-size:18px; }
.menu-deepfish-fab .mdf-txt{ letter-spacing:.5px; }
.menu-deepfish-fab .mdf-bait{
  margin-left:auto;
  min-width:24px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.28);
  font-size:11px;
}
.menu-deepfish-fab .mdf-bait.low{ background:rgba(239,68,68,.55); }
.menu-fish-pending{
  width:100%;
  padding:7px 10px;
  border-radius:10px;
  border:1px solid rgba(250,204,21,.55);
  background:rgba(120,53,15,.55);
  color:#fde68a;
  font-size:12px;
  font-weight:800;
  animation:pendingBlink 1.2s ease-in-out infinite;
}
@keyframes pendingBlink{
  0%,100%{ opacity:1; }
  50%{ opacity:.75; }
}
.menu-fishtank-label{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ❤️ 爱心按钮 */
/* ❤️ 爱心按钮 —— 鱼缸右下角内嵌 */
.menu-fishtank-stage .menu-xz-love-btn{
  position:absolute;
  bottom:14px;
  right:14px;
  width:54px;
  height:54px;
  border-radius:50%;
  border:0;
  background:radial-gradient(circle at 30% 30%, #ff9ec7 0%, #ff4d9e 55%, #c81d67 100%);
  box-shadow:0 4px 14px rgba(255,77,158,.7), 0 0 24px rgba(255,77,158,.45);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .2s ease;
  z-index:5;
  padding:0;
  animation:xzlBreathe 2.6s ease-in-out infinite;
}
.menu-xz-love-btn:hover{ transform:scale(1.08) }
.menu-xz-love-btn:active{ transform:scale(.92) }
.menu-xz-love-btn.hit{ animation:xzlHit .5s cubic-bezier(.36,1.6,.64,1); }
@keyframes xzlBreathe{
  0%,100%{ box-shadow:0 4px 14px rgba(255,77,158,.7), 0 0 24px rgba(255,77,158,.45); }
  50%{ box-shadow:0 4px 20px rgba(255,77,158,.95), 0 0 36px rgba(255,77,158,.7); }
}
@keyframes xzlHit{
  0%{ transform:scale(.8) }
  40%{ transform:scale(1.25) }
  100%{ transform:scale(1) }
}
.menu-xz-love-btn .xzl-ico{ font-size:28px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
.menu-xz-love-btn .xzl-cnt{
  position:absolute;
  right:-6px; top:-4px;
  min-width:22px; height:22px;
  padding:0 6px;
  border-radius:11px;
  background:#fde047; color:#7c2d12;
  font-size:12px; font-weight:900;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
  border:2px solid #fff;
  letter-spacing:0;
}

/* 点 ❤ 时飞出的心形粒子 */
.wm-xz-heart-fly{
  position:fixed;
  font-size:24px;
  pointer-events:none;
  z-index:9998;
  animation:xzhFly 1.5s cubic-bezier(.2,.7,.3,1) forwards;
  filter:drop-shadow(0 2px 6px rgba(255,77,158,.7));
}
@keyframes xzhFly{
  0%{ transform:translate(-50%,-50%) scale(.5); opacity:0 }
  15%{ transform:translate(-50%,-50%) scale(1.2); opacity:1 }
  100%{ transform:translate(calc(-50% + var(--dx,0)), calc(-50% + var(--dy,-160px))) scale(.6) rotate(180deg); opacity:0 }
}

/* ========== 16:28 强制下课倒计时层 ========== */
.wm-study-countdown{
  position:fixed; inset:0; z-index:10001;
  display:none; align-items:center; justify-content:center;
  pointer-events:auto;
}
.wm-study-countdown.show{ display:flex; animation:scFade .4s ease forwards }
.wm-sc-bg{
  position:absolute; inset:0;
  background:radial-gradient(circle at center, rgba(220,38,38,.6) 0%, rgba(0,0,0,.85) 80%);
}
.wm-sc-inner{
  position:relative; text-align:center;
  padding:36px 40px;
  background:rgba(0,0,0,.7);
  border-radius:20px;
  border:3px solid #ef4444;
  box-shadow:0 0 40px rgba(239,68,68,.7);
  max-width:88vw;
  animation:scPop .5s cubic-bezier(.16,1.5,.4,1);
}
.wm-sc-icon{ font-size:80px; line-height:1; margin-bottom:10px; animation:scIconShake 1s ease-in-out infinite; }
.wm-sc-title{
  font-size:42px; font-weight:1000; letter-spacing:3px;
  background:linear-gradient(180deg,#fef3c7 0%,#fde047 50%,#f97316 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  text-shadow:0 4px 14px rgba(239,68,68,.8);
  margin-bottom:16px;
}
.wm-sc-sub{
  font-size:18px; color:#fff; font-weight:700;
  text-shadow:0 2px 6px rgba(0,0,0,.8);
  margin-bottom:12px;
}
.wm-sc-sub span{
  display:inline-block;
  color:#fde047; font-size:32px; font-weight:900;
  margin:0 4px;
  animation:scNumPulse 1s ease-in-out infinite;
}
.wm-sc-tip{ font-size:14px; color:#fca5a5; letter-spacing:1px; }
@keyframes scFade{ from{opacity:0} to{opacity:1} }
@keyframes scPop{ from{transform:scale(.5);opacity:0} to{transform:scale(1);opacity:1} }
@keyframes scIconShake{ 0%,100%{transform:rotate(-6deg)} 50%{transform:rotate(6deg)} }
@keyframes scNumPulse{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.3)} }

@media (max-width:520px){
  .menu-xz-love-btn{ width:46px; height:46px; bottom:10px; right:18px; }
  .menu-xz-love-btn .xzl-ico{ font-size:24px; }
  .menu-fishtank{ height:160px; }
  .wm-sc-icon{ font-size:60px; }
  .wm-sc-title{ font-size:30px; letter-spacing:2px; }
  .wm-sc-sub{ font-size:15px; }
  .wm-sc-sub span{ font-size:24px; }
}


/* ========== UID=1001 资料页专属爱心面板 ========== */
.wm-profile-xz-panel{
  margin-top:10px;
  padding:10px 14px;
  background:linear-gradient(135deg, rgba(255,77,158,.2) 0%, rgba(167,139,250,.18) 100%);
  border:1.5px solid rgba(255,77,158,.5);
  border-radius:12px;
  box-shadow:0 3px 10px rgba(255,77,158,.2), inset 0 0 10px rgba(255,255,255,.1);
  max-width:90%;
  margin-left:auto; margin-right:auto;
}
.wpxp-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:3px 0;
  font-size:13px;
  color:#fff;
  gap:8px;
}
.wpxp-ico{ font-size:16px; }
.wpxp-lbl{ flex:1; color:#fce7f3; font-weight:600; letter-spacing:.5px; }
.wpxp-val{
  font-weight:900; font-size:15px;
  background:linear-gradient(180deg,#fff9c4,#ffd166);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  text-shadow:0 1px 2px rgba(255,77,158,.5);
}


/* ========== 观赏鱼缸浮层 ========== */
.wm-watch-tank-overlay{
  position:fixed; inset:0; z-index:10050;
  display:none; align-items:center; justify-content:center;
  pointer-events:auto;
  -webkit-tap-highlight-color:transparent;
}
.wmwt-mask{
  position:absolute; inset:0; z-index:0;
  background:rgba(0,0,0,0.65);
  backdrop-filter: blur(4px);
  pointer-events:none;
}
.wmwt-box{
  position:relative; z-index:1;
  pointer-events:auto;
  background:linear-gradient(180deg, #0c4a6e 0%, #082f49 100%);
  border:2px solid rgba(125,211,252,0.5);
  border-radius:18px;
  padding:18px;
  width:min(560px, 92vw);
  box-shadow:0 24px 60px rgba(0,0,0,.6), 0 0 32px rgba(56,189,248,.3);
  animation:wmwtPop .35s cubic-bezier(.16,1.3,.4,1);
}
@keyframes wmwtPop{
  from{ transform:scale(.85); opacity:0 }
  to{ transform:scale(1); opacity:1 }
}
.wmwt-title{
  display:flex; align-items:center; justify-content:space-between;
  font-size:18px; font-weight:900; color:#7dd3fc;
  margin-bottom:10px;
  text-shadow:0 2px 6px rgba(0,0,0,.6);
}
.wmwt-days{
  font-size:13px; font-weight:700;
  color:#a7f0ff; opacity:.85;
}
.wmwt-canvas-wrap{
  position:relative;
}
.wmwt-viewers{
  display:none;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:4px 6px;
  font-size:12px;
  color:#ffe4f0;
  background:linear-gradient(90deg, rgba(236,72,153,.18), rgba(167,139,250,.18));
  border:1px solid rgba(236,72,153,.35);
  border-radius:999px;
  padding:5px 12px;
  margin:6px auto 4px;
  max-width:fit-content;
  letter-spacing:.5px;
  box-shadow:0 2px 8px rgba(236,72,153,.18);
}
.wmwt-viewer-name{ color:#fff; font-weight:700; }
.wmwt-viewer-heart{ color:#ff6ba1; font-size:13px; padding:0 2px; }
.wmwt-viewer-tip{ color:rgba(255,228,240,.72); font-weight:500; }
.wmwt-canvas{
  display:block; width:100%; height:300px;
  border-radius:12px;
  box-shadow:inset 0 0 24px rgba(56,189,248,.4);
  background:#082f49;
  cursor:pointer;
  position:relative;
  z-index:1;
  touch-action:manipulation;
}
.wmwt-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px; height:60px;
  display:none; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:32px; font-weight:900;
  line-height:1;
  border:1.5px solid rgba(125,211,252,.45);
  border-radius:10px;
  cursor:pointer;
  z-index:4;
  padding:0 2px 4px;
  backdrop-filter:blur(4px);
  transition:background .18s ease, transform .18s ease;
  box-shadow:0 4px 12px rgba(0,0,0,.4);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.wmwt-arrow:hover{
  background:rgba(125,211,252,.35);
  transform:translateY(-50%) scale(1.08);
}
.wmwt-arrow:active{ transform:translateY(-50%) scale(.94); }
.wmwt-arrow-prev{ left:6px; }
.wmwt-arrow-next{ right:6px; }
.wmwt-tip{
  font-size:12px; color:#a7f0ff; opacity:.75;
  text-align:center;
  margin:10px 0 6px;
  letter-spacing:.5px;
}
.wmwt-close{
  display:block;
  margin:6px auto 0;
  padding:8px 28px;
  background:linear-gradient(135deg,#ff4d9e,#a78bfa);
  color:#fff; font-weight:900; font-size:14px;
  border:0; border-radius:20px;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(255,77,158,.4);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  position:relative;
  z-index:4;
}
.wmwt-close:hover{ filter:brightness(1.1); }

@media (max-width:520px){
  .wmwt-canvas{ height:240px; }
  .wmwt-title{ font-size:16px; }
  .wmwt-arrow{ width:30px; height:48px; font-size:24px; }
  .wmwt-arrow-prev{ left:4px; }
  .wmwt-arrow-next{ right:4px; }
}


/* 横屏 / 宽屏：鱼缸最大化 */
@media (orientation: landscape) and (min-width: 720px){
  .menu-fishtank{ height:240px; }
}
@media (min-width: 1024px){
  .menu-fishtank{ height:280px; }
}


/* ❤️ 爱心按钮专属小 toast：从按钮上方冒出，1.6s 淡出 */
.xzl-toast{
  position:absolute;
  bottom:74px;
  right:0;
  transform:translateX(20px);
  background:linear-gradient(135deg, #fff9c4 0%, #ffd166 60%, #ff9ec7 100%);
  color:#7c2d12;
  padding:8px 14px;
  border-radius:14px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.5px;
  white-space:nowrap;
  box-shadow:0 6px 18px rgba(255,77,158,.5), 0 0 0 2px rgba(255,255,255,.6) inset;
  pointer-events:none;
  opacity:0;
  z-index:10;
  animation:xzlToastFly 1.8s cubic-bezier(.2,.8,.3,1) forwards;
  max-width:240px;
  text-align:center;
}
.xzl-toast::after{
  content:'';
  position:absolute;
  bottom:-7px; right:24px;
  width:0; height:0;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:8px solid #ff9ec7;
  filter:drop-shadow(0 2px 2px rgba(255,77,158,.4));
}
@keyframes xzlToastFly{
  0%   { opacity:0; transform:translate(20px, 12px) scale(.7); }
  18%  { opacity:1; transform:translate(20px, 0) scale(1.05); }
  28%  { transform:translate(20px, 0) scale(1); }
  78%  { opacity:1; transform:translate(20px, 0) scale(1); }
  100% { opacity:0; transform:translate(20px, -10px) scale(.95); }
}
@media (max-width:520px){
  .xzl-toast{ bottom:62px; font-size:12px; padding:6px 12px; }
}


/* ========== 主菜单 单人/多人 并排 ========== */
.menu-mode-row{
  display:flex;
  gap:12px;
  padding:0 12px;
  margin:10px 0 6px;
  box-sizing:border-box;
  width:100%;
}
.menu-mode-row .menu-mode-btn{
  flex:1 1 0;
  min-width:0;
  margin:0;
  padding:14px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:15px;
}
.menu-mode-row .mb-icon,
.menu-mode-row .mai-icon{
  font-size:22px;
  flex:0 0 auto;
}
.menu-mode-row .mb-main,
.menu-mode-row .mai-main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.2;
  font-weight:900;
}
.menu-mode-row .mb-desc-inline,
.menu-mode-row .mai-desc{
  font-size:11px;
  font-weight:500;
  opacity:.85;
  margin-top:2px;
}
.menu-mode-row .mb-arrow,
.menu-mode-row .mai-arrow{
  font-size:16px;
  opacity:.8;
  flex:0 0 auto;
}
@media (max-width:420px){
  .menu-mode-row{ gap:8px; padding:0 8px; }
  .menu-mode-row .menu-mode-btn{ padding:12px 6px; font-size:13px; }
  .menu-mode-row .mb-icon,
  .menu-mode-row .mai-icon{ font-size:18px; }
  .menu-mode-row .mb-arrow,
  .menu-mode-row .mai-arrow{ display:none; }
}


/* ========== 变异：全屏闪光 ========== */
.wm-mutation-flash{
  position:fixed; inset:0;
  z-index:9998;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(ellipse at center, rgba(255,158,199,.55) 0%, rgba(236,72,153,.35) 40%, rgba(0,0,0,0) 80%);
}
.wm-mutation-flash.show{
  animation:wmMutFlash 1.1s cubic-bezier(.2,.8,.3,1) forwards;
}
@keyframes wmMutFlash{
  0%   { opacity:0; transform:scale(.3); }
  18%  { opacity:1; transform:scale(1); }
  40%  { opacity:.65; transform:scale(1.05); }
  100% { opacity:0; transform:scale(1.1); }
}

/* ========== 变异：屏震（给 body 加 class，持续 520ms） ========== */
.wm-mut-shake{ animation:wmMutShake .52s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes wmMutShake{
  10%, 90%  { transform:translateX(calc(-1 * var(--mutshake, 12px) * .25)); }
  20%, 80%  { transform:translateX(calc( var(--mutshake, 12px) * .5)); }
  30%, 50%, 70% { transform:translateX(calc(-1 * var(--mutshake, 12px))); }
  40%, 60%  { transform:translateX(var(--mutshake, 12px)); }
}

/* ========== 鱼缸吃食「🐟 食物 +1」浮动 toast ========== */
.wm-food-toast{
  position:absolute;
  left:50%;
  top:30%;
  transform:translate(-50%, 0);
  background:linear-gradient(135deg, #fff7ed 0%, #fdba74 60%, #fb923c 100%);
  color:#7c2d12;
  padding:7px 16px;
  border-radius:14px;
  font-size:14px;
  font-weight:900;
  letter-spacing:.5px;
  white-space:nowrap;
  box-shadow:0 6px 18px rgba(251,146,60,.5), 0 0 0 2px rgba(255,255,255,.6) inset;
  pointer-events:none;
  opacity:0;
  z-index:11;
  animation:wmFoodToastFly 1.4s cubic-bezier(.2,.8,.3,1) forwards;
}
@keyframes wmFoodToastFly{
  0%   { opacity:0; transform:translate(-50%, 16px) scale(.7); }
  18%  { opacity:1; transform:translate(-50%, 0) scale(1.1); }
  30%  { transform:translate(-50%, -2px) scale(1); }
  78%  { opacity:1; transform:translate(-50%, -10px) scale(1); }
  100% { opacity:0; transform:translate(-50%, -28px) scale(.95); }
}
