
.bp-vendor-bingo{max-width:1000px;margin:0 auto;padding:8px 0}
.bp-bingo-header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}
.bp-bingo-header h1{margin:0}
.bp-bingo-progress{font-weight:700}
.bp-bingo-card{display:grid;grid-template-columns:repeat(var(--bp-bingo-size,5),minmax(0,1fr));gap:7px}
.bp-bingo-square{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;aspect-ratio:1/1;border:2px solid #c3c4c7;border-radius:10px;overflow:hidden;background:#fff;text-align:center}
.bp-bingo-image-wrap{min-height:0;display:flex;align-items:center;justify-content:center;background:#f6f7f7;overflow:hidden}
.bp-bingo-image-wrap img{width:100%;height:100%;object-fit:contain;padding:10%;box-sizing:border-box}
.bp-bingo-label{display:flex;align-items:center;justify-content:center;min-height:46px;padding:6px 5px;font-size:12px;line-height:1.15;font-weight:700;background:#fff}
.bp-bingo-square.is-complete{border-color:#2e8540;background:#edf8ee}
.bp-bingo-square.is-complete .bp-bingo-image-wrap{opacity:.55}
.bp-bingo-check{position:absolute;right:5px;top:5px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#2e8540;color:#fff;font-size:20px;font-weight:900;box-shadow:0 2px 7px rgba(0,0,0,.25)}
.bp-bingo-free{border-color:#2271b1}
.bp-bingo-completion{margin:16px 0;padding:16px;border:2px solid #2e8540;border-radius:10px;background:#edf8ee;text-align:center}
.bp-bingo-help{text-align:center;font-weight:600}
.bp-bingo-disabled{padding:14px;border-left:5px solid #dba617;background:#fff8df}
@media(max-width:700px){
  .bp-bingo-card{gap:4px}
  .bp-bingo-square{border-width:1px;border-radius:6px}
  .bp-bingo-label{min-height:38px;padding:4px 2px;font-size:9px}
  .bp-bingo-image-wrap img{padding:13%}
  .bp-bingo-check{right:2px;top:2px;width:21px;height:21px;font-size:15px}
  .bp-bingo-header{display:block}
  .bp-bingo-progress{margin-top:4px}
}

.bp-bingo-share-tools{margin:0 0 14px;padding:10px 12px;border:1px solid #c3c4c7;border-radius:8px;background:#f6f7f7}
.bp-bingo-share-code{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px}
.bp-bingo-share-code strong{font-size:18px;letter-spacing:.08em}
.bp-bingo-copy-code,.bp-bingo-use-code button{min-height:34px;padding:5px 10px;border:1px solid #2271b1;border-radius:5px;background:#fff;color:#135e96;font-weight:700;cursor:pointer}
.bp-bingo-use-code{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin-top:9px}
.bp-bingo-use-code label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700}
.bp-bingo-use-code input{min-height:36px;width:130px;padding:5px 8px;text-transform:uppercase;letter-spacing:.08em}
.bp-bingo-code-message{min-height:18px;margin-top:5px;font-size:12px;font-weight:700;color:#2e8540}
.bp-bingo-code-message.is-error{color:#b32d2e}
@media(max-width:520px){
  .bp-bingo-use-code{align-items:stretch}
  .bp-bingo-use-code label{width:100%}
  .bp-bingo-use-code input{width:100%}
}

/* v3.7.0 Bingo-to-map navigation */
.bp-bingo-square.is-map-link{cursor:pointer}
.bp-bingo-square.is-map-link:hover,
.bp-bingo-square.is-map-link:focus-visible{border-color:#2271b1;outline:3px solid rgba(34,113,177,.22);outline-offset:1px}
.bp-bingo-map-hint{padding:3px 4px 5px;background:#eef6fc;color:#135e96;font-size:9px;font-weight:700}
@media(max-width:700px){.bp-bingo-map-hint{font-size:8px;padding:2px}}

/* v3.7.1 simplified Bingo heading */
.bp-bingo-header{justify-content:flex-end}
.bp-bingo-header .bp-bingo-progress{font-size:16px}

/* v3.8.0 Bingo completion experience */
.bp-vendor-bingo{
  --bp-bingo-complete-bg:#b91c1c;
  --bp-bingo-complete-text:#ffffff;
  position:relative;
  transition:background-color .25s ease,color .25s ease,padding .25s ease
}
.bp-vendor-bingo.is-bingo-complete{
  margin-top:8px;
  padding:18px;
  border-radius:16px;
  background:var(--bp-bingo-complete-bg);
  color:var(--bp-bingo-complete-text)
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-header{
  justify-content:center;
  margin-bottom:14px
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-progress{
  padding:8px 16px;
  border:2px solid rgba(255,255,255,.85);
  border-radius:999px;
  color:var(--bp-bingo-complete-text);
  font-size:24px;
  font-weight:900;
  text-align:center
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-card{
  padding:8px;
  border:4px solid #f4d35e;
  border-radius:14px;
  background:rgba(255,255,255,.16)
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-square{
  border-color:#f4d35e;
  box-shadow:0 0 0 1px rgba(255,255,255,.28)
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-map-hint,
.bp-vendor-bingo.is-bingo-complete .bp-bingo-help{
  display:none
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-square.is-map-link{
  cursor:default
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-completion{
  display:block;
  margin:16px 0 0;
  padding:18px;
  border:3px solid #f4d35e;
  border-radius:12px;
  background:#fff;
  color:#1d2327
}
.bp-bingo-complete-badge{
  display:inline-block;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:#2e8540;
  color:#fff;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em
}
.bp-bingo-completion-title{margin:0 0 8px;font-size:28px}
.bp-bingo-completion-message{font-size:17px;font-weight:700}
.bp-bingo-prize{
  margin:12px 0 0;
  padding:12px;
  border-radius:8px;
  background:#fff8df;
  font-size:16px;
  font-weight:700
}
.bp-vendor-bingo.is-bingo-complete .bp-bingo-share-tools{
  margin-top:16px;
  background:#fff;
  color:#1d2327
}
.bp-bingo-confetti{
  position:absolute;
  inset:0;
  z-index:20;
  overflow:hidden;
  pointer-events:none
}
.bp-bingo-confetti i{
  position:absolute;
  left:var(--x);
  top:-18px;
  width:9px;
  height:16px;
  border-radius:2px;
  background:#f4d35e;
  animation:bp-bingo-confetti-fall var(--duration) ease-in var(--delay) forwards
}
.bp-bingo-confetti i:nth-child(3n+1){background:#fff}
.bp-bingo-confetti i:nth-child(3n+2){background:#2e8540}
@keyframes bp-bingo-confetti-fall{
  from{transform:translate3d(0,-20px,0) rotate(0);opacity:1}
  to{transform:translate3d(0,720px,0) rotate(var(--turn));opacity:.15}
}
@media(max-width:700px){
  .bp-vendor-bingo.is-bingo-complete{padding:10px;border-radius:10px}
  .bp-vendor-bingo.is-bingo-complete .bp-bingo-progress{font-size:19px}
  .bp-vendor-bingo.is-bingo-complete .bp-bingo-card{padding:4px;border-width:3px}
  .bp-bingo-completion-title{font-size:23px}
}
@media(prefers-reduced-motion:reduce){
  .bp-bingo-confetti{display:none}
}

/* v4.0.3 winner notice */
.bp-bingo-completed-at{margin:12px 0 0;font-size:13px;font-weight:700;color:#50575e}
.bp-bingo-winner-action{
  margin:14px 0 0;
  padding:13px 15px;
  border:2px dashed #b91c1c;
  border-radius:9px;
  background:#fff0f0;
  color:#8a1010;
  font-size:17px;
  text-align:center
}

/* v4.0.5 public prize entry */
.bp-bingo-entry-form,.bp-bingo-entry-received{
  margin:16px 0 0;padding:18px;border:2px solid #f4d35e;border-radius:12px;background:#fff;color:#1d2327
}
.bp-bingo-entry-form[hidden],.bp-bingo-entry-received[hidden]{display:none!important}
.bp-bingo-entry-title{margin:0 0 6px;font-size:24px}
.bp-bingo-entry-message{margin:0 0 14px}
.bp-bingo-entry-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bp-bingo-entry-fields label:first-child{grid-column:1/-1}
.bp-bingo-entry-fields label,.bp-bingo-consent{display:block;font-weight:700}
.bp-bingo-entry-fields input{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:10px;border:1px solid #8c8f94;border-radius:6px;font-size:16px}
.bp-bingo-consent{margin:14px 0;font-weight:600}
.bp-bingo-entry-submit{padding:11px 18px;border:0;border-radius:7px;background:#2e8540;color:#fff;font-size:16px;font-weight:800;cursor:pointer}
.bp-bingo-entry-submit:disabled{opacity:.65;cursor:wait}
.bp-bingo-entry-status{margin-top:10px;font-weight:700}
.bp-bingo-entry-status.is-error{color:#b32d2e}
.bp-bingo-entry-received strong{display:block;color:#216e39;font-size:18px}
.bp-bingo-entry-received-at{display:block;margin-top:5px;color:#50575e;font-weight:700}
@media(max-width:700px){.bp-bingo-entry-fields{grid-template-columns:1fr}.bp-bingo-entry-fields label:first-child{grid-column:auto}}

/* v4.1.11 public pre/post-event Bingo preview. */
.bp-vendor-bingo-preview{max-width:620px;margin:24px auto;padding:28px 22px;text-align:center;background:#fff;border:2px solid #b91c1c;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.bp-bingo-preview-icon{display:block;width:min(180px,48vw);height:auto;margin:0 auto 16px}
.bp-vendor-bingo-preview h1{margin:0 0 12px;font-size:clamp(28px,7vw,42px);line-height:1.1;color:#8f1616}
.bp-bingo-preview-message{font-size:18px;line-height:1.5;margin:0 auto 18px;max-width:520px}
.bp-bingo-preview-window{display:inline-block;margin:0 0 12px;padding:9px 14px;border-radius:999px;background:#fef2f2;color:#7f1d1d}
.bp-bingo-preview-lock{margin:0;color:#50575e;font-size:14px}
