body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:#f6f8fc;color:#172033}header{display:flex;justify-content:space-between;padding:20px 5vw;background:white;border-bottom:1px solid #dde3ed}.brand{font-size:28px;font-weight:850}.brand span{color:#4f46e5}.tag{color:#667085;font-weight:650}main{max-width:1180px;margin:36px auto;padding:0 22px}.hero{text-align:center;padding:70px 20px}.hero h1{font-size:clamp(36px,6vw,68px);line-height:1.02;margin:0 0 16px}.hero p{max-width:760px;margin:0 auto 28px;color:#667085;font-size:19px}.card{background:white;border:1px solid #dfe5ef;border-radius:20px;padding:26px;box-shadow:0 10px 30px rgba(20,28,50,.06)}.grid{display:grid;grid-template-columns:1fr 1.25fr;gap:22px}@media(max-width:850px){.grid{grid-template-columns:1fr}.tag{display:none}}button,.button{border:0;border-radius:12px;background:#4f46e5;color:white;font-weight:750;font-size:16px;padding:13px 18px;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.45}.secondary{background:#111827}.ghost{background:#eef2f7;color:#172033}.danger{background:#b42318}.reveal{background:#7c3aed}.next{background:#0f766e}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.field{margin:14px 0}.field label{display:block;font-weight:700;margin-bottom:6px}.field input,.field select,input[type=file]{width:100%;padding:12px;border:1px solid #cfd7e5;border-radius:10px;font:inherit;box-sizing:border-box}.small{color:#667085;font-size:14px}.code{font-size:50px;letter-spacing:8px;font-weight:900;color:#4f46e5;margin:8px 0 14px}.meta{display:flex;gap:8px;flex-wrap:wrap}.pill{background:#eef2ff;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:750}.question{font-size:28px;font-weight:800;line-height:1.2;margin:24px 0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:650px){.choices{grid-template-columns:1fr}}.choice{text-align:left;background:#f7f8fb;color:#172033;border:1px solid #dfe5ef;min-height:62px}.clue{margin-top:18px;padding:16px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.feedback,.status{margin-top:14px;padding:13px 15px;border-radius:12px;background:#f2f4f7}.good{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.bad{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid #edf0f5}.score{font-weight:850}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}@media(max-width:650px){.status-grid{grid-template-columns:1fr 1fr}}.stat{border:1px solid #dfe5ef;border-radius:12px;padding:12px;text-align:center}.stat b{display:block;font-size:24px}.teacher-note{background:#f0fdfa;border:1px solid #99f6e4;padding:14px;border-radius:12px;margin:14px 0}.display{text-align:center}.display .question{font-size:clamp(34px,5vw,58px)}.display .row{font-size:23px;padding:14px}.answer-panel{margin-top:22px;padding:20px;border-radius:16px;background:#ecfdf3;border:1px solid #abefc6;text-align:left}.muted-box{padding:16px;border:1px dashed #cbd5e1;border-radius:12px;color:#667085}
.join-grid{display:grid;grid-template-columns:1fr 150px;gap:18px;align-items:center}
.qr{width:150px;height:150px;background:white;border:8px solid white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.08)}.qr-box{display:flex;align-items:center;justify-content:center;overflow:hidden}.qr-box canvas,.qr-box img{display:block;max-width:100%;height:auto}
.manual-join{margin-top:12px;font-size:14px;color:#475467}
.projector-join{display:flex;align-items:center;justify-content:center;gap:44px;margin:28px auto}
.qr-large{width:260px;height:260px}
.or{font-size:24px;font-weight:850;color:#667085}
.projector-lobby .code{font-size:72px;letter-spacing:10px}
@media(max-width:700px){
  .join-grid{grid-template-columns:1fr}
  .qr{width:180px;height:180px}
  .projector-join{flex-direction:column;gap:18px}
  .or{font-size:18px}
}

.hidden-file-input{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.file-picker-wrap{margin-top:8px}
.file-picker-btn{background:#111827}
.selected-file{margin-top:8px;color:#475467;font-size:14px;font-weight:600}
.panel-toggle{background:transparent;color:#172033;padding:0;font-weight:800;font-size:16px}
.player-toggle{border:0;color:#172033;cursor:pointer}
.status-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 6px}
.status-tab{background:#eef2f7;color:#344054;padding:7px 10px;font-size:13px;border-radius:999px}
.status-tab.active{background:#4f46e5;color:white}
.player-state{display:inline-block;margin-top:5px;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800}
.status-ready{background:#ecfdf3;color:#067647}
.status-answering{background:#eff8ff;color:#175cd3}
.status-clue{background:#fff7ed;color:#c4320a}
.status-finished{background:#f4f3ff;color:#5925dc}
.stat-btn{background:white;color:#172033;cursor:pointer}
.stat-btn:hover{background:#f8fafc}
.player-row{align-items:flex-start}

.beta-badge{display:inline-block;background:#eef2ff;color:#4338ca;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:850;letter-spacing:.08em;margin-bottom:16px}
.ready-check{margin-top:20px;padding:16px;border-radius:14px;background:#f8fafc;line-height:1.9;font-weight:700}
.live-stage{max-width:1080px;margin:auto}
.stage-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}
.stage-title{font-size:28px;margin:6px 0;color:#475467}
.private-btn{background:#111827}
.private-pill{background:#111827;color:white}
.privacy-note{margin:16px 0;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-weight:700}
.projected-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px auto;max-width:900px}
.projected-choice{display:flex;align-items:center;gap:14px;text-align:left;background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;padding:18px;font-size:22px}
.projected-choice b{display:flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:12px;background:#4f46e5;color:white}
.stage-meta{justify-content:center;margin:18px 0}
.stage-controls{display:flex;gap:12px;justify-content:center;margin:24px 0}
.live-rankings{max-width:760px;margin:24px auto 0}
.big-answer{max-width:850px;margin:24px auto;text-align:center;font-size:20px}
.teacher-view-stack{display:grid;gap:22px}
.teacher-question{font-size:24px}
.teacher-key{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}
.student-row-button{width:100%;display:flex;justify-content:space-between;align-items:flex-start;text-align:left;background:white;color:#172033;border:0;border-bottom:1px solid #edf0f5;border-radius:0;padding:14px 2px}
.student-row-button:hover{background:#f8fafc}
.student-detail{padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin:8px 0 16px}
.history-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.history-card{background:white;border:1px solid #dfe5ef;border-radius:12px;padding:12px}
.tiny-detail{font-size:12px;color:#667085;margin-top:8px;line-height:1.5}
.result-badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850}
.result-first{background:#ecfdf3;color:#067647}
.result-second{background:#fff7ed;color:#c4320a}
.result-miss{background:#fef3f2;color:#b42318}
.result-none,.result-pending{background:#f2f4f7;color:#667085}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0 24px}
.summary-stat{border:1px solid #dfe5ef;border-radius:14px;padding:16px;text-align:center}
.summary-stat b{display:block;font-size:28px}
.summary-stat span{font-size:13px;color:#667085}
.missed-question{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid #edf0f5;padding:14px 0}
.percent{font-size:24px;font-weight:900;color:#4f46e5}
.award-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:850px;margin:26px auto}
.award-card{background:white;border:1px solid #dfe5ef;border-radius:20px;padding:24px;box-shadow:0 10px 30px rgba(20,28,50,.06)}
.award-icon{font-size:48px}.award-name{font-size:30px;font-weight:900;color:#4f46e5}
.final-stage{padding-top:20px}
@media(max-width:700px){
  .projected-choices,.history-grid,.award-grid{grid-template-columns:1fr}
  .summary-grid{grid-template-columns:1fr 1fr}
  .stage-toolbar{align-items:flex-start;flex-direction:column}
}
.question-media{display:flex;flex-direction:column;align-items:center;gap:12px;margin:18px auto;max-width:900px}
.question-media-image{max-width:100%;max-height:380px;border-radius:14px;border:1px solid #dfe5ef;background:white;object-fit:contain}
.question-video{width:min(900px,100%);max-height:480px;border-radius:14px;background:#000}
.video-wrap{position:relative;width:min(900px,100%);aspect-ratio:16/9}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:14px}
.media-link{display:inline-block}
.poll-bars{display:grid;gap:12px;margin:16px 0;text-align:left}
.poll-bar-row{display:grid;gap:6px}.poll-label{display:flex;justify-content:space-between;gap:14px;font-size:15px}
.poll-label span{font-weight:800;color:#475467;white-space:nowrap}.poll-track{height:14px;background:#eef2f7;border-radius:999px;overflow:hidden}.poll-fill{height:100%;background:#4f46e5;border-radius:999px;min-width:0}
.poll-summary-card{border:1px solid #dfe5ef;border-radius:14px;padding:16px;margin:10px 0;background:#fafbff}
.result-feedback{background:#eef4ff;color:#3538cd}.actions.compact{margin:0;gap:8px;flex-wrap:wrap}
@media print{header,.private-btn,.stage-toolbar button,.actions button,.player-toggle,.status-tabs{display:none!important}body{background:white}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.teacher-view-stack{display:block}.teacher-view-stack>.card{margin-bottom:18px}.privacy-note{display:none}}

/* Beta 2.2 poll presentation refinements */
.poll-results-stage{max-width:1120px;padding:28px 34px}
.poll-results-kicker{text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:900;color:#667085;margin-top:8px}
.poll-results-question{text-align:center;font-size:38px;line-height:1.15;max-width:950px;margin:12px auto 30px;color:#172033}
.poll-bars-large{max-width:980px;margin:0 auto 22px}
.poll-bar-row-large{margin:18px 0}
.poll-label-large{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;font-size:22px;margin-bottom:8px}
.poll-letter{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#4f46e5;color:white;font-weight:900}
.poll-choice-text{text-align:left}
.poll-label strong{white-space:nowrap}
.poll-percent{font-weight:900;color:#4f46e5;margin-left:5px}
.poll-track-large{height:18px;border-radius:999px;overflow:hidden}
.poll-total{text-align:center;margin-top:16px;color:#667085;font-weight:700}
.poll-teacher-focus{margin:18px 0;padding:20px;border:2px solid #c7d2fe;border-radius:16px;background:#f8faff}
.projector-poll-focus{max-width:1050px;margin:20px auto 0;padding-top:6px}
@media(max-width:700px){
  .poll-results-question{font-size:28px}
  .poll-label-large{grid-template-columns:40px 1fr auto;font-size:17px;gap:8px}
  .poll-letter{width:34px;height:34px}
}

.live-poll-focus .poll-fill,
.poll-results-stage .poll-fill{transition:width .35s ease}
.poll-results-stage .poll-track-large{height:24px}
.poll-results-stage .poll-total{font-size:16px;font-weight:800;margin-top:18px}

.progressive-option{display:flex;align-items:center;gap:10px;margin:14px 0 4px}
.progressive-option input{width:18px;height:18px}
.progressive-note{margin-top:4px;padding-left:28px}
