
/* ===================== 牌桌新增：选牌抬高/聊天/头像/倒计时 ===================== */

/* 选中的手牌往上抬一截 */
.my-hand .pcard{
  transition:transform .15s ease, box-shadow .15s ease;
  cursor:pointer;
  touch-action:pan-y;
  -webkit-user-select:none;user-select:none;
}
.my-hand .pcard.selected{
  transform:translateY(-22px) rotate(0deg);
  box-shadow:0 8px 18px rgba(0,0,0,.45), 0 0 0 2px #F5B324;
  z-index:10;
}
@media(min-width:700px){
  .my-hand .pcard.selected{ transform:translateY(-30px); }
}

/* 头像容器（座位上） */
.seat .av-wrap, .wait-seat .av-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:4px;
}
.seat .av-wrap .avatar-svg, .wait-seat .av-wrap .avatar-svg{
  box-shadow:0 3px 8px rgba(0,0,0,.45), inset 0 0 0 2px rgba(255,255,255,.5);
}
.seat.turn .av-wrap .avatar-svg{
  box-shadow:0 0 0 3px #F5B324, 0 0 18px rgba(245,179,36,.8), 0 3px 8px rgba(0,0,0,.45);
  animation:turnPulse 1s ease-in-out infinite alternate;
}
@keyframes turnPulse{
  from{ box-shadow:0 0 0 3px #F5B324, 0 0 12px rgba(245,179,36,.6), 0 3px 8px rgba(0,0,0,.45); }
  to{ box-shadow:0 0 0 3px #FFD45C, 0 0 24px rgba(245,179,36,1), 0 3px 8px rgba(0,0,0,.45); }
}

/* 房间等待页：踢人按钮 */
.wait-seat{ position:relative; }
.seat-kick{
  position:absolute;top:-4px;right:-4px;
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(180deg,#E8483B,#8B0000);
  color:#fff;border:2px solid #FFD45C;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:5;
  box-shadow:0 2px 6px rgba(0,0,0,.5);
  transition:transform .1s;
}
.seat-kick:hover{ transform:scale(1.12); }
.seat-kick:active{ transform:scale(.95); }
.wait-seat .av{ display:none; } /* 旧占位头像隐藏，用 .av-wrap 代替 */

/* 聊天抽屉（牌桌和房间通用） */
.chat-drawer{
  position:absolute;right:0;top:0;bottom:50px;width:280px;max-width:80%;
  background:linear-gradient(180deg,rgba(26,14,8,.96),rgba(10,5,2,.98));
  border-left:2px solid #D89000;
  box-shadow:-8px 0 24px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,212,92,.2);
  transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column;z-index:50;
}
.chat-drawer.open{ transform:translateX(0); }
.chat-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid rgba(245,179,36,.25);
  color:#FFD45C;font-family:Baloo 2,serif;font-weight:800;font-size:14px;
  letter-spacing:.5px;
}
.chat-close{
  background:linear-gradient(180deg,#E8483B,#8B0000);color:#fff;
  border:1px solid #FFD45C;border-radius:50%;width:24px;height:24px;
  font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.chat-list{
  flex:1;overflow-y:auto;padding:10px 12px;
  display:flex;flex-direction:column;gap:6px;
}
.chat-msg{
  font-size:12px;line-height:1.4;color:#FFE48A;
  background:rgba(255,255,255,.06);border:1px solid rgba(245,179,36,.15);
  padding:6px 9px;border-radius:8px;word-break:break-word;
}
.chat-msg b{ color:#F5B324; margin-right:4px; }
.chat-input{
  display:flex;gap:6px;padding:8px 10px;border-top:1px solid rgba(245,179,36,.25);
  background:rgba(0,0,0,.25);
}
.chat-input input{
  flex:1;background:rgba(255,255,255,.95);border:1px solid #8B5A00;
  border-radius:6px;padding:7px 10px;font-size:12px;color:#3D2817;outline:none;
}
.chat-input input:focus{ border-color:#F5B324; box-shadow:0 0 0 2px rgba(245,179,36,.3); }
.chat-input button{
  background:linear-gradient(180deg,#FFE48A,#F5B324 50%,#D89000);
  color:#3D2817;border:1px solid #8B5A00;border-radius:6px;
  padding:7px 13px;font-weight:800;font-size:12px;cursor:pointer;
  text-shadow:0 1px 0 rgba(255,255,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
}
.chat-input button:active{ transform:translateY(1px); }

/* 聊天按钮脉动 */
.tt-btn.chat-pulse, #r-chat.chat-pulse{
  animation:chatPulse .8s ease;
}
/* 聊天按钮红点提醒 */
.tt-btn.has-unread, #r-chat.has-unread{
  position:relative;
}
.tt-btn.has-unread::after, #r-chat.has-unread::after{
  content:'';position:absolute;top:-2px;right:-2px;
  width:10px;height:10px;border-radius:50%;
  background:#E8483B;border:2px solid #fff;
  box-shadow:0 0 6px rgba(232,72,59,.8);
  z-index:5;
}
@keyframes chatPulse{
  0%,100%{ background:rgba(0,0,0,.4); transform:scale(1); }
  50%{ background:rgba(245,179,36,.8); transform:scale(1.15); box-shadow:0 0 14px rgba(245,179,36,.8); }
}

/* 头像选择网格（个人中心） */
.avatar-picker{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:4px 2px;
}
.av-cell{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:6px;border-radius:10px;cursor:pointer;
  border:2px solid transparent;background:rgba(255,255,255,.04);
  transition:transform .12s, border-color .12s, background .12s;
}
.av-cell:hover{ background:rgba(255,255,255,.08); transform:translateY(-2px); }
.av-cell.active{
  border-color:#F5B324;
  background:linear-gradient(180deg,rgba(245,179,36,.22),rgba(245,179,36,.06));
  box-shadow:0 0 0 2px rgba(245,179,36,.35), 0 4px 10px rgba(0,0,0,.3);
}
.av-cell .av-name{
  font-size:9px;color:rgba(255,228,138,.7);font-weight:700;
}

/* 移动端适配：聊天抽屉全屏 */
@media (max-width:600px){
  .chat-drawer{ width:85%; bottom:0; }
  .avatar-picker{ grid-template-columns:repeat(5,1fr); gap:6px; }
}

/* ====== 座位金币 / 倒计时秒数 / 表情弹幕 ====== */
.seat{ width:66px; }
.seat-gold{
  display:inline-flex;align-items:center;gap:3px;
  margin-top:2px;font-size:9px;font-weight:800;
  color:#FFE48A;background:linear-gradient(180deg,rgba(58,30,8,.85),rgba(20,10,2,.9));
  border:1px solid rgba(245,179,36,.5);border-radius:8px;padding:1px 6px;
  box-shadow:0 1px 3px rgba(0,0,0,.4);
}
.sg-g{
  display:inline-flex;align-items:center;justify-content:center;
  width:11px;height:11px;border-radius:50%;
  background:linear-gradient(180deg,#FFE48A,#D89000);color:#3D2817;
  font-size:8px;line-height:1;
}
.wait-gold{
  display:inline-flex;align-items:center;gap:3px;margin-top:3px;
  font-size:10px;font-weight:800;color:#FFE48A;
  background:rgba(0,0,0,.45);border:1px solid rgba(245,179,36,.4);
  border-radius:8px;padding:1px 7px;
}
.av-row{
  display:flex;align-items:center;gap:4px;justify-content:center;
}
/* 五十K 分牌 */
.captured-cards{
  display:flex;flex-wrap:wrap;gap:2px;justify-content:center;
  margin-top:4px;max-width:80px;
}
.mini-card{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:14px;border-radius:3px;
  font-size:8px;font-weight:900;line-height:1;
  background:#fff;border:1px solid #999;
  box-shadow:0 1px 2px rgba(0,0,0,.3);
}
.mini-card.red{ color:#D32F2F; }
.mini-card.black{ color:#1A1A1A; }
.mini-card-more{
  font-size:8px;font-weight:800;color:#FFE48A;
  margin-left:1px;
}
.seat-timer{
  position:absolute;top:-6px;right:-6px;z-index:6;
  min-width:22px;height:22px;padding:0 4px;border-radius:11px;
  background:linear-gradient(180deg,#FFE48A,#F5B324);color:#3D2817;
  font-family:'Baloo 2',serif;font-weight:800;font-size:12px;line-height:22px;
  text-align:center;border:2px solid #5a3a10;
  box-shadow:0 2px 6px rgba(0,0,0,.5);
  animation:timerPop .25s ease;
}
.seat-timer.hurry{
  background:linear-gradient(180deg,#FF8A80,#E8483B);color:#fff;border-color:#5a0000;
  animation:timerHurry .6s ease-in-out infinite alternate;
}
@keyframes timerPop{ from{transform:scale(.4);opacity:0;} to{transform:scale(1);opacity:1;} }
@keyframes timerHurry{
  from{ transform:scale(1); box-shadow:0 0 6px rgba(232,72,59,.6);}
  to{ transform:scale(1.12); box-shadow:0 0 16px rgba(232,72,59,1);}
}

/* 表情弹幕 */
.emoji-burst{
  position:absolute;left:50%;top:-6px;transform:translateX(-50%);
  font-size:30px;z-index:20;pointer-events:none;
  animation:emojiFly 1.6s cubic-bezier(.2,.7,.2,1) forwards;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));
}
@keyframes emojiFly{
  0%{ opacity:0; transform:translate(-50%,6px) scale(.4) rotate(-10deg); }
  15%{ opacity:1; transform:translate(-50%,-6px) scale(1.2) rotate(4deg); }
  30%{ transform:translate(-50%,-16px) scale(1) rotate(-4deg); }
  100%{ opacity:0; transform:translate(-50%,-64px) scale(1.3) rotate(8deg); }
}

/* 聊天表情条 */
.chat-emojis{
  display:flex;flex-wrap:wrap;gap:4px;padding:7px 9px;
  border-bottom:1px solid rgba(245,179,36,.2);background:rgba(0,0,0,.2);
}
.chat-emojis .ce{
  font-size:18px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;cursor:pointer;transition:transform .1s, background .1s;
}
.chat-emojis .ce:hover{ background:rgba(245,179,36,.2); transform:scale(1.2); }
.chat-emojis .ce:active{ transform:scale(.9); }

/* ====== 牌桌更丰富的视觉 ====== */
.poker-table-oval{
  background:
    radial-gradient(ellipse at 50% 38%, rgba(255,255,255,.08), transparent 55%),
    radial-gradient(ellipse at center, #2fae5f 0%, #1e8a49 55%, #126033 100%) !important;
  box-shadow:
    inset 0 0 50px rgba(0,0,0,.35),
    inset 0 0 0 8px rgba(139,90,0,.55),
    inset 0 0 0 12px rgba(245,179,36,.35),
    0 12px 40px rgba(0,0,0,.55) !important;
}
.poker-table-oval::before{
  content:"";position:absolute;inset:18px 26px;border-radius:50%;
  border:1px dashed rgba(255,255,255,.12);pointer-events:none;
}
.pt-logo{
  color:rgba(255,255,255,.55) !important;
  text-shadow:0 2px 6px rgba(0,0,0,.4);
}
.pt-logo small{ color:rgba(255,228,138,.6) !important; letter-spacing:1px; }

/* 牌桌桌面光斑动画 */
.table-area{ position:relative; overflow:hidden; }
.table-area::after{
  content:"";position:absolute;left:50%;top:40%;width:60%;height:40%;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at center, rgba(255,228,138,.10), transparent 70%);
  pointer-events:none;animation:tableGlow 4s ease-in-out infinite alternate;
}
@keyframes tableGlow{
  from{ opacity:.5; } to{ opacity:1; }
}

/* 轮到谁：座位下方小三角 */
.seat.turn::after{
  content:"";position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#F5B324;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
}


/* ====== 抽老鳖：选牌抽牌 / 调序 ====== */
.my-hand.reorderable .pcard{ cursor:pointer; outline:1px dashed rgba(255,212,92,.0); }
.my-hand .pcard.reorder-sel{
  transform:translateY(-18px);
  box-shadow:0 8px 18px rgba(0,0,0,.45), 0 0 0 2px #4FC3F7;
  z-index:10;
}
.clb-draw{ gap:10px; }
.clb-target-hand{ display:flex; gap:4px; }
.clb-pick{
  cursor:pointer; transition:transform .12s ease, box-shadow .12s ease;
  background:repeating-linear-gradient(45deg,#6a1b1b,#6a1b1b 4px,#8e2b2b 4px,#8e2b2b 8px) !important;
  border:2px solid #FFD45C;
}
.clb-pick:hover{ transform:translateY(-8px) scale(1.05); box-shadow:0 8px 16px rgba(0,0,0,.5),0 0 12px rgba(255,212,92,.7); }
.clb-pick:active{ transform:translateY(-2px) scale(.97); }


/* 修复：座位层透明铺满会遮挡中央可点击牌背，仅座位本身接收事件 */
.seats-layer{ pointer-events:none; }
.seats-layer .seat{ pointer-events:auto; }
.center-play{ pointer-events:auto; }
.info-panel{ pointer-events:none; }
.info-panel > *{ pointer-events:auto; }


/* ====== 抽老鳖：被抽时确认面板 ====== */
.clb-confirm-panel{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:120;display:none;pointer-events:none;
}
.clb-confirm-panel.show{ display:block; }
.clb-confirm-card{
  pointer-events:auto;min-width:280px;max-width:340px;
  background:linear-gradient(180deg,rgba(20,10,2,.96),rgba(8,4,2,.98));
  border:2px solid #F5B324;border-radius:18px;
  padding:18px 20px 16px;color:#FFE48A;text-align:center;
  box-shadow:0 16px 48px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,212,92,.25);
  font-family:'Baloo 2',serif;
  animation:clbPop .3s cubic-bezier(.2,.8,.2,1);
}
@keyframes clbPop{ from{ transform:scale(.85); opacity:0; } to{ transform:scale(1); opacity:1; } }
.clb-confirm-title{ font-size:18px;font-weight:800;color:#FFD45C;letter-spacing:1px;margin-bottom:6px; }
.clb-confirm-sub{ font-size:12px;color:rgba(255,228,138,.8);margin-bottom:10px;line-height:1.4; }
.clb-confirm-timer{
  font-size:36px;font-weight:800;color:#FFE48A;margin:6px 0 12px;
  text-shadow:0 0 12px rgba(245,179,36,.5);
}
.clb-confirm-timer.hurry{ color:#FF6B5E;animation:clbHurry .5s ease-in-out infinite alternate; }
@keyframes clbHurry{ from{ transform:scale(1); } to{ transform:scale(1.12); } }
.clb-confirm-actions{ display:flex;gap:10px;justify-content:center; }
.clb-confirm-ok{
  background:linear-gradient(180deg,#FFE48A 0%,#F5B324 50%,#D89000 100%);
  color:#3D2817;border:2px solid #5a3a10;border-radius:12px;
  padding:10px 26px;font-family:'Baloo 2',serif;font-weight:800;font-size:15px;
  cursor:pointer;text-shadow:0 1px 0 rgba(255,255,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 4px 0 #8B5A00;
  transition:transform .08s;
}
.clb-confirm-ok:hover{ filter:brightness(1.08); }
.clb-confirm-ok:active{ transform:translateY(2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 2px 0 #8B5A00; }


/* ====== 炸金花 ====== */
.center-play .last-play .pcard.joker, .center-play .last-play .pcard[style*="?.?"] { color:#888; background:#f0e0c0; }

/* ====== 十一点半 ====== */
.half-panel{
  display:flex;flex-direction:column;gap:6px;padding:8px 12px;
  background:rgba(0,0,0,.45);border:1px solid rgba(245,179,36,.4);border-radius:10px;
  min-width:280px;
}
.half-row{ display:flex;align-items:center;gap:10px;padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.04); }
.half-row.dealer{ background:linear-gradient(90deg,rgba(255,212,92,.25),rgba(216,144,0,.05));border:1px solid #F5B324; }
.half-nm{ font-weight:800;color:#FFD45C;min-width:80px;font-size:12px; }
.half-cards{ display:flex;gap:3px; }
.half-cards .pcard{ transform:scale(0.78);transform-origin:center; }
.half-tot{ font-weight:800;color:#FFE48A;font-size:14px;margin-left:auto;min-width:36px;text-align:right; }


/* ====== 本局结算弹窗 ====== */
.round-result-modal{
  background:linear-gradient(180deg,#1B2A1A 0%,#0F1A0E 30%,#0A0F09 100%) !important;
  border:1.5px solid rgba(245,179,36,.30) !important;
  box-shadow:0 0 40px rgba(245,179,36,.08),0 0 80px rgba(0,0,0,.5),0 12px 32px rgba(0,0,0,.6) !important;
  border-radius:20px !important;
  padding:0 !important;
  overflow:hidden;
  animation:rr-pop .35s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes rr-pop{ from{ opacity:0; transform:translateY(20px) scale(.95); } to{ opacity:1; transform:none; } }
.round-result-modal::before{
  content:"";position:absolute;top:0;left:0;right:0;height:80px;
  background:radial-gradient(ellipse at 50% 0%,rgba(245,179,36,.12),transparent 70%);
  pointer-events:none;
}
.round-result-modal .rr-header{
  text-align:center;padding:18px 16px 10px;position:relative;z-index:1;
}
.round-result-modal .rr-title{
  font-family:'Baloo 2',sans-serif;font-size:22px;font-weight:900;
  background:linear-gradient(180deg,#FFE48A 0%,#F5B324 50%,#D89000 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:1px;
}
.round-result-modal .rr-sub{
  font-size:11px;font-weight:700;color:rgba(255,228,138,.5);margin-top:2px;letter-spacing:.5px;
}
.round-result-modal .r-list{ 
  display:flex;flex-direction:column;gap:5px;margin:0 16px 10px;position:relative;z-index:1;
}
.round-result-modal .r-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 14px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  transition:transform .2s,border-color .2s;
}
.round-result-modal .r-row.top1{
  background:linear-gradient(135deg,rgba(255,212,92,.22),rgba(245,179,36,.08));
  border-color:rgba(245,179,36,.45);
  box-shadow:0 0 16px rgba(245,179,36,.12);
  transform:scale(1.03);
}
.round-result-modal .r-row.win{
  background:linear-gradient(90deg,rgba(46,201,116,.12),rgba(46,201,116,.04));
  border-color:rgba(46,201,116,.35);
}
.round-result-modal .r-row.lose{
  background:linear-gradient(90deg,rgba(232,72,59,.10),rgba(232,72,59,.02));
  border-color:rgba(232,72,59,.25);
}
.round-result-modal .r-rank{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Baloo 2',sans-serif;font-size:13px;font-weight:900;
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.35);
  flex-shrink:0;
}
.round-result-modal .r-row.top1 .r-rank{
  background:linear-gradient(135deg,#FFD45C,#F5B324);
  color:#3D2000;box-shadow:0 2px 8px rgba(245,179,36,.4);
}
.round-result-modal .r-row.win .r-rank{ background:rgba(46,201,116,.2);color:#2EC974; }
.round-result-modal .r-info{ display:flex;flex-direction:column;flex:1;min-width:0; }
.round-result-modal .r-name{ font-weight:800;color:#EAE4D0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.round-result-modal .r-detail{ font-size:11px;color:rgba(234,228,208,.5);font-weight:600;margin-top:1px; }
.round-result-modal .r-row.top1 .r-name{ color:#FFE48A; }
.round-result-modal .r-delta{ 
  font-weight:800;font-size:17px;font-family:'Baloo 2',sans-serif;
  color:rgba(234,228,208,.6);flex-shrink:0;
}
.round-result-modal .r-row.win .r-delta{ color:#2EC974; }
.round-result-modal .r-row.lose .r-delta{ color:#FF6B6B; }
.round-result-modal .r-row.top1 .r-delta{ color:#FFD45C;font-size:19px; }
.rr-divider{
  height:1px;margin:0 16px;
  background:linear-gradient(90deg,transparent,rgba(245,179,36,.2),transparent);
  position:relative;z-index:1;
}
.rr-cd{ margin:8px 16px 0;position:relative;z-index:1; }
.rr-cd-bar{ width:100%;height:4px;border-radius:2px;background:rgba(255,255,255,.06);overflow:hidden; }
.rr-cd-fill{ height:100%;background:linear-gradient(90deg,#2EC974,#1FA85A,#0F6630);width:0%;transition:width .2s linear;border-radius:2px; }
.rr-cd-text{ text-align:center;font-size:11px;color:rgba(234,228,208,.45);margin-top:6px;font-weight:700; }
.rr-actions{
  display:flex;gap:8px;padding:14px 16px;position:relative;z-index:1;
  border-top:1px solid rgba(255,255,255,.04);
  background:rgba(0,0,0,.15);
}
.rr-btn{
  flex:1;padding:11px;border-radius:12px;border:none;
  font-family:'Baloo 2',sans-serif;font-size:13px;font-weight:800;cursor:pointer;
  transition:transform .15s,box-shadow .15s;
}
.rr-btn:active{ transform:translateY(1px) scale(.98); }
.rr-btn.ghost{
  background:rgba(255,255,255,.06);color:rgba(234,228,208,.5);
  border:1px solid rgba(255,255,255,.08);
}
.rr-btn.ghost:hover{ background:rgba(255,255,255,.1);color:rgba(234,228,208,.8); }
.rr-btn.primary{
  background:linear-gradient(180deg,#F5B324,#D89000);
  color:#3D2000;box-shadow:0 3px 0 #8B5A00,0 4px 12px rgba(245,179,36,.25);
}
.rr-btn.primary:hover{ box-shadow:0 3px 0 #8B5A00,0 6px 18px rgba(245,179,36,.35); }

/* ====== Bot 思考中 ====== */
.seat-timer.bot-thinking{
  background:linear-gradient(180deg,#64B5F6,#2196F3);color:#fff;border-color:#0D47A1;
  font-size:18px;line-height:22px;
  animation:botThink 1s ease-in-out infinite alternate;
}
@keyframes botThink{ from{ transform:scale(1); } to{ transform:scale(1.1); } }


/* ====== 炸金花开牌面板 ====== */
.zjh-showdown{
  min-width:340px;max-width:480px;
  background:linear-gradient(180deg,rgba(20,10,2,.96),rgba(8,4,2,.98));
  border:2px solid #F5B324;border-radius:14px;
  padding:14px 16px;
  box-shadow:0 0 32px rgba(245,179,36,.4);
  animation:shPop .35s cubic-bezier(.2,.8,.2,1);
}
.zjh-showdown.leopard{
  border-color:#FF6B5E;
  box-shadow:0 0 60px rgba(255,107,94,.7),inset 0 0 30px rgba(255,212,92,.3);
  animation:shLeopard .5s ease;
}
@keyframes shPop{ from{transform:scale(.7);opacity:0;} to{transform:scale(1);opacity:1;} }
@keyframes shLeopard{ 0%{transform:scale(.5) rotate(-5deg);opacity:0;} 50%{transform:scale(1.1) rotate(2deg);} 100%{transform:scale(1) rotate(0);opacity:1;} }
.sh-title{
  text-align:center;font-family:'Baloo 2',serif;font-weight:800;
  font-size:20px;color:#FFD45C;letter-spacing:1px;margin-bottom:10px;
  text-shadow:0 0 12px rgba(245,179,36,.5);
}
.zjh-showdown.leopard .sh-title{ color:#FF6B5E;font-size:24px; }
.sh-list{ display:flex;flex-direction:column;gap:8px; }
.sh-row{
  display:flex;align-items:center;gap:10px;padding:8px 10px;
  border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(245,179,36,.15);
  position:relative;
}
.sh-row.win{
  background:linear-gradient(90deg,rgba(255,212,92,.22),rgba(255,212,92,.04));
  border-color:#F5B324;
  box-shadow:0 0 16px rgba(245,179,36,.3);
}
.sh-row.lose{ opacity:.85; }
.sh-row.lose.fold{ opacity:.5;background:rgba(232,72,59,.08);border-color:rgba(232,72,59,.3); }
.sh-tag{
  font-size:11px;font-weight:800;padding:3px 8px;border-radius:6px;color:#fff;flex-shrink:0;
}
.win-tag{ background:linear-gradient(180deg,#FFE48A,#F5B324 50%,#D89000);color:#3D2817; }
.lose-tag{ background:linear-gradient(180deg,#888,#444); }
.fold-tag{ background:linear-gradient(180deg,#E8483B,#8B0000); }
.sh-cards{ display:flex;gap:4px; }
.sh-cards .pcard{ transform:scale(0.85);transform-origin:center; }
.sh-info{ display:flex;flex-direction:column;gap:2px;flex:1; }
.sh-nm{ font-weight:800;color:#FFE48A;font-size:13px; }
.sh-type{ font-size:11px;color:rgba(255,228,138,.7);font-weight:600; }
.sh-type.leopard{ color:#FF6B5E;font-weight:800;font-size:13px; }

/* ====== 豹子烟花 ====== */
.fireworks-overlay{
  position:fixed;inset:0;pointer-events:none;z-index:200;overflow:hidden;
}
.firework{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:radial-gradient(circle, currentColor 0%, transparent 70%);
  animation:fwBurst 1.6s ease-out infinite;
}
.firework:nth-child(1){ left:15%;top:25%;color:#FFD45C;animation-delay:0s; }
.firework:nth-child(2){ left:75%;top:20%;color:#FF6B5E;animation-delay:.2s; }
.firework:nth-child(3){ left:30%;top:60%;color:#4FC3F7;animation-delay:.4s; }
.firework:nth-child(4){ left:65%;top:70%;color:#AB47BC;animation-delay:.6s; }
.firework:nth-child(5){ left:50%;top:35%;color:#66BB6A;animation-delay:.8s; }
.firework:nth-child(6){ left:85%;top:50%;color:#FFA726;animation-delay:1s; }
@keyframes fwBurst{
  0%{ transform:scale(0) translate(0,0); opacity:1; }
  20%{ transform:scale(1.5) translate(0,-10px); opacity:1; }
  60%{ transform:scale(.8) translate(0,-30px); opacity:.6; }
  100%{ transform:scale(0) translate(0,-60px); opacity:0; }
}
.leopard-banner{
  position:absolute;left:50%;top:18%;transform:translateX(-50%);
  font-family:'Baloo 2',serif;font-weight:800;font-size:42px;
  color:#FFD45C;text-shadow:0 0 18px #FF6B5E,0 0 36px #F5B324;
  animation:leopardBanner 2.5s ease-in-out infinite;
  white-space:nowrap;
}
@keyframes leopardBanner{
  0%,100%{ transform:translateX(-50%) scale(1) rotate(-2deg); }
  50%{ transform:translateX(-50%) scale(1.08) rotate(2deg); }
}
