
/* A Bomba v1.0.1 */
.bomb-game {
  --bomb-bg:     #111820;
  --bomb-panel:  #16202e;
  --bomb-card:   #1e2d42;
  --bomb-text:   #ffffff;
  --bomb-muted:  #8fa3b8;
  --bomb-red:    #E53935;
  --bomb-radius: 14px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background: var(--bomb-bg);
  min-height: 540px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 16px 12px;
  box-sizing: border-box;
  position: relative;
}
.bomb-screen { width: 100%; }

/* ── SETUP ──────────────────────────────────────────── */
.bomb-setup-box {
  background: var(--bomb-card);
  border: 1px solid rgba(229,57,53,.25);
  border-radius: var(--bomb-radius);
  padding: 32px 28px;
  max-width: 440px;
  margin: 0 auto;
  box-shadow: 0 0 40px rgba(229,57,53,.08), 0 8px 32px rgba(0,0,0,.6);
}
.bomb-setup-logo  { text-align:center; font-size:3.2em; margin-bottom:4px; }
.bomb-setup-title {
  color: var(--bomb-red); text-align:center;
  font-size:1.8em; font-weight:900; margin:0 0 26px;
  letter-spacing:3px; text-shadow:0 0 20px rgba(229,57,53,.5);
}
.bomb-section       { margin-bottom:18px; }
.bomb-section-label { color:var(--bomb-muted); font-size:.82em; font-weight:700;
                      text-transform:uppercase; letter-spacing:.8px; margin-bottom:8px; }

.bomb-num-btns { display:flex; gap:6px; flex-wrap:wrap; }
.bomb-num-btn {
  flex:1; min-width:34px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius:7px; color:var(--bomb-muted);
  font-size:.95em; font-weight:700;
  padding:9px 2px; cursor:pointer;
  transition:border-color .15s, color .15s, background .15s;
}
.bomb-num-btn.bomb-num-active,
.bomb-num-btn:hover {
  border-color:var(--bomb-red); color:#fff;
  background:rgba(229,57,53,.15);
}

.bomb-counter-row  { display:flex; align-items:center; gap:14px; }
.bomb-counter-btn  {
  width:38px; height:38px;
  border:1px solid rgba(255,255,255,.18); border-radius:8px;
  background:rgba(255,255,255,.05); color:#fff;
  font-size:1.3em; font-weight:900; cursor:pointer;
  transition:border-color .15s, background .15s;
}
.bomb-counter-btn:hover { border-color:var(--bomb-red); background:rgba(229,57,53,.15); }
.bomb-counter-val  { font-size:1.6em; font-weight:900; color:#fff; min-width:40px; text-align:center; }
.bomb-counter-hint { color:var(--bomb-muted); font-size:.76em; margin-top:5px; }

.bomb-players-inputs { display:flex; flex-direction:column; gap:7px; margin-bottom:20px; }
.bomb-input-row      { display:flex; align-items:center; gap:10px; }
.bomb-input-lbl      { color:var(--bomb-muted); font-size:.82em; font-weight:600; width:72px; flex-shrink:0; }
.bomb-name-input {
  flex:1; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:7px; color:#fff;
  font-size:.92em; padding:8px 12px;
  box-sizing:border-box; outline:none;
  transition:border-color .15s;
}
.bomb-name-input:focus { border-color:var(--bomb-red); }

.bomb-btn { border:none; border-radius:8px; cursor:pointer; font-weight:800;
            transition:opacity .15s, transform .1s; }
.bomb-btn:hover:not(:disabled) { opacity:.88; transform:translateY(-1px); }
.bomb-btn-start {
  display:block; width:100%; padding:15px;
  background:linear-gradient(135deg,#c62828,#7f0000);
  color:#fff; font-size:1.05em; letter-spacing:1px;
  box-shadow:0 4px 18px rgba(183,28,28,.5);
}

/* ── GAME PANEL ─────────────────────────────────────── */
.bomb-danger-stripe {
  height: 14px;
  background: repeating-linear-gradient(
    45deg,
    #FFD600 0px, #FFD600 14px,
    #1a1a1a    14px, #1a1a1a    28px
  );
  border-radius: var(--bomb-radius) var(--bomb-radius) 0 0;
  max-width: 500px;
  margin: 0 auto;
}

.bomb-panel {
  background: var(--bomb-panel);
  border: 1px solid rgba(255,255,255,.08);
  border-top: none;
  border-radius: 0 0 var(--bomb-radius) var(--bomb-radius);
  padding: 14px 16px 18px;
  max-width: 500px;
  margin: 0 auto;
  box-shadow: 0 12px 40px rgba(0,0,0,.7);
}

/* Players strip */
.bomb-header { margin-bottom:12px; }
.bomb-players-strip {
  display:flex; justify-content:center; flex-wrap:wrap;
  gap:7px;
}
.bomb-chip {
  padding:5px 14px; border-radius:20px;
  background:rgba(255,255,255,.07); color:var(--bomb-muted);
  font-size:.82em; font-weight:700; transition:all .2s;
}
.bomb-chip-active {
  background:var(--bomb-red); color:#fff;
  box-shadow:0 0 14px rgba(229,57,53,.55);
  transform:scale(1.08);
}

/* Bomb + info row */
.bomb-bomb-row {
  display:flex; align-items:center; gap:14px;
  margin-bottom:14px;
  padding: 10px 8px;
  background:rgba(0,0,0,.25);
  border-radius:10px;
  border:1px solid rgba(255,255,255,.06);
}

.bomb-svg-wrap { flex-shrink:0; width:88px; }
.bomb-svg-wrap svg { width:88px; height:102px; display:block; }

/* Bomb pulse */
@keyframes bomb-pulse {
  0%,100% { filter:drop-shadow(0 0 8px rgba(255,100,0,.35)); }
  50%      { filter:drop-shadow(0 0 22px rgba(255,100,0,.75)); }
}
.bomb-svg-wrap { animation:bomb-pulse 1.3s ease-in-out infinite; }

/* Spark */
@keyframes spark {
  0%,100% { opacity:1; transform:scale(1); }
  25%     { opacity:.2; transform:scale(.5); }
  50%     { opacity:1; transform:scale(1.5); }
  75%     { opacity:.5; transform:scale(.7); }
}
#bomb-spark { transform-origin:87px 5px; animation:spark .3s ease-in-out infinite; }

.bomb-info-col { flex:1; }
.bomb-status   { color:var(--bomb-muted); font-size:.8em; font-weight:600;
                 text-transform:uppercase; letter-spacing:.6px; margin-bottom:6px; }
.bomb-turn-msg { color:#fff; font-size:.95em; font-weight:800; line-height:1.3; }

/* Wire panel label */
.bomb-wire-panel-label {
  font-size:.72em; font-weight:700; letter-spacing:1.5px;
  color:var(--bomb-muted); text-transform:uppercase;
  margin-bottom:8px;
  padding-left:2px;
}

/* ── WIRE GRID ──────────────────────────────────────── */
.bomb-wires-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px 14px;
  max-height: 320px;
  overflow-y: auto;
  padding: 2px 2px 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(229,57,53,.3) transparent;
}
.bomb-wires-grid::-webkit-scrollbar { width:4px; }
.bomb-wires-grid::-webkit-scrollbar-thumb { background:rgba(229,57,53,.3); border-radius:2px; }

/* ── SINGLE WIRE ROW ────────────────────────────────── */
.bomb-wire-row {
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: transform .12s;
  border-radius: 4px;
  padding: 4px 0;
}
.bomb-wire-row:hover:not(.bomb-wire-cut) { transform:scale(1.04); }
.bomb-wire-row:active:not(.bomb-wire-cut){ transform:scale(.97); }

/* Metal connector plugs */
.bomb-wire-plug {
  flex-shrink: 0;
  width: 9px;
  height: 22px;
  background: linear-gradient(180deg, #d0d0d0 0%, #888 50%, #d0d0d0 100%);
  box-shadow: 0 1px 4px rgba(0,0,0,.6);
}
.bomb-plug-l { border-radius:4px 2px 2px 4px; }
.bomb-plug-r { border-radius:2px 4px 4px 2px; }

/* Cable */
.bomb-wire-cable {
  flex: 1;
  height: 16px;
  /* background set inline by JS for live wires */
  box-shadow:
    0 3px 8px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -1px 0 rgba(0,0,0,.45);
  border-radius: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.bomb-wire-num {
  font-size: 9.5px;
  font-weight: 900;
  color: rgba(0,0,0,.6);
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
  user-select: none;
  pointer-events: none;
  position: relative; z-index:1;
}

/* ── CUT STATE ──────────────────────────────────────── */
.bomb-wire-cut { cursor:default; }
.bomb-wire-cut .bomb-wire-plug {
  background: linear-gradient(180deg,#3a3a3a 0%,#222 50%,#3a3a3a 100%);
  opacity:.35;
}
.bomb-wire-cut .bomb-wire-cable {
  background: #1c1c1c !important;
  box-shadow: none;
  opacity:.38;
}
/* Gap in center = sliced wire */
.bomb-wire-cut .bomb-wire-cable::before {
  content:'';
  position:absolute;
  left: calc(50% - 6px);
  top: -3px;
  width: 12px;
  height: calc(100% + 6px);
  background: var(--bomb-panel, #16202e);
  z-index: 2;
  border-radius: 1px;
}
.bomb-wire-cut .bomb-wire-num { display:none; }

/* Snip animation */
@keyframes wire-flash {
  0%,100% { filter:brightness(1); }
  40%     { filter:brightness(3.5); }
}
.bomb-wire-snipping .bomb-wire-cable {
  animation: wire-flash .25s ease-out forwards;
}

/* ── OVERLAYS ────────────────────────────────────────── */
.bomb-overlay {
  position:absolute; inset:0;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:60;
  border-radius: var(--bomb-radius);
  text-align:center;
  padding:28px 22px;
  box-sizing:border-box;
  overflow:hidden;
}

/* EXPLOSION */
.bomb-expl-overlay {
  background: radial-gradient(circle at 50% 45%,
    #ff6600 0%, #cc1100 35%, #5a0000 70%, #0d0000 100%);
}

.bomb-expl-flash {
  position:absolute; inset:0;
  background:#fff;
  border-radius:var(--bomb-radius);
  animation:none;
}
@keyframes expl-flash-anim {
  0%   { opacity:.9; }
  100% { opacity:0; }
}
.bomb-expl-active .bomb-expl-flash {
  animation: expl-flash-anim .18s ease-out forwards;
}

@keyframes expl-icon {
  0%   { transform:scale(.15) rotate(-30deg); opacity:0; }
  50%  { transform:scale(1.5) rotate(12deg); opacity:1; }
  75%  { transform:scale(.9) rotate(-5deg); }
  100% { transform:scale(1) rotate(0deg); }
}
@keyframes expl-shake {
  0%,100% { transform:translateX(0) rotate(0); }
  15%     { transform:translateX(-10px) rotate(-3deg); }
  30%     { transform:translateX(10px) rotate(3deg); }
  45%     { transform:translateX(-8px); }
  60%     { transform:translateX(8px); }
  75%     { transform:translateX(-4px); }
}
.bomb-expl-icon {
  font-size:5.5em; position:relative; z-index:1; margin-bottom:12px;
}
.bomb-expl-active .bomb-expl-icon {
  animation:expl-icon .5s cubic-bezier(.17,.67,.35,1.3) forwards;
}
.bomb-expl-msg {
  color:#fff; font-size:1.4em; font-weight:900;
  line-height:1.2; margin-bottom:8px; position:relative; z-index:1;
  text-shadow:0 2px 12px rgba(0,0,0,.8);
}
.bomb-expl-active .bomb-expl-msg {
  animation:expl-shake .6s ease .35s both;
}
.bomb-expl-sub {
  color:#FF8A65; font-size:1em; font-weight:900;
  letter-spacing:4px; position:relative; z-index:1;
}

/* NEW ROUND */
.bomb-nr-overlay {
  background: radial-gradient(circle at 50% 45%,
    #1565C0 0%,#0a2e6b 55%,#050e28 100%);
}
.bomb-nr-icon   { font-size:4em; margin-bottom:10px; }
.bomb-nr-title  { color:#fff; font-size:1.35em; font-weight:900; letter-spacing:1px; margin-bottom:10px; }
.bomb-nr-players{ color:#90CAF9; font-size:.88em; margin-bottom:6px; }
.bomb-nr-sub    { color:rgba(255,255,255,.5); font-size:.84em; font-style:italic; }

/* ── WINNER ──────────────────────────────────────────── */
.bomb-winner-box {
  background:var(--bomb-card);
  border:1px solid rgba(255,215,0,.2);
  border-radius:var(--bomb-radius);
  padding:52px 32px; max-width:380px;
  margin:0 auto; text-align:center;
  box-shadow:0 0 40px rgba(255,215,0,.08), 0 8px 32px rgba(0,0,0,.7);
}
.bomb-winner-trophy { font-size:4em; margin-bottom:12px; }
.bomb-winner-label  { color:var(--bomb-muted); font-size:.82em; font-weight:700;
                      text-transform:uppercase; letter-spacing:2px; margin-bottom:8px; }
.bomb-winner-name   { color:#FFD700; font-size:2em; font-weight:900; margin-bottom:6px;
                      text-shadow:0 0 20px rgba(255,215,0,.4); }
.bomb-winner-rounds { color:var(--bomb-muted); font-size:.84em; }

@media(max-width:360px){
  .bomb-wire-cable { height:13px; }
  .bomb-wires-grid { gap:5px 10px; }
  .bomb-bomb-row   { gap:10px; }
}
