function buildAnswersHTML(show,extrasBypassed){
  const secs=show.sections||[];
  let h='<h1 class="ans-h1">HOST ANSWER SHEET</h1><div class="ans-sub">LINECONIC LIVE — FOR HOST EYES ONLY</div>'+(show.name?'<div class="ans-sub" style="margin-top:8px;color:#FF007F;font-size:13px;letter-spacing:.08em">'+esc(show.name)+'</div>':'');
  secs.forEach(function(sec){
    // When BYPASS EXTRAS is on, drop sections that survive only as decoration and filter extras slides from the rest.
    if(extrasBypassed&&!sectionSurvivesBypass(sec))return;
    const sl=extrasBypassed?(sec.slides||[]).filter(function(s){return!isExtraType(s.type)}):(sec.slides||[]);
    const types=sl.map(function(s){return s.type});
    const ts=sl.find(function(s){return s.type==='round_title'||s.type==='tier_title'});
    const desc=ts&&ts.content&&ts.content.secondary?(ts.content.secondary||'').replace(/\|/g,' '):'';
    const hdr='<div class="ans-rt">'+esc(sec.name)+'</div>'+(desc?'<div class="ans-rd">'+esc(desc)+'</div>':'');
    if(types.includes('fluency_line')){
      let g='';for(let i=0;i<sl.length;i++){if(sl[i].type==='fluency_line'){const src=sl[i+1]&&sl[i+1].type==='fluency_source'?sl[i+1].content.primary:'';g+='<div class="ans-pair"><span>'+esc(sl[i].content.primary||'')+'</span><span class="ans-dim">'+esc(src)+'</span></div>';}}
      h+='<div class="ans-sec">'+hdr+'<div class="ans-grid2">'+g+'</div></div>';return;
    }
    if(types.includes('doa_vote')){
      let g='';for(let i=0;i<sl.length;i++){if(sl[i].type==='doa_vote'){let v='',c='';for(let j=i+1;j<sl.length&&j<i+4;j++){if(sl[j].type==='doa_verdict_dead'){v='DEAD';c='ans-pk';break}if(sl[j].type==='doa_verdict_alive'){v='ALIVE';c='ans-cy';break}}g+='<div class="ans-pair"><span>'+esc(sl[i].content.primary||'')+'</span><span class="'+c+' ans-bold">'+v+'</span></div>';}}
      h+='<div class="ans-sec">'+hdr+'<div class="ans-grid2">'+g+'</div></div>';return;
    }
    if(types.includes('hotseat_prompt')){
      let g='';sl.forEach(function(s){if(s.type==='hotseat_prompt')g+='<div class="ans-pair"><span>'+esc(s.content.primary||'')+'</span><span class="ans-dim">'+esc(s.content.source||'')+'</span></div>';});
      h+='<div class="ans-sec">'+hdr+g+'</div>';return;
    }
    if(types.includes('verdict')||types.includes('sentence')){
      let g='';sl.forEach(function(s){if(s.type==='verdict'||s.type==='sentence'){g+='<div class="ans-dim" style="margin-bottom:6px">'+esc(s.content.primary||'')+'</div>';(s.content.secondary||'').split('|').forEach(function(l){if(l.trim())g+='<div class="ans-pk ans-bold" style="margin-bottom:6px">'+esc(l.trim())+'</div>';});}});
      h+='<div class="ans-sec">'+hdr+g+'</div>';return;
    }
    if(types.includes('source_q')||types.includes('acronym_q')){
      const isAcr=types.includes('acronym_q');const qt=isAcr?'acronym_q':'source_q';
      let rows='',qn=0,bonus=null;
      sl.forEach(function(s){
        if(s.type==='bonus_marker'){bonus=s.content.primary||'BONUS';rows+='<tr><td colspan="4" style="padding:12px 8px 4px"><span class="ans-gd" style="font-size:10px;letter-spacing:.08em">&#9733; '+esc(bonus)+'</span></td></tr>';return;}
        if(s.type===qt){qn++;const c=s.content;const bg=bonus?' style="background:rgba(255,215,0,.06)"':'';const nc=bonus?'ans-gd':'ans-dim';const sc=isAcr?' ans-cy':'';const ansCol=isAcr?esc(c.answer||'—'):'—';const srcCol=isAcr?esc(c.source||''):esc(c.answer||'');rows+='<tr'+bg+'><td class="ans-td '+nc+'" style="width:30px;text-align:right;padding-right:12px">'+qn+'</td><td class="ans-td'+sc+'">'+esc(c.primary||'')+'</td><td class="ans-td">'+ansCol+'</td><td class="ans-td ans-pk" style="width:180px">'+srcCol+'</td></tr>';bonus=null;}
      });
      h+='<div class="ans-sec">'+hdr+'<table class="ans-tbl"><thead><tr><th class="ans-th">#</th><th class="ans-th">SHOWN</th><th class="ans-th">ANSWER</th><th class="ans-th">SOURCE</th></tr></thead><tbody>'+rows+'</tbody></table></div>';
    }
  });
  return h;
}
function AnswersView({show,extrasBypassed}){
  const ref=useRef(null);
  useEffect(function(){document.body.classList.add('answers-mode');return function(){document.body.classList.remove('answers-mode')}},[]);
  useEffect(function(){if(show&&ref.current)ref.current.innerHTML=buildAnswersHTML(show,extrasBypassed)},[show,extrasBypassed]);
  if(!show)return <div data-testid="answers-view" style={{background:'#000',color:'var(--signal)',padding:40,fontFamily:"'Space Mono',monospace"}}>LOADING...</div>;
  return <div data-testid="answers-view" className="answers-wrap" ref={ref}></div>;
}

// ═══════════════════════════════════════
// AUTH VIEWS
