:root{
  --za-bg-top:#0b1220;
  --za-bg-bottom:#111827;
  --za-panel:#1d4ed8;
  --za-panel-2:#173b82;
  --za-shadow:0 12px 30px rgba(0,0,0,.24);
  --za-line:rgba(148,163,184,.24);
  --za-text-light:#eef6ff;
  --za-card:#fff8e8;
  --za-card-2:#ffeec3;
  --za-gold:#ffd84d;
  --za-gold-2:#ffb300;
  --za-green:#46d85f;
  --za-green-2:#17a83c;
  --za-purple:#8f4bff;
  --za-purple-2:#371679;
  --b:#1493ff;
  --b-dark:#0b5fd1;
  --i:#ff3b30;
  --i-dark:#c81e1e;
  --n:#00c853;
  --n-dark:#0a8f3d;
  --g:#ffc107;
  --g-dark:#d18a00;
  --o:#8a3ffc;
  --o-dark:#5a1fc9;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  padding:0;
  height:100%;
  overflow:hidden;
  background:
    radial-gradient(circle at top left, rgba(56,189,248,.08), transparent 26%),
    radial-gradient(circle at top right, rgba(29,78,216,.10), transparent 22%),
    linear-gradient(180deg,var(--za-bg-top) 0%,var(--za-bg-bottom) 100%);
  color:#fff;
  font-family:Roboto,Arial,sans-serif;
}

body{
  display:flex;
  justify-content:center;
}

button{
  font:inherit;
  border:none;
  cursor:pointer;
  transition:.15s transform ease,.2s opacity ease,.2s background ease,.2s box-shadow ease,.2s filter ease;
}

button:active{
  transform:translateY(2px);
}

button:disabled{
  cursor:default;
}

img{
  max-width:100%;
  display:block;
}

body.game-loading .app-shell{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

body.game-ready .app-shell{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.app-shell{
  position:relative;
  z-index:1;
  width:100%;
  max-width:520px;
  height:100vh;
  padding:10px 8px 6px;
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  gap:8px;
  transition:opacity .25s ease, visibility .25s ease;
}

/* topo */
.bingo-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:0 2px;
}

.bingo-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.bingo-brand-mark{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:transparent;
  overflow:hidden;
  flex-shrink:0;
}

.bingo-brand-mark img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.bingo-kicker{
  font-size:11px;
  color:#b7cff5;
  margin-bottom:3px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}

h1,h2{
  margin:0;
  line-height:1;
}

h1{
  font-size:20px;
  color:#fff;
  text-shadow:0 2px 0 rgba(0,0,0,.18);
}

h2{
  font-size:18px;
  color:#fff;
}

.ghost-btn{
  background:linear-gradient(180deg,#ffffff,#dcecff);
  color:#164a8c;
  padding:10px 12px;
  border-radius:14px;
  border:2px solid rgba(255,255,255,.55);
  box-shadow:0 4px 0 rgba(19,71,137,.25);
  font-weight:900;
}

.menu-btn{
  min-width:46px;
  font-size:20px;
}

/* painéis */
.draw-panel,.panel{
  background:
    radial-gradient(circle at top right, rgba(56,189,248,.12), transparent 28%),
    linear-gradient(180deg,var(--za-panel) 0%,var(--za-panel-2) 100%);
  border:1px solid var(--za-line);
  box-shadow:var(--za-shadow);
}

.draw-panel{
  position:relative;
  z-index:1;
  border-radius:22px;
  padding:8px 10px;
}

.draw-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  align-items:stretch;
}

.draw-side-label{
  font-size:11px;
  font-weight:900;
  color:#eaf6ff;
  margin:0 0 4px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.draw-current-side,
.draw-history-side{
  min-width:0;
}

.draw-lane{
  position:relative;
  height:76px;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(180deg,#f7fbff 0%,#e8f0f8 100%);
  border:2px solid rgba(255,255,255,.6);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.75),
    inset 0 -8px 16px rgba(17,71,128,.08);
}

.draw-lane.compact{
  height:68px;
}

.ball-roll{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  left:-70px;
  right:auto;
}

.current-ball{
  --ball-main:#ffd84d;
  --ball-dark:#ffb300;
  width:48px;
  height:48px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:18px;
  font-weight:900;
  color:#111827;
  position:relative;
  isolation:isolate;
  border:2px solid rgba(255,255,255,.7);
  background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--ball-main) 78%, white 22%) 0%, var(--ball-main) 58%, var(--ball-dark) 100%);
  box-shadow:
    inset 0 -4px 8px rgba(0,0,0,.22),
    inset 0 2px 3px rgba(255,255,255,.18),
    0 4px 10px rgba(0,0,0,.18);
  text-shadow:none;
}

.current-ball::before{
  content:"";
  position:absolute;
  width:64%;
  height:64%;
  border-radius:999px;
  background:radial-gradient(circle at 35% 30%, #ffffff 0%, #f4f7fb 100%);
  box-shadow:
    inset 0 -4px 8px rgba(0,0,0,.22),
    inset 0 2px 3px rgba(255,255,255,.18),
    0 4px 10px rgba(0,0,0,.18);
  z-index:-1;
}

.current-ball::after{
  content:"";
  position:absolute;
  top:8px;
  left:11px;
  width:11px;
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  transform:rotate(-28deg);
  filter:blur(.2px);
  opacity:.95;
}

.current-ball.empty{
  background:radial-gradient(circle at 35% 30%, #edf3f9 0%, #d7e2ef 58%, #bac8da 100%);
  color:#61738f;
}

.current-ball.empty::before{
  background:radial-gradient(circle at 35% 30%, #ffffff 0%, #f0f4f8 100%);
}

.current-ball.ball-b{--ball-main:var(--b);--ball-dark:var(--b-dark)}
.current-ball.ball-i{--ball-main:var(--i);--ball-dark:var(--i-dark)}
.current-ball.ball-n{--ball-main:var(--n);--ball-dark:var(--n-dark)}
.current-ball.ball-g{--ball-main:var(--g);--ball-dark:var(--g-dark)}
.current-ball.ball-o{--ball-main:var(--o);--ball-dark:var(--o-dark)}

.ball-roll.is-rolling{
  animation:ballRollFlow 4000ms cubic-bezier(.22,.9,.3,1) forwards;
}

@keyframes ballRollFlow{
  0%{
    left:-70px;
    transform:translateY(-50%) rotate(0deg) scale(.94);
    opacity:0;
  }
  24%{
    left:calc(50% - 24px);
    transform:translateY(-50%) rotate(360deg) scale(1.08);
    opacity:1;
  }
  62%{
    left:calc(50% - 24px);
    transform:translateY(-50%) rotate(360deg) scale(1);
    opacity:1;
  }
  100%{
    left:calc(100% + 70px);
    transform:translateY(-50%) rotate(720deg) scale(.96);
    opacity:0;
  }
}

.recent-balls{
  display:flex;
  flex-wrap:nowrap;
  gap:6px;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
  white-space:nowrap;
}

.recent-balls::-webkit-scrollbar{
  display:none;
}

.recent-balls-grid{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  min-height:68px;
  padding:3px 4px;
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(180deg,#f7fbff 0%, #e8f0f8 100%);
  border:1px solid rgba(255,255,255,.45);
}

.recent-ball{
  --ball-main:#ffd84d;
  --ball-dark:#ffb300;
  width:48px;
  height:48px;
  min-width:48px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:17px;
  font-weight:900;
  color:#111827;
  position:relative;
  isolation:isolate;
  border:2px solid rgba(255,255,255,.55);
  background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--ball-main) 80%, white 20%) 0%, var(--ball-main) 56%, var(--ball-dark) 100%);
  box-shadow:
    inset 0 -4px 8px rgba(0,0,0,.22),
    inset 0 2px 3px rgba(255,255,255,.18),
    0 4px 10px rgba(0,0,0,.18);
}

.recent-ball::before{
  content:"";
  position:absolute;
  width:58%;
  height:58%;
  border-radius:999px;
  background:radial-gradient(circle at 35% 28%, #ffffff 0%, #f6f8fb 72%, #dbe3ec 100%);
  box-shadow:
    inset 0 1px 2px rgba(255,255,255,.95),
    inset 0 -3px 4px rgba(0,0,0,.12),
    0 0 0 2px rgba(255,255,255,.55);
  z-index:-1;
}

.recent-ball::after{
  content:"";
  position:absolute;
  top:8px;
  left:11px;
  width:10px;
  height:7px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  transform:rotate(-28deg);
  opacity:.92;
}

.recent-ball.ball-b{--ball-main:var(--b);--ball-dark:var(--b-dark)}
.recent-ball.ball-i{--ball-main:var(--i);--ball-dark:var(--i-dark)}
.recent-ball.ball-n{--ball-main:var(--n);--ball-dark:var(--n-dark)}
.recent-ball.ball-g{--ball-main:var(--g);--ball-dark:var(--g-dark)}
.recent-ball.ball-o{--ball-main:var(--o);--ball-dark:var(--o-dark)}

/* jogo */
.panel{
  position:relative;
  z-index:1;
  border-radius:22px;
  padding:6px;
  min-height:0;
}

.game-layout,
.single-column-layout{
  height:100%;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto auto auto;
  gap:7px;
  min-height:0;
  align-items:start;
}

.sim-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  align-items:start;
  width:68%;
  max-width:258px;
  margin:0 auto;
}

.top-strip{
  display:none;
}

.player-main{
  min-width:0;
  min-height:0;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

.board-wrap{
  border:2px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg,var(--za-card),var(--za-card-2));
  border-radius:18px;
  padding:4px;
  min-height:0;
  height:100%;
  box-shadow:0 8px 0 rgba(133,90,0,.18);
}

.board-wrap-main{
  width:68%;
  max-width:258px;
  margin:0 auto;
  padding:5px;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.board-wrap-main::before{
  content:"Player 1";
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:20px;
  font-size:12px;
  font-weight:900;
  color:#14427f;
  text-align:center;
  text-shadow:0 1px 0 rgba(255,255,255,.5);
}

.board{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:3px;
  width:100%;
}

.cell{
  aspect-ratio:1/1;
  border-radius:8px;
  border:2px solid rgba(0,0,0,.10);
  background:linear-gradient(180deg,#fffef8,#ffffff);
  color:#0f2038;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:12px;
  position:relative;
  overflow:hidden;
  padding:0;
  box-shadow:0 2px 0 rgba(0,0,0,.10);
}

.board-main .cell{
  font-size:22px;
  border-radius:7px;
}

.cell-number{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}

.cell-number-base{
  position:relative;
  z-index:3;
  color:#13233e;
  font-size:1em;
}

.cell-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.cell-mark{
  z-index:4;
  color:#ff0000;
  font-size:2em;
  font-weight:900;
  line-height:1;
}

.bonus-candidate-symbol{
  z-index:1;
  opacity:.42;
  font-size:1.95em;
  line-height:1;
  color:#24cb63;
}

.bonus-ray-symbol{
  z-index:4;
  color:#ffad00;
  font-size:1.95em;
  line-height:1;
}

.cell.marked,
.cell.bonus,
.cell.center{
  background:linear-gradient(180deg,#fff6bf,#ffd95b);
  border-color:rgba(255,180,0,.42);
  box-shadow:0 0 0 2px rgba(255,214,77,.18) inset, 0 2px 0 rgba(171,118,0,.24);
}

.cell.center img,
.cell.bonus img{
  width:54%;
  height:54%;
  object-fit:contain;
  position:relative;
  z-index:3;
}

.cell.revealed:not(.marked):not(.bonus){
  box-shadow:0 0 0 2px rgba(77,163,255,.25) inset, 0 2px 0 rgba(0,0,0,.10);
}

.cell.bonus-candidate{
  background:linear-gradient(180deg,#fffdf4,#fff9e8);
}

.cell.bonus-activated{
  background:linear-gradient(180deg,#fff6bf,#ffd95b);
  border-color:rgba(255,180,0,.48);
  box-shadow:0 0 0 2px rgba(255,214,77,.18) inset,0 0 10px rgba(255,200,0,.18),0 2px 0 rgba(171,118,0,.24);
}

.cell.pending{
  background:#ffe4e7;
  box-shadow:0 0 0 2px rgba(255,90,107,.25) inset,0 0 8px rgba(255,90,107,.18);
}

.cell.zeus-hit{
  box-shadow:
    0 0 0 2px rgba(255,214,77,.25) inset,
    0 0 14px rgba(255,255,255,.75),
    0 0 26px rgba(120,247,255,.62),
    0 0 38px rgba(46,197,255,.52),
    0 2px 0 rgba(171,118,0,.24);
}

.board.scrambling .cell-number-base{
  animation:scramblePulse .08s linear infinite;
}

@keyframes scramblePulse{
  0%{opacity:.72;transform:scale(.96)}
  50%{opacity:1;transform:scale(1.04)}
  100%{opacity:.78;transform:scale(.98)}
}

/* CTA */
.cta-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:7px;
  flex-shrink:0;
}

.status-text{
  position:relative;
  z-index:1;
  text-align:center;
  color:#eef6ff;
  font-size:12px;
  font-weight:800;
  margin:0;
  min-height:16px;
  flex-shrink:0;
  text-shadow:0 1px 0 rgba(0,0,0,.18);
}

.primary-btn,
.accent-btn,
.secondary-btn{
  min-height:40px;
  border-radius:14px;
  font-weight:900;
  box-shadow:0 5px 0 rgba(0,0,0,.18);
  border:2px solid rgba(255,255,255,.3);
}

.arcade-btn{
  position:relative;
  overflow:visible;
  min-height:48px;
  border-radius:16px;
  border:2px solid rgba(255,255,255,.24);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.28),
    inset 0 -3px 0 rgba(0,0,0,.18),
    0 6px 0 rgba(0,0,0,.22),
    0 10px 18px rgba(0,0,0,.18);
  text-transform:uppercase;
  letter-spacing:.04em;
}

.arcade-btn::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.15);
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0) 35%,rgba(0,0,0,.10) 100%);
  pointer-events:none;
}

.arcade-btn:active{
  transform:translateY(4px) scale(.98);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.16),
    0 2px 0 rgba(0,0,0,.22),
    0 5px 10px rgba(0,0,0,.14);
}

.arcade-btn-shine{
  position:absolute;
  left:12px;
  right:12px;
  top:7px;
  height:12px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,0));
  pointer-events:none;
}

.arcade-btn-label{
  position:relative;
  z-index:2;
}

.arcade-btn-start{
  color:#5a2a00;
  background:linear-gradient(180deg,#fff07a 0%,#ffc928 54%,#ffae00 100%);
}

.arcade-btn-bingo{
  color:#fff;
  background:linear-gradient(180deg,#67ff89 0%,#28d95d 56%,#11b140 100%);
}

.arcade-btn-bingo.ready{
  animation:bingoReadyPulse .9s infinite alternate;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.28),
    inset 0 -3px 0 rgba(0,0,0,.18),
    0 6px 0 rgba(0,0,0,.22),
    0 10px 18px rgba(0,0,0,.18),
    0 0 18px rgba(34,198,111,.50),
    0 0 34px rgba(255,255,255,.16);
  filter:brightness(1.08);
}

@keyframes bingoReadyPulse{
  from{
    transform:scale(1);
  }
  to{
    transform:scale(1.06);
  }
}

.arcade-btn-bonus{
  color:#ffffff;
  background:
    radial-gradient(circle at 50% 25%, rgba(120,247,255,.10), transparent 38%),
    linear-gradient(180deg,var(--za-purple) 0%,#6126d6 56%,var(--za-purple-2) 100%);
}

.bonus-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6px 7px;
  opacity:1 !important;
  filter:none !important;
}

.bonus-btn-top{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:28px;
  min-width:32px;
  overflow:visible;
}

.bonus-core{
  position:absolute;
  width:32px;
  height:32px;
  border-radius:999px;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.20) 0%, rgba(120,247,255,.08) 38%, rgba(46,197,255,0) 74%);
  filter:blur(2px);
  opacity:.55;
  animation:bonusCorePulse 1.8s ease-in-out infinite;
}

.bonus-icon{
  position:relative;
  z-index:2;
  font-size:24px;
  line-height:1;
  color:#fff;
}

.bonus-btn.ready .bonus-icon{
  color:#bff8ff;
  text-shadow:
    0 0 6px rgba(255,255,255,.95),
    0 0 12px rgba(120,247,255,.90),
    0 0 20px rgba(46,197,255,.65);
  transform:scale(1.08);
}

.bonus-btn.ready{
  animation:bonusReadyPulse .9s infinite alternate;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.28),
    inset 0 -3px 0 rgba(0,0,0,.18),
    0 6px 0 rgba(0,0,0,.22),
    0 10px 18px rgba(0,0,0,.18),
    0 0 18px rgba(120,247,255,.28);
}

@keyframes bonusReadyPulse{
  from{
    transform:scale(1);
  }
  to{
    transform:scale(1.04);
  }
}

@keyframes bonusCorePulse{
  0%,100%{
    transform:scale(.94);
    opacity:.60;
  }
  50%{
    transform:scale(1.05);
    opacity:.95;
  }
}

.bonus-spark{
  position:absolute;
  width:14px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.98) 35%,#78f7ff 72%,rgba(46,197,255,0));
  box-shadow:
    0 0 6px rgba(120,247,255,.9),
    0 0 12px rgba(46,197,255,.55);
  opacity:0;
  pointer-events:none;
  z-index:1;
  will-change:transform,opacity;
  display:block;
}

.bonus-spark-1{top:-2px;left:6px;width:12px}
.bonus-spark-2{top:0;right:6px;width:16px}
.bonus-spark-3{top:32%;left:-4px;width:15px}
.bonus-spark-4{top:48%;right:-6px;width:13px}
.bonus-spark-5{bottom:-1px;left:8px;width:17px}
.bonus-spark-6{bottom:-2px;right:18%;width:11px}
.bonus-spark-7{top:18%;left:50%;width:10px}
.bonus-spark-8{bottom:24%;left:38%;width:15px}

.bonus-btn.ready .bonus-spark-1{animation:bonusSparkA 2.1s linear infinite}
.bonus-btn.ready .bonus-spark-2{animation:bonusSparkB 2.4s linear infinite .05s}
.bonus-btn.ready .bonus-spark-3{animation:bonusSparkC 2.2s linear infinite .1s}
.bonus-btn.ready .bonus-spark-4{animation:bonusSparkD 2.3s linear infinite .08s}
.bonus-btn.ready .bonus-spark-5{animation:bonusSparkB 2.5s linear infinite .12s}
.bonus-btn.ready .bonus-spark-6{animation:bonusSparkA 2.2s linear infinite .06s}
.bonus-btn.ready .bonus-spark-7{animation:bonusSparkD 2.0s linear infinite .14s}
.bonus-btn.ready .bonus-spark-8{animation:bonusSparkC 2.3s linear infinite .09s}

@keyframes bonusSparkA{
  0%,72%,100%{
    opacity:0;
    transform:translate(0,0) rotate(-24deg) scaleX(.45);
  }
  76%{
    opacity:1;
    transform:translate(-1px,-1px) rotate(-24deg) scaleX(1);
  }
  83%{
    opacity:.95;
    transform:translate(-10px,-6px) rotate(-10deg) scaleX(1.25);
  }
  90%{
    opacity:0;
    transform:translate(-16px,-10px) rotate(4deg) scaleX(.55);
  }
}

@keyframes bonusSparkB{
  0%,68%,100%{
    opacity:0;
    transform:translate(0,0) rotate(18deg) scaleX(.45);
  }
  73%{
    opacity:1;
    transform:translate(0,0) rotate(18deg) scaleX(1);
  }
  80%{
    opacity:.92;
    transform:translate(10px,-2px) rotate(6deg) scaleX(1.2);
  }
  87%{
    opacity:0;
    transform:translate(15px,-5px) rotate(-8deg) scaleX(.55);
  }
}

@keyframes bonusSparkC{
  0%,75%,100%{
    opacity:0;
    transform:translate(0,0) rotate(32deg) scaleX(.4);
  }
  79%{
    opacity:1;
    transform:translate(0,0) rotate(32deg) scaleX(1);
  }
  86%{
    opacity:.96;
    transform:translate(-5px,8px) rotate(46deg) scaleX(1.18);
  }
  93%{
    opacity:0;
    transform:translate(-10px,14px) rotate(58deg) scaleX(.55);
  }
}

@keyframes bonusSparkD{
  0%,70%,100%{
    opacity:0;
    transform:translate(0,0) rotate(-6deg) scaleX(.42);
  }
  74%{
    opacity:1;
    transform:translate(0,0) rotate(-6deg) scaleX(1);
  }
  82%{
    opacity:.9;
    transform:translate(6px,6px) rotate(16deg) scaleX(1.15);
  }
  89%{
    opacity:0;
    transform:translate(11px,11px) rotate(28deg) scaleX(.52);
  }
}

/* mini players */
.mini-player{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  width:100%;
  padding:3px;
  border-radius:10px;
  background:linear-gradient(180deg,var(--za-card),var(--za-card-2));
  border:2px solid rgba(255,255,255,.35);
  box-shadow:0 5px 0 rgba(133,90,0,.14);
}

.mini-player-top{
  display:flex;
  justify-content:center;
  align-items:center;
  margin-bottom:3px;
  min-height:16px;
  font-size:10px;
  color:#14427f;
  font-weight:900;
  line-height:1;
  text-align:center;
}

.mini-board{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
}

.mini-cell{
  width:100%;
  aspect-ratio:1/1;
  border-radius:3px;
  background:#fffef9;
  border:1px solid rgba(0,0,0,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  font-weight:900;
  color:#111;
  line-height:1;
  overflow:hidden;
}

.mini-cell img{
  width:70%;
  height:70%;
  object-fit:contain;
}

.mini-cell.bonus-candidate{
  background:#fff6d6;
  border-color:rgba(255,180,0,.25);
}

.mini-cell.marked{
  background:linear-gradient(180deg,#fff6bf,#ffe082);
  border-color:rgba(255,180,0,.28);
  color:#b30000;
}

.mini-cell.bonus{
  background:linear-gradient(180deg,#fff6bf,#ffd95b);
  border-color:rgba(255,180,0,.38);
  color:#c98500;
}

.game-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:14px;
  font-size:10px;
  color:#dfeeff;
  font-weight:800;
  letter-spacing:.04em;
  text-shadow:0 1px 0 rgba(0,0,0,.18);
}

@media (max-width:420px){
  .app-shell{
    padding:8px 6px 4px;
    gap:6px;
  }

  .bingo-brand-mark{
    width:46px;
    height:46px;
  }

  h1{
    font-size:18px;
  }

  .draw-panel{
    padding:7px 8px;
  }

  .draw-lane{
    height:58px;
  }

  .current-ball{
    width:42px;
    height:42px;
    font-size:16px;
  }

  .panel{
    padding:5px;
  }

  .game-layout,
  .single-column-layout{
    gap:5px;
  }

  .sim-row{
    gap:4px;
    width:75%;
    max-width:260px;
  }

  .mini-player{
    padding:2px;
  }

  .mini-player-top{
    font-size:9px;
    margin-bottom:3px;
  }

  .board-wrap-main{
    width:75%;
    max-width:260px;
  }

  .board-main .cell{
    font-size:14px;
  }

  .recent-balls-grid{
    gap:4px;
    min-height:64px;
    padding:3px;
  }

  .recent-ball{
    width:42px;
    height:42px;
    min-width:42px;
    font-size:14px;
  }

  .primary-btn,
  .accent-btn,
  .secondary-btn{
    min-height:36px;
    border-radius:12px;
  }

  .arcade-btn{
    min-height:44px;
    border-radius:14px;
  }

  .bonus-icon{
    font-size:22px;
  }
}

/* ===== ESTADOS VISUAIS DOS BOTÕES ===== */
.arcade-btn.is-idle-disabled{
  filter:brightness(.72) saturate(.75);
  opacity:.72;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.10),
    inset 0 -3px 0 rgba(0,0,0,.20),
    0 4px 0 rgba(0,0,0,.18),
    0 6px 10px rgba(0,0,0,.12);
}

.arcade-btn.is-idle-disabled .arcade-btn-label,
.arcade-btn.is-idle-disabled .bonus-icon{
  opacity:.72;
  text-shadow:none;
}

.arcade-btn.is-idle-disabled .bonus-core,
.arcade-btn.is-idle-disabled .bonus-spark{
  opacity:0 !important;
  animation:none !important;
}

.arcade-btn.is-idle-disabled::before{
  opacity:.5;
}

.bonus-btn.charging{
  animation:bonusChargingPulse 1.4s infinite alternate;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.24),
    inset 0 -3px 0 rgba(0,0,0,.18),
    0 6px 0 rgba(0,0,0,.22),
    0 10px 18px rgba(0,0,0,.18),
    0 0 10px rgba(120,247,255,.14);
}

.bonus-btn.charging .bonus-icon{
  color:#dffcff;
  text-shadow:
    0 0 4px rgba(255,255,255,.55),
    0 0 8px rgba(120,247,255,.42);
}

.bonus-btn.charging .bonus-spark{
  display:block;
  opacity:.22;
  animation-duration:3s !important;
  filter:blur(.5px);
}

@keyframes bonusChargingPulse{
  from{ transform:scale(1); }
  to{ transform:scale(1.03); }
}

/* ===== MENU ESTILO B ===== */
.menu-player-header{
  display:grid;
  grid-template-columns:74px 1fr;
  gap:14px;
  align-items:center;
  margin-bottom:16px;
  padding-right:54px;
}

.menu-player-avatar{
  width:74px;
  height:74px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:34px;
  color:#fff6c7;
  background:
    radial-gradient(circle at 35% 30%, #315fcf 0%, #2047a4 58%, #11285f 100%);
  border:4px solid #f0c64b;
  box-shadow:
    0 0 0 3px rgba(255,214,77,.18),
    0 10px 20px rgba(0,0,0,.24);
}

.menu-player-copy h2{
  margin:0 0 4px;
  font-size:24px;
  line-height:1.05;
  font-weight:900;
  color:#ffd84d;
  text-shadow:
    0 2px 0 rgba(0,0,0,.35),
    0 0 8px rgba(255,216,77,.10);
}

.menu-player-rank{
  font-size:13px;
  color:#f5f2dc;
  font-weight:800;
  margin-bottom:6px;
}

.menu-player-stats{
  font-size:12px;
  color:#e6e9ef;
  font-weight:800;
}

.menu-actions-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-bottom:16px;
}

.menu-arcade-btn{
  position:relative;
  min-height:70px;
  border-radius:18px;
  border:2px solid rgba(255,255,255,.22);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-weight:900;
  font-size:14px;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.03em;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.30),
    inset 0 -4px 0 rgba(0,0,0,.22),
    0 7px 0 rgba(0,0,0,.25),
    0 12px 22px rgba(0,0,0,.24);
}

.menu-arcade-btn .menu-btn-icon{
  font-size:24px;
  line-height:1;
}

.menu-arcade-btn:active{
  transform:translateY(3px) scale(.985);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.16),
    0 3px 0 rgba(0,0,0,.22),
    0 6px 12px rgba(0,0,0,.16);
}

.menu-btn-play{
  background:linear-gradient(180deg,#58f467 0%, #19cf4d 55%, #0ea53a 100%);
  color:#fffbe6;
}

.menu-btn-new{
  background:linear-gradient(180deg,#40a7ff 0%, #176ef0 58%, #1144a9 100%);
  color:#fff3c8;
}

.menu-btn-exit{
  background:linear-gradient(180deg,#ff6b76 0%, #f33a49 58%, #c8202e 100%);
  color:#fff8f8;
}

.menu-settings-card{
  border-radius:20px;
  padding:16px 14px 14px;
  background:linear-gradient(180deg,#fff7e0,#ffeec3);
  border:2px solid rgba(255,255,255,.30);
  color:#15407a;
  box-shadow:0 6px 0 rgba(133,90,0,.14);
}

.menu-settings-title{
  font-size:16px;
  font-weight:900;
  margin-bottom:12px;
  color:#15407a;
}

.menu-setting-row{
  display:grid;
  gap:10px;
  margin-bottom:14px;
}

.menu-setting-row:last-child{
  margin-bottom:0;
}

.menu-setting-row-toggle{
  grid-template-columns:1fr auto;
  align-items:center;
}

.menu-setting-label-group{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.menu-setting-icon{
  width:30px;
  height:30px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:rgba(20,74,140,.08);
  font-size:16px;
}

.menu-setting-label{
  font-size:14px;
  font-weight:900;
  color:#15407a;
}

.menu-setting-help{
  font-size:11px;
  color:#476792;
  font-weight:700;
}

.menu-switch{
  position:relative;
  display:inline-block;
  width:54px;
  height:30px;
}

.menu-switch input{
  opacity:0;
  width:0;
  height:0;
}

.menu-switch-slider{
  position:absolute;
  inset:0;
  cursor:pointer;
  background:linear-gradient(180deg,#c8d4ea,#9eb2d0);
  border-radius:999px;
  transition:.22s ease;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.16);
}

.menu-switch-slider::before{
  content:"";
  position:absolute;
  width:22px;
  height:22px;
  left:4px;
  top:4px;
  border-radius:50%;
  background:linear-gradient(180deg,#ffffff,#e8edf7);
  transition:.22s ease;
  box-shadow:0 3px 8px rgba(0,0,0,.18);
}

.menu-switch input:checked + .menu-switch-slider{
  background:linear-gradient(180deg,#53f16d,#1ecf4e);
}

.menu-switch input:checked + .menu-switch-slider::before{
  transform:translateX(24px);
}

.menu-range{
  width:100%;
  accent-color:#2f79ff;
}

@media (max-width:420px){
  .menu-player-header{
    grid-template-columns:64px 1fr;
    gap:12px;
    padding-right:46px;
  }

  .menu-player-avatar{
    width:64px;
    height:64px;
    font-size:30px;
  }

  .menu-player-copy h2{
    font-size:22px;
  }

  .menu-actions-row{
    gap:8px;
  }

  .menu-arcade-btn{
    min-height:64px;
    font-size:12px;
    border-radius:16px;
  }

  .menu-arcade-btn .menu-btn-icon{
    font-size:22px;
  }
}
