/* Accepted specification: template-lab/games-bingo-lounge. Static lounge asset + real-data overlay. */
.game-screen-bingo { height:100vh; min-height:0; }
.game-screen-bingo>.bgl-viewport { height:100%; }
.gc-preview-stage>.bgl-viewport { height:720px; }
.bgl-viewport { position:relative; width:100%; height:100%; min-height:0; aspect-ratio:16/9; overflow:hidden; background:#030b12; color:#e7e9ee; }
.bgl-stage,.bgl-stage * { box-sizing:border-box; }
.bgl-stage { line-height:normal; }
.bgl-stage { position:absolute; width:1920px; height:1080px; left:50%; top:50%; transform:translate(-50%,-50%) scale(var(--bgl-scale,1)); transform-origin:center; font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif; background:linear-gradient(90deg,rgba(1,8,14,.08),rgba(1,8,14,.05)),url('/assets/games/bingo-lounge-v1.jpg') center/cover no-repeat,#030b12; overflow:hidden; }
.bgl-stage svg { display:block; width:100%; height:100%; }
.bgl-top { position:absolute; inset:0 0 auto; height:142px; display:flex; align-items:center; padding:0 40px; gap:26px; background:linear-gradient(#020910e8,#03111edb); border-bottom:1px solid #b1944633; }
.bgl-brand { display:flex; align-items:center; gap:14px; flex:none; }
.bgl-brand-mark { width:104px; height:94px; position:relative; color:#d9bd82; }
.bgl-brand-mark svg:first-child { position:absolute; inset:0; color:#ad915b; }
.bgl-brand-mark svg:last-child { position:absolute; width:64px; height:72px; left:20px; top:9px; color:#e4cc9e; }
.bgl-brand h1 { margin:0; font-size:58px; font-weight:850; letter-spacing:5px; line-height:1.17; color:#ead7b0; text-shadow:0 2px 1px #392d1b; }
.bgl-brand p { margin:7px 0 0; font-size:17px; letter-spacing:5px; color:#aa9b7b; }
.bgl-game-caption { width:166px; font-size:13px; line-height:1.65; letter-spacing:3px; color:#8c8b89; }
.bgl-tournament { height:82px; min-width:0; flex:1; border:1px solid #74849855; border-radius:10px; background:#03121b99; display:flex; align-items:center; box-shadow:inset 0 1px 2px #bec7d015; }
.bgl-tournament>div { display:flex; align-items:center; justify-content:center; height:52px; padding:0 24px; border-right:1px solid #8295a92e; gap:14px; min-width:0; }
.bgl-tournament>div:last-child { border:0; }
.bgl-tournament small { display:block; font-size:17px; color:#a7aeb7; letter-spacing:1px; }
.bgl-tournament b { display:block; font-size:27px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.bgl-level { flex:.8; }
.bgl-level>small { font-size:22px; }
.bgl-level strong { font-size:50px; color:#e3c68c; line-height:1; max-width:120px; overflow:hidden; text-overflow:ellipsis; }
.bgl-blinds { flex:1.2; flex-direction:column; align-items:flex-start!important; gap:3px!important; }
.bgl-blinds small { color:#ccae72; }
.bgl-clock { flex:1; }
.bgl-clock b { font-size:34px; }
.bgl-clock small,.bgl-players small { text-align:center; margin-top:4px; font-size:16px; }
.bgl-clock-icon { font-size:42px; color:#aab2bd; line-height:1; }
.bgl-players { flex:1.15; }
.bgl-players>span { width:30px; height:34px; color:#88939f; flex:none; }
.bgl-motto,.bgl-footer-motto { flex:none; font-size:13px; color:#8d8578; letter-spacing:3px; line-height:1.5; width:130px; text-align:center; }
.bgl-motto span,.bgl-footer-motto span { display:block; height:2px; margin-top:13px; background:linear-gradient(90deg,#d7b67b,transparent); }
.bgl-main { position:absolute; top:152px; left:0; right:0; height:804px; }
.bgl-lounge-caption { position:absolute; left:52px; bottom:30px; width:325px; color:#d6bd8a; text-shadow:0 2px 8px #000; font-size:22px; letter-spacing:5px; line-height:1.7; }
.bgl-lounge-caption b { color:#f0dab0; font-size:27px; }
.bgl-lounge-caption span { display:block; color:#95998f; font-size:15px; letter-spacing:1px; margin-top:9px; }
.bgl-board { position:absolute; top:4px; left:448px; width:790px; height:795px; }
.bgl-grid { position:relative; width:790px; height:700px; display:grid; grid-template-columns:repeat(3,250px); grid-template-rows:repeat(3,220px); gap:20px; }
.bgl-cell { position:relative; border:2px solid #62768e77; border-radius:10px; background:linear-gradient(145deg,#142435e3,#03121fe8 72%); box-shadow:inset 0 1px 4px #a3b5ca18,0 8px 18px #0004; text-align:center; }
.bgl-cell-index { position:absolute; top:15px; left:20px; font:22px Arial,sans-serif; color:#a3a7ab; }
.bgl-cell-icon { position:absolute; top:18px; left:91px; width:66px; height:65px; color:#adb9cc; }
.bgl-custom-icon { font-size:44px; line-height:65px; }
.bgl-cell-label { position:absolute; top:86px; left:12px; right:12px; height:44px; display:flex; justify-content:center; align-items:center; font-size:29px; font-weight:650; line-height:1.22; color:#dae3ed; overflow:hidden; }
.bgl-cell-label>span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.bgl-cell.is-long-label .bgl-cell-label { font-size:18px; line-height:1.2; }
.bgl-cell-ring { position:absolute; width:51px; height:51px; top:126px; left:98px; z-index:4; border:3px solid #4d697c7a; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff0bf; font:700 37px Arial; line-height:1; background:#071822b3; }
.bgl-cell-state { position:absolute; top:184px; left:0; right:0; font-size:18px; color:#8593a2; }
.bgl-cell.is-done { border-color:#ecc97e; background:linear-gradient(135deg,#5a4327dc,#251f13e8 68%,#7253298f); box-shadow:inset 0 0 22px #e4bc6530,0 0 15px #eac87544,0 8px 15px #0005; }
.bgl-cell.is-done::before { content:""; position:absolute; left:14%; right:14%; top:-2px; height:2px; background:linear-gradient(90deg,transparent,#fff4c0,transparent); }
.bgl-cell.is-done .bgl-cell-icon,.bgl-cell.is-done .bgl-cell-label { color:#eddbab; }
.bgl-cell.is-done .bgl-cell-ring { border-color:#ffdc87; background:#563d20; box-shadow:0 0 13px #f4d074a6,inset 0 0 7px #f4d07488; }
.bgl-cell.is-done .bgl-cell-state { color:#d9c69c; }
.bgl-cell.is-line { border-color:#ffe6a7; box-shadow:inset 0 0 22px #e4bc6533,0 0 16px #eac87566; }
.bgl-lines { position:absolute; top:0; left:0; width:790px!important; height:700px!important; z-index:3; pointer-events:none; }
.bgl-line-halo { stroke:#eec97450; stroke-width:12; stroke-linecap:round; }
.bgl-line-core { stroke:#ffedb5; stroke-width:3; stroke-linecap:round; }
.bgl-banner { position:absolute; top:724px; left:148px; width:494px; height:70px; display:flex; align-items:center; justify-content:center; gap:6px; color:#947f57; }
.bgl-banner>span { width:57px; height:70px; flex:none; }
.bgl-banner>span:first-child svg { clip-path:inset(0 49% 0 0); }
.bgl-banner>span:last-child svg { clip-path:inset(0 0 0 49%); }
.bgl-banner>div { width:380px; text-align:center; position:relative; }
.bgl-banner b { display:block; font-size:30px; letter-spacing:4px; }
.bgl-banner small { display:block; font-size:15px; margin-top:8px; color:#9b9e9b; letter-spacing:2px; }
.bgl-banner.is-achieved { color:#f1d295; background:linear-gradient(90deg,transparent,#463216c7,transparent); }
.bgl-banner.is-achieved>div { border-top:2px solid #dab064; border-bottom:1px solid #a78246; padding:16px 0 11px; box-shadow:0 2px 14px #cf9b423d; }
.bgl-banner i { position:absolute; width:43px; height:39px; top:-32px; left:calc(50% - 21px); background:#3c2b15; border-radius:50%; border:1px solid #d4b16c; }
.bgl-banner.is-achieved b { font-size:32px; text-shadow:0 0 8px #d5ae5444; }
.bgl-stage.is-full .bgl-banner b { font-size:25px; letter-spacing:2px; white-space:nowrap; }
.bgl-side { position:absolute; top:0; left:1270px; width:485px; height:802px; border:2px solid #78899d66; border-radius:17px; background:linear-gradient(125deg,#05121bdf,#020d16ed); box-shadow:inset 0 1px 3px #cad6e422; overflow:hidden; padding:0 27px; }
.bgl-side-watermark { position:absolute; width:182px; height:248px; top:12px; right:5px; color:#d6b77a; opacity:.07; transform:rotate(-12deg); }
.bgl-side section { position:relative; }
.bgl-side h2 { margin:0; font-size:24px; font-weight:650; letter-spacing:2px; }
.bgl-progress { height:175px; padding-top:34px; padding-left:22px; }
.bgl-progress::before,.bgl-line-count::before { content:""; position:absolute; top:36px; left:0; bottom:28px; width:2px; background:linear-gradient(#b69259,#73624555); }
.bgl-progress strong { display:block; font-size:70px; line-height:1.18; margin-top:8px; color:#edce93; font-variant-numeric:tabular-nums; }
.bgl-progress strong span { color:#d2d9df; font-size:54px; }
.bgl-line-count { height:124px; border-top:1px solid #74839544; padding-top:22px; padding-left:22px; }
.bgl-line-count::before { top:24px; bottom:20px; }
.bgl-line-count strong { display:block; color:#e5c78e; font-size:50px; line-height:1.15; margin-top:8px; }
.bgl-rules { height:221px; border-top:1px solid #74839544; padding-top:20px; }
.bgl-rules h2,.bgl-rewards h2 { font-size:22px; color:#dfc891; padding-left:12px; border-left:4px solid #d2ad62; }
.bgl-rules ol { padding:0; margin:18px 0 0; list-style:none; counter-reset:rule; display:grid; gap:14px; }
.bgl-rules li { counter-increment:rule; display:flex; align-items:center; gap:17px; color:#b9c0c7; font-size:18px; line-height:1.3; }
.bgl-rules li::before { content:counter(rule); display:grid; place-items:center; width:34px; height:34px; flex:none; border:1px solid #ad8e5144; background:#2a251be6; border-radius:50%; font:22px Arial; color:#d6bc8b; }
.bgl-rewards { border-top:1px solid #74839544; padding-top:20px; }
.bgl-rewards h2 { margin-bottom:16px; }
.bgl-reward { height:88px; margin-top:12px; padding:10px 17px; border:1px solid #92764b77; border-radius:9px; background:linear-gradient(135deg,#30271cbb,#12171cdd); display:flex; align-items:center; gap:20px; }
.bgl-reward>span { width:71px; height:64px; flex:none; color:#ddbd7a; }
.bgl-reward>div { min-width:0; }
.bgl-reward small { display:block; font-size:17px; color:#d2cec3; margin-bottom:4px; }
.bgl-reward b { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:28px; line-height:1.2; color:#edce93; overflow-wrap:anywhere; }
.bgl-reward.is-long b { font-size:20px; line-height:1.15; }
.bgl-events { position:absolute; left:0; right:0; bottom:0; height:102px; display:flex; align-items:center; gap:22px; padding:0 45px; border-top:1px solid #899ba139; background:linear-gradient(#020a13e8,#01070eed); }
.bgl-events-title { width:143px; flex:none; }
.bgl-events-title b { font-size:21px; letter-spacing:3px; display:block; }
.bgl-events-title small { font:12px Arial; letter-spacing:2px; color:#858b97; display:block; margin-top:8px; }
.bgl-events-list { display:flex; flex:1; min-width:0; gap:18px; }
.bgl-event { height:62px; flex:1; min-width:0; display:flex; align-items:center; gap:14px; padding:0 17px; border:1px solid #77838742; border-radius:12px; background:linear-gradient(145deg,#15232ca8,#07131cca); box-shadow:inset 0 1px 2px #ccc2; }
.bgl-event time { font:16px Arial; color:#c8ad77; flex:none; }
.bgl-event>div { min-width:0; }
.bgl-event span { color:#99a6b4; font-size:14px; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bgl-event b { color:#dec790; font-size:18px; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bgl-event i { width:35px; height:37px; color:#b9c4cc; flex:none; margin-left:auto; }
.bgl-events-empty { color:#8e9daa; font-size:19px; letter-spacing:2px; }
.bgl-footer-motto { width:137px; font-size:12px; }
.bgl-moment { display:flex; flex-direction:column; align-items:center; justify-content:center; background:linear-gradient(#020b14b8,#06121ae8),url('/assets/games/bingo-lounge-v1.jpg') center/cover,#030b12; text-align:center; }
.bgl-moment-heading { color:#c6ac79; font-size:22px; letter-spacing:7px; margin-bottom:42px; }
.bgl-moment-emblem { width:150px; height:150px; color:#e6c787; }
.bgl-moment .gbg-moment-cell { border:0; background:none; box-shadow:none; padding:25px 100px; display:flex; flex-direction:column; gap:22px; max-width:1600px; }
.bgl-moment .gbg-moment-cell b { font-size:76px; color:#f0d6a0; overflow-wrap:anywhere; }
.bgl-moment .gbg-moment-cell small { font-size:32px; color:#c5b697; }
.bgl-moment .gbg-moment-progress { color:#b1bfcc; font-size:26px; }
.bgl-moment .gbg-moment-banner { color:#f0d6a0; font-size:82px; font-weight:750; margin-top:35px; letter-spacing:5px; }
.bgl-moment .gbg-moment-reward { font-size:35px; color:#c9b589; }
.bgl-moment-foot { margin-top:65px; font-size:18px; letter-spacing:6px; color:#857b69; }
.bgl-tournament[data-status="offline"] [data-bgl-live="status"] { color:#eaba9c; }
.bgl-tournament[data-status="paused"] [data-bgl-live="status"],.bgl-tournament[data-status="break"] [data-bgl-live="status"] { color:#dcc18b; }
@media(prefers-reduced-motion:no-preference) { .bgl-moment-emblem { animation:bgl-appear .35s ease-out both; } }
@keyframes bgl-appear { from { opacity:0; transform:scale(.94); } to { opacity:1; transform:scale(1); } }
@media(prefers-reduced-motion:reduce) { .bgl-stage * { animation:none!important; transition:none!important; } }

/* Keep three editable rules clear of the rewards panel at the 30-character limit. */
.bgl-rules.is-long-rules ol { gap:8px; margin-top:14px; }
.bgl-rules.is-long-rules li { font-size:17px; line-height:1.25; overflow-wrap:anywhere; }
