:root{
  --bg:#0b1f3a; --bg2:#123a6b; --ink:#eaf2ff; --muted:#9db4d0;
  --brand:#1a6dd6; --brand2:#2f8ef0; --gold:#f5c451; --red:#e5484d;
  --card:#ffffff; --line:rgba(255,255,255,.12);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:#0b2340; color:#20304a;
}
#app{max-width:430px;margin:0 auto;min-height:100vh;position:relative;background:#f5f7fb;overflow-x:hidden}
.screen{min-height:100vh;display:flex;flex-direction:column}

/* ================= 閻ц缍?================= */
.login{
  background:
    radial-gradient(120% 60% at 50% 0%, #2b6fb8 0%, #1b4d8a 38%, #123a6b 62%, #0b2340 100%);
  color:#fff; padding:56px 22px 28px; min-height:100vh;
}
.login .brand{
  text-align:center; margin:18px 0 6px; font-size:74px; line-height:1;
  font-weight:900; letter-spacing:.06em;
  background:linear-gradient(180deg,#fdfdff 0%,#cfe6ff 45%,#7fb6ee 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 12px 34px rgba(0,0,0,.45);
  font-family:"STKaiti","KaiTi","Songti SC",serif;
}
.login .ver{
  position:absolute;right:calc(50% - 118px);top:96px;
  background:linear-gradient(180deg,#ff5a5f,#c81f28); color:#fff;
  font-size:11px;padding:2px 6px;border-radius:6px;font-weight:700;
}
.login .plate{
  margin:20px auto 0; background:#e9eef6; border-radius:16px 16px 12px 12px;
  padding:0 18px 20px; position:relative; color:#22314a;
  box-shadow:0 18px 40px rgba(0,0,0,.28);
}
.login .plate .tab{
  margin:-14px auto 16px; width:150px; height:34px; line-height:34px; text-align:center;
  background:linear-gradient(180deg,#ffe6c7,#f7d3a2); color:#8a4b16;
  border-radius:8px 8px 14px 14px; font-weight:700; letter-spacing:.2em;
}
.field{
  display:flex;align-items:center;gap:10px;height:52px;border-radius:26px;
  background:#fff;border:1px solid #dde5f0;padding:0 16px;margin-bottom:12px;
}
.field .ico{width:20px;height:20px;border-radius:50%;border:2px solid #9fb3cc;position:relative;flex:0 0 auto}
.field .ico.key::after{content:"";position:absolute;left:5px;top:6px;width:8px;height:8px;border-right:2px solid #9fb3cc;border-bottom:2px solid #9fb3cc;transform:rotate(45deg)}
.field input{flex:1;border:0;outline:0;font-size:15px;background:transparent;color:#22314a}
.remember{display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:12px;color:#5b6b82;margin:2px 4px 14px}
.btn-login{
  width:100%;height:46px;border:0;border-radius:24px;color:#fff;font-size:17px;font-weight:700;letter-spacing:.3em;
  background:linear-gradient(180deg,#5db3f5,#1e6fd0 60%,#124f9e);
  box-shadow:0 8px 18px rgba(24,105,196,.4),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-login:active{transform:translateY(1px)}
.login .foot{display:flex;justify-content:space-around;margin-top:26px}
.foot .circle{
  width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12px;color:#fff;font-weight:700;box-shadow:0 8px 18px rgba(0,0,0,.3)
}
.circle.wx{background:linear-gradient(180deg,#63d66b,#25a52d)}
.circle.reg{background:linear-gradient(180deg,#ffd36b,#e59b12)}
.err{color:#ffd7d7;text-align:center;font-size:13px;min-height:18px;margin:8px 0 0}

/* ================= 婢堆冨泛 ================= */
.hall{background:#f5f7fb;padding-bottom:88px}
.hall .top{
  background:linear-gradient(160deg,#2f7fd0,#1b4f92 55%,#123a6b);
  padding:14px 14px 46px; color:#fff; position:relative; border-radius:0 0 22px 22px;
}
.hall .top .bar{display:flex;align-items:center;justify-content:space-between;font-size:13px;opacity:.92}
.hall .logo14{font-weight:800;letter-spacing:.08em;font-size:15px}
.hall .hero{margin-top:10px}
.hall .hero h1{margin:0;font-size:26px;font-weight:900;letter-spacing:.04em;text-shadow:0 4px 12px rgba(0,0,0,.3)}
.hall .hero p{margin:4px 0 0;font-size:12px;opacity:.85}
.safety{font-size:11px;background:rgba(255,255,255,.16);padding:4px 8px;border-radius:20px}

.usercard{
  margin:-34px 12px 0;background:#fff;border-radius:16px;padding:12px 14px;
  box-shadow:0 10px 26px rgba(20,50,90,.14);position:relative;z-index:2;
}
.usercard .row1{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#7cc0ff,#2b6fb8);flex:0 0 auto}
.usercard .who{flex:1;min-width:0}
.usercard .who b{display:block;font-size:14px}
.usercard .who span{font-size:11px;color:#7d8ca3}
.usercard .money{text-align:right}
.usercard .money small{display:block;font-size:11px;color:#7d8ca3}
.usercard .money b{font-size:18px;color:#1b4f92}
.usercard .acts{display:flex;gap:8px;margin-top:10px}
.usercard .acts button{
  flex:1;height:34px;border:0;border-radius:10px;font-size:13px;font-weight:700;color:#fff;
  background:linear-gradient(180deg,#4aa3ea,#1d6fc4)
}
.usercard .acts button.ghost{background:#eef4fb;color:#1b4f92}

.gold{display:flex;margin:14px 8px 6px;background:#fff;border-radius:14px;padding:12px 4px;box-shadow:0 6px 16px rgba(20,50,90,.08)}
.gold .it{flex:1;text-align:center;font-size:11px;color:#4a5c73}
.gold .it .dot{
  width:38px;height:38px;margin:0 auto 5px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:17px;background:#eef4fb;
}
.gold .it.on .dot{background:linear-gradient(160deg,#3f9cf0,#1a63bd);color:#fff;box-shadow:0 6px 14px rgba(26,99,189,.35)}
.gold .it.on{color:#1a63bd;font-weight:700}
.badge{position:absolute;font-size:9px;background:#e5484d;color:#fff;border-radius:8px;padding:0 4px;transform:translate(12px,-12px)}

.sect{margin:12px 12px 0}
.sect h3{margin:0 0 8px;font-size:15px;color:#20304a;display:flex;align-items:center;gap:6px}
.sect h3:before{content:"";width:4px;height:14px;border-radius:2px;background:#1a6dd6}
.subs{display:flex;gap:8px;overflow:auto;padding-bottom:6px}
.subs .s{
  flex:0 0 auto;padding:6px 14px;border-radius:16px;background:#fff;font-size:12px;color:#5b6b82;border:1px solid #e2e9f3
}
.subs .s.on{background:#1a6dd6;color:#fff;border-color:#1a6dd6}

.gcard{
  background:linear-gradient(135deg,#2f7fd0,#1a4f92);
  border-radius:14px;padding:12px 14px;color:#fff;margin-bottom:10px;position:relative;overflow:hidden;
  box-shadow:0 8px 20px rgba(20,60,120,.2)
}
.gcard.c1{background:linear-gradient(135deg,#3b8ee0,#1a4f92)}
.gcard.c2{background:linear-gradient(135deg,#4a6bd8,#22307a)}
.gcard.c3{background:linear-gradient(135deg,#b0549a,#5c2160)}
.gcard.c4{background:linear-gradient(135deg,#8f5ecb,#3d2160)}
.gcard.c5{background:linear-gradient(135deg,#5b8fd6,#2c3f78)}
.gcard .nm{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800}
.gcard .cov{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:14px}
.gcard .no{margin-top:2px;font-size:11px;opacity:.85}
.gcard .balls{position:absolute;right:76px;top:12px;display:flex;gap:4px}
.ball{width:22px;height:22px;border-radius:6px;background:#fff;color:#c81f28;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.gcard .go{
  position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.22);border:0;color:#fff;
  padding:5px 14px;border-radius:14px;font-size:12px
}
.gcard .cd{position:static;display:block;margin-top:6px;font-size:11px;opacity:.9}

.tabbar{
  position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:430px;
  height:58px;background:#fff;border-top:1px solid #e8eef7;display:flex;z-index:20
}
.tabbar .t{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:#8fa0b8}
.tabbar .t.on{color:#1a6dd6;font-weight:700}
.tabbar .t i{font-style:normal;font-size:17px}

/* ================= 濞撳憡鍨欐い?================= */
.game{padding:14px 12px 70px;background:#f5f7fb}
.game .gh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.game .gh .back{border:0;background:#fff;width:34px;height:34px;border-radius:10px;font-size:16px}
.game .gh h2{margin:0;font-size:17px}
.game .gh span{font-size:11px;color:#7d8ca3}
.panel{background:#fff;border-radius:14px;padding:14px;box-shadow:0 6px 18px rgba(20,50,90,.08);margin-bottom:12px}
.panel .iss{display:flex;justify-content:space-between;font-size:12px;color:#5b6b82;margin-bottom:8px}
.panel .nums{display:flex;gap:8px;justify-content:center;margin:8px 0}
.panel .nums .b{width:44px;height:44px;border-radius:12px;background:linear-gradient(180deg,#fff,#eef3fa);border:1px solid #dde6f2;color:#c81f28;font-size:22px;font-weight:900;display:flex;align-items:center;justify-content:center}
.playgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.playgrid .p{height:52px;border:1px solid #e2e9f3;border-radius:12px;background:#fbfdff;font-size:13px;color:#33465f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.playgrid .p b{font-size:14px}
.playgrid .p em{font-style:normal;font-size:10px;color:#8fa0b8}
.playgrid .p.on{background:linear-gradient(180deg,#4aa3ea,#1d6fc4);color:#fff;border-color:#1d6fc4}
.playgrid .p.on em{color:rgba(255,255,255,.85)}
.chips{display:flex;gap:8px;margin:12px 0 6px;flex-wrap:wrap}
.chips .c{padding:6px 14px;border-radius:16px;background:#eef4fb;color:#1b4f92;font-size:13px;font-weight:700}
.chips .c.on{background:#1a6dd6;color:#fff}
.amt{display:flex;align-items:center;gap:8px;margin-top:8px}
.amt input{flex:1;height:42px;border:1px solid #dde6f2;border-radius:10px;padding:0 12px;font-size:15px;outline:0}
.btn-main{width:100%;height:46px;border:0;border-radius:12px;color:#fff;font-size:16px;font-weight:800;background:linear-gradient(180deg,#4aa3ea,#1b6ac0);margin-top:12px}
.btn-main:disabled{opacity:.5}
.hlist .h{display:flex;justify-content:space-between;font-size:12px;padding:7px 0;border-bottom:1px dashed #eef2f8;color:#5b6b82}
.hlist .h b{color:#c81f28;letter-spacing:2px}
.mine .list .li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f4fa;font-size:13px}
.tip{font-size:11px;color:#8fa0b8;margin-top:6px}
.toast{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(16,28,45,.92);color:#fff;
  padding:10px 18px;border-radius:10px;font-size:13px;z-index:99;opacity:0;transition:opacity .2s;pointer-events:none
}
.toast.show{opacity:1}

/* ================= 聊天室房间 ================= */
.room{height:100vh;display:flex;flex-direction:column;background:#eef2f8;overflow:hidden}

.rhead{
  background:linear-gradient(160deg,#2f7fd0,#1b4f92 60%,#123a6b);
  color:#fff;padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;flex:0 0 auto;position:relative
}
.rhead .rback{
  position:absolute;left:8px;top:10px;width:30px;height:30px;border:0;border-radius:9px;
  background:rgba(255,255,255,.18);color:#fff;font-size:18px;line-height:1
}
.rhead .rname{font-size:16px;font-weight:800;padding-left:38px;letter-spacing:.02em}
.rhead .rname span{display:block;font-size:11px;opacity:.8;font-weight:400;margin-top:2px}
.rhead .rstat{display:flex;gap:6px}
.rhead .rstat>div{
  flex:1;background:rgba(255,255,255,.13);border-radius:9px;padding:5px 8px;text-align:center
}
.rhead .rstat small{display:block;font-size:10px;opacity:.8}
.rhead .rstat b{font-size:14px;font-weight:800}
.rhead .rstat i{font-style:normal;font-size:12px;opacity:.95}
.rhead .rstat i.up{color:#8ff0b5}
.rhead .rstat i.down{color:#ffb3b3}

.rissue{
  flex:0 0 auto;background:#fff;padding:8px 14px;display:flex;flex-direction:column;gap:6px;
  border-bottom:1px solid #e6ecf5
}
.rissue .ln{display:flex;justify-content:space-between;font-size:12px;color:#5b6b82}
.rissue .balls{display:flex;gap:6px;justify-content:center}
.rissue .balls span{
  width:34px;height:34px;border-radius:9px;background:linear-gradient(180deg,#fff,#eef3fa);
  border:1px solid #dde6f2;color:#c81f28;font-size:18px;font-weight:900;
  display:flex;align-items:center;justify-content:center
}

/* 六合彩：6 个正码 + 1 个特码 */
.rissue .balls.mark6{gap:4px;flex-wrap:wrap}
.rissue .balls.mark6 .sm{width:26px;height:26px;font-size:13px}
.rissue .balls.mark6 .sp{
  width:34px;height:34px;font-size:17px;border-color:#f5c451;
  box-shadow:0 0 8px rgba(245,196,81,.5)
}
/* 飞禽走兽：单格转盘 */
.rissue .balls .wheel-cell{
  width:auto;min-width:118px;height:38px;padding:0 18px;border-radius:10px;font-size:15px;
  font-weight:800;color:#1b4f92;background:linear-gradient(160deg,#fff,#eef4fb)
}
.m-open .bl.wheel span{width:auto;min-width:72px;padding:4px 12px;font-weight:800}

.rissue .balls span.hit{
  background:linear-gradient(180deg,#fff,#ffe9a8);border-color:#f5c451;
  box-shadow:0 0 12px rgba(245,196,81,.65);animation:ballpop .35s ease
}
@keyframes ballpop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}

.rtools{
  flex:0 0 auto;display:flex;gap:6px;align-items:center;padding:6px 12px;background:#fff;
  border-bottom:1px solid #e6ecf5
}
.rtools button{
  border:1px solid #dde6f2;background:#f8fbff;color:#1b4f92;border-radius:7px;
  font-size:12px;padding:4px 10px
}
.rtools .hint{margin-left:auto;font-size:10px;color:#9db4d0}

.msgs{
  flex:1 1 auto;overflow-y:auto;padding:10px 12px 6px;display:flex;flex-direction:column;gap:8px;
  -webkit-overflow-scrolling:touch
}
.m-row{display:flex;gap:7px;align-items:flex-start;max-width:88%}
.m-row.mine{align-self:flex-end}
.m-av{
  width:28px;height:28px;border-radius:50%;flex:0 0 auto;font-size:12px;color:#fff;
  background:linear-gradient(135deg,#7cc0ff,#2b6fb8);display:flex;align-items:center;justify-content:center
}
.m-row.mine .m-av{background:linear-gradient(135deg,#ffd36b,#e59b12)}
.m-body{min-width:0}
.m-nick{font-size:10px;color:#8fa0b8;margin-bottom:2px;display:flex;gap:4px;align-items:center}
.m-bub{
  background:#fff;border-radius:2px 10px 10px 10px;padding:7px 10px;font-size:13px;
  color:#22314a;line-height:1.45;word-break:break-word;box-shadow:0 1px 4px rgba(20,50,90,.08)
}
.m-row.mine .m-bub{background:linear-gradient(160deg,#4aa3ea,#1d6fc4);color:#fff;border-radius:10px 2px 10px 10px}
.m-row.is-bet .m-bub{background:linear-gradient(160deg,#e8fff2,#d3f8e3);color:#0e7a45;font-weight:800}
.m-row.is-duel .m-bub{background:linear-gradient(160deg,#fff3e0,#ffe6c2);color:#a35a00;font-weight:800}
.m-row.is-fx .m-bub{
  background:linear-gradient(120deg,#ffe6a7,#f8c471,#ffb3d9);color:#6b3b00;font-weight:800;
  box-shadow:0 0 14px rgba(245,196,81,.6)
}
.tag-bet,.tag-duel,.tag-fx{font-size:9px;padding:0 4px;border-radius:6px;color:#fff}
.tag-bet{background:#1a9e55}
.tag-duel{background:#e58f2a}
.tag-fx{background:#c94bd2}

.m-sys{
  align-self:center;font-size:11px;color:#7b8ba1;background:rgba(255,255,255,.72);
  padding:3px 10px;border-radius:10px;max-width:92%;text-align:center;line-height:1.5
}
.m-open{
  align-self:center;background:linear-gradient(160deg,#fff8e6,#ffeec7);border:1px solid #ffe1a8;
  border-radius:12px;padding:8px 12px;max-width:94%;text-align:center;box-shadow:0 2px 10px rgba(229,155,18,.18)
}
.m-open .t{font-size:11px;color:#8a5a00}
.m-open .bl{display:flex;gap:5px;justify-content:center;margin:5px 0}
.m-open .bl span{
  width:26px;height:26px;border-radius:7px;background:#fff;border:1px solid #f0d9a8;
  color:#c81f28;font-size:15px;font-weight:900;display:flex;align-items:center;justify-content:center
}
.m-open .t2{font-size:11px;color:#a3741f;font-weight:700}

.quick{
  flex:0 0 auto;display:flex;gap:6px;overflow-x:auto;padding:6px 10px;background:#fff;
  border-top:1px solid #e6ecf5
}
.quick button{
  flex:0 0 auto;border:0;border-radius:14px;padding:5px 12px;font-size:12px;font-weight:700;
  background:#eef4fb;color:#1b4f92
}
.quick button:active{background:#1a6dd6;color:#fff}

.inputbar{
  flex:0 0 auto;display:flex;gap:8px;padding:8px 10px 10px;background:#fff;
  border-top:1px solid #eef2f8;padding-bottom:max(10px,env(safe-area-inset-bottom))
}
.inputbar input{
  flex:1;height:40px;border:1px solid #dde6f2;border-radius:20px;padding:0 14px;font-size:13px;outline:0;background:#f8fbff
}
.inputbar button{
  width:66px;height:40px;border:0;border-radius:20px;color:#fff;font-size:14px;font-weight:800;
  background:linear-gradient(160deg,#4aa3ea,#1b6ac0)
}

.pop{
  position:fixed;inset:0;background:rgba(10,20,35,.5);display:flex;align-items:center;justify-content:center;z-index:80;padding:20px
}
.pop-box{background:#fff;border-radius:14px;width:100%;max-width:360px;overflow:hidden}
.pop-hd{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #eef2f8}
.pop-hd button{border:0;background:#eef4fb;color:#1b4f92;border-radius:8px;padding:4px 10px;font-size:12px}
.pop-bd{padding:10px 14px 14px;max-height:60vh;overflow:auto}
.pop-bd .li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed #eef2f8;font-size:13px}
.pop-bd .empty{text-align:center;color:#9db4d0;padding:20px 0;font-size:12px}

.acts2{display:flex;gap:8px}
.acts2 button{flex:1;height:36px;border:1px solid #dde6f2;background:#f8fbff;color:#1b4f92;border-radius:9px;font-size:13px}
.bigmoney{font-size:28px;font-weight:900;color:#1b4f92;margin-top:4px}
