*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:#080808;color:#fff}
body{min-height:100vh}.wrap{max-width:1000px;margin:auto;padding:20px}.card{background:#151515;border:1px solid #333;border-radius:16px;padding:20px;margin:15px 0}.hidden{display:none!important}
.input,.btn{width:100%;padding:12px;border-radius:9px;border:1px solid #444;margin:5px 0;background:#222;color:#fff;font-size:15px}.btn{border:0;background:#d40000;font-weight:800;cursor:pointer}.btn.secondary{background:#333}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.compact,.compact{width:auto!important}.block{display:block;text-decoration:none;text-align:center}.small{color:#aaa;font-size:13px}.msg{padding:10px 12px;border-radius:9px;background:#222;margin:9px 0}.msg.ok{border:1px solid #228b22}.msg.err{border:1px solid #a00}.row,.section-row,.topbar,.operator-status-head,.history-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-card{max-width:520px;margin:7vh auto}
/* Traditional Bingo card */
.bingo-wrap{display:flex;justify-content:center}.bingo-board{width:min(100%,560px);margin:12px auto}.bingo-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px}.bingo-table th{background:#333;border-radius:7px;padding:9px;font-size:clamp(18px,4vw,28px);font-weight:900;text-align:center}.bingo-table td{padding:0;vertical-align:middle}.bingo-table .cell{width:100%;aspect-ratio:1;border-radius:7px;background:#222;border:1px solid #555;display:flex;align-items:center;justify-content:center;font-size:clamp(17px,4.5vw,30px);font-weight:800;cursor:pointer;user-select:none}.bingo-table .cell.free{background:#444;font-size:clamp(10px,2.4vw,15px);font-weight:900;cursor:default}.bingo-table .cell.marked{background:#d40000}.bingo-table .cell.win-cell{box-shadow:0 0 0 3px #ffd700 inset,0 0 0 2px #ffd700;background:#5b4500}.bingo-table .cell.win-cell.marked{background:#ffd700;color:#000}
/* Player card selection */
.player-wrap{max-width:900px}.ticket-grid{grid-template-columns:repeat(10,1fr)}.ticket{background:#202020;border:1px solid #444;border-radius:8px;padding:12px 4px;text-align:center;cursor:pointer;color:#fff;font-weight:800}.ticket.taken{background:#555;color:#999;cursor:not-allowed}.ticket.selected{outline:2px solid #ffd700;outline-offset:1px}.screen-heading,.game-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.phase-badge,.player-game-label{background:#292929;border:1px solid #444;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;white-space:nowrap}.game-status{font-size:18px;font-weight:900;margin-top:4px}.draw-area{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.draw-panel{background:#111;border:1px solid #333;border-radius:14px;padding:14px;text-align:center;min-height:110px}.recent{text-align:center;display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.recent span{background:#292929;padding:8px 12px;border-radius:20px}.current{font-size:clamp(42px,10vw,90px);font-weight:900;text-align:center}.play-instruction{background:#222;border-left:4px solid #777;padding:12px 14px;border-radius:8px;margin:12px 0;font-size:14px;line-height:1.5}.your-card-title{text-align:center;margin:18px 0 0}.game-actions{max-width:420px;margin:15px auto 0}.bingo-action{font-size:18px;padding:15px}.countdown-box{background:#111;border:2px solid #555;border-radius:14px;text-align:center;padding:16px;margin:15px 0}.countdown-box #countdownValue{font-size:clamp(48px,15vw,92px);font-weight:900;line-height:1}.preview-card-number{font-size:clamp(24px,6vw,40px);font-weight:900;text-align:center;margin-bottom:5px}.preview-note{text-align:center;margin:10px 0}.winner-box{padding:16px;margin-top:12px;border:2px solid #ffd700;border-radius:10px;background:#211f08;color:#fff;line-height:1.7}.winner-number{font-size:clamp(20px,4vw,32px);margin:8px 0 4px}.winner-pattern{font-size:16px;margin:4px 0 8px}.winner-card{border:2px solid #ffd700;border-radius:12px;padding:14px;margin:14px 0;background:#111}.winner-card h2{text-align:center;margin:0 0 4px}.winner-card .bingo-board{max-width:540px}
/* Center modal */
.modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:12px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.84);backdrop-filter:blur(3px)}.modal-panel{position:relative;z-index:2;width:min(96vw,700px);max-height:95vh;overflow:auto;background:#151515;border:1px solid #555;border-radius:18px;padding:18px;box-shadow:0 20px 70px rgba(0,0,0,.7)}.modal-close{position:absolute;right:9px;top:6px;width:42px;height:42px;border:0;border-radius:50%;background:#333;color:#fff;font-size:30px;cursor:pointer}.preview-card{text-align:center}.winner-modal-panel{width:min(97vw,760px);text-align:center}.winner-modal-title{font-size:clamp(28px,6vw,52px);font-weight:900;margin-bottom:10px;color:#ffd700}
/* Admin */
.admin-wrap{max-width:1050px}.admin-game-title{font-size:28px;font-weight:900}.status-badge{padding:8px 13px;border-radius:999px;background:#333;font-weight:900;font-size:13px}.status-registration{background:#444}.status-countdown{background:#444}.status-playing{background:#174d1d}.status-paused{background:#5b4500}.status-finished{background:#4a3500}.status-interrupted{background:#4a1d1d}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.admin-stat{background:#111;border:1px solid #333;border-radius:12px;padding:12px}.admin-stat strong{display:block;font-size:20px;margin-top:4px}.operator-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end}.settings-grid label{display:block;font-size:13px;color:#bbb}.setting-note{background:#111;border:1px solid #333;border-radius:9px;padding:12px;min-height:75px}.setting-note strong{display:block;margin-top:5px;color:#fff}.player-list{margin-top:5px}.player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #333}.player-card-number{font-weight:900}.history-launch{text-align:center}.admin-history-panel{width:min(97vw,1000px)}.history-day{margin-top:20px}.history-day h3{margin-bottom:8px}.history-game{border:1px solid #333;border-radius:10px;padding:13px;margin:9px 0;background:#111}.history-top span{color:#aaa;font-size:13px}.history-summary{display:flex;gap:16px;flex-wrap:wrap;color:#ccc;margin-top:9px}.history-winners{margin-top:10px;padding-top:9px;border-top:1px solid #333;color:#fff;line-height:1.6}
/* TV */
.display-wrap{padding:3vh;text-align:center}.display-title{font-size:clamp(30px,5vw,70px);font-weight:900}.display-game{color:#aaa;font-size:clamp(16px,2vw,28px)}.display-current{font-size:clamp(90px,22vw,300px);font-weight:900;margin:3vh 0}.display-recent{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.display-recent span{font-size:clamp(20px,3vw,40px);background:#222;padding:12px 20px;border-radius:30px}.display-winner{font-size:clamp(30px,5vw,80px);font-weight:900;color:#ffd700;margin-top:5vh}.winner-line{font-size:clamp(18px,2.5vw,36px);margin-top:10px}
@media(max-width:700px){.wrap{padding:12px}.ticket-grid{grid-template-columns:repeat(5,1fr)}.screen-heading,.game-header,.operator-status-head{align-items:stretch;flex-direction:column}.phase-badge,.player-game-label{align-self:flex-start}.draw-area{grid-template-columns:1fr}.draw-panel{min-height:90px}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.operator-controls{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr 1fr}.bingo-table{border-spacing:3px}.bingo-table th{font-size:18px;padding:7px}.bingo-table .cell{font-size:18px}.bingo-table .cell.free{font-size:9px}.modal{padding:7px}.modal-panel{padding:12px}}
@media(max-width:420px){.admin-stat-grid,.settings-grid{grid-template-columns:1fr}.operator-controls{grid-template-columns:1fr}.ticket{padding:9px 2px}.bingo-table th{font-size:16px}.bingo-table .cell{font-size:16px}}

/* --- V2.1 admin controls, history tables and TV result display --- */
.settings-grid-compact{grid-template-columns:1.1fr 1fr 1.25fr 1.4fr}.setting-control label{display:block;font-size:13px;color:#bbb;margin-bottom:4px}.stepper{display:grid;grid-template-columns:42px 1fr 42px;gap:5px;align-items:center}.stepper .input{margin:0;text-align:center}.step-btn{height:46px;border:1px solid #444;border-radius:9px;background:#222;color:#fff;font-size:22px;font-weight:900;cursor:pointer}.step-btn:hover{background:#333}.compact-settings-card{padding-bottom:15px}.history-table-wrap{overflow-x:auto;border:1px solid #333;border-radius:10px}.history-table{width:100%;border-collapse:collapse;min-width:980px;background:#111}.history-table th,.history-table td{padding:10px 9px;border-bottom:1px solid #333;text-align:left;vertical-align:top;font-size:13px}.history-table th{background:#222;color:#fff;font-weight:900;position:sticky;top:0}.history-table tr:last-child td{border-bottom:0}.history-table tbody tr:hover{background:#191919}.history-day h3{margin:18px 0 8px}.history-day:first-child h3{margin-top:6px}
.display-wrap{min-height:100vh;padding:28px;max-width:1500px;margin:auto}.display-header{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid #333;padding-bottom:16px}.display-title{font-size:clamp(34px,5vw,76px);font-weight:900}.display-game{color:#bbb;font-size:clamp(18px,2.2vw,30px);font-weight:800}.display-live-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.display-live-card{background:#111;border:1px solid #333;border-radius:18px;padding:18px;text-align:center}.display-label{color:#aaa;font-size:14px;font-weight:900;letter-spacing:.08em}.display-current{font-size:clamp(90px,18vw,250px);font-weight:900;line-height:.95;margin:15px 0 4px}.display-recent{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:28px}.display-recent span{font-size:clamp(22px,3.2vw,42px);background:#222;padding:12px 18px;border-radius:30px;font-weight:900}.display-status{text-align:center;margin:18px 0;color:#bbb;font-size:clamp(18px,2vw,28px);font-weight:900}.display-result{background:#111;border:2px solid #ffd700;border-radius:20px;padding:24px;margin-top:22px}.display-result-title{text-align:center;font-size:clamp(32px,5vw,62px);font-weight:900;color:#ffd700}.display-result-subtitle{text-align:center;color:#bbb;margin:4px 0 18px}.display-winner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px}.display-winner-card{background:#151515;border:1px solid #555;border-radius:16px;padding:16px}.display-winner-name{text-align:center;font-size:clamp(24px,3vw,42px);font-weight:900}.display-winner-meta,.display-pattern{text-align:center;margin-top:7px;font-size:16px}.display-pattern{font-size:18px;color:#ffd700}.display-bingo-board{max-width:600px;margin-top:14px}.display-bingo-board .cell{cursor:default}.display-bingo-board .cell.win-cell{box-shadow:0 0 0 4px #ffd700 inset,0 0 0 2px #ffd700;background:#5b4500}.display-bingo-board .cell.win-cell.free{background:#5b4500}
@media(max-width:800px){.settings-grid-compact{grid-template-columns:1fr 1fr}.display-header{align-items:flex-start;flex-direction:column}.display-live-grid{grid-template-columns:1fr}.display-wrap{padding:14px}.display-winner-grid{grid-template-columns:1fr}}
@media(max-width:520px){.settings-grid-compact{grid-template-columns:1fr}.stepper{grid-template-columns:48px 1fr 48px}}

/* Countdown and daily display summary */
.selection-countdown-box{margin:16px 0}.selection-countdown-box #selectionCountdownValue{font-size:clamp(42px,12vw,80px);font-weight:900;line-height:1}.display-daily-summary{display:flex;align-items:center;gap:12px;background:#111;border:1px solid #333;border-radius:14px;padding:10px 16px}.display-daily-label{color:#aaa;font-size:12px;font-weight:900;letter-spacing:.08em}.display-daily-summary strong{font-size:clamp(24px,3vw,42px);line-height:1}.display-countdown{background:#111;border:2px solid #555;border-radius:18px;text-align:center;padding:16px;margin:22px auto 10px;max-width:700px}.display-countdown-label{color:#aaa;font-size:14px;font-weight:900;letter-spacing:.08em}.display-countdown-value{font-size:clamp(52px,9vw,100px);font-weight:900;line-height:1;margin-top:6px}
@media(max-width:800px){.display-daily-summary{align-self:stretch;justify-content:space-between}.display-header{gap:12px}}

.announcement-status{font-size:.68rem;margin-top:3px;opacity:.85;letter-spacing:.02em}
.announcement-status.warning{color:#b45309}

/* Responsive / professional UI pass */
html{overflow-x:hidden}body{overflow-x:hidden}button,input,select{font:inherit}.wrap{width:100%;max-width:1100px}.card{margin:10px 0;padding:clamp(12px,2vw,20px)}
.auth-card{width:min(92vw,480px);padding:clamp(20px,4vw,34px);border-color:#3f3f3f;box-shadow:0 18px 60px rgba(0,0,0,.35)}.auth-card h1{text-align:center;letter-spacing:.06em;font-size:clamp(24px,5vw,36px);margin:0 0 8px}.auth-card h2{text-align:center;margin:12px 0 16px}.auth-card .btn{min-height:46px}.auth-card .input{min-height:46px}
/* Always show 50 selectable cards as 5 rows x 10 columns */.card-selection-grid{display:grid!important;grid-template-columns:repeat(10,minmax(0,1fr))!important;gap:clamp(4px,1vw,9px);width:100%}.card-selection-grid .ticket{min-width:0;padding:clamp(7px,1.3vw,12px) 2px;font-size:clamp(10px,1.8vw,18px);border-radius:clamp(5px,1vw,9px);line-height:1.1}.card-selection-grid .ticket small{font-size:.72em}
.admin-countdown{background:linear-gradient(135deg,#161616,#0d0d0d);border:2px solid #555;border-radius:16px;text-align:center;padding:12px;margin:14px 0}.admin-countdown-label{font-size:12px;color:#aaa;font-weight:900;letter-spacing:.1em}.admin-countdown-value{font-size:clamp(42px,7vw,76px);font-weight:900;line-height:1;margin-top:4px}
.display-auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:#080808}.display-auth-card{width:min(92vw,460px);padding:clamp(22px,4vw,38px);background:#151515;border:1px solid #3b3b3b;border-radius:22px;box-shadow:0 20px 80px rgba(0,0,0,.5);text-align:center}.display-auth-card .auth-mark{width:58px;height:58px;margin:0 auto 12px;border-radius:16px;display:grid;place-items:center;background:#d40000;font-weight:900;font-size:22px}.display-auth-card .auth-kicker{font-size:12px;letter-spacing:.15em;color:#aaa;font-weight:900}.display-auth-card h1{font-size:clamp(26px,5vw,38px);margin:8px 0}.display-auth-card p{color:#aaa;line-height:1.5;margin:0 0 18px}.display-auth-card .input{min-height:48px}.display-auth-card .btn{min-height:48px;margin-top:8px}
.display-wrap{width:100%;box-sizing:border-box}.display-header{flex-wrap:wrap}.display-live-card{min-width:0}
@media(max-width:700px){.wrap{padding:8px}.card{border-radius:12px}.topbar{padding:10px}.screen-heading,.game-header{gap:8px}.card-selection-grid{gap:3px}.card-selection-grid .ticket{padding:7px 1px;font-size:11px}.selection-countdown-box{margin:8px 0;padding:10px}.selection-countdown-box #selectionCountdownValue{font-size:clamp(36px,11vw,64px)}.draw-area{gap:8px;margin:8px 0}.draw-panel{padding:9px;min-height:75px}.play-instruction{margin:8px 0;padding:9px;font-size:12px}.your-card-title{margin:10px 0 0}.bingo-table{border-spacing:2px}.bingo-table th{padding:5px}.bingo-table .cell{font-size:clamp(14px,5vw,21px)}.game-actions{margin:8px auto 0}.bingo-action{padding:12px}.admin-stat-grid{gap:6px}.admin-stat{padding:9px}.operator-controls{gap:6px}.settings-grid-compact{gap:6px}.display-wrap{padding:10px}.display-header{padding-bottom:10px}.display-title{font-size:clamp(28px,9vw,48px)}.display-live-grid{gap:8px;margin-top:10px}.display-live-card{padding:10px;border-radius:12px}.display-current{font-size:clamp(72px,25vw,150px);margin:8px 0}.display-recent{gap:5px;margin-top:12px}.display-recent span{font-size:18px;padding:7px 10px}.display-countdown{margin:10px auto;padding:10px}.display-countdown-value{font-size:clamp(46px,16vw,76px)}}
@media(max-width:380px){.card-selection-grid{gap:2px}.card-selection-grid .ticket{font-size:9px;padding:6px 0}.card-selection-grid .ticket small{font-size:8px}.auth-card{padding:16px}.display-auth-card{padding:20px 16px}}
@media(min-width:701px) and (max-height:800px){.wrap{padding-top:8px;padding-bottom:8px}.card{margin:7px 0;padding:12px}.selection-countdown-box{padding:10px}.admin-countdown{padding:8px}.admin-countdown-value{font-size:48px}.display-wrap{padding:14px}.display-current{margin:8px 0;font-size:clamp(80px,15vw,190px)}}


/* ATM Bingo layout refinement: desktop admin density + mobile player visibility */
.admin-wrap{max-width:1575px;width:96vw;margin:0 auto;padding-left:10px;padding-right:10px}
.admin-wrap .card{margin:5px 0;padding:9px 12px}
.admin-wrap .topbar{padding:8px 12px}
.admin-wrap .admin-countdown{margin:7px 0;padding:7px 10px}
.admin-wrap .admin-countdown-value{font-size:clamp(34px,4.5vw,58px)}
.admin-wrap .admin-stat-grid{margin-top:8px;gap:7px}
.admin-wrap .admin-stat{padding:8px 10px}
.admin-wrap .admin-stat strong{font-size:18px;margin-top:2px}
.admin-wrap .operator-controls{margin-top:8px;gap:6px}
.admin-wrap .settings-grid-compact{gap:7px}
.admin-wrap .setting-note{min-height:58px;padding:8px 10px}
.admin-wrap .step-btn{height:38px}
.admin-wrap .stepper .input{padding:8px}
.admin-wrap .player-row{padding:6px 0}
.admin-wrap .history-launch{padding:7px 12px}

/* Keep the important player information visible while the card is being scrolled on phones. */
@media(max-width:700px){
  body:has(#gameScreen:not(.hidden)){overflow-x:hidden}
  #app>.topbar{position:sticky;top:0;z-index:80;background:#080808;border-bottom:1px solid #222}
  #gameScreen{overflow:visible}
  #gameScreen .game-header{position:sticky;top:57px;z-index:70;background:#151515;padding:7px 0;margin:-7px 0 0;border-bottom:1px solid #2d2d2d}
  #gameScreen .draw-area{position:sticky;top:108px;z-index:69;background:#151515;padding:5px 0 7px;margin:0 0 7px;border-bottom:1px solid #2d2d2d;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
  #gameScreen .draw-panel{min-height:64px;padding:6px;border-radius:9px}
  #gameScreen .current{font-size:clamp(34px,10vw,58px);line-height:.95}
  #gameScreen .recent{gap:3px;max-height:42px;overflow:hidden}
  #gameScreen .recent span{padding:5px 7px;font-size:11px}
  #gameScreen .game-header .game-status{font-size:13px}
  #gameScreen .player-game-label{font-size:10px;padding:5px 8px}
  #gameScreen .play-instruction{font-size:11px;padding:7px 9px;margin:6px 0}
  #gameScreen .your-card-title{font-size:17px;margin:7px 0 2px}
  #gameScreen .bingo-table{width:100%;margin:4px auto}
  #gameScreen .bingo-table .cell{font-size:clamp(13px,4.4vw,19px)}
  #gameScreen .bingo-table th{font-size:15px;padding:4px}
  #gameScreen .game-actions{margin:6px auto 0}
  #gameScreen .bingo-action{font-size:15px;padding:10px}
}
@media(max-width:430px){
  #app>.topbar{min-height:48px}
  #gameScreen .game-header{top:49px}
  #gameScreen .draw-area{top:95px}
  #gameScreen .recent span{padding:4px 6px;font-size:10px}
  #gameScreen .current{font-size:clamp(32px,10vw,48px)}
}

@media(min-width:701px){
  .admin-wrap{min-height:calc(100vh - 10px)}
  .admin-wrap .card{overflow:hidden}
  .admin-wrap .player-list{max-height:145px;overflow:auto}
}


/* ATM BINGO FINAL RESPONSIVE APP LAYOUT */
:root{--app-gap:10px;--panel:#151515;--panel2:#101010;--line:#303030;--accent:#d40000;--gold:#ffd700}
html,body{width:100%;min-height:100%;overflow-x:hidden}
body{margin:0;background:#080808}
button,.btn,input,select{touch-action:manipulation}
/* authentication */
.auth-subtitle{color:#999;text-align:center;margin:-2px 0 18px;font-size:14px}.admin-brand{text-align:center;font-weight:900;letter-spacing:.18em;color:#d40000;font-size:13px}.admin-app{width:100%}
/* ADMIN: true dashboard instead of a vertical document */
.admin-wrap{width:min(98vw,1800px);max-width:none;padding:8px 10px;margin:auto}
.admin-topbar{height:58px;margin:0 0 var(--app-gap)!important;padding:8px 14px!important}.admin-topbar h1{font-size:20px;margin:1px 0}.admin-top-actions{display:flex;align-items:center;gap:8px}.admin-dashboard-grid{display:grid;grid-template-columns:minmax(240px,0.8fr) minmax(360px,1.35fr) minmax(270px,0.9fr);grid-template-rows:minmax(220px,auto) minmax(150px,auto) 44px;gap:var(--app-gap);min-height:calc(100dvh - 76px)}
.admin-dashboard-grid>.card{margin:0!important;min-height:0;overflow:hidden;padding:12px}.admin-control-panel{grid-column:1;grid-row:1}.admin-live-panel{grid-column:2;grid-row:1}.admin-players-panel{grid-column:3;grid-row:1 / span 2;display:flex;flex-direction:column}.admin-settings-panel{grid-column:1 / span 2;grid-row:2}.admin-history-launch{grid-column:1 / span 3;grid-row:3;display:flex;align-items:center;justify-content:center;padding:4px!important}.admin-control-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.admin-control-buttons .btn{min-height:44px;margin:0}.admin-live-heading{display:flex;justify-content:space-between;align-items:center}.live-dot{font-size:11px;color:#75d275;font-weight:900}.admin-current-label{text-align:center;color:#999;font-size:12px;font-weight:900;letter-spacing:.08em;margin-top:10px}.admin-current-number{text-align:center;font-size:clamp(64px,8vw,120px);line-height:.95;font-weight:900;margin:10px 0 14px}.admin-live-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.admin-live-meta>div{background:#0b0b0b;border:1px solid #292929;border-radius:9px;padding:8px;min-width:0}.admin-live-meta strong{display:block;margin-top:4px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-countdown{margin:8px 0!important;padding:8px!important}.admin-countdown-value{font-size:clamp(36px,5vw,62px)!important}.admin-players-panel h2,.admin-settings-panel h2{margin:0;font-size:15px}.admin-player-scroll{flex:1;min-height:0;overflow:auto;padding-right:3px}.admin-player-scroll .player-row{padding:7px 3px}.admin-settings-panel .settings-grid{height:calc(100% - 32px);align-items:center}.admin-settings-panel .setting-note{min-height:54px}.admin-history-launch .btn{margin:0;min-width:180px}
/* PLAYER: game is an app viewport, not a long scrolling page */
@media (min-width:701px){body:has(#gameScreen:not(.hidden)){overflow:hidden}.player-game-page #gameScreen{min-height:calc(100dvh - 74px)}}
@media (max-width:700px){
  body:has(#gameScreen:not(.hidden)){overflow:hidden;height:100dvh}
  #app:has(#gameScreen:not(.hidden)){height:100dvh;display:flex;flex-direction:column}
  #app:has(#gameScreen:not(.hidden))>.topbar{flex:0 0 48px;height:48px;margin:0!important;padding:6px 9px!important;position:relative;z-index:5}
  #app:has(#gameScreen:not(.hidden))>.topbar h1{font-size:16px;margin:0}.topbar .small{font-size:9px}.topbar .btn{padding:7px 9px;font-size:11px}
  #gameScreen{flex:1 1 auto;min-height:0;height:auto!important;margin:0!important;border:0;border-radius:0;padding:7px 8px!important;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:4px;overflow:hidden;background:#080808}
  #gameScreen .game-header{position:static!important;display:flex;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:8px;background:#151515;padding:5px 7px!important;margin:0!important;border:1px solid #292929;border-radius:8px}
  #gameScreen .game-header .small{font-size:10px}.player-game-label{font-size:10px!important;padding:5px 8px!important}
  #gameScreen #countdownBox{grid-row:2;margin:0!important;padding:5px!important;border-radius:8px}.countdown-box #countdownValue{font-size:34px!important}.countdown-box .small{font-size:10px}
  #gameScreen .draw-area{grid-row:2;display:grid;grid-template-columns:1fr 1.45fr;gap:5px;margin:0!important;position:static!important;padding:0!important;border:0!important;background:transparent!important}
  #gameScreen .draw-panel{min-height:58px!important;padding:5px!important;border-radius:8px}.draw-panel .small{font-size:9px}.draw-panel .current{font-size:clamp(34px,10vw,50px)!important}.recent-panel .recent{max-height:31px;overflow:hidden;gap:3px}.recent-panel .recent span{font-size:10px;padding:3px 5px}
  #gameScreen .play-instruction{display:none!important}
  #gameScreen .your-card-title{grid-row:3;margin:0!important;font-size:13px;line-height:1;text-align:left;padding-left:3px}
  #gameScreen #myCard{grid-row:4;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.bingo-board{width:min(100%,calc(100dvh - 225px));margin:0 auto}.bingo-table{border-spacing:2px}.bingo-table th{font-size:14px;padding:3px}.bingo-table .cell{font-size:clamp(13px,4.6vw,19px);border-radius:5px}
  #gameScreen .game-actions{grid-row:5;margin:0 auto;width:min(100%,360px)}#gameScreen .bingo-action{min-height:42px;padding:8px;font-size:15px;margin:0}
  #gameScreen #gameMsg{position:absolute;left:8px;right:8px;bottom:53px;z-index:10}.winner-box{font-size:12px}
  /* Selection screen */
  #selectionScreen{margin:0!important;padding:10px!important}.card-selection-grid{grid-template-columns:repeat(10,minmax(0,1fr))!important;gap:4px!important}.card-selection-grid .ticket{font-size:12px;padding:9px 1px}
  /* Admin mobile becomes a single clean dashboard */
  .admin-wrap{width:100%;padding:6px}.admin-topbar{height:50px}.admin-dashboard-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto;min-height:0;gap:7px}.admin-dashboard-grid>.card{grid-column:1!important;grid-row:auto!important}.admin-control-panel{order:1}.admin-live-panel{order:2}.admin-players-panel{order:3;min-height:180px}.admin-settings-panel{order:4}.admin-history-launch{order:5}.admin-current-number{font-size:72px}.admin-live-meta{grid-template-columns:repeat(3,1fr)}
  /* Display */
  .display-wrap{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:12px}.display-header{align-items:center;flex-direction:row;gap:8px}.display-title{font-size:28px}.display-game{font-size:14px}.display-live-grid{display:grid;grid-template-columns:1fr;align-content:center;gap:8px}.display-live-card{padding:9px}.display-current{font-size:clamp(90px,30vw,170px);margin:6px 0}.display-recent{gap:4px;flex-wrap:nowrap;overflow:hidden}.display-recent span{font-size:14px;padding:6px 8px;flex:0 0 auto}.display-status{font-size:13px}.display-countdown{margin:7px auto;padding:8px}.display-countdown-value{font-size:50px}
}
@media(max-width:380px){#gameScreen{padding:5px!important}.bingo-board{width:min(100%,calc(100dvh - 205px))}.bingo-table .cell{font-size:12px}.bingo-table th{font-size:12px}.card-selection-grid{gap:2px!important}.card-selection-grid .ticket{font-size:10px;padding:7px 0}}
@media(min-width:701px) and (max-height:850px){.admin-dashboard-grid{grid-template-rows:minmax(190px,1fr) minmax(120px,auto) 40px}.admin-dashboard-grid>.card{padding:9px}.admin-current-number{font-size:clamp(58px,7vw,92px)}.admin-player-scroll .player-row{padding:5px 2px}.admin-control-buttons{margin-top:8px}.admin-settings-panel .settings-grid{height:auto}}

@media(max-width:700px){
  #gameScreen #countdownBox{grid-row:2}
  #gameScreen .draw-area{grid-row:2}
  #gameScreen:has(#countdownBox:not(.hidden)) .draw-area{grid-row:3}
  #gameScreen:has(#countdownBox:not(.hidden)) .your-card-title{grid-row:4}
  #gameScreen:has(#countdownBox:not(.hidden)) #myCard{grid-row:5}
  #gameScreen:has(#countdownBox:not(.hidden)) .game-actions{grid-row:6}
  #gameScreen:has(#countdownBox:not(.hidden)){grid-template-rows:auto auto auto auto minmax(0,1fr) auto}
}


/* ATM BINGO - FINAL DENSITY / AUDIO-FRIENDLY OVERRIDES */
*{box-sizing:border-box}
html,body{width:100%;min-height:100%;overflow-x:hidden}
body{overflow-y:auto}

/* Desktop admin: fit the complete dashboard into the viewport without oversized panels. */
@media (min-width:701px){
  .admin-wrap{width:min(94vw,1500px);max-width:1500px;padding:6px 8px;margin:0 auto;min-height:100dvh}
  .admin-topbar{height:52px!important;margin-bottom:7px!important;padding:7px 12px!important}
  .admin-topbar h1{font-size:18px!important}
  .admin-dashboard-grid{height:calc(100dvh - 65px);min-height:0!important;grid-template-columns:minmax(210px,.78fr) minmax(320px,1.18fr) minmax(230px,.82fr);grid-template-rows:minmax(180px,1fr) minmax(115px,.58fr) 34px;gap:7px}
  .admin-dashboard-grid>.card{padding:9px!important;border-radius:11px}
  .admin-control-buttons{gap:5px!important;margin-top:8px!important}
  .admin-control-buttons .btn{min-height:38px!important;padding:7px!important;font-size:13px}
  .admin-current-number{font-size:clamp(52px,6vw,82px)!important;margin:6px 0 8px!important}
  .admin-countdown{margin:5px 0!important;padding:6px!important;border-radius:10px!important}
  .admin-countdown-label{font-size:10px!important}
  .admin-countdown-value{font-size:clamp(30px,4vw,52px)!important}
  .admin-live-meta{gap:5px!important}.admin-live-meta>div{padding:6px!important}.admin-live-meta strong{font-size:12px!important}
  .admin-player-scroll{max-height:none!important}
  .admin-player-scroll .player-row{padding:5px 2px!important}
  .admin-settings-panel .settings-grid{height:auto!important;gap:6px!important}.admin-settings-panel .input{padding:7px!important}
  .admin-history-launch{padding:2px!important}.admin-history-launch .btn{min-height:30px!important;padding:5px 12px!important}
}

/* Player game: one viewport, no page scroll. The card gets the flexible space. */
@media (max-width:700px){
  body:has(#gameScreen:not(.hidden)){height:100dvh;overflow:hidden}
  #app:has(#gameScreen:not(.hidden)){height:100dvh;display:flex;flex-direction:column}
  #app:has(#gameScreen:not(.hidden))>.topbar{flex:0 0 45px;height:45px!important;margin:0!important;padding:5px 8px!important;position:relative;z-index:10}
  #gameScreen{flex:1 1 auto!important;height:auto!important;min-height:0!important;margin:0!important;padding:5px 7px!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;gap:4px!important;overflow:hidden!important;border:0;border-radius:0}
  #gameScreen .game-header{position:static!important;grid-row:1!important;height:34px!important;padding:4px 6px!important;margin:0!important;border-radius:7px!important}
  #gameScreen .game-header .small{font-size:8px!important}.player-game-label{font-size:9px!important;padding:4px 7px!important}
  #gameScreen #countdownBox{grid-row:2!important;min-height:34px!important;margin:0!important;padding:3px!important}.countdown-box #countdownValue{font-size:25px!important}.countdown-box .small{font-size:8px!important}
  #gameScreen .draw-area{grid-row:2!important;display:grid!important;grid-template-columns:.78fr 1.22fr!important;gap:4px!important;margin:0!important;position:relative!important;padding:0!important;background:transparent!important;border:0!important;min-height:55px!important}
  #gameScreen:has(#countdownBox:not(.hidden)) .draw-area{grid-row:3!important}
  #gameScreen:has(#countdownBox:not(.hidden)){grid-template-rows:auto auto auto minmax(0,1fr) auto!important}
  #gameScreen .draw-panel{min-height:55px!important;padding:4px!important;border-radius:7px!important}
  #gameScreen .draw-panel .small{font-size:8px!important}.draw-panel .current{font-size:clamp(30px,9vw,44px)!important}.recent-panel .recent{max-height:28px!important;overflow:hidden!important;gap:2px!important}.recent-panel .recent span{font-size:9px!important;padding:3px 4px!important}
  #gameScreen .your-card-title{grid-row:4!important;margin:0!important;font-size:11px!important;line-height:1!important;padding:0 2px!important}
  #gameScreen:has(#countdownBox:not(.hidden)) .your-card-title{grid-row:4!important}
  #gameScreen #myCard{grid-row:4!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
  #gameScreen:has(#countdownBox:not(.hidden)) #myCard{grid-row:4!important}
  #gameScreen .bingo-board{width:min(100%,calc(100dvh - 190px))!important;max-width:100%!important;margin:auto!important}
  #gameScreen .bingo-table{border-spacing:1px!important;margin:0 auto!important}.bingo-table th{font-size:12px!important;padding:2px!important}.bingo-table .cell{font-size:clamp(12px,4.2vw,18px)!important;padding:0!important;border-radius:4px!important}
  #gameScreen .game-actions{grid-row:5!important;margin:0 auto!important;width:min(100%,340px)!important}.bingo-action{min-height:38px!important;padding:7px!important;font-size:14px!important}
  #gameScreen:has(#countdownBox:not(.hidden)) .game-actions{grid-row:5!important}
  #gameScreen #gameMsg{position:fixed;left:7px;right:7px;bottom:44px;z-index:100}
}

/* Display kiosk: compact, proportional and no page scrolling during the live game. */
.display-wrap{min-height:100dvh;max-width:1500px;margin:0 auto;padding:clamp(10px,1.5vw,22px)!important}
.display-header{padding-bottom:clamp(8px,1vw,14px)!important}.display-title{font-size:clamp(24px,3.2vw,48px)!important}.display-game{font-size:clamp(12px,1.2vw,18px)!important}.display-daily-summary{padding:8px 12px!important}.display-daily-summary strong{font-size:clamp(22px,3vw,42px)!important}
.display-live-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:clamp(8px,1vw,14px)!important;margin-top:clamp(8px,1vw,14px)!important}.display-live-card{padding:clamp(10px,1.2vw,18px)!important}.display-current{font-size:clamp(70px,11vw,170px)!important;margin:clamp(4px,1vw,12px) 0!important}.display-recent{gap:5px!important}.display-recent span{font-size:clamp(12px,1.3vw,20px)!important;padding:5px 8px!important}
.display-countdown{margin:clamp(8px,1vw,14px) auto!important;padding:8px 14px!important}.display-countdown-value{font-size:clamp(40px,6vw,80px)!important}
@media(max-width:700px){.display-wrap{padding:8px!important}.display-live-grid{grid-template-columns:1fr!important}.display-current{font-size:clamp(70px,24vw,140px)!important}.display-live-card{padding:8px!important}.display-header{gap:6px!important}}

/* Registration should feel like a real form, not an automatic login. */
#authMsg.msg.ok,#msg.msg.ok,#displayAuthMsg.msg.ok{color:#9be39b;border-color:#2c7a2c}

/* ATM Bingo — compact admin dashboard refinement */
@media (min-width: 900px) {
  .admin-wrap { padding: 10px 14px !important; }
  .admin-app { gap: 8px !important; }
  .admin-dashboard-grid {
    gap: 8px !important;
    min-height: calc(100dvh - 64px) !important;
    grid-template-columns: minmax(210px,.78fr) minmax(300px,1.22fr) minmax(235px,.82fr) !important;
    grid-template-rows: minmax(185px, auto) minmax(125px, auto) 34px !important;
  }
  .admin-dashboard-grid > .card { padding: 9px !important; }
  .admin-topbar { padding: 8px 12px !important; min-height: 0 !important; }
  .admin-topbar h1 { font-size: 20px !important; margin: 0 !important; }
  .admin-topbar .small { font-size: 10px !important; }
  .admin-control-buttons { gap: 5px !important; margin-top: 8px !important; }
  .admin-control-buttons .btn { min-height: 36px !important; padding: 7px 9px !important; font-size: 12px !important; }
  .admin-live-heading { font-size: 12px !important; }
  .admin-current-label { font-size: 10px !important; }
  .admin-current-number { font-size: clamp(48px, 5.5vw, 82px) !important; margin: 5px 0 8px !important; }
  .admin-countdown { margin: 5px 0 !important; padding: 5px !important; }
  .admin-countdown-label { font-size: 9px !important; }
  .admin-countdown-value { font-size: clamp(34px, 5vw, 58px) !important; }
  .admin-live-meta { gap: 5px !important; }
  .admin-live-meta > div { padding: 5px !important; }
  .admin-live-meta strong { font-size: 11px !important; margin-top: 2px !important; }
  .admin-settings-panel { font-size: 12px !important; }
  .admin-settings-panel .input, .admin-settings-panel select,
  .admin-settings-panel .btn { min-height: 32px !important; padding: 5px 8px !important; font-size: 11px !important; }
  .admin-history-launch { font-size: 11px !important; }
}


/* ============================================================
   ATM BINGO — MASTERPIECE NEON VISUAL SYSTEM
   Final visual pass: compact controls, centered content,
   responsive game viewport, neon Bingo balls and winner states.
   ============================================================ */
:root{
  --neon-b:#18bfff;
  --neon-i:#ffe600;
  --neon-n:#ff3b8d;
  --neon-g:#39ff6a;
  --neon-o:#ff8a18;
  --neon-white:#f7fbff;
  --neon-red:#ff355d;
  --neon-cyan:#00f5ff;
  --neon-shadow:0 0 7px currentColor,0 0 18px currentColor,0 0 34px color-mix(in srgb,currentColor 45%,transparent);
}

/* Shared polished surface */
.card,.draw-panel,.display-live-card,.display-countdown,.winner-card,.winner-box{
  box-shadow:0 8px 28px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.025);
}
.btn{transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;background:linear-gradient(135deg,#ff1744,#ff003c);box-shadow:0 0 8px rgba(255,23,68,.55),0 0 20px rgba(255,23,68,.22)}
.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 0 10px rgba(255,23,68,.8),0 0 25px rgba(255,23,68,.3)}
.btn.secondary{background:#161b22;border:1px solid #374151;box-shadow:0 0 7px rgba(0,245,255,.12)}
.btn.secondary:hover:not(:disabled){border-color:var(--neon-cyan);box-shadow:0 0 8px rgba(0,245,255,.45),0 0 18px rgba(0,245,255,.16)}

/* Neon Bingo balls. B blue, I yellow, N pink, G green, O orange. */
.bingo-ball{
  --ball:#fff;
  position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:clamp(54px,7vw,92px);height:clamp(54px,7vw,92px);border-radius:50%;
  color:#fff;font-weight:950;line-height:.9;text-align:center;flex:0 0 auto;
  background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.92) 0 7%,rgba(255,255,255,.22) 8% 13%,transparent 14%),
             radial-gradient(circle at 38% 30%,rgba(255,255,255,.28),transparent 35%),
             radial-gradient(circle at 58% 62%,color-mix(in srgb,var(--ball) 78%,#050505),#050505 76%);
  border:2px solid color-mix(in srgb,var(--ball) 85%,white);
  box-shadow:0 0 6px var(--ball),0 0 16px var(--ball),0 0 32px color-mix(in srgb,var(--ball) 58%,transparent),inset 0 -10px 18px rgba(0,0,0,.35);
  text-shadow:0 0 5px #fff,0 0 13px var(--ball);
}
.bingo-ball .ball-letter{font-size:.30em;letter-spacing:.08em;margin-bottom:.12em}
.bingo-ball .ball-number{font-size:.48em;letter-spacing:.01em}
.bingo-ball.ball-b{--ball:var(--neon-b)}
.bingo-ball.ball-i{--ball:var(--neon-i);color:#111;text-shadow:0 0 4px #fff,0 0 10px var(--neon-i)}
.bingo-ball.ball-n{--ball:var(--neon-n)}
.bingo-ball.ball-g{--ball:var(--neon-g);color:#06120a}
.bingo-ball.ball-o{--ball:var(--neon-o)}
.bingo-ball.hero{width:clamp(92px,12vw,170px);height:clamp(92px,12vw,170px);border-width:3px}
.bingo-ball.admin-ball{width:clamp(76px,7vw,112px);height:clamp(76px,7vw,112px);margin:4px auto}
.bingo-ball.display-ball{width:clamp(130px,17vw,230px);height:clamp(130px,17vw,230px)}

.recent .bingo-ball{width:38px;height:38px;border-width:1px;box-shadow:0 0 5px var(--ball),0 0 12px color-mix(in srgb,var(--ball) 65%,transparent);text-shadow:0 0 3px #fff,0 0 7px var(--ball)}
.recent .bingo-ball .ball-letter{font-size:8px}.recent .bingo-ball .ball-number{font-size:15px}
.display-recent .bingo-ball{width:clamp(34px,3.2vw,54px);height:clamp(34px,3.2vw,54px)}
.display-recent .bingo-ball .ball-letter{font-size:7px}.display-recent .bingo-ball .ball-number{font-size:16px}

/* PLAYER — keep the card dominant; reduce everything around it by ~10px. */
#gameScreen .game-header,.game-header{align-items:center}
#gameScreen .game-header .small{font-size:9px}
#gameScreen .player-game-label{font-size:10px;padding:5px 8px}
#gameScreen .draw-panel{padding:7px;min-height:72px}
#gameScreen .draw-panel .small{font-size:9px}
#gameScreen .your-card-title{font-size:12px;margin-top:4px}
#gameScreen .game-actions{margin-top:4px}
#gameScreen .bingo-action{font-size:15px;min-height:40px;padding:7px}
#gameScreen .current{display:flex;align-items:center;justify-content:center;min-height:76px}

/* Mobile player: no page scroll; center the card and preserve the current/recent area. */
@media(max-width:700px){
  #gameScreen .draw-area{grid-template-columns:.75fr 1.25fr;align-items:stretch}
  #gameScreen .draw-panel{min-height:58px;padding:4px}
  #gameScreen .current{min-height:58px}
  #gameScreen .bingo-ball.hero{width:58px;height:58px}
  #gameScreen .recent .bingo-ball{width:31px;height:31px}
  #gameScreen .recent .bingo-ball .ball-letter{font-size:6px}
  #gameScreen .recent .bingo-ball .ball-number{font-size:12px}
  #gameScreen #myCard{justify-content:center;align-items:center}
  #gameScreen .bingo-board{width:min(100%,calc(100dvh - 218px));max-height:100%;}
  #gameScreen .bingo-table .cell{font-size:clamp(12px,4.2vw,18px)}
  #gameScreen .game-actions{width:min(100%,330px)}
}

/* PLAYER card-selection: keep the 10 x 5 selector centered and compact. */
.card-selection-grid{justify-items:stretch;align-items:center}
.ticket{box-shadow:0 0 0 1px rgba(0,245,255,.05),0 0 10px rgba(0,245,255,.06)}
.ticket:hover:not(.taken){border-color:var(--neon-cyan);box-shadow:0 0 8px rgba(0,245,255,.55),0 0 18px rgba(0,245,255,.15)}
.ticket.selected{outline-color:var(--neon-i);box-shadow:0 0 8px var(--neon-i),0 0 18px rgba(255,230,0,.25)}

/* ADMIN — controls and players are compact 150px rails; live game stays centered. */
@media(min-width:900px){
  .admin-wrap{width:min(98vw,1800px);padding:7px 10px}
  .admin-dashboard-grid{
    grid-template-columns:150px minmax(0,1fr) 150px !important;
    grid-template-rows:minmax(200px,1fr) minmax(108px,.52fr) 32px !important;
    gap:8px !important;
  }
  .admin-dashboard-grid>.card{padding:8px !important}
  .admin-control-panel,.admin-players-panel{text-align:center}
  .admin-control-panel .operator-status-head,.admin-control-panel .section-row,.admin-players-panel .section-row{justify-content:center;text-align:center}
  .admin-control-panel .operator-status-head{gap:5px;flex-direction:column}
  .admin-game-title{font-size:20px}
  .status-badge{font-size:10px;padding:5px 8px}
  .admin-control-buttons{grid-template-columns:1fr !important;gap:5px !important;margin-top:8px !important}
  .admin-control-buttons .btn{min-height:31px !important;font-size:10px !important;padding:5px 4px !important}
  .admin-control-panel #nextGameInfo{font-size:9px;line-height:1.25;padding:6px;margin:7px 0}
  .admin-live-panel{text-align:center}
  .admin-live-heading{justify-content:center;gap:12px}
  .admin-current-label{font-size:10px;margin-top:6px}
  .admin-current-number{display:flex;align-items:center;justify-content:center;height:120px;margin:0 !important}
  .admin-live-meta{gap:4px}
  .admin-live-meta>div{padding:5px}
  .admin-live-meta .small{font-size:8px}
  .admin-live-meta strong{font-size:10px}
  .admin-players-panel .section-row{flex-direction:column;gap:2px}
  .admin-players-panel h2{font-size:12px}
  .admin-players-panel .small{font-size:9px}
  .admin-player-scroll{padding:0 2px}
  .admin-player-scroll .player-row{padding:6px 2px !important;display:flex;flex-direction:column;gap:2px;align-items:center !important;justify-content:center !important}
  .admin-player-scroll .player-row strong{font-size:10px}
  .admin-player-scroll .player-row .small{font-size:8px}
  .admin-player-scroll .player-card-number{font-size:10px}
  .admin-settings-panel{font-size:11px}
  .admin-settings-panel h2{font-size:12px}
  .admin-settings-panel .settings-grid{gap:5px !important}
  .admin-settings-panel .input{font-size:10px !important;min-height:29px !important;padding:4px 6px !important}
  .admin-settings-panel .step-btn{height:29px;font-size:16px}
  .admin-settings-panel .small{font-size:8px}
  .admin-settings-panel .setting-note{min-height:44px;padding:6px}
  .admin-history-launch .btn{min-height:28px;font-size:10px;padding:4px 10px}
}

/* ADMIN live neon number and status accents */
.admin-current-number .bingo-ball{margin:auto}
.live-dot{color:var(--neon-g)!important;text-shadow:0 0 7px var(--neon-g),0 0 14px var(--neon-g)}
.status-playing{background:rgba(57,255,106,.08)!important;color:var(--neon-g);border:1px solid var(--neon-g);box-shadow:0 0 8px rgba(57,255,106,.35)}
.status-countdown,.status-registration{color:var(--neon-i);border:1px solid var(--neon-i);box-shadow:0 0 8px rgba(255,230,0,.25)}
.status-finished{color:var(--neon-o);border:1px solid var(--neon-o);box-shadow:0 0 8px rgba(255,138,24,.25)}

/* DISPLAY — luminous pool-ball presentation. */
.display-wrap{background:radial-gradient(circle at 50% 35%,rgba(0,245,255,.035),transparent 38%),#080808}
.display-title{text-shadow:0 0 8px rgba(0,245,255,.55),0 0 20px rgba(0,245,255,.25)}
.display-live-card{background:rgba(12,14,18,.88);border-color:#242b35}
.display-current{display:flex;align-items:center;justify-content:center;min-height:clamp(140px,18vw,240px);margin:4px 0!important}
.display-recent{align-items:center;min-height:62px}
.display-daily-summary{border:1px solid var(--neon-g)!important;box-shadow:0 0 9px rgba(57,255,106,.25),inset 0 0 15px rgba(57,255,106,.04)}
.display-daily-label{font-size:10px;color:#aaa;display:block;letter-spacing:.08em}
.display-result{margin-top:16px}
.display-result-title,.winner-modal-title{color:#fff;background:linear-gradient(90deg,var(--neon-cyan),var(--neon-i),var(--neon-n),var(--neon-g),var(--neon-o));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 16px rgba(0,245,255,.22);font-weight:950}
.display-winner-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#11151a,#08090c);border:1px solid #343a45;border-radius:20px;padding:16px;box-shadow:0 0 12px rgba(0,245,255,.12),0 0 28px rgba(255,230,0,.08)}
.display-winner-card:before{content:"";position:absolute;inset:0;border-radius:20px;padding:1px;background:linear-gradient(135deg,var(--neon-b),var(--neon-i),var(--neon-n),var(--neon-g),var(--neon-o));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.display-winner-name{font-size:clamp(20px,3vw,42px);font-weight:950;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.3)}
.display-winner-meta,.display-pattern{color:#c8d0da}

/* PLAYER winner modal: celebratory neon, still readable. */
#winnerModal .winner-modal-panel{background:radial-gradient(circle at 50% 0%,rgba(255,230,0,.12),transparent 38%),#101216;border-color:#303846;box-shadow:0 0 16px rgba(255,230,0,.25),0 20px 70px rgba(0,0,0,.8)}
.winner-modal-title{font-size:clamp(30px,6vw,58px);letter-spacing:.04em}
.winner-card{border:1px solid transparent;background:linear-gradient(#0d1015,#0d1015) padding-box,linear-gradient(135deg,var(--neon-b),var(--neon-i),var(--neon-n),var(--neon-g),var(--neon-o)) border-box;box-shadow:0 0 10px rgba(0,245,255,.12),0 0 22px rgba(255,230,0,.08)}
.winner-card h2{color:#fff;text-shadow:0 0 8px rgba(255,255,255,.3)}
.winner-number b{color:var(--neon-i);text-shadow:0 0 7px var(--neon-i),0 0 16px rgba(255,230,0,.55)}
.winner-pattern b{color:var(--neon-g);text-shadow:0 0 6px var(--neon-g)}
.winner-box{border-color:var(--neon-i);background:radial-gradient(circle at 50% 0%,rgba(255,230,0,.12),transparent 55%),#15130b;box-shadow:0 0 10px rgba(255,230,0,.4),0 0 25px rgba(255,230,0,.14)}

@media(max-width:700px){
  .bingo-ball.hero{width:58px;height:58px}
  .display-current{min-height:110px}
  .display-recent{min-height:44px}
  .display-winner-card{padding:10px}
}


/* Neon Bingo board palette */
.bingo-table th{border:1px solid rgba(255,255,255,.18);text-shadow:0 0 7px currentColor,0 0 14px currentColor}
.bingo-table th:nth-child(1){background:rgba(24,191,255,.13);color:var(--neon-b);box-shadow:0 0 9px rgba(24,191,255,.28),inset 0 0 12px rgba(24,191,255,.08)}
.bingo-table th:nth-child(2){background:rgba(255,230,0,.12);color:var(--neon-i);box-shadow:0 0 9px rgba(255,230,0,.28),inset 0 0 12px rgba(255,230,0,.08)}
.bingo-table th:nth-child(3){background:rgba(255,59,141,.12);color:var(--neon-n);box-shadow:0 0 9px rgba(255,59,141,.28),inset 0 0 12px rgba(255,59,141,.08)}
.bingo-table th:nth-child(4){background:rgba(57,255,106,.12);color:var(--neon-g);box-shadow:0 0 9px rgba(57,255,106,.28),inset 0 0 12px rgba(57,255,106,.08)}
.bingo-table th:nth-child(5){background:rgba(255,138,24,.12);color:var(--neon-o);box-shadow:0 0 9px rgba(255,138,24,.28),inset 0 0 12px rgba(255,138,24,.08)}
.bingo-table td:nth-child(1) .cell.marked{background:rgba(24,191,255,.18);border-color:var(--neon-b);box-shadow:0 0 8px var(--neon-b),inset 0 0 14px rgba(24,191,255,.2)}
.bingo-table td:nth-child(2) .cell.marked{background:rgba(255,230,0,.18);border-color:var(--neon-i);box-shadow:0 0 8px var(--neon-i),inset 0 0 14px rgba(255,230,0,.18);color:#fff}
.bingo-table td:nth-child(3) .cell.marked{background:rgba(255,59,141,.18);border-color:var(--neon-n);box-shadow:0 0 8px var(--neon-n),inset 0 0 14px rgba(255,59,141,.2)}
.bingo-table td:nth-child(4) .cell.marked{background:rgba(57,255,106,.18);border-color:var(--neon-g);box-shadow:0 0 8px var(--neon-g),inset 0 0 14px rgba(57,255,106,.2);color:#fff}
.bingo-table td:nth-child(5) .cell.marked{background:rgba(255,138,24,.18);border-color:var(--neon-o);box-shadow:0 0 8px var(--neon-o),inset 0 0 14px rgba(255,138,24,.2)}
.bingo-table .cell.free{color:#fff;border-color:#b8b8b8;box-shadow:0 0 7px rgba(255,255,255,.2)}
.winner-display-ball{display:flex;justify-content:center;align-items:center;margin:8px 0 12px}

/* Telebirr top-up */
.wallet-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid rgba(255,230,0,.55);border-radius:14px;background:linear-gradient(135deg,rgba(255,230,0,.10),rgba(0,0,0,.16));box-shadow:0 0 18px rgba(255,230,0,.12)}
#walletBalance{font-size:24px;color:#ffe600;text-shadow:0 0 10px rgba(255,230,0,.65)}
.deposit-panel{max-width:480px;width:calc(100% - 28px);position:relative}
.deposit-title{font-size:22px;font-weight:800;text-align:center;color:#ffe600;margin-bottom:12px;text-shadow:0 0 12px rgba(255,230,0,.55)}
.deposit-number-box{padding:16px;text-align:center;border:2px solid #ffe600;border-radius:14px;background:rgba(255,230,0,.07);box-shadow:0 0 22px rgba(255,230,0,.16);margin-bottom:12px}
.deposit-number{font-size:32px;font-weight:900;letter-spacing:2px;color:#fff;text-shadow:0 0 12px rgba(255,230,0,.9);margin-top:4px}
.deposit-note{font-size:13px;line-height:1.45;opacity:.85;margin:10px 0 14px;text-align:center}
.deposit-panel .input{width:100%;box-sizing:border-box;margin:6px 0}
.deposit-panel>.btn{width:100%;margin-top:8px}
.deposit-history{margin-top:14px;text-align:left;max-height:180px;overflow:auto}
.deposit-row{display:flex;justify-content:space-between;gap:8px;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.10);font-size:12px}
.deposit-row b{color:#ffe600}
@media(max-width:520px){.wallet-bar{align-items:stretch;flex-direction:column}.wallet-bar .btn{width:100%}.deposit-number{font-size:28px}}
.admin-payment-panel{grid-column:1/-1}.payment-list{max-height:260px;overflow:auto}.payment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid rgba(255,255,255,.10)}


/* Hierarchy v3 */
.top-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.notice-badge{display:inline-flex;min-width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:#ffd700;color:#111;font-weight:900}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0}.stat-grid>div{background:#111;border:1px solid #333;border-radius:12px;padding:14px}.stat-grid span{display:block;color:#aaa;font-size:12px;font-weight:800}.stat-grid b{display:block;font-size:22px;margin-top:6px}.admin-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.form-grid label{font-size:13px;color:#aaa;font-weight:800}.wallet-actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid #333;border-radius:10px;margin-top:10px}.history-table{width:100%;border-collapse:collapse;min-width:650px;background:#111}.history-table th,.history-table td{padding:10px;border-bottom:1px solid #333;text-align:left}.history-table th{background:#222;font-size:12px}.history-table tr:hover{background:#191919}.notice{border:1px solid #444;background:#111;border-radius:12px;padding:12px;margin:8px 0}.notice.unopened{border-color:#ffd700;box-shadow:0 0 18px rgba(255,215,0,.45)}.notice b{display:block;margin-bottom:5px}.notice small{color:#888}.clickable{cursor:pointer;border:1px solid #333;background:#111;border-radius:10px;padding:13px}.clickable:hover{background:#191919}.history-day{margin:10px 0}.history-day h3{margin:0 0 6px}.status-badge{padding:7px 11px;border-radius:999px;background:#333;font-weight:900}.hidden{display:none!important}@media(max-width:700px){.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-live-stats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.top-actions{justify-content:flex-end}.history-table{min-width:600px}}

/* ATM Bingo notification indicators */
.notice-badge{transition:transform .15s ease,box-shadow .15s ease}.notice-badge.notice-hot{animation:atmNoticePulse 1.15s infinite;box-shadow:0 0 8px rgba(255,215,0,.9),0 0 24px rgba(255,215,0,.55),0 0 42px rgba(255,215,0,.25)}
.cat-count{display:inline-flex;min-width:24px;height:24px;padding:0 7px;margin-left:5px;align-items:center;justify-content:center;border-radius:999px;background:#252525;color:#aaa;font-weight:900}.cat-count.hot{background:#ffd700;color:#111;box-shadow:0 0 8px rgba(255,215,0,.8),0 0 18px rgba(255,215,0,.35);animation:atmNoticePulse 1.15s infinite}.notification-cat{position:relative}
@keyframes atmNoticePulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.3)}}

/* ============================================================
   ATM BINGO — MOBILE GAME SAFETY PASS
   Keeps the live card proportional on narrow phones and prevents
   horizontal overflow/stacking collisions.
   ============================================================ */
@media (max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  #app:has(#gameScreen:not(.hidden)){width:100vw;max-width:100vw;overflow:hidden!important}
  #gameScreen{width:100vw!important;max-width:100vw!important;box-sizing:border-box!important}
  #gameScreen .draw-area{width:100%!important;min-width:0!important}
  #gameScreen .draw-panel{min-width:0!important;overflow:hidden!important}
  #gameScreen .draw-panel .current{white-space:nowrap!important;line-height:1!important}
  #gameScreen .recent-panel .recent{width:100%!important;min-width:0!important;display:flex!important;white-space:nowrap!important}
  #gameScreen .recent-panel .recent span{flex:0 0 auto!important}
  #gameScreen .bingo-wrap{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important}
  #gameScreen .bingo-board{width:min(100%,calc(100vw - 14px),calc(100dvh - 190px))!important;max-width:100%!important;max-height:100%!important;height:auto!important;aspect-ratio:1/1!important}
  #gameScreen .bingo-table{width:100%!important;height:100%!important;table-layout:fixed!important}
  #gameScreen .bingo-table th,#gameScreen .bingo-table .cell{width:20%!important;max-width:20%!important;overflow:hidden!important}
  #gameScreen .bingo-table .cell{font-size:clamp(12px,4.4vw,19px)!important;line-height:1!important}
  #gameScreen .game-actions{width:100%!important;max-width:340px!important}
  #gameScreen #gameMsg{max-width:calc(100vw - 14px)!important;overflow:auto!important}
}
@media (max-width:380px){
  #gameScreen .bingo-board{width:min(calc(100vw - 10px),calc(100dvh - 185px))!important}
  #gameScreen .bingo-table th{font-size:11px!important}
  #gameScreen .bingo-table .cell{font-size:12px!important}
  #gameScreen .draw-panel .current{font-size:30px!important}
  #gameScreen .recent-panel .recent span{font-size:8px!important;padding:2px 3px!important}
}

/* Final mobile gameplay containment */
@media (max-width:700px){
  body{margin:0!important;padding:0!important;min-width:0!important}
  .player-wrap{width:100%!important;max-width:100%!important;padding:6px!important;box-sizing:border-box!important}
  .player-wrap #app{width:100%!important;max-width:100%!important;min-width:0!important}
  .player-wrap .topbar{padding:8px!important;gap:6px!important}
  .player-wrap .top-actions{gap:4px!important}
  .player-wrap .top-actions .btn{padding:7px 8px!important;font-size:10px!important}
  #selectionScreen,#gameScreen{padding:8px!important;margin:6px 0!important;box-sizing:border-box!important;min-width:0!important}
  #gameScreen{overflow:hidden!important}
  #gameScreen .game-header{gap:5px!important;min-width:0!important}
  #gameScreen .draw-area{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:5px!important}
  #gameScreen .draw-panel{padding:6px!important;min-width:0!important;box-sizing:border-box!important}
  #gameScreen .draw-panel .current{font-size:clamp(28px,9vw,46px)!important;overflow:hidden!important;text-overflow:clip!important}
  #gameScreen .recent-panel .recent{gap:3px!important;overflow:hidden!important}
  #gameScreen .recent-panel .recent span{min-width:0!important;font-size:clamp(8px,2.5vw,13px)!important}
  #gameScreen .your-card-title{margin:7px 0 4px!important;font-size:16px!important}
  #gameScreen .bingo-wrap{padding:0!important;margin:0 auto!important}
  #gameScreen .bingo-board{width:min(100%,calc(100vw - 20px),calc(100dvh - 210px))!important;height:auto!important;aspect-ratio:1!important}
  #gameScreen .bingo-table th{height:auto!important;font-size:clamp(10px,3vw,14px)!important;padding:2px!important}
  #gameScreen .bingo-table .cell{height:auto!important;padding:0!important;font-size:clamp(11px,4vw,18px)!important;aspect-ratio:1!important}
  #gameScreen .game-actions{margin:6px auto!important}
  #gameScreen .game-actions .btn{width:100%!important;max-width:260px!important}
  .card-selection-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important}
  .card-selection-grid>*{min-width:0!important}
}
@media (max-width:380px){
  .player-wrap{padding:3px!important}
  #gameScreen{padding:5px!important}
  #gameScreen .draw-area{grid-template-columns:minmax(0,1fr)!important}
  #gameScreen .bingo-board{width:min(100%,calc(100vw - 12px),calc(100dvh - 235px))!important}
}

/* V10 pre-game draw visibility and payment controls */
.pregame-draw-area{margin:8px 0!important;display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:6px;align-items:stretch}
.pregame-draw-area .draw-panel{min-width:0}
@media(max-width:700px){.pregame-draw-area{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:4px}.pregame-draw-area .draw-panel{min-height:55px;padding:5px}.pregame-draw-area .current{font-size:clamp(28px,9vw,46px);min-height:58px}.pregame-draw-area .recent{max-height:28px;overflow:hidden;gap:2px}.pregame-draw-area .recent span{font-size:clamp(8px,2.5vw,13px);padding:3px 4px;flex:0 0 auto}}
@media(max-width:380px){.pregame-draw-area{grid-template-columns:1fr}.pregame-draw-area .recent{max-height:26px}}
textarea.input{resize:vertical;min-height:90px}

/* V12: draw panels belong only to the active game, never card selection. */
#selectionScreen .draw-area{display:none!important}

/* V13 player selection: never show live-draw panels before a card is confirmed. */
#selectionScreen .draw-area,#selectionScreen .pregame-draw-area,#selectionScreen #current,#selectionScreen #recent{display:none!important}
.selection-stake-bar{margin:8px 0;padding:10px 14px;border:1px solid #ffd600;border-radius:12px;background:linear-gradient(90deg,rgba(255,214,0,.08),rgba(255,214,0,.02));text-align:center;color:#aaa;font-size:11px;font-weight:900;letter-spacing:.08em;box-shadow:0 0 10px rgba(255,214,0,.08)}
.selection-stake-bar strong{color:#ffd600;font-size:18px;margin:0 4px;text-shadow:0 0 8px rgba(255,214,0,.45)}
.selection-stake-bar.stake-zero{border-color:#555;box-shadow:none}.selection-stake-bar.stake-zero strong{color:#ff657f;text-shadow:none}
@media(max-width:700px){.selection-stake-bar{margin:6px 0;padding:7px 8px;font-size:9px}.selection-stake-bar strong{font-size:15px}}


/* V13.1 final requested fixes */
.auth-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);margin:0!important;max-height:calc(100dvh - 24px);overflow:auto;z-index:20}
.recent-number{display:inline-flex!important;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px!important;border-radius:999px;background:#292929;border:1px solid #444;font-weight:900;font-size:14px!important;line-height:1!important}
@media(max-width:700px){
  .auth-card{width:min(94vw,480px);max-height:calc(100dvh - 16px);padding:16px!important}
  #gameScreen .recent-panel .recent{display:flex!important;flex-wrap:nowrap!important;overflow:hidden!important;gap:3px!important;min-width:0!important}
  #gameScreen .recent-number{flex:0 0 auto!important;min-width:28px!important;height:28px!important;padding:0 5px!important;font-size:11px!important}
  #gameScreen .draw-panel{min-width:0!important;overflow:hidden!important}
  #gameScreen .draw-panel .current{min-width:0!important;white-space:nowrap!important}
  #gameScreen .bingo-wrap,#gameScreen .bingo-board,#gameScreen .bingo-table{max-width:100%!important;min-width:0!important}
}

/* ============================================================
   FINAL PLAYER GAME RESPONSIVE LAYOUT
   Keeps the desktop appearance intact and gives phones the same
   visual hierarchy without overlapping/fixed-grid collisions.
   ============================================================ */
@media (max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  body:has(#gameScreen:not(.hidden)){height:auto!important;min-height:100dvh!important;overflow-x:hidden!important;overflow-y:auto!important}

  .player-wrap{width:100%!important;max-width:100%!important;padding:8px!important;margin:0 auto!important}
  #app:has(#gameScreen:not(.hidden)){width:100%!important;max-width:100%!important;height:auto!important;min-height:100dvh!important;display:block!important;overflow:visible!important}

  /* Keep the player header compact but let its controls wrap naturally. */
  #app:has(#gameScreen:not(.hidden))>.topbar{
    width:100%!important;height:auto!important;min-height:48px!important;
    margin:0 0 8px!important;padding:8px 10px!important;
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    flex-wrap:wrap!important;gap:7px!important;
  }
  #app:has(#gameScreen:not(.hidden))>.topbar .top-actions{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;
    flex-wrap:wrap!important;gap:5px!important;min-width:0!important;
  }
  #app:has(#gameScreen:not(.hidden))>.topbar .top-actions .btn{
    width:auto!important;min-width:0!important;padding:7px 9px!important;font-size:10px!important;
  }

  /* The game is a normal vertical flow on phones. This removes the
     conflicting grid-row rules that previously caused overlap. */
  #gameScreen{
    width:100%!important;max-width:100%!important;min-width:0!important;
    height:auto!important;min-height:0!important;margin:0!important;padding:10px!important;
    display:flex!important;flex-direction:column!important;gap:0!important;
    overflow:visible!important;border-radius:12px!important;
  }

  #gameScreen .game-header{
    order:1!important;width:100%!important;min-width:0!important;height:auto!important;
    margin:0 0 8px!important;padding:5px 6px!important;
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    gap:8px!important;
  }
  #gameScreen .game-header>div:first-child{min-width:0!important;overflow:hidden!important}
  #gameScreen .game-header .small{font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  #gameScreen .player-game-label{flex:0 0 auto!important;font-size:10px!important;padding:5px 8px!important}

  #gameScreen #countdownBox{
    order:2!important;width:100%!important;min-height:0!important;margin:0 0 8px!important;
    padding:7px!important;border-radius:10px!important;
  }
  #gameScreen #countdownBox .small{font-size:8px!important}
  #gameScreen #countdownBox #countdownValue{font-size:clamp(28px,9vw,48px)!important;line-height:1!important}

  #gameScreen .draw-area{
    order:3!important;width:100%!important;min-width:0!important;height:auto!important;
    display:grid!important;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
    gap:6px!important;margin:0 0 8px!important;padding:0!important;
  }
  #gameScreen .draw-panel{
    min-width:0!important;width:100%!important;min-height:74px!important;height:auto!important;
    padding:7px!important;overflow:hidden!important;border-radius:10px!important;
  }
  #gameScreen .draw-panel .small{font-size:8px!important;white-space:nowrap!important}
  #gameScreen .draw-panel .current{
    min-width:0!important;min-height:54px!important;height:auto!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    font-size:clamp(34px,10vw,52px)!important;line-height:1!important;white-space:nowrap!important;
  }
  #gameScreen .draw-panel .bingo-ball.hero{width:58px!important;height:58px!important}

  /* Recent numbers are numbers only and remain in one contained row. */
  #gameScreen .recent-panel .recent{
    width:100%!important;min-width:0!important;max-width:100%!important;height:34px!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    flex-wrap:nowrap!important;gap:3px!important;overflow:hidden!important;
  }
  #gameScreen .recent-panel .recent-number{
    flex:0 0 auto!important;min-width:27px!important;width:27px!important;height:27px!important;
    padding:0!important;font-size:10px!important;line-height:27px!important;
  }

  /* IMPORTANT: title and card now have separate flow positions. */
  #gameScreen .your-card-title{
    order:4!important;width:100%!important;margin:2px 0 5px!important;padding:0!important;
    font-size:12px!important;line-height:1.2!important;text-align:center!important;
  }
  #gameScreen #myCard{
    order:5!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;
    margin:0 auto!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;
    overflow:visible!important;
  }
  #gameScreen #myCard .bingo-board{
    flex:0 1 auto!important;width:min(100%,calc(100vw - 36px))!important;max-width:560px!important;
    height:auto!important;max-height:none!important;margin:0 auto!important;aspect-ratio:1/1!important;
  }
  #gameScreen #myCard .bingo-table{
    width:100%!important;height:auto!important;margin:0 auto!important;table-layout:fixed!important;
    border-spacing:2px!important;
  }
  #gameScreen #myCard .bingo-table th{
    width:20%!important;height:auto!important;padding:3px!important;
    font-size:clamp(11px,3.5vw,18px)!important;line-height:1.1!important;
  }
  #gameScreen #myCard .bingo-table td{width:20%!important;padding:0!important}
  #gameScreen #myCard .bingo-table .cell{
    width:100%!important;height:auto!important;aspect-ratio:1/1!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    font-size:clamp(12px,4.6vw,22px)!important;line-height:1!important;border-radius:5px!important;
  }
  #gameScreen #myCard .bingo-table .cell.free{font-size:clamp(8px,2.4vw,12px)!important}

  #gameScreen .game-actions{
    order:6!important;width:100%!important;max-width:340px!important;margin:9px auto 0!important;
  }
  #gameScreen .game-actions .btn{
    width:100%!important;min-height:42px!important;padding:9px!important;font-size:15px!important;
  }
  #gameScreen #gameMsg{order:7!important;width:100%!important;max-width:100%!important;margin-top:7px!important}

  /* Short phones: reduce spacing, never force the card into an overlapping row. */
  @media (max-height:700px){
    .player-wrap{padding:5px!important}
    #app:has(#gameScreen:not(.hidden))>.topbar{margin-bottom:5px!important;padding:6px 8px!important}
    #gameScreen{padding:7px!important}
    #gameScreen .game-header{margin-bottom:5px!important}
    #gameScreen .draw-area{margin-bottom:5px!important}
    #gameScreen .draw-panel{min-height:62px!important;padding:5px!important}
    #gameScreen .draw-panel .current{min-height:44px!important;font-size:32px!important}
    #gameScreen .recent-panel .recent{height:29px!important}
    #gameScreen .recent-panel .recent-number{width:24px!important;min-width:24px!important;height:24px!important;line-height:24px!important;font-size:9px!important}
    #gameScreen .your-card-title{margin:1px 0 3px!important}
    #gameScreen .game-actions{margin-top:6px!important}
  }

  /* Very narrow phones: stack only the two draw panels, not the Bingo card. */
  @media (max-width:360px){
    #gameScreen .draw-area{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)!important;gap:4px!important}
    #gameScreen #myCard .bingo-board{width:min(100%,calc(100vw - 28px))!important}
    #gameScreen #myCard .bingo-table{border-spacing:1px!important}
    #gameScreen #myCard .bingo-table .cell{font-size:12px!important}
    #gameScreen #myCard .bingo-table .cell.free{font-size:8px!important}
  }
}

/* ============================================================
   V14 HARD MOBILE GAME FIX
   The live game is deliberately a normal vertical flow on phones.
   This final block supersedes all earlier experimental grid/viewport
   rules so the card can never share a row with the draw panels.
   ============================================================ */
@media (max-width:700px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  body{min-height:100dvh!important;height:auto!important;overflow-y:auto!important}

  /* Selection screen: absolutely no live-draw/game elements visible. */
  #selectionScreen{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:visible!important}
  #selectionScreen .draw-area,#selectionScreen .pregame-draw-area,
  #selectionScreen #current,#selectionScreen #recent{display:none!important}
  .card-selection-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important;width:100%!important}
  .card-selection-grid .ticket{min-width:0!important;width:100%!important;padding:10px 2px!important;font-size:12px!important}

  /* Active game: no grid rows, no fixed viewport and no sticky draw panels. */
  #app:has(#gameScreen:not(.hidden)){height:auto!important;min-height:100dvh!important;display:block!important;overflow:visible!important}
  #app:has(#gameScreen:not(.hidden))>.topbar{
    position:relative!important;top:auto!important;flex:none!important;width:100%!important;height:auto!important;min-height:48px!important;
    margin:0 0 7px!important;padding:7px 8px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap!important;gap:6px!important;
  }
  #gameScreen{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    position:relative!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;
    margin:0!important;padding:9px!important;overflow:visible!important;border:1px solid #333!important;border-radius:12px!important;background:#151515!important;
  }
  #gameScreen .game-header{
    order:1!important;position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:100%!important;height:auto!important;
    display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:7px!important;
    margin:0 0 8px!important;padding:6px 7px!important;border:1px solid #292929!important;border-radius:8px!important;background:#151515!important;
  }
  #gameScreen #countdownBox{
    order:2!important;position:relative!important;width:100%!important;margin:0 0 8px!important;min-height:0!important;padding:7px!important;
  }
  #gameScreen .draw-area{
    order:3!important;position:relative!important;top:auto!important;left:auto!important;right:auto!important;z-index:auto!important;
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr)!important;gap:6px!important;
    width:100%!important;height:auto!important;min-height:0!important;margin:0 0 8px!important;padding:0!important;background:transparent!important;border:0!important;
  }
  #gameScreen .draw-panel{
    position:relative!important;width:100%!important;min-width:0!important;min-height:74px!important;height:auto!important;
    padding:7px!important;margin:0!important;overflow:hidden!important;border-radius:10px!important;
  }
  #gameScreen .draw-panel .small{font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  #gameScreen .draw-panel .current{min-width:0!important;min-height:54px!important;height:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:clamp(30px,10vw,52px)!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important}
  #gameScreen .draw-panel .bingo-ball.hero{width:56px!important;height:56px!important}
  #gameScreen .recent-panel .recent{
    width:100%!important;max-width:100%!important;height:34px!important;min-width:0!important;max-height:none!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:nowrap!important;gap:3px!important;overflow:hidden!important;white-space:nowrap!important;
  }
  #gameScreen .recent-panel .recent-number{flex:0 0 27px!important;width:27px!important;min-width:27px!important;height:27px!important;padding:0!important;line-height:27px!important;font-size:10px!important}

  /* Card title and card are deliberately separate flex items. */
  #gameScreen .your-card-title{
    order:4!important;position:relative!important;width:100%!important;height:auto!important;min-height:0!important;
    margin:1px 0 5px!important;padding:0!important;text-align:center!important;font-size:15px!important;line-height:1.2!important;
  }
  #gameScreen #myCard{
    order:5!important;position:relative!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;
    margin:0!important;padding:0!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;overflow:visible!important;
  }
  #gameScreen #myCard .bingo-board{
    display:block!important;width:min(100%,calc(100vw - 38px))!important;max-width:560px!important;height:auto!important;max-height:none!important;
    margin:0 auto!important;aspect-ratio:auto!important;flex:0 1 auto!important;
  }
  #gameScreen #myCard .bingo-table{
    display:table!important;width:100%!important;height:auto!important;margin:0 auto!important;table-layout:fixed!important;border-spacing:2px!important;
  }
  #gameScreen #myCard .bingo-table th{width:20%!important;padding:3px!important;font-size:clamp(11px,3.4vw,18px)!important;line-height:1.1!important}
  #gameScreen #myCard .bingo-table td{width:20%!important;padding:0!important}
  #gameScreen #myCard .bingo-table .cell{
    width:100%!important;height:auto!important;aspect-ratio:1/1!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;
    font-size:clamp(12px,4.5vw,22px)!important;line-height:1!important;border-radius:5px!important;overflow:hidden!important;
  }
  #gameScreen #myCard .bingo-table .cell.free{font-size:clamp(8px,2.3vw,12px)!important}
  #gameScreen .game-actions{
    order:6!important;position:relative!important;width:min(100%,340px)!important;max-width:340px!important;margin:9px auto 0!important;padding:0!important;
  }
  #gameScreen .game-actions .btn{width:100%!important;min-height:44px!important;padding:9px!important;font-size:15px!important}
  #gameScreen #gameMsg{order:7!important;position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%!important;max-width:100%!important;margin:7px 0 0!important;overflow:visible!important}
}

@media(max-width:380px){
  .player-wrap{padding:4px!important}
  #gameScreen{padding:7px!important}
  #gameScreen .draw-area{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)!important;gap:4px!important}
  #gameScreen .draw-panel{min-height:66px!important;padding:5px!important}
  #gameScreen .draw-panel .current{min-height:48px!important;font-size:30px!important}
  #gameScreen .recent-panel .recent{height:29px!important}
  #gameScreen .recent-panel .recent-number{width:24px!important;min-width:24px!important;height:24px!important;line-height:24px!important;font-size:9px!important}
  #gameScreen #myCard .bingo-board{width:min(100%,calc(100vw - 28px))!important}
  #gameScreen #myCard .bingo-table{border-spacing:1px!important}
  #gameScreen #myCard .bingo-table .cell{font-size:12px!important}
  #gameScreen #myCard .bingo-table .cell.free{font-size:8px!important}
}
/* V15 CRITICAL VISIBILITY FIX: hidden screen must beat all responsive display rules.
   Earlier mobile rules used display:... !important on #selectionScreen/#gameScreen,
   which had higher specificity than .hidden and caused BOTH screens to render. */
#app #selectionScreen.hidden,
#app #gameScreen.hidden,
#app #selectionScreen[hidden],
#app #gameScreen[hidden]{
  display:none!important;
}


/* ============================================================
   V16 PLAYER BINGO CARD — REAL RESPONSIVE CARD
   The old table layout was the source of the compressed/clipped
   numbers on phones. Player cards now use a true 6x6 CSS grid:
   B I N G O + 25 cells. This gives every number its own stable,
   tappable square and keeps the card visually identical in shape
   across phone and desktop.
   ============================================================ */
.bingo-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  grid-template-rows:auto repeat(5,minmax(0,1fr));
  gap:5px;
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
}
.bingo-grid-head{
  min-width:0;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  font-size:clamp(14px,4vw,24px);
  font-weight:950;
  line-height:1;
  text-align:center;
  text-shadow:0 0 7px currentColor,0 0 14px currentColor;
}
.bingo-grid-head:nth-child(1){background:rgba(24,191,255,.13);color:var(--neon-b);box-shadow:0 0 9px rgba(24,191,255,.28),inset 0 0 12px rgba(24,191,255,.08)}
.bingo-grid-head:nth-child(2){background:rgba(255,230,0,.12);color:var(--neon-i);box-shadow:0 0 9px rgba(255,230,0,.28),inset 0 0 12px rgba(255,230,0,.08)}
.bingo-grid-head:nth-child(3){background:rgba(255,59,141,.12);color:var(--neon-n);box-shadow:0 0 9px rgba(255,59,141,.28),inset 0 0 12px rgba(255,59,141,.08)}
.bingo-grid-head:nth-child(4){background:rgba(57,255,106,.12);color:var(--neon-g);box-shadow:0 0 9px rgba(57,255,106,.28),inset 0 0 12px rgba(57,255,106,.08)}
.bingo-grid-head:nth-child(5){background:rgba(255,138,24,.12);color:var(--neon-o);box-shadow:0 0 9px rgba(255,138,24,.28),inset 0 0 12px rgba(255,138,24,.08)}
.bingo-grid .cell{
  width:100%;
  min-width:0;
  aspect-ratio:1/1;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #555;
  border-radius:6px;
  background:#202020;
  color:#fff;
  font-size:clamp(15px,4.2vw,27px);
  font-weight:900;
  line-height:1;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
  touch-action:manipulation;
}
.bingo-grid .cell.free{background:#444;color:#fff;border-color:#888;font-size:clamp(8px,2vw,13px);cursor:default}
.bingo-grid .cell.win-cell{box-shadow:0 0 0 3px #ffd700 inset,0 0 0 2px #ffd700;background:#5b4500}
.bingo-grid .cell.win-cell.marked{background:#ffd700;color:#000}
.bingo-grid .cell.marked{background:#2b2410}
.bingo-grid .cell:nth-child(5n+6).marked{border-color:var(--neon-b);box-shadow:0 0 8px var(--neon-b),inset 0 0 14px rgba(24,191,255,.18)}
.bingo-grid .cell:nth-child(5n+7).marked{border-color:var(--neon-i);box-shadow:0 0 8px var(--neon-i),inset 0 0 14px rgba(255,230,0,.18)}
.bingo-grid .cell:nth-child(5n+8).marked{border-color:var(--neon-n);box-shadow:0 0 8px var(--neon-n),inset 0 0 14px rgba(255,59,141,.18)}
.bingo-grid .cell:nth-child(5n+9).marked{border-color:var(--neon-g);box-shadow:0 0 8px var(--neon-g),inset 0 0 14px rgba(57,255,106,.18)}
.bingo-grid .cell:nth-child(5n+10).marked{border-color:var(--neon-o);box-shadow:0 0 8px var(--neon-o),inset 0 0 14px rgba(255,138,24,.18)}

@media(max-width:700px){
  #gameScreen #myCard .bingo-board{
    width:min(100%,340px)!important;
    max-width:340px!important;
    margin:0 auto!important;
  }
  #gameScreen #myCard .bingo-grid{
    width:100%!important;
    grid-template-rows:38px repeat(5,minmax(0,1fr))!important;
    gap:3px!important;
  }
  #gameScreen #myCard .bingo-grid-head{
    min-height:0!important;
    border-radius:7px!important;
    font-size:15px!important;
  }
  #gameScreen #myCard .bingo-grid .cell{
    min-height:0!important;
    aspect-ratio:1/1!important;
    border-radius:5px!important;
    font-size:17px!important;
  }
  #gameScreen #myCard .bingo-grid .cell.free{font-size:9px!important}
  #gameScreen .your-card-title{font-size:15px!important;margin:4px 0 6px!important}
  #gameScreen .game-actions{max-width:260px!important;margin-top:10px!important}
  #gameScreen .game-actions .btn{min-height:42px!important;font-size:15px!important}
  /* Winner/preview cards use the same clean grid on phones. */
  .winner-card .bingo-board,.preview-card .bingo-board{width:min(100%,340px)!important;max-width:340px!important}
  .winner-card .bingo-grid,.preview-card .bingo-grid{gap:3px!important}
  .winner-card .bingo-grid-head,.preview-card .bingo-grid-head{min-height:30px!important;font-size:13px!important}
  .winner-card .bingo-grid .cell,.preview-card .bingo-grid .cell{font-size:14px!important;border-radius:5px!important}
  .winner-card .bingo-grid .cell.free,.preview-card .bingo-grid .cell.free{font-size:8px!important}
}
@media(max-width:380px){
  #gameScreen #myCard .bingo-board{width:min(100%,310px)!important;max-width:310px!important}
  #gameScreen #myCard .bingo-grid{grid-template-rows:34px repeat(5,minmax(0,1fr))!important;gap:2px!important}
  #gameScreen #myCard .bingo-grid .cell{font-size:15px!important}
  #gameScreen #myCard .bingo-grid .cell.free{font-size:8px!important}
}

/* ============================================================
   V17 — PLAYER CARD HARD RESET
   The player card renderer uses .bingo-grid only.  Older versions
   combined .bingo-table + .bingo-grid, and legacy table rules had
   higher selector specificity that could collapse the grid into a
   single vertical column on phones.  These rules intentionally use
   the grid-only selector and appear last in the stylesheet.
   ============================================================ */
#gameScreen #myCard .bingo-board{
  width:min(100%, 360px)!important;
  max-width:360px!important;
  margin:0 auto!important;
  padding:0!important;
  box-sizing:border-box!important;
}
#gameScreen #myCard .bingo-grid{
  display:grid!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:34px repeat(5,minmax(0,1fr))!important;
  gap:4px!important;
}
#gameScreen #myCard .bingo-grid-head{
  width:auto!important;
  min-width:0!important;
  min-height:34px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:7px!important;
  font-size:16px!important;
  line-height:1!important;
}
#gameScreen #myCard .bingo-grid .cell{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #555!important;
  border-radius:7px!important;
  background:#202020!important;
  color:#fff!important;
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  -webkit-tap-highlight-color:transparent!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}
#gameScreen #myCard .bingo-grid .cell.free{
  background:#444!important;
  color:#fff!important;
  border-color:#888!important;
  font-size:10px!important;
  cursor:default!important;
}
#gameScreen #myCard .bingo-grid .cell.marked{
  background:#2b2410!important;
}
#gameScreen #myCard .bingo-grid .cell.win-cell{
  box-shadow:0 0 0 3px #ffd700 inset,0 0 0 2px #ffd700!important;
  background:#5b4500!important;
}
#gameScreen #myCard .bingo-grid .cell.win-cell.marked{
  background:#ffd700!important;
  color:#000!important;
}

@media(max-width:700px){
  #gameScreen #myCard .bingo-board{
    width:min(100%, 330px)!important;
    max-width:330px!important;
  }
  #gameScreen #myCard .bingo-grid{
    grid-template-rows:32px repeat(5,minmax(0,1fr))!important;
    gap:4px!important;
  }
  #gameScreen #myCard .bingo-grid-head{
    height:32px!important;
    min-height:32px!important;
    font-size:15px!important;
  }
  #gameScreen #myCard .bingo-grid .cell{
    font-size:17px!important;
    border-radius:6px!important;
  }
  #gameScreen #myCard .bingo-grid .cell.free{font-size:9px!important}
}

@media(max-width:380px){
  #gameScreen #myCard .bingo-board{
    width:min(100%, 300px)!important;
    max-width:300px!important;
  }
  #gameScreen #myCard .bingo-grid{
    grid-template-rows:29px repeat(5,minmax(0,1fr))!important;
    gap:3px!important;
  }
  #gameScreen #myCard .bingo-grid-head{
    height:29px!important;
    min-height:29px!important;
    font-size:14px!important;
  }
  #gameScreen #myCard .bingo-grid .cell{font-size:15px!important}
  #gameScreen #myCard .bingo-grid .cell.free{font-size:8px!important}
}


/* V18: recent drawn numbers are colored balls; number only, no B/I/N/G/O letter. */
#gameScreen .recent-panel .recent{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;padding:4px 2px!important;scrollbar-width:none!important;min-height:50px!important}
#gameScreen .recent-panel .recent::-webkit-scrollbar{display:none}
#gameScreen .recent-panel .recent .recent-ball{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;max-width:42px!important;max-height:42px!important;border-width:2px!important}
#gameScreen .recent-panel .recent .recent-ball .ball-letter{display:none!important}
#gameScreen .recent-panel .recent .recent-ball .ball-number{font-size:19px!important;font-weight:950!important;line-height:1!important}
@media(max-width:700px){#gameScreen .recent-panel .recent{gap:7px!important;min-height:46px!important}#gameScreen .recent-panel .recent .recent-ball{width:39px!important;height:39px!important;min-width:39px!important;min-height:39px!important;max-width:39px!important;max-height:39px!important}#gameScreen .recent-panel .recent .recent-ball .ball-number{font-size:17px!important}}
@media(max-width:380px){#gameScreen .recent-panel .recent{gap:5px!important}#gameScreen .recent-panel .recent .recent-ball{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important}#gameScreen .recent-panel .recent .recent-ball .ball-number{font-size:16px!important}}
/* V20 clean control-center navigation */
.menu-trigger{min-width:44px;font-size:1.05rem;font-weight:800}
.control-drawer{position:fixed;inset:0;z-index:1000;pointer-events:none}
.control-drawer.open{pointer-events:auto}
.control-drawer .drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .18s}
.control-drawer.open .drawer-backdrop{opacity:1}
.control-drawer .drawer-panel{position:absolute;top:0;bottom:0;left:0;width:min(340px,88vw);background:var(--panel,#fff);padding:22px;box-shadow:8px 0 30px rgba(0,0,0,.2);transform:translateX(-105%);transition:transform .2s;overflow:auto}
.control-drawer.open .drawer-panel{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.drawer-nav{display:grid;gap:9px}.drawer-nav button{width:100%;text-align:left}
.compact-section{overflow:hidden}.compact-section>summary{cursor:pointer;list-style:none;font-weight:800;font-size:1.05rem;padding:2px}.compact-section>summary::-webkit-details-marker{display:none}.compact-section>summary:after{content:'+';float:right;font-size:1.3rem}.compact-section[open]>summary:after{content:'−'}.compact-section>summary+*{margin-top:16px}
.topbar{position:relative}.topbar .topbar-left,.topbar .topbar-right{display:flex;align-items:center;gap:10px}.topbar .topbar-right{justify-content:flex-end;flex-wrap:wrap}
@media(max-width:640px){.control-drawer .drawer-panel{width:min(320px,90vw)}.topbar{gap:10px}.topbar .topbar-right{gap:6px}.topbar .topbar-right .btn{min-height:42px}.topbar .menu-trigger{order:-1}.compact-section{margin-bottom:12px}.compact-section>summary{padding:4px 0}}

/* Admin live game status */
.admin-live-game{margin-top:10px}.admin-live-game h3{margin:2px 0 0;font-size:22px}.admin-live-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:10px 0}.admin-live-stats>div{padding:10px;min-width:0}.admin-live-stats span{font-size:10px;line-height:1.2;white-space:nowrap}.admin-live-stats b{font-size:clamp(15px,1.55vw,21px);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.last-winner-stat small{display:block;margin-top:3px;color:#aaa;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-players-table{min-width:520px}.live-players-table th,.live-players-table td{padding:9px 10px}.status-badge.status-registration,.status-badge.status-countdown{background:#444}.status-badge.status-playing{background:#174d1d}.status-badge.status-paused{background:#5b4500}.status-badge.status-finished{background:#4a3500}

.menu-action{display:flex!important;align-items:center;justify-content:space-between;gap:10px}.menu-count{display:inline-flex;min-width:25px;height:25px;padding:0 7px;align-items:center;justify-content:center;border-radius:999px;background:#252525;color:#aaa;font-weight:900}.menu-count.hot{background:#ffd700;color:#111;box-shadow:0 0 8px rgba(255,215,0,.8),0 0 18px rgba(255,215,0,.35);animation:atmNoticePulse 1.15s infinite}

/* V29 compact live-game money summary */
.game-prize-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0;padding:8px 8px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(255,255,255,.035);overflow:hidden}
.game-prize-bar span{display:flex;justify-content:center;gap:5px;align-items:center;min-width:0;font-size:10px;letter-spacing:.03em;color:var(--muted,#9aa);white-space:nowrap}
.game-prize-bar b{font-size:14px;color:inherit;white-space:nowrap}
.player-name-line{margin-top:2px}
@media(max-width:600px){.game-prize-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:7px 4px}.game-prize-bar span{font-size:9px;gap:3px}.game-prize-bar b{font-size:12px}}

/* Clean-install V2 fixes: keep desktop dashboard stats in one row. */
@media(min-width:701px){.master-main-stats,.admin-main-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.master-main-stats>div,.admin-main-stats>div{min-width:0;padding:11px}.master-main-stats span,.admin-main-stats span{font-size:11px;white-space:nowrap}.master-main-stats b,.admin-main-stats b{font-size:19px;white-space:nowrap}}

/* V2.2: keep the five primary Master/Admin statistics on one row on normal screens. */
@media(min-width:601px){
  .master-main-stats,.admin-main-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important}
  .master-main-stats>div,.admin-main-stats>div{min-width:0}
  .master-main-stats span,.admin-main-stats span{font-size:10px;white-space:nowrap}
  .master-main-stats b,.admin-main-stats b{font-size:18px;white-space:nowrap}
}
@media(max-width:600px){
  .master-main-stats,.admin-main-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:700px){
 .master-general-live .admin-live-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
