:root{
  color-scheme:dark;
  font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --gold:#f3d477;
  --green:#1e8d55;
  --red:#d54d50;
  --panel:rgba(11,24,18,.94);
  --line:rgba(244,217,135,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:#04100b;color:#f7f1df}
body{min-height:100vh;overflow-x:hidden}
button,input,a{font:inherit}
button{cursor:pointer}
.felt-bg{
  position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 50% 34%,rgba(29,127,75,.38),transparent 42%),
    linear-gradient(180deg,#06110c,#020704 72%);
}
.felt-bg::after{
  content:"";position:absolute;inset:0;opacity:.12;
  background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.04) 7px 8px);
}
.zjh-app{width:min(1480px,100%);margin:0 auto;padding:12px}
.zjh-topbar{
  min-height:68px;border:1px solid var(--line);border-radius:16px;
  background:linear-gradient(180deg,rgba(18,38,27,.98),rgba(7,20,13,.96));
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;box-shadow:0 16px 50px rgba(0,0,0,.35)
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand h1{font-size:22px;margin:0;color:#fff1b2;line-height:1.05}
.brand p{font-size:10px;margin:5px 0 0;color:#8fae9a}
.game-switch{
  display:grid;place-items:center;min-height:38px;padding:0 11px;border-radius:10px;
  text-decoration:none;color:#f9dca0;background:rgba(124,52,22,.25);border:1px solid rgba(242,170,76,.3);
  font-size:11px;font-weight:900;white-space:nowrap
}
.top-actions{display:flex;align-items:center;gap:7px}
.room-pill{
  min-width:88px;height:43px;padding:5px 9px;border:1px solid rgba(255,255,255,.08);
  border-radius:10px;background:rgba(0,0,0,.18);display:flex;flex-direction:column;justify-content:center
}
.room-pill small{font-size:8px;color:#829b8b}
.room-pill strong{font-size:11px;color:#f8ecc3;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-btn{
  height:43px;padding:0 12px;border-radius:10px;border:1px solid rgba(244,211,119,.3);
  background:rgba(229,184,71,.10);color:#f3d477;font-size:11px;font-weight:900
}
.table-shell{
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;margin-top:12px;align-items:start
}
.poker-table{
  position:relative;min-height:710px;border-radius:48% / 24%;
  border:14px solid #4b2614;
  outline:3px solid #a76d35;
  background:
    radial-gradient(circle at 50% 44%,rgba(41,151,88,.58),transparent 34%),
    radial-gradient(ellipse at center,#14643c 0,#0b4b2c 55%,#07351e 100%);
  box-shadow:
    inset 0 0 0 8px rgba(255,210,108,.12),
    inset 0 0 60px rgba(0,0,0,.48),
    0 22px 65px rgba(0,0,0,.42);
  overflow:hidden
}
.poker-table::before{
  content:"";position:absolute;inset:8%;border:1px solid rgba(249,221,154,.13);
  border-radius:50%;pointer-events:none
}
.table-center{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(330px,44%);text-align:center
}
.table-logo{
  font-size:28px;font-weight:1000;letter-spacing:.18em;color:rgba(255,238,181,.23);margin-bottom:10px
}
.pot-line{font-size:12px;color:#b7cbbf}
.pot-line strong{display:block;font-size:31px;color:#ffe38a;margin-top:3px;font-variant-numeric:tabular-nums}
.blind-line{font-size:10px;color:#9bb5a5;margin-top:7px}
.blind-line strong{color:#e8f7ed}
.phase-text{margin-top:18px;color:#fff0b5;font-size:15px;font-weight:900}
.phase-timer{font-size:34px;font-weight:1000;color:#fff;margin-top:3px;font-variant-numeric:tabular-nums}
.turn-hint{font-size:10px;color:#8faf9b;min-height:16px}
.seats{position:absolute;inset:0}
.seat{
  position:absolute;width:180px;min-height:126px;transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.10);border-radius:14px;
  background:linear-gradient(180deg,rgba(13,25,18,.94),rgba(4,11,7,.94));
  box-shadow:0 10px 24px rgba(0,0,0,.3);padding:8px;
  transition:.16s ease
}
.seat.turn{
  border-color:#ffd861;box-shadow:0 0 0 2px rgba(255,212,82,.18),0 0 24px rgba(255,205,62,.36)
}
.seat.offline{opacity:.58}
.seat.folded{filter:grayscale(.7);opacity:.56}
.seat.empty{
  display:grid;place-items:center;color:rgba(218,236,224,.27);
  border-style:dashed;background:rgba(0,0,0,.10);font-size:11px
}
.seat-head{display:flex;align-items:center;gap:7px}
.avatar{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(180deg,#d0b054,#72521b);color:#161006;font-weight:1000
}
.seat-info{min-width:0;flex:1}
.seat-info b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seat-info small{font-size:8px;color:#8fa59a}
.seat-owner{font-size:10px}
.seat-status{
  margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:6px;
  font-size:8px;color:#8ea597
}
.seat-status strong{color:#f5df98;font-size:9px}
.seat-cards{display:flex;justify-content:center;gap:3px;margin-top:7px;height:44px}
.mini-card,.card{
  position:relative;background:#f9f7ef;color:#171717;border-radius:6px;
  border:1px solid rgba(0,0,0,.25);box-shadow:0 4px 9px rgba(0,0,0,.25)
}
.mini-card{width:30px;height:42px;font-size:10px;padding:3px}
.card{width:64px;height:88px;padding:6px;font-size:17px}
.card.red,.mini-card.red{color:#d32631}
.card .suit,.mini-card .suit{position:absolute;right:4px;bottom:2px;font-size:1.25em}
.card.back,.mini-card.back{
  background:
    linear-gradient(135deg,rgba(255,255,255,.08) 25%,transparent 25%) -5px 0/10px 10px,
    linear-gradient(225deg,rgba(255,255,255,.08) 25%,transparent 25%) -5px 0/10px 10px,
    #7a1620;
  border-color:#dca2a7
}
.card.back::after,.mini-card.back::after{
  content:"金花";position:absolute;inset:4px;border:1px solid rgba(255,238,206,.5);
  display:grid;place-items:center;color:#f8dcc1;font-size:8px;font-weight:900;border-radius:4px
}
.seat-adjust{display:flex;gap:3px;margin-top:4px}
.seat-adjust button{
  flex:1;min-height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.1);
  font-size:8px;font-weight:900
}
.seat-adjust .up{color:#bfffd0;background:rgba(37,170,76,.15);border-color:rgba(70,221,108,.28)}
.seat-adjust .down{color:#ffd0d0;background:rgba(185,47,47,.13);border-color:rgba(236,88,88,.28)}
.side-panel{display:flex;flex-direction:column;gap:10px}
.me-card,.rules-mini,.history-card{
  border:1px solid var(--line);border-radius:15px;background:var(--panel);
  box-shadow:0 14px 38px rgba(0,0,0,.25)
}
.me-card{padding:13px}
.me-title{display:flex;justify-content:space-between;align-items:center;gap:8px}
.me-title small{display:block;font-size:8px;color:#81978a}
.me-title strong{font-size:14px}
.owner-badge{font-size:9px;padding:4px 6px;border:1px solid rgba(245,210,91,.3);border-radius:999px;color:#ffe47c}
.hidden{display:none!important}
.money-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:8px;border-radius:9px;background:rgba(255,255,255,.04)}
.money-row span{font-size:9px;color:#91a69a}
.money-row strong{font-size:18px;color:#ffe389;font-variant-numeric:tabular-nums}
.my-cards{height:102px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:7px}
.hand-type{text-align:center;font-size:11px;color:#e9dca9;min-height:19px}
.ready-btn{
  width:100%;height:46px;margin-top:9px;border-radius:11px;border:1px solid #89f0aa;
  color:#062914;background:linear-gradient(180deg,#bfffd0,#48db78);font-size:15px;font-weight:1000
}
.ready-btn.cancel{color:#3c2600;border-color:#f3d684;background:linear-gradient(180deg,#ffeaa1,#d2a83b)}
.action-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px}
.action-btn{min-height:42px;border-radius:9px;font-size:11px;font-weight:1000;border:1px solid rgba(255,255,255,.12);color:#fff}
.action-btn:disabled{opacity:.3;cursor:not-allowed}
.action-btn.look{background:#276f91}
.action-btn.call{background:#267a4a}
.action-btn.raise{background:#a47b1d}
.action-btn.compare{background:#7437a3}
.action-btn.fold{background:#9d3035;grid-column:1/-1}
.waiting-next{margin-top:9px;padding:8px;border-radius:8px;background:rgba(237,187,63,.09);border:1px solid rgba(237,187,63,.21);color:#ffe299;font-size:9px;text-align:center}
.rules-mini{padding:11px}
.rules-mini b{display:block;color:#f7da82;font-size:11px;margin-bottom:6px}
.rules-mini span,.rules-mini small{display:block;font-size:9px;line-height:1.55;color:#bdcbbf}
.rules-mini small{color:#87998e}
.history-card{padding:11px;min-height:170px}
.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.panel-title b{font-size:11px}
.panel-title span{font-size:8px;color:#879c8f}
.history-list{display:flex;flex-direction:column;gap:5px}
.history-item{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px;border-radius:8px;background:rgba(255,255,255,.035)}
.history-item b{font-size:9px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-item span{font-size:8px;color:#f2d67c;white-space:nowrap}
.empty-history{text-align:center;color:#677b70;font-size:9px;padding:16px}
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.72);display:none;place-items:center;padding:16px;backdrop-filter:blur(6px)}
.modal.open{display:grid}
.entry-card,.dialog-card{
  width:min(440px,100%);border:1px solid rgba(241,210,123,.22);border-radius:17px;
  background:linear-gradient(180deg,#10251a,#07110c);box-shadow:0 25px 80px rgba(0,0,0,.55);padding:18px
}
.entry-logo{text-align:center;font-size:45px}
.entry-card h2{text-align:center;margin:4px 0 5px;color:#ffe99f}
.entry-card p{text-align:center;font-size:10px;color:#92a99b;line-height:1.5;margin:0 0 12px}
.game-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}
.game-tabs a,.game-tabs button{
  min-height:38px;border-radius:8px;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;
  color:#b7c5bc;background:rgba(255,255,255,.03);text-decoration:none;font-size:10px;font-weight:900
}
.game-tabs .active{border-color:rgba(244,210,107,.34);color:#ffe28c;background:rgba(221,177,58,.12)}
.entry-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;padding:4px;border-radius:10px;background:rgba(0,0,0,.22)}
.entry-mode-switch button{height:40px;border-radius:8px;border:1px solid transparent;background:transparent;color:#869b8f;font-size:11px;font-weight:900}
.entry-mode-switch button.active{background:linear-gradient(180deg,#f4d778,#b88b27);color:#291a00;border-color:#ffe39a}
.entry-card label{display:block;margin-top:9px}
.entry-card label span{display:block;font-size:9px;color:#9bad9f;margin-bottom:5px}
.entry-card input,.adjust-card input{
  width:100%;height:43px;border-radius:9px;border:1px solid rgba(255,255,255,.11);
  background:#06100b;color:#fff;padding:0 11px;outline:none
}
.entry-card input:focus,.adjust-card input:focus{border-color:#e4c765;box-shadow:0 0 0 2px rgba(228,199,101,.11)}
.entry-btn{
  width:100%;height:47px;margin-top:13px;border-radius:10px;border:1px solid #ffe69a;
  background:linear-gradient(180deg,#f6db7c,#bc8c27);color:#2b1b00;font-weight:1000
}
.entry-card>small{display:block;text-align:center;margin-top:9px;color:#687d70;font-size:8px}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dialog-head h3{margin:0;color:#ffe393}
.dialog-head small{display:block;font-size:8px;color:#8da195}
.dialog-head button{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#fff}
.compare-targets{display:flex;flex-direction:column;gap:7px;margin-top:12px}
.compare-target{
  min-height:48px;border-radius:9px;border:1px solid rgba(169,115,235,.26);
  background:rgba(112,53,161,.12);color:#f2dcff;display:flex;align-items:center;justify-content:space-between;padding:0 12px
}
.compare-target b{font-size:11px}.compare-target span{font-size:9px;color:#cbb5d8}
.adjust-card{width:min(390px,100%)}
.adjust-target,.adjust-balance{display:flex;justify-content:space-between;align-items:center;margin-top:9px;padding:8px;border-radius:8px;background:rgba(255,255,255,.035)}
.adjust-target span,.adjust-balance span{font-size:9px;color:#90a297}
.adjust-target strong,.adjust-balance strong{font-size:12px}
.adjust-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.adjust-mode button{height:40px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#9aa69f;font-weight:900}
.adjust-mode .up.active{background:#49d778;color:#072813;border-color:#91f0ad}
.adjust-mode .down.active{background:#e05c61;color:#36070a;border-color:#ff9da1}
.adjust-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}
.adjust-presets button{height:36px;border-radius:7px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#e9ddba;font-size:9px;font-weight:900}
.adjust-presets .all{grid-column:1/-1;background:#8e272c;color:#ffd9da}
.adjust-confirm{width:100%;height:43px;margin-top:8px;border-radius:9px;border:1px solid #91efae;background:#3cca6c;color:#062612;font-weight:1000}
.adjust-confirm.down{background:#c53c42;border-color:#f38488;color:#fff}
.toast{
  position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));z-index:90;transform:translate(-50%,20px);
  max-width:min(92vw,520px);padding:10px 14px;border-radius:10px;background:rgba(5,13,8,.95);
  border:1px solid rgba(246,217,130,.25);box-shadow:0 12px 40px rgba(0,0,0,.4);
  color:#f8eabd;font-size:11px;opacity:0;pointer-events:none;transition:.18s
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.warn{border-color:rgba(238,93,93,.4);color:#ffd2d2}
.toast.success{border-color:rgba(78,225,119,.4);color:#caffd8}
@media(max-width:1100px){
  .table-shell{grid-template-columns:1fr}
  .side-panel{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .me-card{grid-row:span 2}
  .poker-table{min-height:650px}
}
@media(max-width:720px){
  .zjh-app{padding:6px}
  .zjh-topbar{padding:7px 8px;border-radius:11px;min-height:58px}
  .brand h1{font-size:16px}.brand p{display:none}
  .game-switch{min-height:34px;padding:0 7px;font-size:9px}
  .room-pill{min-width:62px;height:36px;padding:4px 6px}.room-pill strong{max-width:80px;font-size:9px}
  .top-btn{height:36px;padding:0 8px;font-size:9px}
  .table-shell{margin-top:7px;gap:7px}
  .poker-table{min-height:560px;border-width:9px;border-radius:44% / 19%;outline-width:2px}
  .table-center{width:42%}.table-logo{font-size:19px}.pot-line strong{font-size:23px}.phase-text{font-size:11px;margin-top:10px}.phase-timer{font-size:25px}
  .seat{width:118px;min-height:94px;padding:5px;border-radius:9px}
    .avatar{width:25px;height:25px;font-size:10px}.seat-info b{font-size:8px}.seat-info small{font-size:6.5px}
  .seat-status{font-size:6.5px;margin-top:3px}.seat-status strong{font-size:7px}
  .seat-cards{height:33px;margin-top:4px}.mini-card{width:22px;height:31px;font-size:7px;padding:2px}.mini-card.back::after{font-size:5px;inset:2px}
  .seat-adjust{margin-top:2px}.seat-adjust button{min-height:20px;font-size:6.5px;padding:0 2px}
  .side-panel{display:flex;flex-direction:column}.me-card,.rules-mini,.history-card{width:100%}
  .my-cards{height:92px}.card{width:58px;height:82px}
  .action-panel{grid-template-columns:repeat(3,1fr)}.action-btn{min-height:40px;font-size:10px}.action-btn.fold{grid-column:auto}
}
@media(max-width:390px){
  .poker-table{min-height:520px}
  .seat{width:104px}
    .room-pill:nth-child(2){display:none}
}


/* =========================================================
   v1658 炸金花 2–15人动态座位
   ========================================================= */
.poker-table{
  min-height:820px;
}
.seat{
  width:142px;
  min-height:108px;
  padding:6px;
  transform:translate(-50%,-50%);
}
.seat.queued{
  border-color:rgba(91,211,255,.34);
  box-shadow:0 0 15px rgba(70,190,240,.15);
}
.seat.queued .seat-status span{
  color:#a9e8ff;
}
.seat.empty{
  width:96px;
  min-height:46px;
  border-radius:999px;
  font-size:8px;
  padding:4px 7px;
}
.seat.empty span{
  opacity:.8;
}
.seat .avatar{
  width:29px;
  height:29px;
  font-size:11px;
}
.seat .seat-info b{
  font-size:9px;
}
.seat .seat-info small{
  font-size:7px;
}
.seat .seat-status{
  margin-top:4px;
  font-size:7px;
}
.seat .seat-status strong{
  font-size:7px;
}
.seat .seat-cards{
  height:34px;
  margin-top:4px;
}
.seat .mini-card{
  width:23px;
  height:32px;
  font-size:7px;
}
.seat .seat-adjust button{
  min-height:20px;
  font-size:6.5px;
  padding:0 3px;
}
.table-center{
  width:min(300px,34%);
}

@media(max-width:1100px){
  .poker-table{
    min-height:760px;
  }
  .seat{
    width:126px;
    min-height:100px;
  }
  .seat.empty{
    width:82px;
    min-height:40px;
  }
}

@media(max-width:720px){
  .poker-table{
    min-height:690px;
    border-radius:42% / 15%;
  }
  .table-center{
    width:34%;
  }
  .table-logo{
    font-size:16px;
    letter-spacing:.08em;
  }
  .pot-line strong{
    font-size:20px;
  }
  .phase-text{
    font-size:10px;
  }
  .turn-hint{
    font-size:7px;
  }

  .seat{
    width:84px;
    min-height:70px;
    padding:3px;
    border-radius:8px;
  }
  .seat.empty{
    width:58px;
    min-height:28px;
    padding:2px 4px;
    font-size:6px;
  }
  .seat .avatar{
    width:19px;
    height:19px;
    font-size:7px;
  }
  .seat .seat-head{
    gap:3px;
  }
  .seat .seat-info b{
    font-size:6.5px;
  }
  .seat .seat-info small{
    font-size:5.5px;
  }
  .seat .seat-status{
    margin-top:2px;
    font-size:5.5px;
    gap:2px;
  }
  .seat .seat-status strong{
    font-size:5.5px;
  }
  .seat .seat-cards{
    height:22px;
    margin-top:2px;
    gap:1px;
  }
  .seat .mini-card{
    width:15px;
    height:21px;
    border-radius:3px;
    font-size:4.8px;
    padding:1px;
  }
  .seat .mini-card .suit{
    right:1px;
    bottom:0;
  }
  .seat .mini-card.back::after{
    inset:1px;
    font-size:3.6px;
    border-radius:2px;
  }
  .seat .hand-type{
    min-height:10px;
    font-size:5.5px;
    line-height:1.1;
  }
  .seat .seat-adjust{
    gap:1px;
    margin-top:1px;
  }
  .seat .seat-adjust button{
    min-height:15px;
    font-size:4.8px;
    padding:0 1px;
    border-radius:3px;
  }
}

@media(max-width:390px){
  .poker-table{
    min-height:650px;
  }
  .seat{
    width:76px;
    min-height:65px;
  }
  .seat.empty{
    width:52px;
  }
}



.game-nav{display:flex;align-items:center;gap:5px}
.game-switch.lobby{
  color:#dce4ff;
  background:rgba(75,87,130,.15);
  border-color:rgba(151,166,216,.22);
}


/* v1740 炸金花邀请链接直接进房 */
.direct-join-overlay{
  position:fixed;inset:0;z-index:120;
  display:grid;place-items:center;padding:18px;
  background:
    radial-gradient(circle at 50% 35%,rgba(26,128,72,.26),transparent 38%),
    rgba(2,8,5,.96);
  backdrop-filter:blur(8px);
}
.direct-join-overlay.hidden{display:none!important}
.direct-join-card{
  width:min(340px,92vw);
  border:1px solid rgba(239,210,118,.20);
  border-radius:18px;padding:26px 20px;
  text-align:center;
  background:linear-gradient(180deg,#10281b,#07120c);
  box-shadow:0 25px 80px rgba(0,0,0,.5);
}
.direct-join-icon{
  font-size:46px;margin-bottom:9px;
}
.direct-join-card strong{
  display:block;color:#ffe698;font-size:17px;
}
.direct-join-card span{
  display:block;margin-top:7px;color:#9db1a3;font-size:10px;
}
.direct-join-spinner{
  width:28px;height:28px;margin:17px auto 0;border-radius:50%;
  border:3px solid rgba(255,255,255,.10);
  border-top-color:#f4d578;
  animation:zjhSpin .7s linear infinite;
}
@keyframes zjhSpin{to{transform:rotate(360deg)}}


/* =========================================================
   v1810 比牌开牌展示 + 全面可读性优化
   ========================================================= */
.brand h1{font-size:26px}
.brand p{font-size:12px}
.room-pill small{font-size:10px}
.room-pill strong{font-size:13px}
.top-btn{font-size:12px;font-weight:1000}
.voice-btn.off{opacity:.62}

.table-center .pot-line{font-size:14px}
.table-center .pot-line strong{font-size:36px}
.table-center .blind-line{font-size:12px}
.table-center .phase-text{font-size:18px}
.table-center .phase-timer{font-size:40px}
.table-center .turn-hint{font-size:12px}

.seat{
  width:154px;
  min-height:116px;
  padding:7px;
}
.seat .avatar{width:32px;height:32px;font-size:13px}
.seat .seat-info b{font-size:11px}
.seat .seat-info small{font-size:9px;color:#b9c9bf}
.seat .seat-status{font-size:8.5px}
.seat .seat-status strong{font-size:8.5px}
.seat .seat-adjust button{font-size:7.5px}
.seat .hand-type{font-size:8px}

.me-title small{font-size:10px}
.me-title strong{font-size:17px}
.owner-badge{font-size:10px}
.money-row span{font-size:11px}
.money-row strong{font-size:22px}
.hand-type{font-size:13px}
.ready-btn{font-size:16px}
.action-btn{font-size:13px}
.waiting-next{font-size:11px;line-height:1.5}
.rules-mini b{font-size:13px}
.rules-mini span,.rules-mini small{font-size:11px}
.panel-title b{font-size:13px}
.panel-title span{font-size:10px}
.history-item b{font-size:11px}
.history-item span{font-size:10px}

/* 每次比牌在桌面中央直接亮牌，全桌可见 */
.showdown-overlay{
  position:absolute;
  left:50%;top:50%;
  width:min(560px,60%);
  transform:translate(-50%,-50%);
  z-index:14;
  padding:16px 18px;
  border-radius:18px;
  border:2px solid rgba(255,222,120,.58);
  background:
    radial-gradient(circle at 50% 0,rgba(151,99,32,.24),transparent 50%),
    rgba(5,14,9,.96);
  box-shadow:0 18px 70px rgba(0,0,0,.62),0 0 32px rgba(255,205,83,.18);
  pointer-events:none;
}
.showdown-title{
  text-align:center;
  font-size:18px;
  font-weight:1000;
  color:#ffe694;
  margin-bottom:12px;
}
.showdown-players{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
}
.showdown-side{text-align:center;min-width:0}
.showdown-name{
  font-size:15px;
  font-weight:1000;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.win-mark{
  display:inline-block;
  margin-left:4px;
  padding:2px 5px;
  border-radius:999px;
  background:#3bdd72;
  color:#082612;
  font-size:10px;
}
.showdown-cards{
  display:flex;
  justify-content:center;
  gap:5px;
  margin:9px 0 7px;
}
.showdown-cards .card{
  width:54px;
  height:76px;
  font-size:15px;
}
.showdown-type{
  display:inline-block;
  min-width:72px;
  padding:5px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:#ffe8a7;
  font-size:13px;
  font-weight:1000;
}
.showdown-vs{
  font-size:24px;
  font-weight:1000;
  color:#e45b5e;
}
.showdown-winner{
  margin-top:12px;
  text-align:center;
  color:#9bffc0;
  font-size:16px;
  font-weight:1000;
}

/* 最终赢家独立展示：即使别人全部弃牌，也显示赢家开的牌 */
.final-reveal-overlay{
  position:absolute;
  left:50%;top:50%;
  width:min(390px,48%);
  transform:translate(-50%,-50%);
  z-index:15;
  padding:18px;
  text-align:center;
  border-radius:20px;
  border:2px solid rgba(255,222,108,.66);
  background:linear-gradient(180deg,rgba(46,31,9,.97),rgba(10,17,11,.98));
  box-shadow:0 20px 75px rgba(0,0,0,.66),0 0 38px rgba(255,211,83,.18);
  pointer-events:none;
}
.final-crown{font-size:36px}
.final-title{font-size:12px;color:#ccb76f;margin-top:3px}
.final-winner-name{font-size:24px;font-weight:1000;color:#fff0a9;margin-top:4px}
.final-winner-cards{
  display:flex;justify-content:center;gap:7px;margin:11px 0 8px
}
.final-winner-cards .card{width:62px;height:86px}
.final-winner-type{
  font-size:17px;font-weight:1000;color:#a4ffc4
}
.final-winner-pot{
  margin-top:6px;font-size:13px;color:#ffe28c
}

@media(max-width:720px){
  .brand h1{font-size:18px}
  .room-pill strong{font-size:10px}
  .top-btn{font-size:9px}

  .poker-table{
    min-height:760px;
  }
  .table-center .pot-line{font-size:10px}
  .table-center .pot-line strong{font-size:25px}
  .table-center .blind-line{font-size:9px}
  .table-center .phase-text{font-size:12px}
  .table-center .phase-timer{font-size:30px}
  .table-center .turn-hint{font-size:8.5px;line-height:1.35}

  /* 15人时仍保持能读，不再压到4-5px */
  
  
  
  
  
  
  
  
  

  .me-title small{font-size:9px}
  .me-title strong{font-size:15px}
  .money-row span{font-size:10px}
  .money-row strong{font-size:20px}
  .hand-type{font-size:12px}
  .ready-btn{font-size:15px}
  .action-btn{font-size:11.5px;min-height:44px}
  .rules-mini span,.rules-mini small{font-size:10px}
  .history-item b{font-size:10px}
  .history-item span{font-size:9px}

  .showdown-overlay{
    width:88%;
    padding:12px 9px;
  }
  .showdown-title{font-size:15px;margin-bottom:8px}
  .showdown-players{gap:5px}
  .showdown-name{font-size:11px}
  .showdown-cards{gap:2px;margin:6px 0}
  .showdown-cards .card{
    width:38px;height:54px;font-size:11px;padding:3px
  }
  .showdown-type{font-size:10px;min-width:58px;padding:4px 5px}
  .showdown-vs{font-size:16px}
  .showdown-winner{font-size:13px;margin-top:8px}

  .final-reveal-overlay{
    width:78%;
    padding:14px 10px;
  }
  .final-crown{font-size:29px}
  .final-winner-name{font-size:19px}
  .final-winner-cards .card{width:49px;height:68px;font-size:14px}
  .final-winner-type{font-size:15px}
  .final-winner-pot{font-size:11px}
}


/* v1818 最终手机可读性：覆盖所有旧版极小字号 */
@media(max-width:720px){
  .poker-table{
    min-height:810px;
  }

  
  
  
  
  
  
  
  
  
  

  .showdown-name{font-size:12px !important}
  .showdown-type{font-size:11px !important}
  .showdown-winner{font-size:14px !important}
  .final-winner-name{font-size:21px !important}
  .final-winner-type{font-size:16px !important}

  .action-btn{
    font-size:12.5px !important;
    min-height:46px !important;
  }
  .ready-btn{
    font-size:16px !important;
    min-height:48px !important;
  }
}


/* v1828 炸金花邀请复制：与水果机同样的可见链接 + 兼容复制 */
.zjh-share-card{
  width:min(460px,96vw);
}
.zjh-share-tip{
  margin:12px 0 10px;
  font-size:12px;
  line-height:1.55;
  color:#b9c9bf;
}
.zjh-share-label{
  display:block;
}
.zjh-share-label span{
  display:block;
  margin-bottom:6px;
  font-size:11px;
  color:#d6c99b;
}
.zjh-share-label input{
  width:100%;
  height:46px;
  padding:0 11px;
  border-radius:9px;
  border:1px solid rgba(255,223,126,.22);
  background:#050c08;
  color:#fff0b3;
  font-size:12px;
  outline:none;
}
.zjh-share-label input:focus{
  border-color:#f0d16c;
  box-shadow:0 0 0 2px rgba(240,209,108,.12);
}
.zjh-copy-share-btn{
  width:100%;
  min-height:48px;
  margin-top:10px;
  border-radius:10px;
  border:1px solid #ffe18a;
  background:linear-gradient(180deg,#f5d878,#b98a26);
  color:#281900;
  font-size:14px;
  font-weight:1000;
}
.zjh-copy-share-hint{
  margin-top:8px;
  min-height:18px;
  text-align:center;
  font-size:10px;
  line-height:1.45;
  color:#899b90;
}
@media(max-width:720px){
  .zjh-share-card{padding:15px}
  .zjh-share-tip{font-size:11px}
  .zjh-share-label span{font-size:10px}
  .zjh-share-label input{
    height:48px;
    font-size:13px;
  }
  .zjh-copy-share-btn{
    min-height:50px;
    font-size:15px;
  }
  .zjh-copy-share-hint{
    font-size:10px;
  }
}


/* =========================================================
   v1755 谁看牌明显显示 + 玩家信息完整显示
   ========================================================= */

/* 玩家昵称不再强制单行省略，最多显示两行 */
.seat .seat-info{
  min-width:0;
}
.seat .seat-info b{
  display:-webkit-box !important;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  white-space:normal !important;
  overflow:hidden;
  text-overflow:clip !important;
  line-height:1.12;
  min-height:2.2em;
  word-break:break-all;
}
.seat .seat-info small{
  display:block;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}

/* 谁看过牌：全桌明显可见，但绝不显示实际牌面 */
.seat-flags{
  display:flex;
  align-items:center;
  gap:3px;
  flex-wrap:wrap;
  margin-top:3px;
  min-height:16px;
}
.seen-badge,.next-badge{
  display:inline-flex;
  align-items:center;
  min-height:16px;
  padding:1px 5px;
  border-radius:999px;
  font-size:7.5px;
  font-weight:1000;
  line-height:1;
  white-space:nowrap;
}
.seen-badge{
  color:#062e18;
  background:#78f0a5;
  border:1px solid #a9ffc8;
  box-shadow:0 0 10px rgba(78,235,130,.25);
}
.next-badge{
  color:#e8f8ff;
  background:rgba(43,155,209,.28);
  border:1px solid rgba(112,207,250,.42);
}

/* 右侧完整玩家状态列表 */
.players-card{
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--panel);
  box-shadow:0 14px 38px rgba(0,0,0,.25);
  padding:11px;
}
.full-player-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  max-height:430px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.full-player-row{
  width:100%;
  border:1px solid rgba(255,255,255,.075);
  border-radius:10px;
  background:rgba(255,255,255,.035);
  color:#f7f1df;
  padding:8px;
  text-align:left;
}
.full-player-row.turn{
  border-color:rgba(255,215,91,.45);
  background:rgba(255,209,71,.07);
  box-shadow:inset 0 0 12px rgba(255,209,71,.05);
}
.full-player-row.offline{opacity:.62}
.full-player-main{
  display:grid;
  grid-template-columns:27px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
}
.full-player-seat{
  width:27px;height:27px;
  display:grid;place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  color:#d7c992;
  font-size:10px;
  font-weight:1000;
}
.full-player-namebox{
  min-width:0;
}
.full-player-namebox b{
  display:block;
  font-size:12px;
  line-height:1.3;
  white-space:normal;
  word-break:break-all;
}
.full-player-namebox small{
  display:flex;
  gap:3px;
  flex-wrap:wrap;
  margin-top:3px;
}
.full-player-money{
  font-size:11px;
  color:#ffe28b;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.full-player-sub{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:6px;
  padding-top:5px;
  border-top:1px solid rgba(255,255,255,.05);
  color:#aabbb0;
  font-size:9px;
  line-height:1.35;
}
.full-player-sub span{
  min-width:0;
  white-space:normal;
  word-break:break-word;
}

.flag{
  display:inline-flex;
  align-items:center;
  min-height:17px;
  padding:2px 5px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:#b6c5bc;
  font-size:7px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
.flag.owner{color:#ffe48a;border-color:rgba(255,220,100,.25)}
.flag.online{color:#baffcf;border-color:rgba(80,222,119,.23)}
.flag.offline{color:#c1c1c1}
.flag.seen{
  color:#073319;
  background:#79efa4;
  border-color:#a8ffc6;
}
.flag.folded{color:#ffb5b7;border-color:rgba(232,81,86,.3)}
.flag.next{color:#b7ebff;border-color:rgba(72,179,231,.3)}
.flag.ready{color:#e9dd9a;border-color:rgba(221,194,84,.25)}
.flag.turn{color:#ffe998;border-color:rgba(255,214,65,.4)}

/* 玩家详情 */
.player-detail-card{
  width:min(420px,96vw);
}
.player-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:12px;
}
.player-detail-grid>div{
  padding:9px;
  border-radius:9px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.06);
}
.player-detail-grid span{
  display:block;
  font-size:9px;
  color:#8ea095;
}
.player-detail-grid strong{
  display:block;
  margin-top:3px;
  font-size:13px;
  color:#f5e8bb;
  word-break:break-all;
}
.player-detail-flags{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:10px;
}
.player-detail-owner-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:12px;
}
.player-detail-owner-actions button{
  min-height:42px;
  border-radius:9px;
  font-size:11px;
  font-weight:1000;
}
.player-detail-owner-actions .up{
  color:#062913;
  background:#4bdb7a;
  border:1px solid #91f0ad;
}
.player-detail-owner-actions .down{
  color:#fff;
  background:#c94248;
  border:1px solid #f27e83;
}

/* 15人牌桌：给卡片更多纵向空间，防止看牌标记/状态被裁掉 */




/* 桌面时玩家区更完整 */
@media(min-width:1101px){
  .side-panel{
    width:320px;
  }
  .table-shell{
    grid-template-columns:minmax(0,1fr) 320px;
  }
  .full-player-list{
    max-height:360px;
  }
}

/* 平板/手机：完整玩家列表单独占满一行，绝不再截断 */
@media(max-width:1100px){
  .players-card{
    grid-column:1/-1;
    width:100%;
  }
  .full-player-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-height:none;
    overflow:visible;
  }
}

@media(max-width:720px){
  .players-card{
    padding:9px;
  }
  .full-player-list{
    grid-template-columns:1fr;
    gap:5px;
  }
  .full-player-row{
    padding:8px 9px;
  }
  .full-player-namebox b{
    font-size:13px;
  }
  .full-player-money{
    font-size:12px;
  }
  .full-player-sub{
    font-size:10px;
  }
  .flag{
    min-height:18px;
    font-size:8px;
    padding:2px 6px;
  }
  .player-detail-grid span{font-size:10px}
  .player-detail-grid strong{font-size:14px}

  /* 桌面环形座位只保留核心信息，完整信息看下方玩家状态栏 */
  
  
  
}


/* =========================================================
   v1805 炸金花 2–8人清晰布局
   核心目标：玩家信息完整、不互相覆盖、不遮挡中央游戏内容
   ========================================================= */

/* 牌桌留足空间 */
.poker-table{
  min-height:760px !important;
  overflow:visible;
}
.seats{
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
}

/* 玩家卡片 */
#seats[data-count="8"] .seat{
  width:168px !important;
  min-height:132px !important;
  padding:8px !important;
  pointer-events:auto;
  overflow:visible !important;
  z-index:7;
}
#seats[data-count="8"] .seat.empty{
  width:92px !important;
  min-height:42px !important;
  padding:6px 8px !important;
  font-size:9px !important;
}

/* 玩家昵称完整显示，允许两行 */
#seats[data-count="8"] .seat .seat-info b{
  display:block !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  word-break:break-all;
  line-height:1.2 !important;
  min-height:0 !important;
  max-height:none !important;
  font-size:11px !important;
  -webkit-line-clamp:unset !important;
}

/* 余额/状态/下注完整显示 */
#seats[data-count="8"] .seat .seat-info small{
  white-space:normal !important;
  overflow:visible !important;
  font-size:9px !important;
  line-height:1.25;
}
#seats[data-count="8"] .seat-status{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:2px !important;
  align-items:start !important;
  font-size:8.5px !important;
  line-height:1.25;
}
#seats[data-count="8"] .seat-status span,
#seats[data-count="8"] .seat-status strong{
  display:block;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  word-break:break-word;
  font-size:8.5px !important;
}
#seats[data-count="8"] .seat-flags{
  min-height:18px !important;
}
#seats[data-count="8"] .seen-badge,
#seats[data-count="8"] .next-badge{
  font-size:7.5px !important;
  min-height:17px !important;
  padding:2px 5px !important;
}

/* 牌面/房主上下分也完整 */
#seats[data-count="8"] .seat-cards{
  height:37px !important;
  margin-top:5px !important;
}
#seats[data-count="8"] .mini-card{
  width:25px !important;
  height:35px !important;
  font-size:8px !important;
}
#seats[data-count="8"] .seat-adjust button{
  min-height:22px !important;
  font-size:7.5px !important;
}

/* 中央内容放在安全区，不被8个座位遮挡 */
.table-center{
  z-index:5;
  width:min(300px,36%) !important;
  pointer-events:none;
}
.showdown-overlay,
.final-reveal-overlay{
  z-index:20 !important;
  max-width:560px;
}

/* 完整玩家列表始终作为第二信息层，内容不截断 */
.players-card{
  overflow:visible !important;
}
.full-player-list{
  max-height:none !important;
  overflow:visible !important;
}
.full-player-row{
  overflow:visible !important;
}
.full-player-namebox b,
.full-player-sub span,
.full-player-money{
  overflow:visible !important;
  text-overflow:clip !important;
}
.full-player-namebox b{
  white-space:normal !important;
  word-break:break-all;
}
.full-player-money{
  white-space:nowrap !important;
}
.full-player-sub{
  align-items:flex-start;
}
.full-player-sub span{
  white-space:normal !important;
  word-break:break-word;
}

/* 电脑端8人牌桌更宽，右侧玩家列表也更宽 */
@media(min-width:1101px){
  .table-shell{
    grid-template-columns:minmax(0,1fr) 350px !important;
  }
  .side-panel{
    width:350px !important;
  }
  .poker-table{
    min-height:780px !important;
  }
}

/* 平板 */
@media(max-width:1100px){
  .poker-table{
    min-height:720px !important;
  }
  #seats[data-count="8"] .seat{
    width:150px !important;
    min-height:122px !important;
  }
  .full-player-list{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* 手机：8人专用不遮挡布局 */
@media(max-width:720px){
  .poker-table{
    min-height:700px !important;
    border-radius:34% / 13% !important;
    overflow:visible !important;
  }

  /* 8人座位适当缩小，但保持可读 */
  #seats[data-count="8"] .seat{
    width:96px !important;
    min-height:92px !important;
    padding:5px !important;
    border-radius:9px !important;
  }
  #seats[data-count="8"] .seat.empty{
    width:62px !important;
    min-height:31px !important;
    font-size:7.5px !important;
  }

  #seats[data-count="8"] .seat .avatar{
    width:23px !important;
    height:23px !important;
    font-size:9px !important;
  }
  #seats[data-count="8"] .seat .seat-info b{
    font-size:8.8px !important;
    line-height:1.15 !important;
  }
  #seats[data-count="8"] .seat .seat-info small{
    font-size:7.4px !important;
  }
  #seats[data-count="8"] .seat-status,
  #seats[data-count="8"] .seat-status span,
  #seats[data-count="8"] .seat-status strong{
    font-size:7.2px !important;
  }
  #seats[data-count="8"] .seen-badge,
  #seats[data-count="8"] .next-badge{
    font-size:6.8px !important;
    min-height:15px !important;
    padding:1px 4px !important;
  }
  #seats[data-count="8"] .seat-cards{
    height:27px !important;
  }
  #seats[data-count="8"] .mini-card{
    width:18px !important;
    height:25px !important;
    font-size:6px !important;
  }
  #seats[data-count="8"] .seat-adjust button{
    min-height:18px !important;
    font-size:6px !important;
  }

  /* 中央安全区进一步收窄，保证左右玩家不盖住底池 */
  .table-center{
    width:31% !important;
  }
  .table-center .pot-line strong{
    font-size:23px !important;
  }
  .table-center .phase-text{
    font-size:11px !important;
  }
  .table-center .turn-hint{
    font-size:8px !important;
  }

  /* 手机完整玩家列表改为单列，所有文字完整 */
  .full-player-list{
    grid-template-columns:1fr !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .full-player-row{
    padding:10px !important;
  }
  .full-player-namebox b{
    font-size:14px !important;
    line-height:1.35 !important;
  }
  .full-player-money{
    font-size:13px !important;
  }
  .full-player-sub{
    font-size:11px !important;
    line-height:1.45 !important;
  }
  .flag{
    font-size:8.5px !important;
  }

  /* 比牌/赢家层在中央显示，不覆盖完整玩家列表 */
  .showdown-overlay{
    width:84% !important;
    z-index:25 !important;
  }
  .final-reveal-overlay{
    width:72% !important;
    z-index:26 !important;
  }
}

/* 极窄手机：牌桌仍保持不重叠 */
@media(max-width:390px){
  .poker-table{
    min-height:680px !important;
  }
  #seats[data-count="8"] .seat{
    width:90px !important;
    min-height:88px !important;
  }
  .table-center{
    width:28% !important;
  }
}


/* =========================================================
   v1815 看牌状态无需滚动：牌桌上方常驻显示
   ========================================================= */
.seen-status-bar{
  position:sticky;
  top:6px;
  z-index:35;
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:46px;
  margin:0 0 8px;
  padding:7px 9px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,15,10,.94);
  box-shadow:0 8px 25px rgba(0,0,0,.28);
  backdrop-filter:blur(8px);
}
.seen-status-bar.has-seen{
  border-color:rgba(97,237,144,.32);
  box-shadow:0 8px 25px rgba(0,0,0,.28),0 0 18px rgba(64,214,112,.07);
}
.seen-status-label{
  flex:0 0 auto;
  min-width:68px;
  color:#9fffc0;
  font-size:11px;
  font-weight:1000;
  white-space:nowrap;
}
.seen-status-names{
  min-width:0;
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.seen-none{
  color:#77877c;
  font-size:10px;
}
.seen-player-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:27px;
  max-width:150px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(111,242,154,.3);
  background:rgba(64,212,112,.10);
  color:#c9ffda;
}
.seen-player-chip.turn{
  border-color:#f0d16c;
  color:#fff0ad;
  box-shadow:0 0 12px rgba(240,209,108,.12);
}
.seen-player-chip b{
  min-width:0;
  font-size:10px;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.seen-dot{
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#58e88c;
  box-shadow:0 0 8px rgba(88,232,140,.7);
}

/* 座位上的已看牌状态加大并抬到最明显的位置 */
.seat{
  position:absolute;
}
.seat .seen-badge{
  position:relative;
  z-index:4;
  font-size:8.5px !important;
  min-height:18px !important;
  padding:2px 6px !important;
  letter-spacing:.02em;
  background:#62e894 !important;
  color:#052d15 !important;
  border-color:#a7ffc4 !important;
  box-shadow:0 0 12px rgba(70,227,124,.32) !important;
}

/* 手机端：状态条固定在牌桌顶部视野内，不需要上下滑找 */
@media(max-width:720px){
  .seen-status-bar{
    top:4px;
    min-height:44px;
    margin-bottom:6px;
    padding:6px 7px;
    gap:6px;
    border-radius:10px;
  }
  .seen-status-label{
    min-width:61px;
    font-size:10px;
  }
  .seen-status-names{
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .seen-status-names::-webkit-scrollbar{display:none}
  .seen-player-chip{
    flex:0 0 auto;
    min-height:28px;
    max-width:118px;
    padding:4px 7px;
  }
  .seen-player-chip b{
    font-size:10px;
  }
  .seen-none{
    font-size:9px;
  }

  #seats[data-count="8"] .seat .seen-badge{
    font-size:7.2px !important;
    min-height:17px !important;
    padding:2px 5px !important;
  }
}


/* =========================================================
   v1905：已看牌状态真正固定，不需要任何上下滚动
   ========================================================= */
.seen-status-bar{
  position:fixed !important;
  top:calc(env(safe-area-inset-top, 0px) + 76px) !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  z-index:80 !important;
  width:min(760px,calc(100vw - 22px)) !important;
  min-height:42px !important;
  margin:0 !important;
  padding:6px 9px !important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .15s ease,visibility .15s ease;
  border:1px solid rgba(91,238,141,.26) !important;
  background:rgba(4,15,9,.94) !important;
  box-shadow:0 8px 30px rgba(0,0,0,.42),0 0 18px rgba(62,219,112,.08) !important;
}
.seen-status-bar.visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.seen-status-label{
  font-size:11px !important;
  min-width:auto !important;
  padding-right:4px;
}
.seen-status-names{
  flex:1;
  min-width:0;
  display:flex;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:5px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}
.seen-status-names::-webkit-scrollbar{display:none}
.seen-player-chip{
  flex:0 0 auto;
  max-width:none !important;
  min-height:28px !important;
  padding:4px 8px !important;
}
.seen-player-chip b{
  max-width:150px;
  overflow:visible !important;
  text-overflow:clip !important;
  font-size:10.5px !important;
}
.seen-player-chip em{
  font-style:normal;
  color:#72eca0;
  font-size:8px;
  font-weight:900;
}
.seen-none{font-size:10px !important}

/* =========================================================
   多档下注 / 加注
   ========================================================= */
.raise-quick-wrap{
  margin-top:8px;
  padding:8px;
  border-radius:11px;
  border:1px solid rgba(244,210,111,.12);
  background:rgba(244,210,111,.035);
}
.raise-quick-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.raise-quick-title span{
  color:#f2d578;
  font-size:10px;
  font-weight:1000;
}
.raise-quick-title small{
  color:#89978e;
  font-size:8px;
}
.raise-quick-buttons{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
}
.raise-quick-btn{
  min-height:42px;
  padding:5px 6px;
  border-radius:8px;
  border:1px solid rgba(244,207,101,.25);
  background:linear-gradient(180deg,rgba(168,112,26,.20),rgba(67,43,10,.18));
  color:#ffe89d;
}
.raise-quick-btn b{
  display:block;
  font-size:12px;
}
.raise-quick-btn small{
  display:block;
  margin-top:2px;
  font-size:7.5px;
  color:#a9b8ae;
}
.raise-quick-btn:disabled{
  opacity:.34;
}

.raise-dialog-card{
  width:min(560px,96vw);
}
.raise-current{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:10px;
}
.raise-current>div{
  padding:9px 10px;
  border-radius:9px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.06);
}
.raise-current span{
  display:block;
  color:#8fa196;
  font-size:9px;
}
.raise-current strong{
  display:block;
  margin-top:3px;
  color:#ffe28b;
  font-size:16px;
}
.raise-seen-tip{
  margin:8px 0;
  padding:8px 9px;
  border-radius:8px;
  background:rgba(55,139,87,.08);
  color:#a9cfb7;
  font-size:10px;
  line-height:1.45;
}
.raise-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  max-height:52vh;
  overflow-y:auto;
  padding:2px;
}
.raise-option{
  min-height:67px;
  padding:7px;
  border-radius:9px;
  border:1px solid rgba(247,209,99,.25);
  background:linear-gradient(180deg,rgba(157,104,23,.18),rgba(55,35,7,.18));
  color:#ffecac;
  text-align:left;
}
.raise-option b{
  display:block;
  font-size:11px;
}
.raise-option span{
  display:block;
  margin-top:4px;
  color:#d8ddd8;
  font-size:8.5px;
}
.raise-option small{
  display:block;
  margin-top:3px;
  color:#82e5a5;
  font-size:7.5px;
}
.raise-option.unaffordable{
  opacity:.38;
  filter:saturate(.45);
}
.raise-option.unaffordable small{color:#d99393}
.raise-dialog-note{
  margin-top:8px;
  color:#89978f;
  font-size:9px;
  line-height:1.45;
}

@media(max-width:720px){
  .seen-status-bar{
    top:calc(env(safe-area-inset-top, 0px) + 58px) !important;
    width:calc(100vw - 12px) !important;
    min-height:39px !important;
    padding:5px 6px !important;
    border-radius:9px !important;
  }
  .seen-status-label{
    font-size:9.5px !important;
  }
  .seen-player-chip{
    min-height:26px !important;
    padding:3px 6px !important;
  }
  .seen-player-chip b{
    max-width:105px;
    font-size:9.5px !important;
  }
  .seen-player-chip em{
    font-size:7.5px;
  }

  .raise-quick-buttons{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .raise-quick-btn{
    min-height:43px;
    padding:4px 3px;
  }
  .raise-quick-btn b{font-size:10.5px}
  .raise-quick-btn small{font-size:6.8px}

  .raise-dialog-card{
    width:96vw;
    padding:13px;
  }
  .raise-options{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
    max-height:58vh;
  }
  .raise-option{
    min-height:64px;
    padding:6px 5px;
  }
  .raise-option b{font-size:10px}
  .raise-option span{font-size:8px}
  .raise-option small{font-size:7px}
}

@media(max-width:390px){
  .raise-options{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =========================================================
   v1930：轮到本人 + 倒计时强提醒
   ========================================================= */
.my-turn-alert{
  position:fixed;
  top:calc(env(safe-area-inset-top,0px) + 124px);
  left:50%;
  z-index:85;
  width:min(430px,calc(100vw - 24px));
  transform:translate(-50%,-10px) scale(.98);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  padding:9px 11px 8px;
  border-radius:13px;
  border:2px solid rgba(255,219,96,.72);
  background:linear-gradient(180deg,rgba(67,50,12,.97),rgba(24,18,5,.97));
  box-shadow:0 13px 42px rgba(0,0,0,.48),0 0 25px rgba(255,206,58,.18);
  transition:opacity .15s ease,transform .15s ease,visibility .15s ease;
}
.my-turn-alert.visible{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0) scale(1);
}
.my-turn-main{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}
.my-turn-icon{
  font-size:25px;
  filter:drop-shadow(0 0 7px rgba(255,220,83,.65));
}
.my-turn-main>div{
  min-width:0;
}
.my-turn-main b{
  display:block;
  color:#fff0a6;
  font-size:15px;
  line-height:1.15;
}
.my-turn-main span{
  display:block;
  margin-top:2px;
  color:#d9c88f;
  font-size:10px;
  line-height:1.25;
}
#myTurnSeconds{
  min-width:42px;
  color:#fff;
  font-size:29px;
  line-height:1;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
.my-turn-progress{
  height:4px;
  margin-top:7px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.08);
}
.my-turn-progress i{
  display:block;
  width:100%;
  height:100%;
  border-radius:inherit;
  background:#f2cf57;
  transition:width .18s linear,background .15s ease;
}
.my-turn-alert.warning{
  border-color:#ffb14a;
  background:linear-gradient(180deg,rgba(91,50,8,.98),rgba(34,20,5,.98));
}
.my-turn-alert.warning .my-turn-progress i{background:#ff9d39}
.my-turn-alert.urgent{
  border-color:#ff6268;
  background:linear-gradient(180deg,rgba(92,19,24,.98),rgba(38,7,10,.98));
  box-shadow:0 13px 45px rgba(0,0,0,.52),0 0 30px rgba(255,62,72,.28);
  animation:turnUrgentPulse .72s ease-in-out infinite alternate;
}
.my-turn-alert.urgent .my-turn-main b,
.my-turn-alert.urgent #myTurnSeconds{
  color:#ffd7d8;
}
.my-turn-alert.urgent .my-turn-progress i{background:#ff5960}

.poker-table.my-turn-active{
  box-shadow:
    inset 0 0 55px rgba(20,92,48,.28),
    0 0 0 3px rgba(255,216,91,.22),
    0 0 30px rgba(255,216,91,.10) !important;
}
.poker-table.my-turn-urgent{
  box-shadow:
    inset 0 0 55px rgba(116,15,20,.24),
    0 0 0 3px rgba(255,75,83,.26),
    0 0 32px rgba(255,75,83,.16) !important;
}
.phase-timer.my-turn-timer{
  color:#ffe27c !important;
  text-shadow:0 0 13px rgba(255,213,81,.32);
}
.phase-timer.my-turn-timer.urgent{
  color:#ff777c !important;
  text-shadow:0 0 15px rgba(255,70,79,.46);
  animation:timerUrgentPulse .55s ease-in-out infinite alternate;
}

/* 轮到本人时，操作按钮一起发亮，视线不需要找 */
.poker-table.my-turn-active ~ .side-panel .action-panel:not(.hidden) .action-btn:not(:disabled),
.poker-table.my-turn-active ~ .side-panel .raise-quick-wrap:not(.hidden) .raise-quick-btn:not(:disabled){
  box-shadow:0 0 0 1px rgba(255,221,103,.18),0 0 13px rgba(255,206,69,.08);
}

@keyframes turnUrgentPulse{
  from{transform:translate(-50%,0) scale(1)}
  to{transform:translate(-50%,0) scale(1.018)}
}
@keyframes timerUrgentPulse{
  from{transform:scale(1)}
  to{transform:scale(1.09)}
}

@media(max-width:720px){
  .my-turn-alert{
    top:calc(env(safe-area-inset-top,0px) + 103px);
    width:calc(100vw - 12px);
    padding:8px 9px 7px;
    border-radius:10px;
  }
  .my-turn-icon{font-size:21px}
  .my-turn-main b{font-size:14px}
  .my-turn-main span{font-size:9.5px}
  #myTurnSeconds{
    min-width:38px;
    font-size:27px;
  }
  .my-turn-progress{height:4px}
}

@media(max-width:390px){
  .my-turn-alert{
    top:calc(env(safe-area-inset-top,0px) + 100px);
  }
  .my-turn-main b{font-size:13px}
  .my-turn-main span{font-size:9px}
  #myTurnSeconds{font-size:25px}
}


/* v1948 最后两人短码保护 / 全押比牌 */
#compareBtn.allin{
  border-color:#ff9658 !important;
  background:linear-gradient(180deg,#d85c26,#812817) !important;
  color:#fff2df !important;
  box-shadow:0 0 0 1px rgba(255,145,77,.20),0 0 18px rgba(255,87,45,.16) !important;
}
.compare-price-notice{
  margin:8px 0 10px;
  padding:9px 10px;
  border-radius:9px;
  border:1px solid rgba(236,211,126,.14);
  background:rgba(236,211,126,.04);
}
.compare-price-notice b{
  display:block;
  color:#ffe18d;
  font-size:12px;
}
.compare-price-notice span{
  display:block;
  margin-top:4px;
  color:#9fafA5;
  font-size:9.5px;
  line-height:1.5;
}
.compare-price-notice.allin{
  border-color:rgba(255,115,70,.38);
  background:rgba(165,52,28,.11);
}
.compare-price-notice.allin b{
  color:#ffb080;
  font-size:13px;
}
.compare-price-notice.allin span{
  color:#e6b9a5;
}
.compare-target.allin{
  border-color:rgba(255,122,71,.34) !important;
  background:linear-gradient(180deg,rgba(161,53,24,.17),rgba(76,22,12,.12)) !important;
}
.compare-target small{
  display:block;
  margin-top:4px;
  font-size:8px;
  color:#80d99f;
}
.compare-target.allin small{
  color:#ffb18c;
}
@media(max-width:720px){
  .compare-price-notice b{font-size:13px}
  .compare-price-notice span{font-size:10px}
  .compare-target small{font-size:9px}
}


/* v2315 炸金花改名 */
.zjh-rename-card{width:min(420px,96vw)}
.zjh-rename-label{display:block;margin-top:12px}
.zjh-rename-label span{
  display:block;margin-bottom:6px;font-size:10px;color:#cfc59e
}
.zjh-rename-label input{
  width:100%;height:46px;padding:0 11px;border-radius:9px;
  border:1px solid rgba(255,221,117,.20);
  background:#07100b;color:#fff0b1;font-size:13px;outline:none
}
.zjh-rename-label input:focus{
  border-color:#ebcb69;box-shadow:0 0 0 2px rgba(235,203,105,.12)
}
.zjh-rename-confirm{
  width:100%;min-height:46px;margin-top:9px;border-radius:9px;
  border:1px solid #e6c75f;background:linear-gradient(180deg,#efd674,#ae7d23);
  color:#241700;font-size:13px;font-weight:1000
}
.zjh-rename-note{
  display:block;margin-top:8px;text-align:center;color:#798b80;font-size:9px
}
