:root{
  --gold:#f7cf73;--gold2:#9b6719;--red:#c73318;--red2:#6e1108;
  --blue:#0b5f95;--blue2:#052c50;--panel:#2a1407;--panel2:#140904;
  --text:#fff5d2;--muted:#c7aa79;--line:rgba(255,216,128,.28);
  --vh:var(--viewport-h,100vh);
}
*{box-sizing:border-box}html{min-width:300px;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--text);background:#100502}body{min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 50% 0,#5d2107 0,#1c0903 38%,#070201 100%)}button,input{font:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.page-bg{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 38%,rgba(255,184,53,.11),transparent 38%),repeating-linear-gradient(90deg,rgba(255,255,255,.016) 0 1px,transparent 1px 68px)}
.app-shell{position:relative;z-index:1;width:min(1500px,100%);margin:0 auto;padding:12px max(12px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.panel{background:linear-gradient(180deg,rgba(71,32,7,.98),rgba(27,12,4,.98));border:1px solid rgba(255,216,125,.48);box-shadow:inset 0 0 0 2px rgba(255,247,217,.045),inset 0 0 30px rgba(255,176,52,.06),0 18px 38px rgba(0,0,0,.42)}
.topbar{min-height:74px;border-radius:20px;padding:10px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-icon{width:52px;height:52px;flex:0 0 52px;border-radius:15px;display:grid;place-items:center;font-size:30px;background:linear-gradient(145deg,#ffe09a,#dc8a21);box-shadow:inset 0 2px 8px rgba(255,255,255,.35)}.brand h1{margin:0;font-size:clamp(20px,2vw,30px);line-height:1}.brand p{margin:5px 0 0;color:var(--muted);font-size:11px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.mini-stat{min-width:82px;padding:7px 10px;border-radius:11px;background:rgba(0,0,0,.22);border:1px solid rgba(255,218,130,.17)}.mini-stat small,.mini-stat b{display:block}.mini-stat small{font-size:8px;color:#c99c57}.mini-stat b{margin-top:2px;font-size:12px}.icon-btn,.share-btn{height:42px;border-radius:11px;border:1px solid rgba(255,219,142,.25);background:rgba(255,255,255,.06);color:var(--text);cursor:pointer}.icon-btn{width:42px}.icon-btn.sound-on{box-shadow:inset 0 0 15px rgba(94,229,156,.08);border-color:rgba(94,229,156,.28)}.share-btn{padding:0 14px}
.game-layout{margin-top:12px;display:grid;grid-template-columns:230px minmax(0,1fr) 255px;gap:12px;align-items:start}.side-panel{border-radius:20px;padding:12px;max-height:calc(var(--vh) - 110px);overflow:auto;scrollbar-width:thin}.panel-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;margin-bottom:9px;border-bottom:1px solid rgba(255,215,120,.13)}.panel-title b{font-size:13px}.panel-title span{font-size:9px;color:#e3b356}.paytable{display:grid;gap:7px}.pay-row{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;border-radius:11px;padding:7px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06)}.pay-icon{height:40px;border-radius:9px;display:grid;place-items:center;font-size:21px;font-weight:900;color:#111;background:linear-gradient(180deg,#fbfdff,#b7dbee)}.pay-name b,.pay-name small,.pay-mult b,.pay-mult span{display:block}.pay-name b{font-size:11px}.pay-name small{margin-top:2px;color:var(--muted);font-size:8px}.pay-mult{text-align:right}.pay-mult b{font-size:10px;color:#ffe78f}.pay-mult span{margin-top:2px;font-size:8px;color:#d0b36c}.rule-card{margin-top:10px;padding:10px;border-radius:12px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.06)}.rule-card b{font-size:11px}.rule-card p{margin:5px 0 0;line-height:1.6;color:var(--muted);font-size:9px}
.machine{min-width:0;border-radius:22px;padding:11px;overflow:hidden}.scorebar{display:grid;grid-template-columns:1fr 1.28fr 1fr 1fr;gap:7px;margin-bottom:9px}.score-box{min-width:0;min-height:59px;border-radius:12px;display:grid;align-content:center;text-align:center;padding:5px;background:#070c0d;border:2px solid #684d1b;box-shadow:inset 0 0 16px rgba(0,0,0,.85),0 0 0 1px rgba(255,218,116,.1)}.score-box small{font-size:8px;color:#bd955d;white-space:nowrap}.score-box strong{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 clamp(17px,2.1vw,28px)/1 Consolas,monospace;color:#68f3ff;text-shadow:0 0 9px rgba(104,243,255,.46)}.timer-box strong{font-size:clamp(28px,3vw,42px);color:#ff6a44;text-shadow:0 0 10px rgba(255,78,44,.55)}.timer-box strong.urgent{animation:pulse .55s infinite alternate;color:#ffdb73}.bonus-box strong{color:#ffdc72}@keyframes pulse{to{transform:scale(1.05);filter:brightness(1.25)}}
.fruit-board-wrap{position:relative;padding:0 25px;display:flex;justify-content:center}.fruit-board-wrap:before,.fruit-board-wrap:after{content:"";position:absolute;top:2%;bottom:2%;width:14px;border-radius:99px;background:linear-gradient(180deg,#5b1007,#ff5b25 25%,#ffd675 50%,#ff5b25 75%,#5b1007);box-shadow:0 0 20px rgba(255,100,32,.4),inset 0 0 8px rgba(255,255,255,.65)}.fruit-board-wrap:before{left:2px}.fruit-board-wrap:after{right:2px}.fruit-board{position:relative;width:min(100%,720px,max(330px,calc(var(--vh) - 350px)));aspect-ratio:1/1;border-radius:21px;background:radial-gradient(circle at 50% 45%,#0d6197 0,#073b68 56%,#03192d 100%);border:3px solid #8b641e;box-shadow:inset 0 0 0 3px rgba(255,228,151,.12),inset 0 0 38px rgba(0,0,0,.4),0 12px 28px rgba(0,0,0,.26);overflow:hidden}.ring{position:absolute;inset:11px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr));gap:5px}.ring-cell{position:relative;min-width:0;min-height:0;margin:0;border-radius:11px;display:grid;grid-template-rows:1fr auto auto;align-items:center;justify-items:center;padding:3px 2px 4px;border:2px solid rgba(255,255,255,.72);background:linear-gradient(180deg,#f7fbff,#c8e5f7);color:#121212;box-shadow:inset 0 0 0 2px rgba(44,122,172,.14),0 3px 7px rgba(0,0,0,.18);transition:transform .08s,filter .08s,box-shadow .08s,border-color .08s}.ring-cell.minor{background:linear-gradient(180deg,#f4f7f8,#d8e1e5)}.ring-cell.lucky{background:linear-gradient(180deg,#e9ffd9,#bfe985)}.ring-cell.active{z-index:3;transform:scale(1.055);border-color:#fff7b0;filter:brightness(1.12);box-shadow:inset 0 0 0 3px #ff3929,0 0 0 2px #ffd863,0 0 22px rgba(255,77,34,.75)}.ring-cell.winner{animation:winner .45s infinite alternate}@keyframes winner{to{transform:scale(1.09);filter:brightness(1.28);box-shadow:inset 0 0 0 3px #ff3827,0 0 0 3px #ffea75,0 0 30px rgba(255,210,58,.9)}}.cell-icon{align-self:end;min-width:0;font-size:clamp(20px,3.25vw,45px);font-weight:900;line-height:1}.seven-symbol{font-weight:1000;color:#d10e0e;text-shadow:1px 1px 0 #fff}.cell-name{font-size:clamp(7px,.78vw,11px);font-weight:900;line-height:1.08;white-space:nowrap}.cell-mult{margin-top:1px;padding:1px 4px;border-radius:999px;background:rgba(0,0,0,.68);color:#ffe783;font-size:clamp(6px,.62vw,9px);line-height:1.3}.center-screen{position:absolute;left:18.7%;right:18.7%;top:18.7%;bottom:18.7%;border-radius:15px;display:grid;grid-template-rows:auto 1fr auto;padding:9px;background:radial-gradient(circle at 50% 28%,#104d78,#061f38 58%,#020e19);border:2px solid rgba(130,219,255,.3);box-shadow:inset 0 0 28px rgba(0,0,0,.44),0 0 0 2px rgba(0,0,0,.22)}.center-topline{display:flex;justify-content:space-between;gap:5px;color:#7edfff;font-size:7px;letter-spacing:.05em}.center-content{display:grid;place-content:center;text-align:center;min-height:0}.phase-big{font:900 clamp(42px,6vw,82px)/.95 Consolas,monospace;color:#ff6444;text-shadow:0 0 17px rgba(255,91,56,.5)}.phase-big.urgent{animation:pulse .5s infinite alternate}.center-title{margin-top:7px;font-size:clamp(12px,1.55vw,22px);font-weight:900;color:#fff0bc}.center-sub{margin-top:5px;color:#91c7df;font-size:clamp(7px,.82vw,11px)}.winner-badge{justify-self:center;margin-top:9px;padding:6px 10px;border-radius:999px;font-size:clamp(7px,.8vw,11px);font-weight:900}.winner-badge.hidden{visibility:hidden}.winner-badge.win{color:#332000;background:linear-gradient(180deg,#fff1a3,#f0b93f);box-shadow:0 0 19px rgba(255,205,65,.25)}.winner-badge.lose{color:#b7d5e5;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.history-row{min-height:24px;display:flex;justify-content:center;align-items:center;gap:4px;overflow:hidden}.history-dot{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;color:#111;background:linear-gradient(180deg,#fff,#cae6f5);border:1px solid rgba(255,255,255,.65)}.history-empty{font-size:7px;color:#54788d}.fruit-board.rolling .center-screen{box-shadow:inset 0 0 32px rgba(0,0,0,.45),0 0 20px rgba(42,179,255,.11)}
.notice-bar{min-height:35px;margin:7px 0 6px;border-radius:9px;display:grid;place-items:center;text-align:center;padding:5px 8px;background:rgba(0,0,0,.24);border:1px solid rgba(255,216,120,.12);color:#e7cf9e;font-size:9px}.control-panel{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:6px;border-radius:10px;background:#0b0b0b;border:1px solid rgba(255,255,255,.08)}.chip-area,.action-area,.chip-buttons{display:flex;align-items:center;gap:5px}.control-label{margin:0 3px;color:#a98d61;font-size:8px}.chip-buttons button{width:43px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:radial-gradient(circle at 36% 30%,#fff0a8,#e2a334 56%,#8c5d0b);color:#2b1800;font-size:8px;font-weight:900;cursor:pointer}.chip-buttons button.active{border-color:#fff9bf;box-shadow:0 0 0 2px #d99f2b,0 0 12px rgba(255,202,77,.44);transform:translateY(-1px)}.action-btn{height:32px;border-radius:8px;border:1px solid var(--line);padding:0 8px;background:#252525;color:#ddd;font-size:8px;cursor:pointer}.action-btn.repeat{color:#d8ffe3;border-color:rgba(96,232,140,.32);background:linear-gradient(180deg,#21452d,#102619)}.action-btn.gold{color:#291700;background:linear-gradient(180deg,#ffe391,#d49b2a);font-weight:900}.action-btn:disabled{opacity:.42;cursor:not-allowed}.bet-grid{margin-top:5px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.bet-card{position:relative;min-width:0;min-height:70px;border-radius:9px;border:1px solid rgba(255,255,255,.1);padding:5px 3px;color:#fff;background:linear-gradient(180deg,#2a2a2a,#111);cursor:pointer;display:grid;place-items:center;user-select:none;transition:transform .08s,border-color .08s,box-shadow .08s}.bet-card:active:not(:disabled){transform:scale(.97)}.bet-card.has-bet{border-color:#f1bd49;box-shadow:inset 0 0 15px rgba(240,189,73,.1)}.bet-card.disabled,.bet-card:disabled{opacity:.44;cursor:not-allowed}.bet-icon{height:25px;display:grid;place-items:center;font-size:21px}.bet-name{font-size:8px;font-weight:900}.bet-odds{color:#888;font-size:6px;white-space:nowrap}.bet-amount{min-width:30px;border-radius:999px;padding:2px 5px;background:#050505;color:#ffe182;font-size:7px;text-align:center}
.profile-card{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:9px}.avatar{width:40px;height:40px;flex:0 0 40px;border-radius:11px;display:grid;place-items:center;color:#211400;background:linear-gradient(145deg,#fff0b0,#e5a331);font-weight:900}.profile-card small,.profile-card b,.profile-card span{display:block}.profile-card small{font-size:7px;color:#888}.profile-card b{margin:2px 0;font-size:10px}.profile-card span{font-size:7px;color:#d7ae57}.rank-head{margin-top:10px}.event-list,.player-list,.mobile-tab{display:grid;gap:5px}.event-row{padding:7px;border-radius:8px;background:rgba(255,255,255,.04);border-left:2px solid #555}.event-row.win{border-left-color:#efc04b;background:rgba(239,192,75,.06)}.event-row b{display:block;font-size:8px;line-height:1.45}.event-row time{display:block;margin-top:2px;color:#777;font-size:6px}.player-row{display:grid;grid-template-columns:24px 1fr auto;gap:5px;align-items:center;padding:6px;border-radius:8px;background:rgba(255,255,255,.04)}.player-row.me{box-shadow:inset 0 0 0 1px rgba(242,191,74,.2)}.player-row .rank{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:#ffd76e;background:#291a08;font-size:8px}.player-row b{font-size:8px}.player-row>span:last-child{color:#e3c66f;font-size:7px}.mobile-panel{display:none;margin-top:7px;border-radius:14px;padding:7px}.mobile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:5px}.mobile-tabs button{height:34px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.05);color:#999;font-size:9px}.mobile-tabs button.active{color:#ffe391;border-color:rgba(255,211,93,.25);background:rgba(255,211,93,.08)}.mobile-tab{display:none;max-height:32vh;overflow:auto}.mobile-tab.active{display:grid}
.modal{position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:18px;background:rgba(0,0,0,.82);backdrop-filter:blur(9px)}.modal.open{display:grid}.join-card{width:min(420px,100%);border-radius:20px;padding:22px;text-align:center}.join-logo{width:64px;height:64px;border-radius:19px;margin:0 auto 8px;display:grid;place-items:center;font-size:37px;background:linear-gradient(145deg,#fff0b0,#df9d28)}.join-card h2{margin:8px 0 5px;font-size:21px}.join-card p{margin:0 0 13px;color:#b99c71;line-height:1.55;font-size:9px}.join-card label{display:block;text-align:left;margin-top:8px}.join-card label span{display:block;margin:0 0 4px 2px;color:#d4b76c;font-size:8px}.join-card input{width:100%;height:42px;border-radius:9px;border:1px solid rgba(255,255,255,.11);outline:none;padding:0 10px;background:#090909;color:#fff}.join-card input:focus{border-color:rgba(89,200,255,.45)}.join-btn{width:100%;height:46px;margin-top:12px;border:0;border-radius:10px;color:#241600;background:linear-gradient(180deg,#ffe79c,#dc9e2c);font-weight:900;cursor:pointer}.join-card>small{display:block;margin-top:9px;color:#8c785d;font-size:7px}.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:70;transform:translate(-50%,14px);opacity:0;transition:.2s;pointer-events:none;max-width:90vw;padding:9px 12px;border-radius:9px;color:#fff;background:#1b140a;border:1px solid rgba(255,217,120,.16);font-size:9px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1220px){.game-layout{grid-template-columns:205px minmax(0,1fr)}.desktop-right{display:none}.mobile-panel{display:block}.fruit-board{width:min(100%,690px,max(320px,calc(var(--vh) - 350px)))}}
@media(max-width:820px){.app-shell{padding:5px max(5px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}.topbar{min-height:54px;border-radius:13px;padding:6px 7px}.brand{gap:7px}.brand-icon{width:38px;height:38px;flex-basis:38px;border-radius:10px;font-size:22px}.brand h1{font-size:15px;white-space:nowrap}.brand p{display:none}.desktop-stat,.share-btn{display:none}.mini-stat{min-width:68px;padding:4px 6px}.icon-btn{width:38px;height:38px}.game-layout{display:block;margin-top:5px}.desktop-left{display:none}.machine{width:100%;border-radius:13px;padding:5px}.scorebar{grid-template-columns:1fr 1.18fr 1fr 1fr;gap:3px;margin-bottom:4px}.score-box{min-height:44px;border-width:1px;border-radius:7px;padding:3px}.score-box small{font-size:6px}.score-box strong{font-size:12px}.timer-box strong{font-size:20px}.fruit-board-wrap{padding:0 12px}.fruit-board-wrap:before,.fruit-board-wrap:after{width:7px}.fruit-board{width:min(100%,calc(100vw - 20px));min-width:0;border-width:2px;border-radius:14px}.ring{inset:5px;gap:3px}.ring-cell{border-width:1px;border-radius:7px;padding:2px 1px}.cell-icon{font-size:clamp(14px,6.2vw,28px)}.cell-name{font-size:clamp(5.5px,2vw,8.5px)}.cell-mult{font-size:clamp(4.5px,1.55vw,6.5px);padding:1px 2px}.center-screen{left:18.7%;right:18.7%;top:18.7%;bottom:18.7%;border-radius:10px;padding:5px}.center-topline{font-size:5px}.phase-big{font-size:clamp(34px,14.5vw,68px)}.center-title{font-size:clamp(10px,3.8vw,17px)}.center-sub{font-size:clamp(6px,2.2vw,9px)}.winner-badge{font-size:clamp(6px,2.2vw,9px);padding:4px 6px;margin-top:5px}.history-row{min-height:18px;gap:2px}.history-dot{width:17px;height:17px;flex-basis:17px;font-size:8px}.notice-bar{min-height:29px;margin:4px 0;font-size:7px;padding:4px}.control-panel{display:grid;grid-template-columns:1fr;gap:4px;padding:4px}.chip-area{display:grid;grid-template-columns:auto 1fr}.control-label{font-size:7px}.chip-buttons{display:grid;grid-template-columns:repeat(5,1fr);width:100%}.chip-buttons button{width:36px;height:29px;justify-self:center;font-size:7px}.action-area{justify-content:center}.action-btn{height:29px;font-size:7px;padding:0 6px}.bet-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:4px}.bet-card{min-height:58px;border-radius:6px;padding:3px 2px}.bet-icon{height:20px;font-size:18px}.bet-name{font-size:7px}.bet-odds{font-size:5px}.bet-amount{font-size:6px;padding:1px 4px}.mobile-panel{display:block;margin-top:5px;border-radius:12px;padding:5px}}
@media(max-width:440px){.mini-stat{display:none}.scorebar{grid-template-columns:1fr 1.15fr 1fr}.bonus-box{display:none}.ring{inset:3px;gap:2px}.cell-mult{display:none}.center-topline span:first-child{display:none}.control-panel{grid-template-columns:1fr}.action-area{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.action-btn{width:100%;padding:0 3px}.chip-buttons button{width:100%;max-width:44px}.bet-card{min-height:60px}}
@media(orientation:landscape) and (max-height:650px) and (max-width:980px){.topbar,.mobile-panel{display:none!important}.app-shell{padding:3px max(5px,env(safe-area-inset-right)) 3px max(5px,env(safe-area-inset-left))}.game-layout{margin:0}.machine{min-height:calc(var(--vh) - 6px);display:grid;grid-template-columns:minmax(0,1fr) minmax(225px,34%);grid-template-rows:auto auto auto minmax(0,1fr);gap:4px 6px}.scorebar{grid-column:1/-1;grid-row:1;margin:0}.score-box{min-height:36px}.score-box strong{font-size:12px}.timer-box strong{font-size:17px}.fruit-board-wrap{grid-column:1;grid-row:2/5;height:calc(var(--vh) - 48px);padding:0 10px;align-items:center}.fruit-board{width:min(100%,calc(var(--vh) - 56px));max-width:none}.notice-bar{grid-column:2;grid-row:2;margin:0;min-height:38px}.control-panel{grid-column:2;grid-row:3;margin:0}.chip-area{grid-template-columns:1fr}.control-label{display:none}.chip-buttons button{height:27px}.bet-grid{grid-column:2;grid-row:4;margin:0;grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto;align-self:stretch}.bet-card{min-height:48px}.bet-icon{height:17px;font-size:15px}.bet-odds{display:none}}
@media(min-width:1600px){.game-layout{grid-template-columns:245px minmax(720px,1fr) 270px}.fruit-board{max-width:760px}}

/* v0348: remove paytable panel, emphasize last 5 results, keep result visible */
.game-layout{grid-template-columns:minmax(0,1fr) 300px;max-width:1180px;margin-left:auto;margin-right:auto}
.machine{min-width:0}
.side-panel.desktop-right{max-height:none;overflow:visible}
.result-head{margin-bottom:10px;padding-bottom:10px}
.result-head b{font-size:16px;letter-spacing:.04em}
.result-head span{font-size:10px;color:#f4c76a}
.result-list{gap:7px}
.event-row.result-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:56px;padding:8px 9px;border:1px solid rgba(255,214,113,.11);border-left:0;border-radius:12px;background:linear-gradient(180deg,rgba(96,44,11,.28),rgba(42,17,5,.42));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.event-row.result-card.latest{border-color:rgba(255,212,89,.36);background:linear-gradient(180deg,rgba(139,71,13,.42),rgba(63,27,4,.55));box-shadow:inset 0 0 18px rgba(255,193,65,.07),0 0 16px rgba(255,171,52,.04)}
.result-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:23px;font-weight:1000;color:#c41414;background:linear-gradient(180deg,#fffdf4,#e8d9b7);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 4px 10px rgba(0,0,0,.24)}
.result-seven{font-size:16px;font-weight:1000;color:#d31111;text-shadow:1px 1px 0 #fff}
.result-copy{min-width:0}
.result-copy b{display:block;font-size:12px;line-height:1.3;color:#fff2ce;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-copy strong{display:block;margin-top:4px;font-size:17px;line-height:1;color:#ffd259;text-shadow:0 0 10px rgba(255,200,68,.16)}
.result-state{align-self:start;margin-top:1px;padding:3px 6px;border-radius:999px;font-size:7px;color:#d7b26a;background:rgba(255,215,118,.07);border:1px solid rgba(255,215,118,.1)}
.result-card.latest .result-state{color:#271500;background:linear-gradient(180deg,#ffe58d,#dba12e);font-weight:900}
.event-row.result-empty{display:grid;gap:5px;min-height:80px;place-content:center;text-align:center;border-left:0;border:1px dashed rgba(255,214,113,.16);background:rgba(255,255,255,.025)}
.event-row.result-empty b{font-size:12px;color:#eed6a8}
.event-row.result-empty span{font-size:9px;color:#8e7556}
.winner-badge.previous-result{visibility:visible;color:#ffe394;background:rgba(255,195,60,.09);border:1px solid rgba(255,213,101,.22);box-shadow:inset 0 0 12px rgba(255,198,60,.04)}
.mobile-tabs{grid-template-columns:repeat(2,1fr)}
.mobile-panel .result-card{grid-template-columns:38px minmax(0,1fr) auto;min-height:52px}
.mobile-panel .result-icon{width:38px;height:38px;font-size:21px}
.mobile-panel .result-copy b{font-size:11px}
.mobile-panel .result-copy strong{font-size:15px}

@media(max-width:1220px){
  .game-layout{grid-template-columns:minmax(0,1fr) 280px;max-width:1080px}
  .desktop-right{display:block}
  .mobile-panel{display:none}
}
@media(max-width:900px){
  .game-layout{display:block;max-width:none}
  .desktop-right{display:none}
  .mobile-panel{display:block}
}
@media(max-width:820px){
  .result-copy b{font-size:11px}
  .result-copy strong{font-size:15px}
  .mobile-tab{max-height:36vh}
}

/* v0354: larger ranking/bet typography + reliable share dialog */
.player-row{grid-template-columns:34px minmax(0,1fr) auto;gap:9px;padding:10px 11px;border-radius:11px;min-height:48px}
.player-row .rank{width:34px;height:34px;border-radius:10px;font-size:13px;font-weight:900}
.player-row b{font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-row>span:last-child{font-size:12px;font-weight:900;color:#ffe082}
.rank-head b{font-size:14px}.rank-head span{font-size:10px}

.bet-grid{gap:6px;margin-top:7px}
.bet-card{min-height:94px;border-radius:11px;padding:7px 4px;gap:2px}
.bet-icon{height:36px;font-size:31px}
.bet-name{font-size:12px;line-height:1.15}
.bet-odds{font-size:9px;line-height:1.15;color:#aaa}
.bet-amount{min-width:42px;padding:3px 7px;font-size:11px;font-weight:900}

.share-modal{position:fixed;inset:0;z-index:90;display:none;place-items:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(7px)}
.share-modal.open{display:grid}
.share-card{width:min(520px,100%);border-radius:20px;padding:18px;box-shadow:0 26px 70px rgba(0,0,0,.55)}
.share-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.share-title-row small{display:block;color:#c7a56a;font-size:11px;margin-bottom:4px}.share-title-row h3{margin:0;font-size:21px}
.share-close{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-size:24px;cursor:pointer}
.share-link-box{display:block;margin-top:15px}.share-link-box span{display:block;margin:0 0 6px 3px;color:#d9b56e;font-size:11px}.share-link-box input{width:100%;height:48px;border-radius:12px;border:1px solid rgba(255,215,120,.25);background:#080808;color:#ffe9a6;padding:0 12px;font-size:14px;outline:0}
.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.share-actions button{height:44px;border-radius:11px;cursor:pointer;font-weight:900}.share-primary{border:0;background:linear-gradient(180deg,#ffe49a,#dfa330);color:#291700}.share-secondary{border:1px solid rgba(255,218,130,.25);background:rgba(255,255,255,.06);color:#fff}.share-tip{margin:10px 0 0;color:#9d8a6b;font-size:11px;line-height:1.55}

@media(max-width:820px){
  .share-btn{display:inline-flex!important;align-items:center;justify-content:center;height:38px;padding:0 9px;font-size:9px}
  .player-row{grid-template-columns:32px minmax(0,1fr) auto;min-height:46px;padding:8px 9px}.player-row .rank{width:32px;height:32px;font-size:12px}.player-row b{font-size:12px}.player-row>span:last-child{font-size:11px}
  .bet-card{min-height:78px;padding:5px 3px}.bet-icon{height:29px;font-size:25px}.bet-name{font-size:10px}.bet-odds{font-size:7.5px}.bet-amount{min-width:38px;font-size:9px;padding:2px 5px}
  .share-card{border-radius:16px;padding:14px}.share-title-row h3{font-size:18px}.share-link-box input{font-size:12px}
}
@media(max-width:440px){
  .top-actions{gap:4px}.share-btn{padding:0 7px;font-size:8px}.icon-btn{width:36px;height:36px}
  .bet-card{min-height:76px}.bet-name{font-size:10px}.bet-odds{font-size:7px}.bet-amount{font-size:9px}
  .share-actions{grid-template-columns:1fr}.share-actions button{height:42px}
}

/* v0427: larger primary controls / score displays */
.score-box{min-height:72px;padding:7px 8px}
.score-box small{font-size:12px;font-weight:900;letter-spacing:.04em;color:#e4b96f}
.score-box strong{margin-top:5px;font-size:clamp(24px,2.6vw,36px);font-weight:900}
.timer-box strong{font-size:clamp(34px,3.5vw,48px)}
.control-panel{padding:9px 10px;gap:10px}
.control-label{font-size:12px;font-weight:900;color:#d8b36d}
.chip-buttons button{width:54px;height:40px;font-size:11px}
.action-area{gap:8px}
.action-btn{height:42px;padding:0 13px;border-radius:10px;font-size:13px;font-weight:900;white-space:nowrap}
.action-btn.gold{font-size:14px}

@media(max-width:820px){
  .score-box{min-height:54px;padding:4px 5px}.score-box small{font-size:9px}.score-box strong{font-size:17px;margin-top:3px}.timer-box strong{font-size:25px}
  .control-panel{padding:6px;gap:6px}.control-label{font-size:10px}.chip-buttons button{width:44px;height:34px;font-size:9px}
  .action-area{gap:5px}.action-btn{height:38px;padding:0 9px;font-size:11px}.action-btn.gold{font-size:12px}
}
@media(max-width:440px){
  .score-box{min-height:52px}.score-box small{font-size:8.5px}.score-box strong{font-size:16px}.timer-box strong{font-size:23px}
  .action-area{grid-template-columns:repeat(3,minmax(0,1fr))}.action-btn{height:38px;font-size:10.5px;padding:0 3px}.action-btn.gold{font-size:11px}
}
@media(orientation:landscape) and (max-height:650px) and (max-width:980px){
  .score-box{min-height:42px;padding:3px 5px}.score-box small{font-size:8px}.score-box strong{font-size:15px;margin-top:2px}.timer-box strong{font-size:20px}
  .action-btn{height:33px;font-size:10px;padding:0 5px}.chip-buttons button{height:30px;font-size:8px}
}


/* v0440: fast button feedback + larger room/online status */
button{
  touch-action:manipulation;
  user-select:none;
  -webkit-user-select:none;
  transition:transform .045s linear,filter .045s linear,box-shadow .045s linear!important;
}
button.instant-press,button:active{
  transform:scale(.965)!important;
  filter:brightness(1.16)!important;
}
.bet-card.instant-press,.bet-card:active{transform:scale(.975)!important}

/* 房间 / 在线在电脑和手机都保持清晰的大字，过长房间名自动省略但完整名称保留在 title。 */
.mini-stat{
  min-width:104px;
  max-width:220px;
  padding:8px 12px;
}
.mini-stat small{
  font-size:12px!important;
  line-height:1.05;
  font-weight:900;
  letter-spacing:.08em;
  color:#f0c476;
}
.mini-stat b{
  margin-top:4px!important;
  font-size:17px!important;
  line-height:1.15;
  font-weight:1000;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media(max-width:820px){
  .topbar{align-items:center;gap:6px}
  .top-actions{gap:5px;flex-wrap:nowrap;min-width:0}
  .desktop-stat{display:block!important}
  .mini-stat{display:block!important;min-width:70px;max-width:118px;padding:5px 7px}
  .mini-stat small{font-size:9.5px!important}
  .mini-stat b{font-size:13px!important;margin-top:3px!important}
  .share-btn{display:inline-flex!important}
}
@media(max-width:560px){
  .brand-icon{display:none}
  .brand{min-width:78px;flex:0 1 auto}
  .brand h1{font-size:13px!important}
  .top-actions{margin-left:auto}
  .mini-stat{min-width:62px;max-width:94px;padding:4px 5px}
  .mini-stat small{font-size:9px!important}
  .mini-stat b{font-size:12px!important}
  .share-btn{height:36px!important;padding:0 6px!important;font-size:8px!important}
  .icon-btn{width:34px!important;height:36px!important}
}
@media(max-width:390px){
  .brand{display:none}
  .top-actions{width:100%;justify-content:space-between}
  .mini-stat{max-width:105px;flex:1 1 0}
  .mini-stat small{font-size:9px!important}
  .mini-stat b{font-size:12px!important}
}

/* v0458: long-press continuous betting */
.bet-card{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.bet-card:active:not(:disabled),.bet-card.instant-press{filter:brightness(1.08)}


/* 房主长按连续领取 */
#claimBtn {
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}
#claimBtn.claim-holding {
  transform: scale(.97);
  filter: brightness(1.13);
  box-shadow: 0 0 0 2px rgba(255,220,110,.32), 0 0 28px rgba(255,185,40,.32);
}


/* v0520: readable typography, 100M+ score values, drag/multi-touch betting */
.score-box{overflow:hidden}
.score-box strong{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  letter-spacing:-.045em;
  font-size:clamp(21px,2.25vw,34px)!important;
}
.score-box strong.score-long{font-size:clamp(17px,1.85vw,27px)!important;letter-spacing:-.065em}
.score-box strong.score-xlong{font-size:clamp(14px,1.55vw,22px)!important;letter-spacing:-.075em}
.score-box small{font-size:13px!important;line-height:1.15}

/* Previously tiny center/result text is intentionally larger. */
.center-topline{font-size:10px!important;font-weight:800}
.center-title{font-size:clamp(16px,1.75vw,24px)!important}
.center-sub{font-size:clamp(11px,1.05vw,14px)!important;font-weight:800;line-height:1.35}
.winner-badge{font-size:clamp(11px,1.05vw,14px)!important;padding:8px 13px!important;line-height:1.3}
.notice-bar{font-size:13px!important;line-height:1.45;min-height:44px!important;padding:8px 12px!important;font-weight:800}
.history-empty{font-size:10px!important}

/* Ring text remains inside its cells but is no longer microscopic. */
.cell-name{font-size:clamp(9px,.92vw,13px)!important}
.cell-mult{font-size:clamp(8px,.78vw,11px)!important;font-weight:900}

/* Main buttons and bet cards. */
.control-label{font-size:13px!important}
.chip-buttons button{font-size:12px!important;font-weight:1000}
.action-btn{font-size:14px!important;min-height:44px}
.action-btn.gold{font-size:15px!important}
.bet-name{font-size:13px!important}
.bet-odds{font-size:10px!important;font-weight:800;color:#b9b9b9!important}
.bet-amount{font-size:12px!important;min-width:48px!important}

/* Results / ranking / profile all use readable text sizes. */
.profile-card small{font-size:10px!important}
.profile-card b{font-size:15px!important}
.profile-card span{font-size:11px!important}
.panel-title b,.rank-head b,.result-head b{font-size:16px!important}
.panel-title span,.rank-head span,.result-head span{font-size:11px!important}
.result-copy b{font-size:14px!important;line-height:1.35}
.result-copy strong{font-size:20px!important}
.result-state{font-size:10px!important;padding:4px 7px!important}
.event-row.result-empty b{font-size:14px!important}
.event-row.result-empty span{font-size:11px!important}
.player-row b{font-size:14px!important}
.player-row>span:last-child{font-size:13px!important}
.player-row .rank{font-size:14px!important}
.mobile-tabs button{font-size:12px!important;font-weight:900}

/* Join / share text was also very small. */
.join-card p{font-size:12px!important}
.join-card label span{font-size:11px!important}
.join-card>small{font-size:10px!important;line-height:1.45}
.toast{font-size:12px!important}
.share-title-row small,.share-link-box span,.share-tip{font-size:12px!important}

/* Pointer Events: each finger owns its own bet pointer. Dragging while held can move across cards. */
.bet-grid{touch-action:none}
.bet-card{touch-action:none!important;overscroll-behavior:contain}
.bet-card.drag-target{filter:brightness(1.1)}

@media(max-width:820px){
  .score-box small{font-size:10px!important}
  .score-box strong{font-size:17px!important;letter-spacing:-.055em}
  .score-box strong.score-long{font-size:14px!important}
  .score-box strong.score-xlong{font-size:12px!important}
  .center-topline{font-size:7.5px!important}
  .center-title{font-size:clamp(13px,4vw,18px)!important}
  .center-sub{font-size:clamp(9px,2.7vw,12px)!important}
  .winner-badge{font-size:clamp(9px,2.6vw,12px)!important;padding:6px 8px!important}
  .notice-bar{font-size:10.5px!important;min-height:36px!important;padding:6px 8px!important}
  .cell-name{font-size:clamp(7.5px,2.2vw,10px)!important}
  .cell-mult{font-size:clamp(6.8px,1.85vw,8.5px)!important}
  .control-label{font-size:11px!important}
  .chip-buttons button{font-size:10px!important}
  .action-btn{font-size:11.5px!important;min-height:39px}
  .action-btn.gold{font-size:12px!important}
  .bet-name{font-size:11px!important}
  .bet-odds{font-size:8.5px!important}
  .bet-amount{font-size:10px!important}
  .result-copy b,.mobile-panel .result-copy b{font-size:12.5px!important}
  .result-copy strong,.mobile-panel .result-copy strong{font-size:17px!important}
  .result-state{font-size:9px!important}
  .player-row b{font-size:13px!important}
  .player-row>span:last-child{font-size:12px!important}
  .mobile-tabs button{font-size:11px!important}
}

@media(max-width:440px){
  .score-box small{font-size:9px!important}
  .score-box strong{font-size:15px!important}
  .score-box strong.score-long{font-size:12px!important}
  .score-box strong.score-xlong{font-size:10.5px!important}
  .center-sub{font-size:9px!important}
  .winner-badge{font-size:9px!important}
  .notice-bar{font-size:9.5px!important}
  .action-btn{font-size:10.5px!important}
  .bet-name{font-size:10.5px!important}
  .bet-odds{font-size:8px!important}
}


/* v0536: 按住后拖动跨项目连续下注 */
.bet-card.drag-target {
  filter: brightness(1.16) !important;
  transform: scale(.985);
  border-color: rgba(255, 226, 110, .95) !important;
  box-shadow:
    inset 0 0 18px rgba(255, 196, 63, .16),
    0 0 0 2px rgba(255, 211, 88, .28),
    0 0 18px rgba(255, 180, 35, .22) !important;
}
#betGrid, #betGrid * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}


/* v0545 房主给玩家加体验金 */
.player-row {
  grid-template-columns: 42px minmax(0, 1fr) auto !important;
}
.player-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.player-main > b {
  font-size: clamp(16px, 1.25vw, 20px) !important;
}
.player-balance {
  font-size: clamp(16px, 1.3vw, 21px) !important;
  font-weight: 900;
  color: #ffe58b;
}
.owner-tag {
  display: inline-block;
  font-style: normal;
  font-size: 11px;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 999px;
  color: #341700;
  background: linear-gradient(180deg,#ffe695,#f7b83e);
  vertical-align: 2px;
}
.grant-player-btn {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid rgba(255,216,112,.42);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255,213,98,.18), rgba(255,151,34,.12));
  color: #ffe9ac;
  font-weight: 900;
  font-size: 13px;
  cursor: pointer;
  touch-action: manipulation;
}
.grant-player-btn:active {
  transform: scale(.96);
}

.grant-modal {
  position: fixed;
  inset: 0;
  z-index: 180;
  display: none;
  place-items: center;
  padding: 18px;
  background: rgba(2, 3, 5, .76);
  backdrop-filter: blur(9px);
}
.grant-modal.open { display: grid; }
.grant-card {
  width: min(460px, 100%);
  border-radius: 24px;
  padding: 20px;
}
.grant-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.grant-head small {
  color: #e4b865;
  font-size: 13px;
  font-weight: 800;
}
.grant-head h3 {
  margin: 3px 0 0;
  font-size: 24px;
}
.grant-close {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  color: #fff;
  font-size: 24px;
  cursor: pointer;
}
.grant-target {
  margin-top: 15px;
  padding: 13px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.08);
}
.grant-target span {
  display: block;
  color: #b8a58c;
  font-size: 12px;
}
.grant-target strong {
  display: block;
  margin-top: 3px;
  font-size: 21px;
}
.grant-presets {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 7px;
}
.grant-presets button {
  min-height: 43px;
  border-radius: 11px;
  border: 1px solid rgba(255,211,102,.28);
  background: rgba(255,204,83,.08);
  color: #ffe49a;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
}
.grant-input-wrap {
  display: block;
  margin-top: 13px;
}
.grant-input-wrap span {
  display: block;
  margin: 0 0 7px 3px;
  color: #ccb58e;
  font-size: 13px;
}
#grantAmountInput {
  width: 100%;
  height: 52px;
  padding: 0 14px;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.13);
  outline: none;
  background: rgba(255,255,255,.06);
  color: #fff6d7;
  font-size: 20px;
  font-weight: 900;
}
#grantAmountInput:focus {
  border-color: rgba(255,214,107,.6);
  box-shadow: 0 0 0 3px rgba(255,210,98,.08);
}
.grant-confirm {
  width: 100%;
  min-height: 52px;
  margin-top: 14px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(180deg,#ffe48c,#e9a234);
  color: #2c1700;
  font-size: 17px;
  font-weight: 950;
  cursor: pointer;
}
.grant-confirm:disabled {
  opacity: .65;
  cursor: wait;
}
.grant-tip {
  display: block;
  margin-top: 10px;
  color: #a99b87;
  line-height: 1.55;
  font-size: 12px;
  text-align: center;
}

@media (max-width: 620px) {
  .grant-card { padding: 16px; border-radius: 20px; }
  .grant-head h3 { font-size: 21px; }
  .grant-presets { grid-template-columns: repeat(2,1fr); }
  .grant-presets button { min-height: 46px; font-size: 15px; }
  #grantAmountInput { height: 54px; font-size: 21px; }
  .grant-confirm { min-height: 55px; font-size: 18px; }
  .player-row { grid-template-columns: 34px minmax(0,1fr) auto !important; }
  .grant-player-btn { min-height: 32px; padding: 0 8px; font-size: 12px; }
}


/* v0602：操作按钮固定顺序和等宽布局
   房主：房主领10K / 清空下注 / 重复上局
   用户：领体验金 / 清空下注 / 重复上局 */
.action-area {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 7px !important;
  width: min(100%, 430px);
}
.action-area .action-btn {
  width: 100% !important;
  min-width: 0;
  padding-left: 7px !important;
  padding-right: 7px !important;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 820px) {
  .action-area {
    width: 100%;
    gap: 5px !important;
  }
}
@media (max-width: 440px) {
  .action-area {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
  .action-area .action-btn {
    font-size: 11px !important;
    padding-left: 3px !important;
    padding-right: 3px !important;
  }
}


/* v0626 重复上局次数选择 */
.repeat-action {
  min-width: 0;
  display: grid;
  grid-template-rows: 30px 1fr;
  gap: 4px;
}
.repeat-count {
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 0 22px 0 8px;
  border: 1px solid rgba(255, 216, 112, .35);
  border-radius: 9px;
  outline: none;
  background: rgba(23, 12, 6, .92);
  color: #ffe5a0;
  font-weight: 900;
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.repeat-action #repeatBetsBtn {
  min-height: 42px;
}
@media (max-width: 620px) {
  .repeat-action {
    grid-template-rows: 29px 1fr;
    gap: 3px;
  }
  .repeat-count {
    height: 29px;
    font-size: 12px;
    padding-left: 4px;
    padding-right: 16px;
  }
  .repeat-action #repeatBetsBtn {
    min-height: 39px;
    font-size: 10.5px !important;
  }
}


/* =========================================================
   v0635 手机布局：完整房间名 + 开奖大提示 + 首屏可下注
   ========================================================= */

/* 手机开奖结果大提示：固定悬浮，不把下注按钮往下挤。 */
.mobile-result-flash{
  display:none;
}
@media (max-width:820px){
  .mobile-result-flash{
    position:fixed;
    z-index:140;
    top:max(calc(env(safe-area-inset-top) + 58px), 62px);
    left:max(8px,env(safe-area-inset-left));
    right:max(8px,env(safe-area-inset-right));
    width:min(520px,calc(100vw - 16px));
    margin:0 auto;
    padding:10px 14px 11px;
    border:2px solid rgba(255,225,121,.76);
    border-radius:16px;
    background:linear-gradient(180deg,rgba(78,22,4,.97),rgba(20,7,2,.98));
    box-shadow:0 10px 36px rgba(0,0,0,.62),0 0 26px rgba(255,175,42,.24);
    text-align:center;
    pointer-events:none;
    opacity:0;
    transform:translateY(-14px) scale(.97);
    visibility:hidden;
  }
  .mobile-result-flash small{
    display:block;
    color:#e9bd69;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
  }
  .mobile-result-flash strong{
    display:block;
    margin-top:3px;
    color:#fff0a6;
    font-size:clamp(21px,6.3vw,30px);
    line-height:1.18;
    font-weight:1000;
    text-shadow:0 0 14px rgba(255,204,68,.3);
  }
  .mobile-result-flash.show{
    visibility:visible;
    animation:mobileResultPop 3.2s ease both;
  }
  @keyframes mobileResultPop{
    0%{opacity:0;transform:translateY(-14px) scale(.97)}
    8%,82%{opacity:1;transform:translateY(0) scale(1)}
    100%{opacity:0;transform:translateY(-8px) scale(.985)}
  }
}

/* 房间名称：手机必须完整可见，不再 ... 省略。 */
@media (max-width:820px){
  .topbar{
    min-height:48px;
    padding:5px 7px;
  }
  .top-actions{
    flex:1 1 auto;
    min-width:0;
  }
  .room-stat{
    flex:1 1 150px !important;
    min-width:90px !important;
    max-width:none !important;
  }
  .room-stat b{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.08 !important;
    font-size:12.5px !important;
    max-height:none !important;
  }
  .desktop-stat{
    flex:0 0 54px !important;
    min-width:54px !important;
    max-width:54px !important;
    text-align:center;
  }
}
@media (max-width:560px){
  .brand{
    display:none !important;
  }
  .top-actions{
    width:100%;
    justify-content:flex-start;
  }
  .room-stat{
    flex:1 1 auto !important;
  }
  .room-stat small{
    font-size:8.5px !important;
  }
  .room-stat b{
    font-size:12px !important;
  }
  .desktop-stat{
    flex:0 0 46px !important;
    min-width:46px !important;
    max-width:46px !important;
    padding-left:3px !important;
    padding-right:3px !important;
  }
  .share-btn{
    flex:0 0 auto;
  }
}

/*
 * 首屏下注：
 * 水果盘尺寸由“屏幕高度剩余空间”决定，而不是永远跟手机宽度一样大。
 * 高手机保持大盘，矮手机自动缩盘，把 8 个下注按钮拉回第一屏。
 */
@media (max-width:820px) and (orientation:portrait){
  .app-shell{
    padding-top:4px !important;
  }
  .game-layout{
    margin-top:4px !important;
  }
  .machine{
    padding:4px !important;
  }
  .scorebar{
    margin-bottom:3px !important;
  }
  .score-box{
    min-height:48px !important;
  }

  .fruit-board-wrap{
    padding:0 9px !important;
  }
  .fruit-board{
    width:min(
      calc(100vw - 18px),
      max(220px, calc(var(--vh) - 338px))
    ) !important;
    max-width:100% !important;
  }

  .notice-bar{
    margin:3px 0 !important;
    min-height:29px !important;
    padding:4px 6px !important;
    line-height:1.25 !important;
  }

  .control-panel{
    padding:4px !important;
    gap:4px !important;
  }
  .chip-area{
    min-height:30px;
  }
  .chip-buttons button{
    height:30px !important;
  }

  /* 重复次数和“重复上局”同一行，不再占两层高度。 */
  .repeat-action{
    display:grid !important;
    grid-template-columns:42px minmax(0,1fr) !important;
    grid-template-rows:38px !important;
    gap:3px !important;
    align-items:stretch;
  }
  .repeat-count{
    height:38px !important;
    padding:0 3px !important;
    font-size:10.5px !important;
    border-radius:8px !important;
  }
  .repeat-action #repeatBetsBtn{
    min-height:38px !important;
    height:38px !important;
    font-size:9.5px !important;
    padding:0 2px !important;
  }
  .action-area .action-btn{
    height:38px !important;
    min-height:38px !important;
  }

  .bet-grid{
    margin-top:3px !important;
    gap:3px !important;
  }
  .bet-card{
    min-height:58px !important;
    padding:3px 2px !important;
    border-radius:7px !important;
  }
  .bet-icon{
    height:21px !important;
    font-size:19px !important;
  }
  .bet-name{
    font-size:9.5px !important;
  }
  .bet-odds{
    font-size:7px !important;
  }
  .bet-amount{
    font-size:8.5px !important;
    padding:1px 4px !important;
  }

  /* 最近记录/排行放在游戏下面，不影响第一屏下注。 */
  .mobile-panel{
    margin-top:5px !important;
  }
}

/* 720px 以下高度：进一步压缩，但仍保留可点击尺寸。 */
html.phone-short .topbar{
  min-height:43px !important;
  padding-top:3px !important;
  padding-bottom:3px !important;
}
html.phone-short .mini-stat{
  padding-top:3px !important;
  padding-bottom:3px !important;
}
html.phone-short .score-box{
  min-height:43px !important;
  padding:2px 4px !important;
}
html.phone-short .score-box small{
  font-size:8px !important;
}
html.phone-short .score-box strong{
  margin-top:1px !important;
  font-size:14px !important;
}
html.phone-short .timer-box strong{
  font-size:21px !important;
}
html.phone-short .fruit-board{
  width:min(calc(100vw - 18px),max(214px,calc(var(--vh) - 315px))) !important;
}
html.phone-short .notice-bar{
  min-height:26px !important;
  font-size:8.8px !important;
  padding:3px 5px !important;
}
html.phone-short .control-panel{
  gap:3px !important;
}
html.phone-short .chip-buttons button{
  height:27px !important;
}
html.phone-short .action-area .action-btn,
html.phone-short .repeat-action #repeatBetsBtn,
html.phone-short .repeat-count{
  height:34px !important;
  min-height:34px !important;
}
html.phone-short .repeat-action{
  grid-template-rows:34px !important;
}
html.phone-short .bet-card{
  min-height:51px !important;
}
html.phone-short .bet-icon{
  height:18px !important;
  font-size:17px !important;
}
html.phone-short .bet-name{
  font-size:9px !important;
}
html.phone-short .bet-odds{
  font-size:6.5px !important;
}
html.phone-short .bet-amount{
  font-size:8px !important;
}

/* 极矮屏（老款小屏 iPhone / 部分安卓 WebView） */
html.phone-xshort .fruit-board{
  width:min(calc(100vw - 18px),max(196px,calc(var(--vh) - 292px))) !important;
}
html.phone-xshort .notice-bar{
  min-height:24px !important;
  font-size:8px !important;
}
html.phone-xshort .bet-card{
  min-height:46px !important;
}
html.phone-xshort .bet-icon{
  height:16px !important;
  font-size:15px !important;
}
html.phone-xshort .bet-odds{
  display:none !important;
}

/* 窄屏防止三个操作按钮互相挤压。 */
html.phone-narrow .action-area{
  gap:3px !important;
}
html.phone-narrow .action-area .action-btn{
  font-size:9.5px !important;
  padding-left:2px !important;
  padding-right:2px !important;
}
html.phone-narrow .repeat-action{
  grid-template-columns:38px minmax(0,1fr) !important;
}
html.phone-narrow .repeat-count{
  font-size:9px !important;
}

/* 手机中心开奖结果再加大，视觉提示始终明确。 */
@media (max-width:820px){
  .center-title{
    font-size:clamp(14px,4.5vw,19px) !important;
    line-height:1.15 !important;
  }
  .center-sub{
    font-size:clamp(9.5px,2.8vw,12px) !important;
  }
  .winner-badge{
    font-size:clamp(9.5px,2.8vw,12px) !important;
  }
}


/* v0648 房间语音 */
.voice-btn{
  min-height:38px;padding:0 10px;border:1px solid rgba(255,216,112,.25);
  border-radius:10px;background:rgba(255,255,255,.055);color:#f5dfc2;
  font-weight:900;white-space:nowrap;cursor:pointer
}
.voice-btn.active{
  color:#2b1600;background:linear-gradient(180deg,#ffe89b,#edb249);
  border-color:rgba(255,226,127,.72)
}
.voice-btn:disabled{opacity:.62;cursor:wait}
.voice-bar{
  position:relative;z-index:30;width:min(1180px,calc(100% - 14px));
  min-height:42px;margin:5px auto 0;padding:5px 8px;display:flex;
  align-items:center;gap:7px;border:1px solid rgba(255,216,112,.16);
  border-radius:12px;background:rgba(29,12,8,.94);box-shadow:0 5px 18px rgba(0,0,0,.22)
}
.voice-bar.hidden{display:none!important}
.voice-bar-left{display:flex;align-items:center;gap:5px;color:#f6d98f;white-space:nowrap;font-size:12px}
.voice-bar-left #voiceStatusText{color:#baa994;font-size:10.5px}
.voice-live-dot{
  width:8px;height:8px;border-radius:50%;background:#63dd8a;
  box-shadow:0 0 0 3px rgba(99,221,138,.12),0 0 10px rgba(99,221,138,.32)
}
.voice-participants{flex:1;min-width:0;display:flex;gap:5px;overflow-x:auto;scrollbar-width:none}
.voice-participants::-webkit-scrollbar{display:none}
.voice-person{
  flex:0 0 auto;max-width:130px;padding:5px 7px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;border:1px solid rgba(255,255,255,.07);border-radius:999px;
  background:rgba(255,255,255,.05);color:#e8ded0;font-size:10.5px
}
.voice-person.open{color:#eaffed;border-color:rgba(93,222,128,.2);background:rgba(63,177,88,.08)}
.voice-person.me{box-shadow:inset 0 0 0 1px rgba(255,215,105,.14)}
.voice-empty{font-size:10.5px;color:#91857b}
.voice-actions{display:flex;gap:4px}
.voice-actions button{
  min-height:31px;padding:0 8px;border:1px solid rgba(255,255,255,.09);
  border-radius:8px;background:rgba(255,255,255,.055);color:#f2ddc8;
  font-weight:900;font-size:10.5px;cursor:pointer
}
#voiceMuteBtn{color:#ffe6a0}

@media(max-width:820px){
  .voice-btn{min-height:34px;padding:0 6px;font-size:10.5px}
  .voice-bar{
    width:calc(100% - 10px);min-height:36px;margin-top:3px;padding:3px 5px;gap:4px;border-radius:9px
  }
  .voice-bar-left b,.voice-bar-left #voiceStatusText{display:none}
  .voice-person{max-width:92px;padding:4px 5px;font-size:9px}
  .voice-actions{gap:3px}
  .voice-actions button{min-height:28px;padding:0 5px;font-size:9px}
  html.phone-short .voice-bar{min-height:32px;padding-top:2px;padding-bottom:2px}
  html.phone-short .voice-actions button{min-height:25px}
}
@media(max-width:380px){
  .voice-btn{padding:0 4px;font-size:9.5px}
  .voice-person{max-width:72px;font-size:8.5px}
}


/* =========================================================
   v0658：重复上局组合按钮 + 绿色筹码选中
   ========================================================= */

/* 选中筹码必须非常明显：绿色。 */
#chipButtons button{
  position:relative;
  transition:transform .08s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease !important;
}
#chipButtons button.active,
#chipButtons button[aria-pressed="true"]{
  color:#06220f !important;
  border-color:#baffc9 !important;
  background:
    radial-gradient(circle at 34% 28%, #eaffee 0%, #7dff9f 28%, #20c965 62%, #087f3c 100%) !important;
  box-shadow:
    0 0 0 2px rgba(82,255,135,.62),
    0 0 16px rgba(48,255,114,.72),
    inset 0 1px 4px rgba(255,255,255,.72) !important;
  transform:translateY(-2px) scale(1.06) !important;
}
#chipButtons button.active::after,
#chipButtons button[aria-pressed="true"]::after{
  content:"✓";
  position:absolute;
  right:-4px;
  top:-6px;
  display:grid;
  place-items:center;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#36e877;
  color:#06220f;
  border:1px solid #d8ffe1;
  font-size:9px;
  font-weight:1000;
  box-shadow:0 0 8px rgba(54,232,119,.8);
}

/* 不再显示单独“1次”下拉框，改成一个视觉整体：
   [ 重复上局 ][ ×1 ] */
.repeat-action.repeat-combo{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 48px !important;
  grid-template-rows:1fr !important;
  gap:0 !important;
  min-width:0;
  overflow:hidden;
  border-radius:8px;
  border:1px solid rgba(96,232,140,.34);
  background:linear-gradient(180deg,#21452d,#102619);
}
.repeat-combo .repeat-main-btn{
  width:100% !important;
  min-width:0;
  height:100% !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#d8ffe3 !important;
}
.repeat-count-btn{
  min-width:0;
  height:100%;
  border:0;
  border-left:1px solid rgba(129,255,168,.28);
  border-radius:0;
  background:rgba(83,255,139,.09);
  color:#8cffac;
  font-size:13px;
  font-weight:1000;
  cursor:pointer;
  touch-action:manipulation;
}
.repeat-count-btn:active{
  background:rgba(83,255,139,.2);
}
.repeat-count-btn:focus-visible{
  outline:2px solid #65ff91;
  outline-offset:-2px;
}

@media(max-width:820px){
  .repeat-action.repeat-combo{
    grid-template-columns:minmax(0,1fr) 42px !important;
    grid-template-rows:38px !important;
  }
  .repeat-combo .repeat-main-btn{
    min-height:38px !important;
    height:38px !important;
    font-size:10px !important;
  }
  .repeat-count-btn{
    height:38px !important;
    font-size:12px !important;
  }
}
html.phone-short .repeat-action.repeat-combo{
  grid-template-rows:34px !important;
}
html.phone-short .repeat-combo .repeat-main-btn,
html.phone-short .repeat-count-btn{
  min-height:34px !important;
  height:34px !important;
}
html.phone-narrow .repeat-action.repeat-combo{
  grid-template-columns:minmax(0,1fr) 38px !important;
}
html.phone-narrow .repeat-count-btn{
  font-size:11px !important;
}


/* v0720：重复次数 × 按钮重点突出 */
.repeat-action.repeat-combo{
  grid-template-columns:minmax(0,1fr) 64px !important;
  border:2px solid rgba(105,255,144,.72) !important;
  box-shadow:0 0 12px rgba(58,255,113,.22), inset 0 0 8px rgba(58,255,113,.08) !important;
}
.repeat-count-btn{
  position:relative;
  min-width:64px !important;
  color:#06290f !important;
  background:linear-gradient(180deg,#b8ffca 0%,#4df184 48%,#20bb5d 100%) !important;
  border-left:2px solid rgba(228,255,235,.9) !important;
  font-size:18px !important;
  font-weight:1000 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.4);
  box-shadow:
    inset 0 1px 4px rgba(255,255,255,.75),
    0 0 15px rgba(53,255,113,.55) !important;
}
.repeat-count-btn::after{
  content:"点击切换";
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  font-size:7px;
  line-height:1;
  color:rgba(4,53,19,.72);
  font-weight:900;
}
.repeat-count-btn:active{
  transform:scale(.96);
  filter:brightness(.9);
}

@media(max-width:820px){
  .repeat-action.repeat-combo{
    grid-template-columns:minmax(0,1fr) 56px !important;
  }
  .repeat-count-btn{
    min-width:56px !important;
    font-size:16px !important;
  }
}
@media(max-width:380px){
  .repeat-action.repeat-combo{
    grid-template-columns:minmax(0,1fr) 52px !important;
  }
  .repeat-count-btn{
    min-width:52px !important;
    font-size:15px !important;
  }
}


/* v0750 邀请加入：连接中状态必须明确，不再像页面卡死 */
#joinBtn.joining{
  opacity:.82;
  cursor:wait;
  box-shadow:0 0 0 2px rgba(255,218,103,.22),0 0 18px rgba(255,183,56,.24);
}
#roomInput[readonly]{
  opacity:.88;
  cursor:default;
}


/* =========================================================
   v0818 经典特殊奖：大三元 / 小三元 / 大四喜 / 开火车 / 送灯
   ========================================================= */
.ring-cell.special-hit{
  border-color:#74ff9d !important;
  box-shadow:
    inset 0 0 0 2px rgba(99,255,145,.7),
    0 0 18px rgba(54,255,112,.68) !important;
  filter:brightness(1.18);
}
.ring-cell.special-hit::after{
  content:"✓";
  position:absolute;
  right:2px;
  top:2px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#36ee77;
  color:#05230d;
  font-size:10px;
  font-weight:1000;
  box-shadow:0 0 10px rgba(54,238,119,.8);
}
.ring-cell.special-winner{
  border-color:#ffe577 !important;
  box-shadow:
    inset 0 0 0 2px rgba(255,232,115,.82),
    0 0 22px rgba(255,198,50,.76) !important;
  animation:specialWinnerPulse .75s ease-in-out infinite alternate;
}
@keyframes specialWinnerPulse{
  from{filter:brightness(1.05);transform:scale(1)}
  to{filter:brightness(1.32);transform:scale(1.035)}
}
.history-dot.special{
  box-shadow:0 0 12px rgba(255,199,62,.55);
  border-color:rgba(255,222,107,.65);
}
.event-row.special-result{
  border-color:rgba(255,210,75,.35) !important;
  background:linear-gradient(90deg,rgba(255,178,36,.11),rgba(255,255,255,.025)) !important;
}
.event-row.special-result .result-copy strong{
  color:#ffe590 !important;
  font-size:10px !important;
}
@media(max-width:820px){
  .ring-cell.special-hit::after{
    width:13px;height:13px;font-size:8px;right:1px;top:1px;
  }
}


/* v0835 大满贯：全盘中奖时金色大爆灯 */
.fruit-board:has(.special-winner) .ring-cell.special-winner{
  position:relative;
}
@keyframes grandSlamGlow{
  0%{filter:brightness(1.03);box-shadow:inset 0 0 0 2px rgba(255,232,115,.82),0 0 14px rgba(255,190,45,.55)}
  100%{filter:brightness(1.4);box-shadow:inset 0 0 0 3px rgba(255,247,172,.95),0 0 28px rgba(255,205,62,.95)}
}


/* =========================================================
   v0858 房主直接上分：最高5亿
   ========================================================= */
.grant-limit-tip{
  margin:2px 0 8px;
  padding:7px 9px;
  border:1px solid rgba(87,241,131,.26);
  border-radius:9px;
  background:rgba(55,205,101,.09);
  color:#c8ffd7;
  font-size:11px;
  font-weight:900;
  line-height:1.35;
}
.grant-presets{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.grant-presets button[data-grant="100000000"]{
  color:#062a12 !important;
  background:linear-gradient(180deg,#cbffda,#50eb82) !important;
  border-color:#aaffc1 !important;
  box-shadow:0 0 13px rgba(55,238,110,.33) !important;
  font-weight:1000 !important;
}
.grant-presets button[data-grant="500000000"]{
  color:#3b2700 !important;
  background:linear-gradient(180deg,#fff4a9,#efc844) !important;
  border-color:#ffe071 !important;
  box-shadow:0 0 14px rgba(255,207,57,.42) !important;
  font-weight:1000 !important;
}
.grant-player-btn{
  color:#d6ffe0 !important;
  border-color:rgba(79,235,123,.34) !important;
  background:rgba(47,190,88,.12) !important;
}
@media(max-width:820px){
  .grant-presets{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:5px !important;
  }
  .grant-presets button{
    min-height:38px !important;
    font-size:11px !important;
  }
}


/* =========================================================
   v0908 房主上分 + 下分
   ========================================================= */
.score-adjust-actions{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:4px;
}
.score-adjust-actions .grant-player-btn{
  min-height:30px;
  padding:0 8px;
  font-size:11px;
}
.score-up-btn{
  color:#caffd7 !important;
  border-color:rgba(65,238,113,.42) !important;
  background:linear-gradient(180deg,rgba(73,232,116,.18),rgba(32,145,65,.12)) !important;
}
.score-down-btn{
  color:#ffd0d0 !important;
  border-color:rgba(255,102,102,.42) !important;
  background:linear-gradient(180deg,rgba(255,84,84,.17),rgba(143,30,30,.13)) !important;
}

.grant-mode-switch{
  margin-top:12px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:4px;
  border-radius:12px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.075);
}
.grant-mode-switch button{
  min-height:42px;
  border-radius:9px;
  border:1px solid transparent;
  background:transparent;
  color:#b9aaa0;
  font-size:14px;
  font-weight:1000;
  cursor:pointer;
}
.grant-mode-switch .up.active{
  color:#062b13;
  background:linear-gradient(180deg,#c9ffda,#51eb84);
  border-color:#a9ffc1;
  box-shadow:0 0 13px rgba(55,239,111,.28);
}
.grant-mode-switch .down.active{
  color:#3a0707;
  background:linear-gradient(180deg,#ffcaca,#ff6969);
  border-color:#ffabab;
  box-shadow:0 0 13px rgba(255,80,80,.30);
}
.grant-confirm.deduct-confirm{
  color:#fff !important;
  border-color:#ff8181 !important;
  background:linear-gradient(180deg,#e94f4f,#a92020) !important;
  box-shadow:0 0 16px rgba(255,68,68,.28) !important;
}
@media(max-width:820px){
  .score-adjust-actions{
    gap:3px;
  }
  .score-adjust-actions .grant-player-btn{
    min-height:28px;
    padding:0 6px;
    font-size:9.5px;
  }
  .grant-mode-switch button{
    min-height:39px;
    font-size:13px;
  }
}


/* =========================================================
   v0918 下分修复：显示可用余额 / 全部下分 / 禁用超额
   ========================================================= */
.grant-balance-row{
  margin:7px 0 0;
  padding:8px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-radius:9px;
  border:1px solid rgba(255,116,116,.22);
  background:rgba(173,45,45,.10);
  color:#ffd0d0;
}
.grant-balance-row.hidden{
  display:none !important;
}
.grant-balance-row span{
  font-size:10px;
  font-weight:800;
}
.grant-balance-row strong{
  color:#fff0f0;
  font-size:15px;
  font-variant-numeric:tabular-nums;
}
.grant-presets .grant-all-btn{
  grid-column:1 / -1;
  min-height:38px;
  color:#fff !important;
  border-color:#ff8888 !important;
  background:linear-gradient(180deg,#df4a4a,#9d1c1c) !important;
  box-shadow:0 0 12px rgba(255,65,65,.24) !important;
  font-weight:1000 !important;
}
.grant-presets .grant-all-btn.hidden{
  display:none !important;
}
.grant-presets .grant-all-btn.active{
  outline:2px solid #ffc0c0;
  outline-offset:1px;
  box-shadow:0 0 17px rgba(255,80,80,.45) !important;
}
.grant-presets button:disabled{
  opacity:.28 !important;
  filter:grayscale(.7);
  cursor:not-allowed !important;
  box-shadow:none !important;
}


/* v0942 房主身份恢复后，顶部房主标识更明显 */
#playerName{
  max-width:100%;
}


/* =========================================================
   v0955 明确的“创建房间 / 加入房间”入口
   ========================================================= */
.entry-mode-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin:12px 0 14px;
  padding:5px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
}
.entry-mode-switch button{
  min-height:45px;
  border-radius:10px;
  border:1px solid transparent;
  background:rgba(255,255,255,.045);
  color:#cabeb3;
  font-size:14px;
  font-weight:1000;
  cursor:pointer;
}
.entry-mode-switch .create.active{
  color:#362400;
  border-color:#ffe78b;
  background:linear-gradient(180deg,#fff2a9,#e9bd3b);
  box-shadow:0 0 15px rgba(255,207,59,.30);
}
.entry-mode-switch .join.active{
  color:#082711;
  border-color:#aaffc0;
  background:linear-gradient(180deg,#ceffda,#51e984);
  box-shadow:0 0 15px rgba(60,239,112,.26);
}
.entry-mode-switch button:disabled{
  opacity:.55;
  cursor:default;
}
.join-btn.create-mode{
  background:linear-gradient(180deg,#f8d969,#bb7a13) !important;
  border-color:#ffe383 !important;
  color:#2d1a00 !important;
  box-shadow:0 0 18px rgba(238,179,47,.30) !important;
}
.join-btn.join-mode{
  background:linear-gradient(180deg,#6bf09a,#238a4b) !important;
  border-color:#a5ffc2 !important;
  color:#042711 !important;
  box-shadow:0 0 18px rgba(47,222,103,.26) !important;
}
.last-room-box{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  margin:8px 0 2px;
  padding:8px 9px;
  border-radius:9px;
  border:1px solid rgba(104,224,140,.18);
  background:rgba(52,160,85,.07);
}
.last-room-box.hidden{display:none!important}
.last-room-box span{
  color:#9eae9f;
  font-size:9px;
  font-weight:800;
}
.last-room-box strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#e2ffe8;
  font-size:11px;
}
.last-room-box button{
  min-height:30px;
  padding:0 8px;
  border-radius:7px;
  border:1px solid rgba(91,231,132,.30);
  background:rgba(58,190,96,.12);
  color:#c9ffd8;
  font-size:9px;
  font-weight:900;
}
@media(max-width:480px){
  .entry-mode-switch button{
    min-height:42px;
    font-size:12px;
  }
  .last-room-box{
    grid-template-columns:auto 1fr;
  }
  .last-room-box button{
    grid-column:1 / -1;
    width:100%;
  }
}

/* v20260819_1634 游戏切换 */
.zjh-switch-link{
  min-height:39px;padding:0 10px;border-radius:9px;border:1px solid rgba(127,225,155,.26);
  background:rgba(37,145,76,.11);color:#c9ffda;text-decoration:none;
  display:grid;place-items:center;font-size:10px;font-weight:900;white-space:nowrap
}
.game-hub-switch{
  display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0 12px
}
.game-hub-switch button,.game-hub-switch a{
  min-height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.09);
  display:grid;place-items:center;text-decoration:none;font-size:10px;font-weight:900
}
.game-hub-switch button.active{
  color:#372100;background:linear-gradient(180deg,#ffe898,#d5a93c);border-color:#ffe59a
}
.game-hub-switch a{
  color:#caffd8;background:rgba(40,161,79,.12);border-color:rgba(83,229,126,.26)
}
@media(max-width:720px){
  .zjh-switch-link{min-height:34px;padding:0 7px;font-size:8px}
}


/* v1725 同端口游戏大厅 */
.hub-switch-link{
  min-height:39px;padding:0 10px;border-radius:9px;
  border:1px solid rgba(157,169,205,.23);
  background:rgba(78,91,133,.11);color:#dce4ff;
  text-decoration:none;display:grid;place-items:center;
  font-size:10px;font-weight:900;white-space:nowrap
}
.hub-entry-link{
  min-height:34px;margin:4px 0 8px;border-radius:8px;
  border:1px solid rgba(159,172,206,.17);
  background:rgba(69,82,119,.08);color:#d9e0f6;
  display:grid;place-items:center;text-decoration:none;
  font-size:9px;font-weight:900
}
@media(max-width:720px){
  .hub-switch-link{min-height:34px;padding:0 7px;font-size:8px}
}
