:root{
  --bg:#0a0708; --bg2:#120c0e; --card:#181012; --card2:#1f1417;
  --line:#2c1d21; --gold:#f3c669; --gold2:#c9963c; --gold3:#8a6420;
  --red:#e0463f; --green:#33c07f; --txt:#efe6d8; --dim:#a08d84;
  --shadow:0 12px 40px rgba(0,0,0,.55);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body{background:
  radial-gradient(1100px 520px at 50% -12%,rgba(243,198,105,.16),transparent 62%),
  radial-gradient(700px 380px at 100% 0%,rgba(224,70,63,.10),transparent 60%),
  var(--bg);min-height:100vh}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 14px}
/* top bar */
.topbar{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(10,7,8,.96),rgba(10,7,8,.80));
  border-bottom:1px solid rgba(243,198,105,.16)}
.topbar-in{display:flex;align-items:center;gap:12px;height:60px}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.5px;white-space:nowrap}
.logo .mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:16px;
  background:linear-gradient(145deg,#f6d27a,#c9963c 60%,#8a6420);color:#231404;box-shadow:0 4px 14px rgba(243,198,105,.35)}
.logo b{font-size:16px;background:linear-gradient(180deg,#ffe8b6,#e2b45c);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo span{font-size:10px;color:var(--dim);letter-spacing:2px;display:block;margin-top:-2px}
.spacer{flex:1}
.bal{display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,#1e1316,#150d0f);
  border:1px solid rgba(243,198,105,.28);border-radius:12px;padding:6px 10px;font-size:13px}
.bal b{color:var(--gold);font-variant-numeric:tabular-nums}
.bal small{color:var(--dim);font-size:11px}
.chip-btn{border:1px solid rgba(243,198,105,.28);background:#150d0f;color:var(--txt);
  border-radius:10px;padding:6px 9px;font-size:12px;cursor:pointer}
.chip-btn:hover{border-color:var(--gold);color:var(--gold)}
.chip-btn.gold{background:linear-gradient(145deg,#f6d27a,#c9963c);color:#2a1806;border:none;font-weight:700}
/* nav */
.nav{display:flex;gap:6px;overflow:auto;padding:10px 0 2px;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{white-space:nowrap;font-size:13px;padding:7px 12px;border-radius:10px;color:var(--dim);
  border:1px solid transparent}
.nav a.on{color:var(--gold);border-color:rgba(243,198,105,.35);background:rgba(243,198,105,.08)}
.nav a:hover{color:var(--txt)}
/* cards */
.hero{position:relative;overflow:hidden;border-radius:18px;margin:14px 0;
  background:linear-gradient(120deg,#1d1113 0%,#261417 45%,#3a1d17 100%);
  border:1px solid rgba(243,198,105,.22);box-shadow:var(--shadow)}
.hero-in{padding:22px 20px}
.hero h1{margin:0 0 6px;font-size:22px;letter-spacing:.5px;
  background:linear-gradient(180deg,#ffeec6,#e0ad55);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{margin:0;color:#c9b3a4;font-size:13px;line-height:1.6}
.hero .glow{position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(243,198,105,.30),transparent 65%)}
.ticker{margin-top:14px;display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.32);
  border:1px solid rgba(243,198,105,.15);border-radius:10px;padding:8px 12px;font-size:12px;color:#d9c6b6}
.ticker i{color:var(--gold);font-style:normal}
.grid{display:grid;gap:12px}
.games{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.gcard{position:relative;border-radius:16px;padding:16px 14px;cursor:pointer;overflow:hidden;
  background:linear-gradient(160deg,#1b1114,#140d0f);border:1px solid var(--line);
  transition:transform .16s ease,border-color .16s ease}
.gcard:hover{transform:translateY(-3px);border-color:rgba(243,198,105,.45)}
.gcard .ic{font-size:26px}
.gcard h3{margin:8px 0 3px;font-size:15px}
.gcard small{color:var(--dim);font-size:11.5px;line-height:1.5;display:block}
.gcard::after{content:"";position:absolute;right:-30px;bottom:-40px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,rgba(243,198,105,.14),transparent 70%)}
.badge{display:inline-block;font-size:10px;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}
.badge.hot{background:rgba(224,70,63,.18);color:#ff8b84;border:1px solid rgba(224,70,63,.35)}
.badge.live{background:rgba(51,192,127,.15);color:#66e0a8;border:1px solid rgba(51,192,127,.3)}
.panel{background:linear-gradient(180deg,#160f11,#110a0c);border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0}
.panel h2{margin:0 0 10px;font-size:15px;display:flex;align-items:center;gap:8px}
.panel h2::before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,#f6d27a,#c9963c)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--dim);font-size:12px}
.sep{height:1px;background:var(--line);margin:12px 0}
/* game table */
.stage{display:grid;gap:12px;grid-template-columns:1.15fr .85fr}
@media(max-width:820px){.stage{grid-template-columns:1fr}}
.result-box{border-radius:16px;padding:18px;text-align:center;
  background:radial-gradient(120% 100% at 50% 0%,#241417,#120b0d 70%);border:1px solid rgba(243,198,105,.2)}
.dice{display:flex;gap:12px;justify-content:center;margin:12px 0 6px}
.die{width:54px;height:54px;border-radius:13px;display:grid;place-items:center;
  font-size:26px;font-weight:800;color:#2a1806;
  background:linear-gradient(150deg,#ffe6ae,#d3a34c 60%,#a5761f);
  box-shadow:0 8px 22px rgba(243,198,105,.28),inset 0 -3px 0 rgba(0,0,0,.18)}
.die.rolling{animation:roll .5s ease}
@keyframes roll{0%{transform:translateY(-14px) rotate(-14deg);opacity:.4}100%{transform:none;opacity:1}}
.issue{font-size:12px;color:var(--dim);letter-spacing:.6px}
.count{font-size:30px;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:1px}
.sum{font-size:13px;color:#d9c6b6}
.betgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:520px){.betgrid{grid-template-columns:repeat(3,1fr)}}
.bbtn{border-radius:12px;padding:11px 6px;text-align:center;cursor:pointer;font-size:13px;
  background:linear-gradient(180deg,#1d1316,#160e10);border:1px solid var(--line);color:var(--txt);
  transition:.14s}
.bbtn:hover{border-color:rgba(243,198,105,.5)}
.bbtn.on{border-color:var(--gold);background:linear-gradient(180deg,rgba(243,198,105,.20),rgba(243,198,105,.06));color:var(--gold)}
.bbtn b{display:block;font-size:14px}
.bbtn i{font-style:normal;font-size:10.5px;color:var(--dim)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.chip{padding:8px 13px;border-radius:999px;font-size:12.5px;cursor:pointer;
  background:#1a1113;border:1px solid var(--line);color:#e3d3c5}
.chip.on{background:linear-gradient(145deg,#f6d27a,#c9963c);color:#2a1806;border:none;font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;
  padding:12px 18px;font-weight:700;font-size:14px;cursor:pointer;border:none;
  background:linear-gradient(145deg,#f6d27a,#c9963c 65%,#a5761f);color:#2a1806;
  box-shadow:0 8px 20px rgba(201,150,60,.28)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;border:1px solid rgba(243,198,105,.35);color:var(--gold);box-shadow:none}
.btn.dark{background:#1d1316;border:1px solid var(--line);color:var(--txt);box-shadow:none}
.btn.sm{padding:8px 12px;font-size:12.5px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
/* history */
.hist{display:flex;gap:8px;overflow:auto;padding-bottom:4px}
.hitem{min-width:76px;padding:8px;border-radius:10px;background:#160e10;border:1px solid var(--line);
  text-align:center;font-size:11px;color:var(--dim)}
.hitem b{display:block;font-size:13px;color:var(--gold);margin-top:2px}
/* cards visual */
.hand{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:6px 0}
.pcard{width:46px;height:64px;border-radius:8px;background:linear-gradient(160deg,#fff8ee,#e8dccb);
  color:#20140c;display:grid;place-items:center;font-weight:800;font-size:15px;border:1px solid #d9c9b2}
.pcard.red{color:#c62f2f}
/* slot */
.reels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:340px;margin:0 auto}
.reel-cell{aspect-ratio:1;border-radius:12px;display:grid;place-items:center;font-size:28px;
  background:linear-gradient(160deg,#211518,#150e10);border:1px solid var(--line)}
.reel-cell.win{border-color:var(--gold);box-shadow:0 0 18px rgba(243,198,105,.5)}
/* fish */
#fishc{width:100%;height:320px;border-radius:16px;background:radial-gradient(120% 100% at 50% 0%,#0c2c3a,#071820 70%);
  border:1px solid #123542;display:block;touch-action:manipulation}
/* table */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line)}
th{color:var(--dim);font-weight:500;font-size:11.5px}
.tright{text-align:right}
input,select,textarea{background:#140d0f;border:1px solid var(--line);color:var(--txt);
  border-radius:10px;padding:10px 12px;font-size:13px;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:rgba(243,198,105,.5)}
label{font-size:12px;color:var(--dim);display:block;margin:8px 0 4px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:99;
  background:rgba(20,12,14,.96);border:1px solid rgba(243,198,105,.4);color:var(--txt);
  padding:11px 18px;border-radius:12px;font-size:13px;box-shadow:var(--shadow);max-width:88vw}
.toast.ok{border-color:rgba(51,192,127,.5)}
.toast.err{border-color:rgba(224,70,63,.6)}
.modal{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:16px}
.modal .box{width:100%;max-width:390px;background:linear-gradient(180deg,#1a1114,#120c0e);
  border:1px solid rgba(243,198,105,.28);border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.modal h3{margin:0 0 4px;font-size:17px}
.tabs{display:flex;gap:6px;margin-bottom:12px}
.tabs button{flex:1;padding:9px;border-radius:10px;border:1px solid var(--line);background:#150e10;
  color:var(--dim);cursor:pointer;font-size:13px}
.tabs button.on{color:var(--gold);border-color:rgba(243,198,105,.45);background:rgba(243,198,105,.08)}
.kv{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px dashed var(--line)}
.kv b{color:var(--gold)}
.footer{text-align:center;color:#5f4d46;font-size:11px;padding:26px 0 34px;line-height:1.8}
.pill{font-size:11px;padding:3px 9px;border-radius:999px;background:#1d1316;border:1px solid var(--line);color:var(--dim)}
.pill.win{color:#66e0a8;border-color:rgba(51,192,127,.35)}
.pill.lose{color:#ff8b84;border-color:rgba(224,70,63,.35)}
.pill.pend{color:var(--gold);border-color:rgba(243,198,105,.35)}
.adminbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.adminbar button{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#150e10;color:var(--dim);cursor:pointer;font-size:12.5px}
.adminbar button.on{color:var(--gold);border-color:rgba(243,198,105,.45)}
.small{font-size:11.5px;color:var(--dim)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:820px){.split{grid-template-columns:1fr}}
/* overflow guards */
.bbtn{overflow:hidden}
.bbtn b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.bbtn i{white-space:nowrap}
.grid>*{min-width:0}
.panel{min-width:0}
.chips{overflow:hidden}
table{display:block;overflow-x:auto;white-space:nowrap}
@media(max-width:520px){
  .betgrid{grid-template-columns:repeat(3,1fr)}
  .topbar-in{gap:8px}
  .logo b{font-size:14px}
  .bal{font-size:12px;padding:5px 8px}
  .die{width:46px;height:46px;font-size:22px}
  .hero-in{padding:16px 14px}
  .hero h1{font-size:18px}
}

/* ==================== 电子游戏大厅 ==================== */
.slot-hall{padding-bottom:28px}
.sh-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
.sh-title{font-size:20px;font-weight:800;letter-spacing:.5px;
  background:linear-gradient(180deg,#ffe8b6,#e2b45c);-webkit-background-clip:text;background-clip:text;color:transparent}
.sh-count{font-size:12px;color:var(--dim);font-weight:600;margin-left:6px;
  border:1px solid rgba(243,198,105,.3);border-radius:20px;padding:1px 8px;-webkit-text-fill-color:var(--dim)}
.sh-sub{font-size:12px;color:var(--dim);margin-top:4px}
.sh-search{margin-left:auto}
.sh-search input{background:#150d0f;border:1px solid rgba(243,198,105,.22);border-radius:12px;
  color:var(--txt);padding:9px 14px;font-size:13px;min-width:180px;outline:none}
.sh-search input:focus{border-color:var(--gold)}

.sh-h{font-size:13px;font-weight:700;color:var(--gold);margin:8px 0 8px;letter-spacing:.5px}
.sh-hotrow{display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:10px;overflow-x:auto;
  padding-bottom:6px;scrollbar-width:none}
.sh-hotrow::-webkit-scrollbar{display:none}
.hotcard{cursor:pointer;border-radius:14px;overflow:hidden;background:#140d0f;
  border:1px solid rgba(243,198,105,.16);transition:transform .18s,border-color .18s}
.hotcard:active{transform:scale(.97)}
.hotcard:hover{border-color:rgba(243,198,105,.55)}
.hc-name{font-size:11.5px;padding:7px 6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e8dcc8}

.sh-recent{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--dim);margin:12px 0 4px}
.sh-recent a{border:1px solid var(--line);border-radius:20px;padding:3px 10px;color:#d9cbb6;font-size:11.5px}
.sh-recent a:hover{border-color:var(--gold);color:var(--gold)}

.sh-tabs{display:flex;gap:8px;margin:14px 0 12px;overflow-x:auto;scrollbar-width:none}
.sh-tabs::-webkit-scrollbar{display:none}
.sh-tab{background:#150d0f;border:1px solid var(--line);color:var(--dim);border-radius:22px;
  padding:7px 16px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.sh-tab.on{background:linear-gradient(145deg,#f6d27a,#c9963c);color:#2a1806;border-color:transparent;font-weight:700}

.sh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.gcard{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;background:#140d0f;
  border:1px solid rgba(243,198,105,.14);transition:transform .18s,border-color .18s,box-shadow .18s}
.gcard:hover{border-color:rgba(243,198,105,.5);box-shadow:0 10px 26px rgba(0,0,0,.5)}
.gcard:active{transform:scale(.98)}
.g-hot{position:absolute;top:8px;left:8px;z-index:3;font-size:9px;font-style:normal;font-weight:800;
  letter-spacing:.5px;background:linear-gradient(145deg,#ff5a52,#c81f18);color:#fff;
  padding:2px 7px;border-radius:20px;box-shadow:0 3px 10px rgba(224,70,63,.5)}
.gc-meta{padding:8px 9px 10px}
.gc-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-sub{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--dim);margin-top:4px}
.gc-v{color:var(--gold);border:1px solid rgba(243,198,105,.3);border-radius:4px;padding:0 4px;font-size:9px}

/* 卡片正面（渐变 + 三个符号） */
.cardface{position:relative;aspect-ratio:16/11;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0%,var(--bg2),var(--bg1) 72%)}
.cf-glow{position:absolute;inset:-30% -10% auto -10%;height:120%;
  background:radial-gradient(closest-side,var(--accent),transparent 70%);opacity:.22;filter:blur(10px)}
.cf-syms{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px}
.cf-syms .sym.mini{width:32%;max-width:46px}
.cf-syms .sym.d1{transform:translateY(-7px) scale(1.06)}
.cf-syms .sym.d2{transform:translateY(5px) }

/* 符号（金属牌面） */
.sym{position:relative;width:100%;aspect-ratio:1;border-radius:14%;
  display:grid;place-items:center;line-height:1;
  background:
    radial-gradient(120% 120% at 50% 0%,rgba(255,255,255,.14),transparent 55%),
    linear-gradient(160deg,var(--reel),#000 130%);
  border:1.5px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -6px 14px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4);
  overflow:hidden}
.sym::after{content:'';position:absolute;inset:0;border-radius:inherit;
  border:1px solid var(--frame);opacity:.32}
.sym span{position:relative;font-weight:900;font-size:clamp(15px,4.4vw,30px);
  color:var(--c);text-shadow:0 1px 0 rgba(255,255,255,.35),0 -1px 1px rgba(0,0,0,.6),0 0 12px var(--c)}
.sym.wild{background:radial-gradient(120% 120% at 50% 0%,#ffe9a8,#b8860b 78%,#6b4b00);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 14px rgba(243,198,105,.5)}
.sym.wild span{color:#2a1806;text-shadow:0 1px 0 rgba(255,255,255,.6);font-size:clamp(13px,3.6vw,24px)}
.sym.scat{background:radial-gradient(120% 120% at 50% 0%,#3a1f5e,#1a0b2c 80%);animation:scatGlow 2.2s ease-in-out infinite}
.sym.scat span{color:#ffd24a;text-shadow:0 0 14px #ffd24a}
@keyframes scatGlow{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 8px rgba(255,210,74,.35)}
  50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 22px rgba(255,210,74,.85)}}

/* ==================== 机台 ==================== */
.slot-game{max-width:460px;margin:0 auto;border-radius:20px;overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% -10%,var(--bg2),var(--bg1) 65%),
    var(--bg1);
  border:1px solid rgba(243,198,105,.22);box-shadow:0 18px 50px rgba(0,0,0,.6);padding:10px 10px 14px}
.sg-top{display:flex;align-items:center;gap:10px;padding:4px 2px 10px}
.sg-back{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:18px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#e8dcc8}
.sg-name{font-size:14px;font-weight:800;line-height:1.15;color:#f2e6cf}
.sg-name span{display:block;font-size:9.5px;font-weight:500;color:var(--dim);margin-top:2px;letter-spacing:.4px}
.sg-bal{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}

.sg-stage{position:relative;border-radius:14px;padding:8px;
  background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.2));
  border:1px solid rgba(243,198,105,.28)}
.sg-fsbar{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;
  background:linear-gradient(90deg,rgba(255,210,74,.12),rgba(255,210,74,.3),rgba(255,210,74,.12));
  border:1px solid rgba(255,210,74,.5);border-radius:9px;padding:5px;font-size:11.5px;
  color:#ffe6a6;font-weight:700;letter-spacing:.5px;animation:pulseBar 1.6s infinite}
.sg-fsbar b{font-size:14px;color:#fff}
@keyframes pulseBar{0%,100%{opacity:.85}50%{opacity:1}}

.sg-reels{display:grid;gap:5px}
.rcell{border-radius:11px;padding:2px;transition:box-shadow .18s,transform .18s}
.rcell .sym{aspect-ratio:1}
.rcell.on .sym{box-shadow:0 0 0 2px var(--gold),0 0 20px rgba(243,198,105,.75),inset 0 1px 0 rgba(255,255,255,.2)}
.rcell.on{transform:scale(1.05);z-index:2}
.sg-reels.spinning .rcell{filter:blur(.6px) brightness(.94)}

.sg-win{min-height:26px;text-align:center;font-size:14px;font-weight:800;padding-top:8px;
  color:transparent;letter-spacing:.5px;transition:color .2s}
.sg-win.on{color:var(--gold);text-shadow:0 0 16px rgba(243,198,105,.6);animation:winPop .5s}

@keyframes winPop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}

.sg-controls{margin-top:10px}
.sg-betrow{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:10px}
.sg-mini{width:38px;height:38px;border-radius:11px;font-size:18px;font-weight:700;cursor:pointer;
  background:linear-gradient(180deg,#241a12,#17100a);color:var(--gold);
  border:1px solid rgba(243,198,105,.3)}
.sg-mini:active{transform:scale(.95)}
.sg-betbox{min-width:110px;text-align:center;background:linear-gradient(180deg,#1e1512,#140e0b);
  border:1px solid rgba(243,198,105,.22);border-radius:11px;padding:4px 12px}
.sg-betbox label{display:block;font-size:9.5px;color:var(--dim);letter-spacing:1px}
.sg-betbox b{font-size:15px;color:var(--gold);font-variant-numeric:tabular-nums}
.sg-btnrow{display:flex;align-items:center;gap:10px}
.sg-side{flex:0 0 auto;min-width:62px;height:52px;border-radius:13px;font-size:11.5px;font-weight:700;
  background:linear-gradient(180deg,#241a12,#17100a);color:#d9cbb6;
  border:1px solid rgba(243,198,105,.22);cursor:pointer}
.sg-side.on{background:linear-gradient(180deg,#3a2a12,#241a08);color:var(--gold);border-color:var(--gold)}
.sg-spin{flex:1;height:52px;border-radius:14px;border:none;cursor:pointer;
  font-size:16px;font-weight:900;letter-spacing:3px;color:#2a1806;
  background:linear-gradient(160deg,#ffe9a8,#f3c669 45%,#c9963c);
  box-shadow:0 8px 22px rgba(243,198,105,.35),inset 0 1px 0 rgba(255,255,255,.7)}
.sg-spin:active{transform:translateY(1px) scale(.99);box-shadow:0 4px 12px rgba(243,198,105,.3)}

/* 大奖 */
.bigwin{position:fixed;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(closest-side,rgba(243,198,105,.30),rgba(0,0,0,.72));animation:bwIn .4s}
.bw-in{text-align:center;animation:bwPop .6s cubic-bezier(.2,1.6,.4,1)}
.bw-t{font-size:26px;font-weight:900;letter-spacing:6px;
  background:linear-gradient(180deg,#fff6d6,#f3c669 50%,#a9791f);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 18px rgba(243,198,105,.8))}
.bw-v{font-size:34px;font-weight:900;color:#fff;margin-top:6px;text-shadow:0 0 24px rgba(243,198,105,.9)}
@keyframes bwIn{from{opacity:0}to{opacity:1}}
@keyframes bwPop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}

/* 赔率表 */
.ptable{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(0,0,0,.78);padding:16px}
.pt-in{width:min(400px,94vw);background:linear-gradient(180deg,#1b1215,#120c0e);
  border:1px solid rgba(243,198,105,.3);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.pt-h{font-size:14px;font-weight:800;color:var(--gold);margin-bottom:10px}
.pt-syms{display:flex;gap:6px;margin-bottom:12px}
.pt-syms .sym{width:40px}
.ptable table{width:100%;font-size:12px;border-collapse:collapse}
.ptable td{padding:6px 4px;border-bottom:1px solid var(--line);color:#d9cbb6}
.ptable td:last-child{text-align:right;color:var(--gold);font-variant-numeric:tabular-nums}
.pt-note{font-size:11px;color:var(--dim);margin:10px 0 14px;line-height:1.6}
.ptable .btn{width:100%}

@media(max-width:420px){
  .sh-search input{min-width:130px}
  .sh-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .sh-hotrow{grid-auto-columns:118px}
}
.sg-lines{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);
  pointer-events:none;z-index:3;overflow:visible}

/* ===== 原版画：大厅卡片 ===== */
.cardface.art{background:#0a0a10}
.cardface.art img{width:100%;height:100%;object-fit:cover;object-position:center 38%;display:block}
.cardface.art::after{content:'';position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset 0 -26px 30px -16px rgba(0,0,0,.9),inset 0 14px 22px -14px rgba(0,0,0,.55)}

/* ===== 原版画：机台背景 ===== */
.slot-game{position:relative;isolation:isolate}
.slot-game::before{content:'';position:absolute;inset:0;z-index:-2;
  background-image:var(--art);background-size:cover;background-position:center;
  opacity:.38;filter:saturate(1.2) blur(1.5px);transform:scale(1.08)}
.slot-game::after{content:'';position:absolute;inset:0;z-index:-1;
  background:radial-gradient(115% 80% at 50% 0%,rgba(0,0,0,.18),rgba(0,0,0,.78) 72%)}

/* ===== 矢量符号 ===== */
.sym.art{overflow:visible;background:linear-gradient(160deg,var(--reel),#05070a 130%)}
.sym.art .sa{position:absolute;inset:4%;width:92%;height:92%;display:block;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.sym.art.wild{background:radial-gradient(120% 120% at 50% 0%,#3a2a06,#140d02 85%);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 14px rgba(243,198,105,.45)}
.sym.art.scat{background:radial-gradient(120% 120% at 50% 0%,#2a1a4a,#0d0618 85%)}
.cf-syms .sym.art{width:32%;max-width:52px}

/* 每款机台自己的符号色相 + 更清晰的原画背景 */
.sym.art .sa{filter:drop-shadow(0 2px 3px rgba(0,0,0,.6)) hue-rotate(var(--symhue,0deg)) saturate(1.06)}
.slot-game::before{opacity:.5;filter:saturate(1.25) blur(.8px)}

/* 机台原画横幅 */
.sg-art{position:relative;height:74px;border-radius:12px;overflow:hidden;margin-bottom:8px;
  border:1px solid rgba(243,198,105,.22);box-shadow:0 4px 14px rgba(0,0,0,.45)}
.sg-art img{width:100%;height:100%;object-fit:cover;object-position:center 34%;display:block;transform:scale(1.02)}
.sg-art::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)}

/* ===== 游戏总控（后台） ===== */
.ctitle{font-size:14px;margin:6px 0 8px;color:var(--gold)}
.ctlboards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:10px}
.ctlcard{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px}
.ctlcard.off{opacity:.55;border-color:rgba(255,120,110,.35)}
.ctlhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ctlcard label{margin-top:4px}
.row.wrap{flex-wrap:wrap}
.sw{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.sw input{width:auto;margin:0}
.sw.mini{font-size:12px;opacity:.9;background:rgba(255,255,255,.04);padding:3px 7px;border-radius:8px}
.slotctl{margin-top:10px;max-height:520px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:12px}
.slotrow{display:grid;grid-template-columns:28px 1fr 150px 64px 64px;gap:6px;align-items:center;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px}
.slotrow.off{opacity:.5}
.slotrow b{font-size:13px;font-weight:600}
.slotrow small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slotrow input[type=number]{padding:4px 6px;font-size:12px}
.maintbar{background:linear-gradient(90deg,#7a1f1f,#b3342f);color:#fff;padding:10px 14px;border-radius:12px;margin-bottom:12px;font-size:13px;text-align:center}
.gcard.off{opacity:.5;filter:grayscale(.6)}
.badge.offb{background:#7a1f1f;color:#ffd9d6}
@media(max-width:640px){
  .slotrow{grid-template-columns:24px 1fr 86px 52px 52px;font-size:11px}
  .ctlboards{grid-template-columns:1fr}
}

/* 手机端顶栏压缩，消除 8px 横向溢出 */
@media(max-width:520px){
  .topbar-in{gap:6px}
  .logo{min-width:0;flex:1 1 auto;overflow:hidden}
  .logo b{font-size:13px;letter-spacing:0}
  .logo span{font-size:8px;letter-spacing:1px}
  .logo .mark{width:26px;height:26px;font-size:14px}
  .bal{padding:4px 6px;font-size:11px;gap:4px}
  .chip-btn{padding:4px 7px;font-size:11px}
  .topbar .spacer{display:none}
}
