/* ePoll Extras - estilos públicos. Todas las clases llevan el prefijo epex- */
.epex-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:99999;padding:16px}
.epex-overlay.epex-open{display:flex}
.epex-modal{position:relative;background:#fff;color:#222;width:100%;max-width:420px;border-radius:14px;padding:26px 22px 22px;box-shadow:0 20px 50px rgba(0,0,0,.35);font-family:inherit}
.epex-modal h3{margin:0 0 8px;font-size:20px;color:#222}
.epex-modal p{margin:0 0 14px;font-size:15px;line-height:1.4;color:#444}
.epex-input{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #c9c9c9;border-radius:8px;font-size:16px}
.epex-input:focus{outline:2px solid #2c5aa2;border-color:#2c5aa2}
.epex-consent{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;font-size:13px;line-height:1.35;color:#444}
.epex-consent input{margin-top:3px}
.epex-error{min-height:18px;margin-top:8px;font-size:13px;color:#b00020}
.epex-actions{display:flex;justify-content:flex-end;margin-top:10px}
.epex-btn{border:0;border-radius:8px;padding:11px 20px;font-size:15px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(90deg,#ff8a3d,#ff5e62)}
.epex-btn-ghost{position:absolute;top:8px;right:10px;padding:2px 10px;background:transparent;color:#777;font-size:24px;line-height:1}
.epex-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#222;color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;max-width:90%;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:99999}
.epex-toast.epex-show{opacity:1;transform:translate(-50%,0)}
.epex-closed{margin:0 0 16px;padding:18px 16px;text-align:center;font-size:18px;font-weight:700;color:#fff;background:linear-gradient(90deg,#2c5aa2,#6a3fa0);border-radius:12px}

/* Resultados en vivo */
.epex-results{max-width:760px;margin:0 auto;font-family:inherit}
.epex-results-note{margin:0 0 10px;padding:8px 12px;font-size:13px;background:#fff6d6;border-radius:8px;color:#5c4a00}
.epex-results-head{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 12px;font-size:14px;color:#555}
.epex-live{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#0a7f3f}
.epex-live:before{content:"";width:9px;height:9px;border-radius:50%;background:#0a7f3f;animation:epex-pulse 1.6s infinite}
@keyframes epex-pulse{0%{opacity:1}50%{opacity:.25}100%{opacity:1}}
.epex-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 0 8px;background:#fff;border:1px solid #ececec;border-radius:12px;transition:transform .4s}
.epex-rank{flex:0 0 28px;font-size:18px;font-weight:800;color:#2c5aa2;text-align:center}
.epex-photo{flex:0 0 48px;width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eee}
.epex-main{flex:1;min-width:0}
.epex-name{font-weight:700;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.epex-bar{height:10px;margin-top:6px;background:#eee;border-radius:6px;overflow:hidden}
.epex-fill{height:100%;width:0;background:linear-gradient(90deg,#ff8a3d,#ff5e62);border-radius:6px;transition:width .6s ease}
.epex-num{flex:0 0 auto;text-align:right;font-weight:800;color:#222;line-height:1.15}
.epex-num small{display:block;font-weight:500;color:#777}
@media (max-width:480px){.epex-photo{flex-basis:40px;width:40px;height:40px}.epex-row{gap:8px;padding:8px}}
@media (prefers-reduced-motion:reduce){.epex-fill,.epex-row,.epex-toast{transition:none}.epex-live:before{animation:none}}
