/* EventosApp Bingo rc57 — gestión, escenario público y cartón participante */

.ev-bingo-admin,
.ev-bingo-player {
  --bingo-brand: var(--eventosapp-brand-blue, #3683c5);
  --bingo-brand-dark: var(--eventosapp-brand-blue-dark, #286291);
  --bingo-ink: var(--eventosapp-app-text, #171e37);
  --bingo-muted: var(--eventosapp-app-muted, #66758f);
  --bingo-canvas: var(--eventosapp-app-canvas, #fff);
  --bingo-surface: var(--eventosapp-app-surface, #fff);
  --bingo-surface-soft: var(--eventosapp-app-surface-soft, #f5f8fc);
  --bingo-raised: var(--eventosapp-app-surface-raised, #fff);
  --bingo-input: var(--eventosapp-app-input, #fff);
  --bingo-border: var(--eventosapp-app-border, #dfe7f1);
  --bingo-shadow: var(--eventosapp-app-shadow, 0 12px 34px rgba(23,30,55,.07));
  color: var(--bingo-ink);
  font-family: inherit;
}

.ev-bingo-admin *,
.ev-bingo-player *,
.ev-bingo-public-stage * { box-sizing: border-box; }

/* =========================================================
 * Panel del organizador
 * ========================================================= */
.ev-bingo-admin {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 4px 0 28px;
}

.ev-bingo-admin button,
.ev-bingo-admin input,
.ev-bingo-admin select,
.ev-bingo-admin textarea { font: inherit; }

.ev-bingo-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 20px;
  padding: 28px 30px;
  margin-bottom: 16px;
  border: 1px solid var(--bingo-border);
  border-radius: 26px;
  background:
    radial-gradient(circle at 88% 22%, color-mix(in srgb, var(--bingo-brand) 20%, transparent) 0 90px, transparent 92px),
    linear-gradient(135deg, var(--bingo-surface) 0%, var(--bingo-surface-soft) 100%);
  box-shadow: var(--bingo-shadow);
}

.ev-bingo-hero::after {
  content: "";
  position: absolute;
  width: 250px;
  height: 250px;
  right: -110px;
  bottom: -150px;
  border: 34px solid color-mix(in srgb, var(--bingo-brand) 10%, transparent);
  border-radius: 50%;
  pointer-events: none;
}

.ev-bingo-eyebrow,
.ev-bingo-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--bingo-brand-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ev-bingo-eyebrow svg,
.ev-bingo-section-kicker svg { width: 18px; height: 18px; }
.ev-bingo-hero h1 { margin: 8px 0 6px; color: var(--bingo-ink); font-size: clamp(30px,4vw,48px); line-height: 1; letter-spacing: -.04em; }
.ev-bingo-hero p { max-width: 720px; margin: 0; color: var(--bingo-muted); font-size: 15px; line-height: 1.55; }
.ev-bingo-hero-actions { position: relative; z-index: 2; display: flex; align-items: flex-start; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }

.ev-bingo-btn {
  appearance: none;
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid transparent;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--bingo-brand);
  color: #fff !important;
  font-weight: 850;
  font-size: 13px;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.ev-bingo-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
.ev-bingo-btn:hover,.ev-bingo-btn:focus-visible { transform: translateY(-1px); box-shadow: 0 8px 18px color-mix(in srgb, var(--bingo-brand) 25%, transparent); outline: none; }
.ev-bingo-btn.secondary { background: var(--bingo-surface); color: var(--bingo-ink) !important; border-color: var(--bingo-border); box-shadow: none; }
.ev-bingo-btn.ghost { background: var(--bingo-surface-soft); color: var(--bingo-ink) !important; border-color: transparent; box-shadow: none; }
.ev-bingo-btn.success { background: #138a50; }
.ev-bingo-btn.danger { background: #c7342b; }
.ev-bingo-btn.warning { background: #db7b09; }
.ev-bingo-btn.small { min-height: 36px; padding: 7px 11px; font-size: 12px; }
.ev-bingo-btn:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }

.ev-bingo-public-control,
.ev-bingo-panel,
.ev-bingo-stat,
.ev-bingo-config-shell {
  border: 1px solid var(--bingo-border);
  background: var(--bingo-surface);
  box-shadow: var(--bingo-shadow);
}

.ev-bingo-public-control {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 14px;
  padding: 18px;
  border-radius: 20px;
}
.ev-bingo-public-copy h2 { margin: 0 0 3px; font-size: 17px; color: var(--bingo-ink); }
.ev-bingo-public-copy p { margin: 0; color: var(--bingo-muted); font-size: 12.5px; }
.ev-bingo-url-row { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; gap: 8px; margin-top: 12px; }
.ev-bingo-url-row input { min-width: 0; }
.ev-bingo-public-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

.ev-bingo-badge {
  min-height: 30px;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  background: var(--bingo-surface-soft);
  color: var(--bingo-muted);
  border: 1px solid var(--bingo-border);
  font-size: 11px;
  font-weight: 850;
}
.ev-bingo-badge::before { content:""; width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 4px color-mix(in srgb,#94a3b8 16%,transparent); }
.ev-bingo-badge.is-live { color: #087443; border-color: color-mix(in srgb,#13a663 32%,var(--bingo-border)); background: color-mix(in srgb,#13a663 8%,var(--bingo-surface)); }
.ev-bingo-badge.is-live::before { background:#19b66a; box-shadow:0 0 0 4px rgba(25,182,106,.13); }
.ev-bingo-badge.is-paused { color:#a15c08; border-color:color-mix(in srgb,#e38a16 35%,var(--bingo-border)); background:color-mix(in srgb,#e38a16 8%,var(--bingo-surface)); }
.ev-bingo-badge.is-paused::before { background:#e38a16; box-shadow:0 0 0 4px rgba(227,138,22,.13); }

.ev-bingo-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.ev-bingo-stat { min-height: 94px; padding: 16px; border-radius: 18px; }
.ev-bingo-stat-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--bingo-muted); font-size: 11px; font-weight: 750; }
.ev-bingo-stat-icon { width: 32px; height: 32px; display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--bingo-brand) 11%,var(--bingo-surface));color:var(--bingo-brand); }
.ev-bingo-stat-icon svg { width: 17px; height: 17px; fill:none;stroke:currentColor;stroke-width:2; }
.ev-bingo-stat strong { display:block; margin-top: 5px; color: var(--bingo-ink); font-size: 27px; line-height:1; letter-spacing:-.04em; }

.ev-bingo-workspace { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.75fr); gap: 14px; margin-bottom: 14px; }
.ev-bingo-panel { border-radius: 22px; padding: 18px; min-width: 0; }
.ev-bingo-panel-head { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px; }
.ev-bingo-panel-head h2 { margin: 3px 0 0; color:var(--bingo-ink);font-size:18px; }
.ev-bingo-panel-head p { margin:4px 0 0;color:var(--bingo-muted);font-size:12px;line-height:1.45; }

.ev-bingo-live-stage {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 180px minmax(0,1fr);
  gap: 18px;
  align-items: center;
  min-height: 230px;
  padding: 20px;
  border-radius: 19px;
  background:
    radial-gradient(circle at 86% 15%, rgba(255,255,255,.12) 0 58px, transparent 60px),
    linear-gradient(135deg, #172b4b 0%, #1d4f7e 56%, #3683c5 100%);
  color: #fff;
}
.ev-bingo-live-ball {
  position: relative;
  width: 158px;
  height: 158px;
  margin: 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border: 8px solid rgba(255,255,255,.9);
  background: radial-gradient(circle at 34% 27%, #fff 0 17%, #dcecff 18% 23%, var(--bingo-brand) 24% 74%, var(--bingo-brand-dark) 75% 100%);
  box-shadow: 0 22px 40px rgba(0,0,0,.28), inset 0 -12px 24px rgba(0,0,0,.16);
}
.ev-bingo-live-ball span { font-size: 15px; font-weight: 950; letter-spacing:.08em; opacity:.92; }
.ev-bingo-live-ball strong { margin-top:-3px;font-size:54px;line-height:1;font-weight:1000;letter-spacing:-.06em; }
.ev-bingo-live-copy h3 { margin: 0 0 6px; font-size: clamp(25px,3vw,38px); letter-spacing:-.04em; }
.ev-bingo-live-copy p { margin:0 0 16px;color:rgba(255,255,255,.78);font-size:13px; }
.ev-bingo-live-controls { display:flex;gap:8px;flex-wrap:wrap; }
.ev-bingo-live-controls .ev-bingo-btn.secondary,.ev-bingo-live-controls .ev-bingo-btn.ghost { background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff!important; }
.ev-bingo-manual { width: 90px; min-height:42px; border:1px solid rgba(255,255,255,.25);border-radius:11px;background:rgba(255,255,255,.12);color:#fff;padding:0 11px;font-weight:800; }
.ev-bingo-manual::placeholder{color:rgba(255,255,255,.62)}
.ev-bingo-recent { display:flex;gap:7px;flex-wrap:wrap;margin-top:15px; }
.ev-bingo-recent-ball { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);font-size:11px;font-weight:900; }

.ev-bingo-mini-board { margin-top:14px; }
.ev-bingo-mini-board-title { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;color:var(--bingo-muted);font-size:11px;font-weight:800; }
.ev-bingo-numberboard { display:grid;gap:4px; }
.ev-bingo-board-row { display:grid;grid-template-columns:32px repeat(15,minmax(0,1fr));gap:3px;align-items:center; }
.ev-bingo-board-letter { width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--bingo-brand);color:#fff;font-weight:950;font-size:13px; }
.ev-bingo-board-number { min-width:0;aspect-ratio:1.15;border-radius:7px;display:grid;place-items:center;border:1px solid var(--bingo-border);background:var(--bingo-surface-soft);color:var(--bingo-muted);font-size:10px;font-weight:800; }
.ev-bingo-board-number.called { background:var(--bingo-brand);border-color:var(--bingo-brand);color:#fff;box-shadow:0 4px 10px color-mix(in srgb,var(--bingo-brand) 25%,transparent); }
.ev-bingo-board-number.current { outline:2px solid #f7b731;outline-offset:1px;background:#fff3bf;color:#5f4700;border-color:#f7b731; }

.ev-bingo-target-card { display:grid;gap:12px; }
.ev-bingo-target-select { width:100%; }
.ev-bingo-pattern-stage { display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid var(--bingo-border);border-radius:16px;background:var(--bingo-surface-soft); }
.ev-bingo-pattern-preview { display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:100%;max-width:108px;aspect-ratio:1; }
.ev-bingo-pattern-preview i { display:block;border-radius:4px;background:color-mix(in srgb,var(--bingo-muted) 12%,var(--bingo-surface));border:1px solid color-mix(in srgb,var(--bingo-muted) 17%,transparent); }
.ev-bingo-pattern-preview i.on { background:var(--bingo-brand);border-color:var(--bingo-brand);box-shadow:0 3px 8px color-mix(in srgb,var(--bingo-brand) 20%,transparent); }
.ev-bingo-pattern-copy strong { display:block;font-size:16px;color:var(--bingo-ink); }
.ev-bingo-pattern-copy span { display:block;margin-top:4px;font-size:12px;line-height:1.4;color:var(--bingo-muted); }
.ev-bingo-claims { max-height:230px;overflow:auto;border-top:1px solid var(--bingo-border); }
.ev-bingo-claim { padding:10px 2px;border-bottom:1px solid var(--bingo-border); }
.ev-bingo-claim strong { display:block;color:var(--bingo-ink);font-size:12px; }
.ev-bingo-claim small { display:block;margin-top:3px;color:var(--bingo-muted);font-size:10px; }

.ev-bingo-config-shell { border-radius:22px;overflow:hidden; }
.ev-bingo-tabs { display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--bingo-border);background:var(--bingo-surface-soft);overflow-x:auto; }
.ev-bingo-tab { appearance:none;white-space:nowrap;border:0;border-radius:10px;padding:10px 13px;background:transparent;color:var(--bingo-muted);font-size:12px;font-weight:850;cursor:pointer; }
.ev-bingo-tab.active { background:var(--bingo-surface);color:var(--bingo-brand-dark);box-shadow:0 4px 12px rgba(23,30,55,.06); }
.ev-bingo-tab-panel { display:none;padding:20px; }
.ev-bingo-tab-panel.active { display:block; }
.ev-bingo-config-intro { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px; }
.ev-bingo-config-intro h2 { margin:0;color:var(--bingo-ink);font-size:19px; }
.ev-bingo-config-intro p { max-width:740px;margin:5px 0 0;color:var(--bingo-muted);font-size:12.5px;line-height:1.5; }

.ev-bingo-pattern-gallery { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:12px 0 18px; }
.ev-bingo-pattern-card { min-width:0;padding:10px;border:1px solid var(--bingo-border);border-radius:14px;background:var(--bingo-surface); }
.ev-bingo-pattern-card .ev-bingo-pattern-preview { max-width:74px;margin:0 auto 8px;gap:3px; }
.ev-bingo-pattern-card strong { display:block;text-align:center;color:var(--bingo-ink);font-size:10px;line-height:1.2; }

.ev-bingo-mini-list { display:grid;gap:10px; }
.ev-bingo-mini-item { display:grid;grid-template-columns:42px minmax(150px,.8fr) minmax(170px,1fr) 108px minmax(150px,.8fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--bingo-border);border-radius:16px;background:var(--bingo-surface-soft); }
.ev-bingo-mini-index { width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--bingo-brand);color:#fff;font-weight:950; }
.ev-bingo-mini-item input,.ev-bingo-mini-item select { width:100%; }
.ev-bingo-mini-item .ev-bingo-pattern-preview { width:68px;justify-self:center;gap:2px; }
.ev-bingo-mini-custom { grid-column:2/-1;display:none;padding:10px;border-radius:12px;background:var(--bingo-surface);border:1px dashed var(--bingo-border); }
.ev-bingo-mini-custom.active { display:block; }
.ev-bingo-custom-editor { display:grid;grid-template-columns:repeat(5,34px);gap:5px;margin-top:8px; }
.ev-bingo-custom-cell { appearance:none;width:34px;height:34px;border:1px solid var(--bingo-border);border-radius:7px;background:var(--bingo-surface-soft);cursor:pointer; }
.ev-bingo-custom-cell.active { background:var(--bingo-brand);border-color:var(--bingo-brand);box-shadow:0 3px 8px color-mix(in srgb,var(--bingo-brand) 24%,transparent); }

.ev-bingo-form-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
.ev-bingo-field { min-width:0; }
.ev-bingo-field.span-2 { grid-column:span 2; }
.ev-bingo-field.span-4 { grid-column:1/-1; }
.ev-bingo-field label { display:block;margin-bottom:6px;color:var(--bingo-muted);font-size:10.5px;font-weight:850; }
.ev-bingo-field small { display:block;margin-top:5px;color:var(--bingo-muted);font-size:10px;line-height:1.4; }
.ev-bingo-field input:not([type="checkbox"]):not([type="color"]),
.ev-bingo-field select,
.ev-bingo-field textarea,
.ev-bingo-url-row input,
.ev-bingo-physical input {
  width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--bingo-border);border-radius:10px;background:var(--bingo-input);color:var(--bingo-ink);outline:none;
}
.ev-bingo-field textarea { min-height:84px;resize:vertical; }
.ev-bingo-field input:focus,.ev-bingo-field select:focus,.ev-bingo-field textarea:focus,.ev-bingo-url-row input:focus,.ev-bingo-physical input:focus { border-color:var(--bingo-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--bingo-brand) 13%,transparent); }
.ev-bingo-color-row { display:flex;align-items:center;gap:8px; }
.ev-bingo-color-row input[type="color"] { width:48px;height:42px;padding:3px;border:1px solid var(--bingo-border);border-radius:10px;background:var(--bingo-input); }
.ev-bingo-toggle { display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 11px;border:1px solid var(--bingo-border);border-radius:10px;background:var(--bingo-surface-soft);color:var(--bingo-ink);font-size:12px;font-weight:750; }

.ev-bingo-standard-preset { display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--bingo-brand) 30%,var(--bingo-border));border-radius:15px;background:color-mix(in srgb,var(--bingo-brand) 6%,var(--bingo-surface)); }
.ev-bingo-standard-preset svg { width:38px;height:38px;flex:0 0 auto;color:var(--bingo-brand); }
.ev-bingo-standard-preset strong { display:block;color:var(--bingo-ink);font-size:13px; }
.ev-bingo-standard-preset span { display:block;margin-top:3px;color:var(--bingo-muted);font-size:10.5px; }
.ev-bingo-standard-preset .ev-bingo-btn { margin-left:auto; }

.ev-bingo-prizes { display:grid;gap:9px; }
.ev-bingo-prize-row { display:grid;grid-template-columns:minmax(140px,.8fr) minmax(180px,1.2fr) minmax(150px,.8fr) auto;gap:8px;align-items:start;padding:10px;border:1px solid var(--bingo-border);border-radius:14px;background:var(--bingo-surface-soft); }
.ev-bingo-prize-row input { min-height:40px;padding:8px 9px;border:1px solid var(--bingo-border);border-radius:9px;background:var(--bingo-input);color:var(--bingo-ink); }
.ev-bingo-prize-row .ev-bingo-btn { min-height:40px; }

.ev-bingo-physical { display:grid;grid-template-columns:130px 130px auto;gap:8px;align-items:end;max-width:560px; }
.ev-bingo-help-card { padding:15px;border:1px solid var(--bingo-border);border-radius:15px;background:var(--bingo-surface-soft); }
.ev-bingo-help-card strong { color:var(--bingo-ink);font-size:13px; }
.ev-bingo-help-card p { margin:5px 0 0;color:var(--bingo-muted);font-size:11px;line-height:1.5; }
.ev-bingo-message { display:none;position:fixed;right:18px;bottom:18px;z-index:99999;max-width:360px;padding:12px 14px;border-radius:12px;background:#182230;color:#fff;box-shadow:0 14px 34px rgba(0,0,0,.28);font-size:12px;font-weight:750; }
.ev-bingo-message.show { display:block;animation:evBingoToast .22s ease both; }
@keyframes evBingoToast { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

/* =========================================================
 * Pantalla pública / escenario fullscreen
 * ========================================================= */
body.eventosapp-bingo-public-page { margin:0!important;overflow:hidden!important;background:#09162a!important; }
body.eventosapp-bingo-public-page #eventosapp-app-root { width:100%!important;max-width:none!important;min-height:100vh!important;padding:0!important;margin:0!important;background:#09162a!important; }
body.eventosapp-bingo-public-page .elementor,
body.eventosapp-bingo-public-page .elementor-section,
body.eventosapp-bingo-public-page .elementor-container,
body.eventosapp-bingo-public-page .elementor-widget-wrap,
body.eventosapp-bingo-public-page .elementor-widget,
body.eventosapp-bingo-public-page .elementor-widget-container { width:100%!important;max-width:none!important;margin:0!important;padding:0!important; }

.ev-bingo-public-stage {
  --stage-primary:#3683c5;
  --stage-secondary:#171e37;
  --stage-bg:#0f2340;
  position:relative;
  width:100%;
  height:100vh;
  min-height:620px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 12% 22%, color-mix(in srgb,var(--stage-primary) 35%,transparent) 0 130px, transparent 132px),
    radial-gradient(circle at 88% 82%, color-mix(in srgb,var(--stage-primary) 28%,transparent) 0 190px, transparent 192px),
    linear-gradient(135deg, color-mix(in srgb,var(--stage-secondary) 92%,#000) 0%, var(--stage-bg) 48%, color-mix(in srgb,var(--stage-primary) 58%,var(--stage-bg)) 100%);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.ev-bingo-public-stage::before { content:"";position:absolute;inset:0;opacity:.17;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 82%);pointer-events:none; }
.evbp-shell { position:relative;z-index:2;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:clamp(16px,2vw,28px); }
.evbp-topbar { display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px; }
.evbp-brand { display:flex;align-items:center;gap:13px;min-width:0; }
.evbp-logo { max-width:190px;max-height:54px;object-fit:contain; }
.evbp-event { min-width:0; }
.evbp-event small { display:block;color:rgba(255,255,255,.58);font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase; }
.evbp-event strong { display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px; }
.evbp-top-actions { display:flex;align-items:center;gap:8px; }
.evbp-pill { min-height:34px;padding:7px 11px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(9,22,42,.26);backdrop-filter:blur(12px);color:rgba(255,255,255,.82);font-size:10px;font-weight:850; }
.evbp-pill.live::before { content:"";width:7px;height:7px;border-radius:50%;background:#47e28b;box-shadow:0 0 0 5px rgba(71,226,139,.12); }
.evbp-fullscreen { appearance:none;width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:rgba(9,22,42,.26);color:#fff;cursor:pointer; }
.evbp-fullscreen svg { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2; }

.evbp-main { min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px; }
.evbp-board-card,.evbp-call-card,.evbp-objective-card { border:1px solid rgba(255,255,255,.14);background:rgba(9,22,42,.42);backdrop-filter:blur(18px);box-shadow:0 28px 70px rgba(0,0,0,.22); }
.evbp-board-card { min-height:0;display:flex;flex-direction:column;padding:clamp(14px,1.8vw,22px);border-radius:26px; }
.evbp-card-head { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px; }
.evbp-card-head small { display:block;color:rgba(255,255,255,.55);font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase; }
.evbp-card-head h2 { margin:4px 0 0;color:#fff;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.03em; }
.evbp-counter { padding:8px 11px;border-radius:12px;background:rgba(255,255,255,.09);color:rgba(255,255,255,.75);font-size:11px;font-weight:800; }
.evbp-number-board { flex:1;min-height:0;display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:6px; }
.evbp-number-row { min-height:0;display:grid;grid-template-columns:52px repeat(15,minmax(0,1fr));gap:5px; }
.evbp-letter { min-height:0;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--stage-primary) 74%,#10223d);color:#fff;font-size:clamp(18px,2vw,30px);font-weight:1000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); }
.evbp-number { min-width:0;min-height:0;border-radius:9px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:rgba(255,255,255,.45);font-size:clamp(10px,1.15vw,17px);font-weight:900;transition:background .24s ease,color .24s ease,transform .24s ease,box-shadow .24s ease; }
.evbp-number.called { background:rgba(255,255,255,.93);color:#10223d;border-color:#fff;box-shadow:0 5px 14px rgba(0,0,0,.13); }
.evbp-number.current { background:#ffd866;color:#3d2b00;border-color:#fff3b8;transform:scale(1.07);box-shadow:0 0 0 4px rgba(255,216,102,.17),0 8px 18px rgba(0,0,0,.24); }

.evbp-side { min-height:0;display:grid;grid-template-rows:minmax(270px,1.15fr) minmax(180px,.85fr);gap:16px; }
.evbp-call-card { position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;border-radius:26px;text-align:center; }
.evbp-call-card::before,.evbp-call-card::after { content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.11);pointer-events:none; }
.evbp-call-card::before { width:360px;height:360px; }
.evbp-call-card::after { width:285px;height:285px; }
.evbp-title { position:relative;z-index:2;margin:0 0 2px;font-size:clamp(24px,3vw,40px);letter-spacing:-.04em; }
.evbp-status { position:relative;z-index:2;color:rgba(255,255,255,.62);font-size:12px;font-weight:750; }
.evbp-ball { position:relative;z-index:3;width:min(31vh,230px);height:min(31vh,230px);min-width:150px;min-height:150px;margin:14px auto 8px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:10px solid rgba(255,255,255,.9);background:radial-gradient(circle at 32% 24%,#fff 0 16%,#dceeff 17% 22%,var(--stage-primary) 23% 72%,color-mix(in srgb,var(--stage-primary) 55%,#08192f) 73% 100%);box-shadow:0 30px 55px rgba(0,0,0,.36),inset 0 -18px 32px rgba(0,0,0,.18);transition:transform .28s cubic-bezier(.2,.9,.2,1.2); }
.evbp-ball.pop { animation:evBingoBallPop .58s cubic-bezier(.2,.9,.2,1.25); }
.evbp-ball-letter { margin-bottom:-6px;font-size:clamp(16px,2vw,24px);font-weight:1000;letter-spacing:.16em; }
.evbp-ball-number { font-size:clamp(65px,9vw,112px);line-height:.95;font-weight:1000;letter-spacing:-.08em; }
@keyframes evBingoBallPop { 0%{transform:scale(.72) rotate(-18deg);filter:brightness(1.7)} 58%{transform:scale(1.13) rotate(5deg)} 100%{transform:scale(1) rotate(0)} }
.evbp-recent { position:relative;z-index:4;display:flex;gap:6px;justify-content:center;flex-wrap:wrap; }
.evbp-recent span { min-width:32px;height:32px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);font-size:10px;font-weight:900;color:rgba(255,255,255,.82); }

.evbp-objective-card { display:grid;grid-template-columns:100px minmax(0,1fr);gap:13px;align-items:center;padding:14px;border-radius:23px; }
.evbp-pattern { width:92px;height:92px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;border-radius:16px;background:rgba(255,255,255,.07); }
.evbp-pattern i { border-radius:4px;background:rgba(255,255,255,.10); }
.evbp-pattern i.on { background:#ffd866;box-shadow:0 3px 8px rgba(255,216,102,.22); }
.evbp-objective-copy small { display:block;color:rgba(255,255,255,.55);font-size:8px;font-weight:900;letter-spacing:.14em;text-transform:uppercase; }
.evbp-objective-copy strong { display:block;margin-top:4px;font-size:17px; }
.evbp-objective-copy p { margin:4px 0 0;color:rgba(255,255,255,.6);font-size:10.5px;line-height:1.4; }
.evbp-prize { grid-column:1/-1;display:none;align-items:center;gap:10px;margin-top:2px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10); }
.evbp-prize.show { display:flex; }
.evbp-prize img { width:44px;height:44px;border-radius:10px;object-fit:cover;background:#fff; }
.evbp-prize strong { display:block;font-size:11px; }
.evbp-prize span { display:block;margin-top:2px;color:rgba(255,255,255,.58);font-size:9px; }
.evbp-footer { display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px; }
.evbp-mini-track { display:flex;gap:7px;align-items:center;overflow-x:auto;min-width:0; }
.evbp-mini-chip { flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(9,22,42,.28);color:rgba(255,255,255,.56);font-size:9.5px;font-weight:850; }
.evbp-mini-chip.active { color:#fff;border-color:rgba(255,216,102,.42);background:rgba(255,216,102,.12); }
.evbp-mini-chip b { width:18px;height:18px;display:grid;place-items:center;border-radius:6px;background:rgba(255,255,255,.1);font-size:8px; }
.evbp-connection { flex:0 0 auto;color:rgba(255,255,255,.5);font-size:9px;font-weight:750; }
.evbp-connection::before { content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#47e28b;box-shadow:0 0 0 4px rgba(71,226,139,.1);vertical-align:1px; }
.evbp-offline,.evbp-finished { position:absolute;z-index:20;inset:0;display:none;place-items:center;padding:30px;background:rgba(5,13,25,.91);backdrop-filter:blur(14px);text-align:center; }
.evbp-offline.show,.evbp-finished.show { display:grid; }
.evbp-finished[hidden] { display:none!important; }
.evbp-finished small { display:block;margin-top:12px;color:rgba(255,255,255,.62);font-size:12px; }
.evbp-offline-inner { max-width:520px; }
.evbp-offline-icon { width:78px;height:78px;margin:0 auto 16px;display:grid;place-items:center;border-radius:24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:36px; }
.evbp-offline h2 { margin:0;font-size:36px; }
.evbp-offline p { margin:9px 0 0;color:rgba(255,255,255,.65);font-size:14px;line-height:1.5; }

/* =========================================================
 * Cartón del participante
 * ========================================================= */
body.eventosapp-bingo-card-page #eventosapp-app-root { background:var(--eventosapp-app-canvas); }
.ev-bingo-player { width:min(760px,100%);margin:0 auto;padding:8px 0 34px; }
.evpl-hero { position:relative;overflow:hidden;padding:20px;border:1px solid var(--bingo-border);border-radius:22px;background:linear-gradient(135deg,var(--bingo-surface),var(--bingo-surface-soft));box-shadow:var(--bingo-shadow); }
.evpl-brand { display:flex;align-items:center;gap:12px; }
.evpl-logo { max-width:150px;max-height:52px;object-fit:contain; }
.evpl-copy h1 { margin:0;color:var(--bingo-ink);font-size:25px;letter-spacing:-.03em; }
.evpl-copy p { margin:4px 0 0;color:var(--bingo-muted);font-size:11px; }
.evpl-target { display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;margin-top:15px;padding:12px;border:1px solid var(--bingo-border);border-radius:15px;background:var(--bingo-surface); }
.evpl-target-grid { width:66px;height:66px;display:grid;grid-template-columns:repeat(5,1fr);gap:3px; }
.evpl-target-grid i { border-radius:3px;background:color-mix(in srgb,var(--bingo-muted) 13%,var(--bingo-surface)); }
.evpl-target-grid i.on { background:var(--bingo-brand); }
.evpl-target small { display:block;color:var(--bingo-muted);font-size:8px;font-weight:900;letter-spacing:.11em;text-transform:uppercase; }
.evpl-target strong { display:block;margin-top:3px;color:var(--bingo-ink);font-size:14px; }
.evpl-target span { display:block;margin-top:3px;color:var(--bingo-muted);font-size:10px;line-height:1.35; }
.evpl-tabs { display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:14px 0 10px; }
.evpl-tab { appearance:none;min-height:34px;padding:7px 11px;border:1px solid var(--bingo-border);border-radius:999px;background:var(--bingo-surface);color:var(--bingo-muted);font-size:10px;font-weight:850;cursor:pointer; }
.evpl-tab.active { background:var(--bingo-brand);border-color:var(--bingo-brand);color:#fff; }
.evpl-status { margin:10px 0;padding:10px 12px;border:1px solid var(--bingo-border);border-radius:12px;background:var(--bingo-surface-soft);color:var(--bingo-ink);font-size:11px;font-weight:700; }
.evpl-status.error { color:#b42318;background:color-mix(in srgb,#f04438 8%,var(--bingo-surface));border-color:color-mix(in srgb,#f04438 30%,var(--bingo-border)); }
.evpl-status.success { color:#067647;background:color-mix(in srgb,#12b76a 8%,var(--bingo-surface));border-color:color-mix(in srgb,#12b76a 30%,var(--bingo-border)); }
.evpl-card { overflow:hidden;border:1px solid var(--bingo-border);border-radius:20px;background:var(--bingo-surface);box-shadow:var(--bingo-shadow); }
.evpl-letters { display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--bingo-border); }
.evpl-letter { min-height:38px;display:grid;place-items:center;background:var(--bingo-brand);color:#fff;font-size:18px;font-weight:1000; }
.evpl-grid { display:grid;gap:5px;padding:10px; }
.evpl-cell { appearance:none;aspect-ratio:1;border:1px solid var(--bingo-border);border-radius:12px;background:var(--bingo-surface-soft);color:var(--bingo-ink);font-size:clamp(18px,7vw,30px);font-weight:950;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-tap-highlight-color:transparent;position:relative; }
.evpl-cell.valid { cursor:pointer; }
.evpl-cell.marked { background:var(--bingo-brand);color:#fff;border-color:var(--bingo-brand);box-shadow:0 7px 15px color-mix(in srgb,var(--bingo-brand) 20%,transparent); }
.evpl-cell.marked::after { content:'✓';position:absolute;right:5px;top:2px;font-size:12px; }
.evpl-cell.free { background:color-mix(in srgb,var(--bingo-brand) 9%,var(--bingo-surface));color:var(--bingo-brand-dark);font-size:10px; }
.evpl-bingo { width:100%;min-height:60px;margin-top:12px;border:0;border-radius:16px;background:linear-gradient(135deg,var(--bingo-brand),var(--bingo-brand-dark));color:#fff;font-size:19px;font-weight:1000;letter-spacing:.02em;opacity:.38;box-shadow:0 10px 25px color-mix(in srgb,var(--bingo-brand) 20%,transparent); }
.evpl-bingo.enabled { opacity:1;cursor:pointer;animation:evBingoReady 1.3s ease-in-out infinite alternate; }
@keyframes evBingoReady { from{box-shadow:0 9px 22px color-mix(in srgb,var(--bingo-brand) 16%,transparent)} to{box-shadow:0 12px 32px color-mix(in srgb,var(--bingo-brand) 38%,transparent)} }
.evpl-history { display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:9px;color:var(--bingo-muted);font-size:10px; }
.evpl-history span { padding:5px 8px;border:1px solid var(--bingo-border);border-radius:999px;background:var(--bingo-surface); }
.evpl-queue { padding:28px;border:1px solid var(--bingo-border);border-radius:18px;background:var(--bingo-surface);color:var(--bingo-ink);text-align:center;box-shadow:var(--bingo-shadow); }

html[data-evapp-theme="dark"] .ev-bingo-admin .ev-bingo-badge.is-live { color:#78e9ad; }
html[data-evapp-theme="dark"] .ev-bingo-admin .ev-bingo-badge.is-paused { color:#f7c36d; }
html[data-evapp-theme="dark"] .ev-bingo-admin .ev-bingo-board-number.current { color:#3b2b00; }
html[data-evapp-theme="dark"] .ev-bingo-player .evpl-status.success { color:#78e9ad; }
html[data-evapp-theme="dark"] .ev-bingo-player .evpl-status.error { color:#ff9c95; }

@media (max-width:1020px) {
  .ev-bingo-workspace { grid-template-columns:1fr; }
  .ev-bingo-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ev-bingo-field.span-4 { grid-column:1/-1; }
  .ev-bingo-pattern-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ev-bingo-mini-item { grid-template-columns:42px 1fr 1fr 90px auto; }
  .ev-bingo-mini-item .ev-bingo-mini-prize { grid-column:2/5; }
  .ev-bingo-mini-custom { grid-column:2/-1; }
  .evbp-main { grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); }
  .evbp-number-row { grid-template-columns:42px repeat(15,minmax(0,1fr));gap:3px; }
}

@media (max-width:760px) {
  .ev-bingo-hero { grid-template-columns:1fr;padding:22px; }
  .ev-bingo-hero-actions { justify-content:flex-start; }
  .ev-bingo-public-control { grid-template-columns:1fr; }
  .ev-bingo-public-actions { justify-content:flex-start; }
  .ev-bingo-url-row { grid-template-columns:1fr 1fr; }
  .ev-bingo-url-row input { grid-column:1/-1; }
  .ev-bingo-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ev-bingo-live-stage { grid-template-columns:1fr;text-align:center; }
  .ev-bingo-live-controls,.ev-bingo-recent { justify-content:center; }
  .ev-bingo-form-grid { grid-template-columns:1fr; }
  .ev-bingo-field.span-2,.ev-bingo-field.span-4 { grid-column:auto; }
  .ev-bingo-pattern-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ev-bingo-mini-item { grid-template-columns:42px minmax(0,1fr) auto;align-items:start; }
  .ev-bingo-mini-item > :not(.ev-bingo-mini-index):not(.ev-bingo-mini-remove):not(.ev-bingo-mini-custom) { grid-column:2/3; }
  .ev-bingo-mini-item .ev-bingo-pattern-preview { grid-column:1/2;grid-row:2/4; }
  .ev-bingo-mini-custom { grid-column:1/-1; }
  .ev-bingo-prize-row { grid-template-columns:1fr; }
  .ev-bingo-physical { grid-template-columns:1fr; }
  .ev-bingo-standard-preset { align-items:flex-start;flex-wrap:wrap; }
  .ev-bingo-standard-preset .ev-bingo-btn { margin-left:0; }

  body.eventosapp-bingo-public-page { overflow:auto!important; }
  .ev-bingo-public-stage { height:auto;min-height:100vh;overflow:visible; }
  .evbp-shell { min-height:100vh;grid-template-rows:auto auto auto; }
  .evbp-main { grid-template-columns:1fr; }
  .evbp-side { grid-template-rows:auto auto; }
  .evbp-board-card { min-height:430px; }
  .evbp-number-row { grid-template-columns:34px repeat(15,minmax(22px,1fr));gap:3px; }
  .evbp-letter { border-radius:8px;font-size:16px; }
  .evbp-number { border-radius:6px;font-size:9px; }
  .evbp-call-card { min-height:380px; }
  .evbp-objective-card { min-height:150px; }
  .evbp-footer { align-items:flex-start;flex-direction:column; }
  .evbp-connection { align-self:flex-end; }
}

@media (max-width:520px) {
  .ev-bingo-admin { padding-bottom:18px; }
  .ev-bingo-hero { border-radius:19px;padding:18px; }
  .ev-bingo-hero h1 { font-size:30px; }
  .ev-bingo-stats { gap:8px; }
  .ev-bingo-stat { padding:12px;min-height:82px; }
  .ev-bingo-stat strong { font-size:22px; }
  .ev-bingo-panel { padding:14px;border-radius:18px; }
  .ev-bingo-tabs { padding:6px; }
  .ev-bingo-tab-panel { padding:14px; }
  .ev-bingo-pattern-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ev-bingo-custom-editor { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .ev-bingo-custom-cell { width:100%;height:auto;aspect-ratio:1; }
  .evpl-hero { padding:15px;border-radius:18px; }
  .evpl-target { grid-template-columns:62px 1fr; }
  .evpl-target-grid { width:58px;height:58px; }
  .evpl-grid { gap:4px;padding:8px; }
  .evpl-cell { border-radius:9px; }
  .evbp-shell { padding:10px;gap:10px; }
  .evbp-topbar { align-items:flex-start; }
  .evbp-logo { max-width:120px;max-height:42px; }
  .evbp-pill { display:none; }
  .evbp-board-card,.evbp-call-card,.evbp-objective-card { border-radius:18px; }
  .evbp-board-card { min-height:360px;padding:10px; }
  .evbp-number-row { grid-template-columns:28px repeat(15,minmax(18px,1fr));gap:2px; }
  .evbp-letter { font-size:13px; }
  .evbp-number { font-size:8px; }
}


/* rc119 — orden de etapas + escenario público verdaderamente responsive */
.ev-bingo-stage-order{display:grid;grid-template-rows:auto 36px auto;gap:3px;align-items:center;justify-items:center}
.ev-bingo-stage-arrow{appearance:none;width:28px;height:24px;padding:0;border:1px solid var(--bingo-border);border-radius:7px;background:var(--bingo-surface);color:var(--bingo-brand-dark);font:900 14px/1 inherit;cursor:pointer}
.ev-bingo-stage-arrow:hover,.ev-bingo-stage-arrow:focus-visible{border-color:var(--bingo-brand);color:var(--bingo-brand);outline:none}
.ev-bingo-stage-drag{cursor:grab;touch-action:none}.ev-bingo-stage-drag:active{cursor:grabbing}
.ev-bingo-mini-item.is-dragging{opacity:.55;box-shadow:0 10px 26px rgba(23,30,55,.12)}
.ev-bingo-mini-item{grid-template-columns:48px minmax(150px,.8fr) minmax(170px,1fr) 108px minmax(150px,.8fr) auto}

.ev-bingo-public-stage{
  height:100dvh;
  min-height:0;
  font-size:clamp(14px,.78vw + .35vh,24px);
}
.evbp-shell{gap:clamp(8px,1vh,18px);padding:clamp(10px,1.25vw,30px)}
.evbp-topbar{min-height:clamp(48px,6vh,88px);gap:clamp(10px,1vw,24px)}
.evbp-logo{max-width:clamp(120px,12vw,280px);max-height:clamp(42px,6vh,86px)}
.evbp-event small{font-size:clamp(9px,.58vw,16px)}
.evbp-event strong{font-size:clamp(14px,1.08vw,28px)}
.evbp-pill{min-height:clamp(32px,3.6vh,48px);font-size:clamp(10px,.68vw,17px)}
.evbp-fullscreen{width:clamp(34px,2.4vw,52px);height:clamp(34px,2.4vw,52px)}
.evbp-main{grid-template-columns:minmax(0,1.42fr) minmax(clamp(280px,25vw,560px),.58fr);gap:clamp(10px,1vw,22px)}
.evbp-board-card,.evbp-call-card,.evbp-objective-card{border-radius:clamp(16px,1.5vw,32px)}
.evbp-board-card{padding:clamp(10px,1.25vw,28px)}
.evbp-card-head{margin-bottom:clamp(7px,.8vh,14px)}
.evbp-card-head small{font-size:clamp(9px,.58vw,15px)}
.evbp-card-head h2{font-size:clamp(20px,1.65vw,40px)}
.evbp-counter{font-size:clamp(10px,.72vw,18px);padding:clamp(6px,.55vw,12px)}
.evbp-number-board{gap:clamp(3px,.42vh,8px)}
.evbp-number-row{grid-template-columns:clamp(36px,3.25vw,72px) repeat(15,minmax(0,1fr));gap:clamp(2px,.28vw,7px)}
.evbp-letter{border-radius:clamp(8px,.75vw,16px);font-size:clamp(17px,1.5vw,34px)}
.evbp-number{border-radius:clamp(6px,.55vw,12px);font-size:clamp(10px,.88vw,21px)}
.evbp-side{grid-template-rows:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(10px,1vh,20px)}
.evbp-call-card{padding:clamp(10px,1vw,24px)}
.evbp-title{font-size:clamp(22px,2vw,46px)}
.evbp-status{font-size:clamp(11px,.72vw,18px)}
.evbp-ball{width:min(26vh,15vw,300px);height:min(26vh,15vw,300px);min-width:clamp(120px,10vw,200px);min-height:clamp(120px,10vw,200px);margin:clamp(6px,1vh,16px) auto}
.evbp-ball-letter{font-size:clamp(15px,1.25vw,28px)}
.evbp-ball-number{font-size:clamp(58px,5.8vw,132px)}
.evbp-recent span{min-width:clamp(30px,2vw,44px);height:clamp(30px,2vw,44px);font-size:clamp(9px,.62vw,15px)}
.evbp-objective-card{grid-template-columns:clamp(112px,8vw,180px) minmax(0,1fr);gap:clamp(12px,1vw,24px);padding:clamp(14px,1.1vw,26px)}
.evbp-pattern{width:clamp(106px,7.4vw,166px);height:clamp(106px,7.4vw,166px);gap:clamp(4px,.3vw,7px);padding:clamp(8px,.55vw,13px)}
.evbp-objective-copy small{font-size:clamp(9px,.58vw,15px)}
.evbp-objective-copy strong{margin-top:clamp(4px,.35vh,8px);font-size:clamp(18px,1.25vw,30px)}
.evbp-objective-copy p{font-size:clamp(11px,.76vw,19px);line-height:1.45}
.evbp-prize{gap:clamp(10px,.7vw,16px);padding-top:clamp(9px,.7vh,15px)}
.evbp-prize img{width:clamp(48px,3.5vw,78px);height:clamp(48px,3.5vw,78px)}
.evbp-prize strong{font-size:clamp(12px,.8vw,19px)}
.evbp-prize span{font-size:clamp(10px,.65vw,16px)}
.evbp-footer{min-height:clamp(34px,4vh,52px)}
.evbp-mini-chip{font-size:clamp(9px,.6vw,14px);padding:clamp(5px,.42vw,9px) clamp(8px,.65vw,14px)}
.evbp-mini-chip b{width:clamp(18px,1.3vw,28px);height:clamp(18px,1.3vw,28px);font-size:clamp(8px,.52vw,12px)}
.evbp-connection{font-size:clamp(9px,.58vw,14px)}

@media (max-aspect-ratio: 4/3){
  body.eventosapp-bingo-public-page{overflow:auto!important}
  .ev-bingo-public-stage{height:auto;min-height:100dvh;overflow:auto}
  .evbp-shell{min-height:100dvh;grid-template-rows:auto auto auto}
  .evbp-main{grid-template-columns:1fr;grid-template-rows:auto auto}
  .evbp-board-card{min-height:52vh}
  .evbp-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(260px,auto)}
  .evbp-ball{width:min(22vh,24vw,240px);height:min(22vh,24vw,240px)}
}
@media (max-width: 900px){
  .evbp-side{grid-template-columns:1fr;grid-template-rows:auto auto}
  .evbp-board-card{min-height:440px}
  .evbp-number-row{grid-template-columns:34px repeat(15,minmax(22px,1fr));min-width:720px}
  .evbp-number-board{overflow-x:auto}
  .evbp-objective-card{grid-template-columns:120px minmax(0,1fr)}
  .evbp-footer{flex-wrap:wrap}
}
@media (max-height: 700px) and (min-aspect-ratio: 4/3){
  .evbp-shell{padding:8px 12px;gap:7px}
  .evbp-topbar{min-height:42px}
  .evbp-logo{max-height:38px}
  .evbp-main{gap:8px}
  .evbp-board-card,.evbp-call-card,.evbp-objective-card{border-radius:16px}
  .evbp-board-card{padding:9px}
  .evbp-card-head{margin-bottom:6px}
  .evbp-side{grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);gap:8px}
  .evbp-ball{width:min(23vh,150px);height:min(23vh,150px);min-width:105px;min-height:105px;border-width:7px;margin:4px auto}
  .evbp-ball-number{font-size:clamp(48px,6vw,76px)}
  .evbp-objective-card{grid-template-columns:92px minmax(0,1fr);padding:9px}
  .evbp-pattern{width:86px;height:86px;padding:6px;gap:3px}
  .evbp-footer{min-height:30px}
}


/* rc120 — viewport real de la pantalla pública
 * La proyección es una vista dedicada: se ancla directamente al viewport para que
 * Elementor/tema no puedan imponer min-width, max-width o anchos de contenedor.
 */
html:has(body.eventosapp-bingo-public-page),
body.eventosapp-bingo-public-page{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page #page,
body.eventosapp-bingo-public-page #content,
body.eventosapp-bingo-public-page #primary,
body.eventosapp-bingo-public-page #main,
body.eventosapp-bingo-public-page #eventosapp-app-root,
body.eventosapp-bingo-public-page .site,
body.eventosapp-bingo-public-page .site-content,
body.eventosapp-bingo-public-page .elementor,
body.eventosapp-bingo-public-page .elementor-element,
body.eventosapp-bingo-public-page .elementor-section,
body.eventosapp-bingo-public-page .elementor-container,
body.eventosapp-bingo-public-page .elementor-widget-wrap,
body.eventosapp-bingo-public-page .elementor-widget,
body.eventosapp-bingo-public-page .elementor-widget-container,
body.eventosapp-bingo-public-page .elementor-widget-shortcode,
body.eventosapp-bingo-public-page .e-con,
body.eventosapp-bingo-public-page .e-con-inner{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
body.eventosapp-bingo-public-page .ev-bingo-public-stage{
  position:fixed!important;
  inset:0!important;
  z-index:999999!important;
  width:100vw!important;
  max-width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-shell,
body.eventosapp-bingo-public-page .evbp-main,
body.eventosapp-bingo-public-page .evbp-board-card,
body.eventosapp-bingo-public-page .evbp-side,
body.eventosapp-bingo-public-page .evbp-call-card,
body.eventosapp-bingo-public-page .evbp-objective-card,
body.eventosapp-bingo-public-page .evbp-number-board,
body.eventosapp-bingo-public-page .evbp-number-row{
  min-width:0!important;
  max-width:100%!important;
}
body.eventosapp-bingo-public-page .evbp-shell{
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-main{
  width:100%!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-board-card,
body.eventosapp-bingo-public-page .evbp-side{
  width:auto!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-number-board,
body.eventosapp-bingo-public-page .evbp-number-row{
  width:100%!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-footer{
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
body.eventosapp-bingo-public-page .evbp-mini-track{
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none;
}
body.eventosapp-bingo-public-page .evbp-mini-track::-webkit-scrollbar{display:none}

@media (max-aspect-ratio:4/3){
  body.eventosapp-bingo-public-page{overflow:hidden!important}
  body.eventosapp-bingo-public-page .ev-bingo-public-stage{height:100dvh!important;overflow:hidden!important}
  body.eventosapp-bingo-public-page .evbp-shell{min-height:0!important;grid-template-rows:auto minmax(0,1fr) auto!important}
  body.eventosapp-bingo-public-page .evbp-main{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr)!important;grid-template-rows:minmax(0,1fr)!important}
  body.eventosapp-bingo-public-page .evbp-board-card{min-height:0!important}
  body.eventosapp-bingo-public-page .evbp-side{grid-template-columns:1fr!important;grid-template-rows:minmax(0,1.12fr) minmax(0,.88fr)!important}
}
