/* Question games (src/questions.js + public/questions/play.js). Loaded after party.css. */
.qw { text-align: center; }
.qcard { margin: 14px auto 10px; max-width: 520px; border-radius: 18px; background: #fff; border: 3px solid var(--ink); box-shadow: 0 6px 0 rgba(17,24,39,.12); padding: 0 0 18px; overflow: hidden; text-align: center; }
.qcard .qk { background: var(--navy); color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: 8px 12px; display: flex; justify-content: space-between; }
.qcard .qs { font-size: 25px; line-height: 1.25; font-weight: 800; color: var(--ink); padding: 22px 18px 6px; min-height: 96px; display: flex; align-items: center; justify-content: center; }
.qcard .qs.lead { font-size: 15px; font-weight: 700; color: var(--muted); min-height: 0; padding: 16px 18px 0; }
.opts { display: grid; gap: 8px; padding: 14px 16px 0; }
.opt { position: relative; display: block; width: 100%; min-height: 64px; border: 2.5px solid var(--navy); border-radius: 14px; background: #fff; color: var(--ink); font: inherit; font-size: 19px; font-weight: 750; line-height: 1.25; padding: 14px 16px; cursor: pointer; overflow: hidden; text-align: center; -webkit-tap-highlight-color: transparent; }
.opt.b { border-color: var(--red); }
.opt:hover { background: #f8fafc; }
.opt .fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: rgba(30,58,138,.13); transition: width .55s ease; }
.opt.b .fill { background: rgba(194,65,12,.13); }
.opt .t { position: relative; display: block; }
.opt .pc { position: relative; display: block; font-size: 15px; font-weight: 800; color: var(--navy); margin-top: 4px; }
.opt.b .pc { color: var(--red); }
.opt.mine { box-shadow: 0 0 0 3px rgba(245,158,11,.55); }
.opt.mine .t::after { content: " ✓"; color: var(--gold); }
.opts .or { font-size: 13px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.qres { font-size: 14px; color: var(--muted); margin: 12px 16px 0; min-height: 20px; }
.qbtns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 6px; }
.qtools { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
.qtools .btn { font-size: 14px; padding: 9px 14px; }
.cdown { font-size: 54px; font-weight: 900; color: var(--red); min-height: 64px; }
.qlist { list-style: none; counter-reset: q; margin: 8px 0 0 !important; }
.qlist li { counter-increment: q; position: relative; padding: 8px 0 8px 40px; border-bottom: 1px solid var(--line); font-size: 15.5px; line-height: 1.5; margin: 0 !important; }
.qlist li::before { content: counter(q) "."; position: absolute; left: 0; width: 32px; text-align: right; font-weight: 700; color: var(--muted); }
.qlist li:last-child { border-bottom: 0; }
.qlist b { color: var(--ink); }
.qlist .tag { font-size: 12px; color: var(--muted); margin-left: 6px; white-space: nowrap; }
.qlist .sp { font-size: 12.5px; color: var(--muted); margin-left: 6px; white-space: nowrap; }
/* full-screen group mode */
#q-stage { position: fixed; inset: 0; z-index: 9999; background: var(--cream); display: none; flex-direction: column; }
#q-stage.open { display: flex; }
#q-stage .bar { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--line); background: #fff; font-weight: 700; color: var(--ink); }
#q-stage .bar button { border: 0; background: none; font: inherit; font-size: 16px; color: var(--navy); cursor: pointer; padding: 6px 10px; }
#q-stage .body { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 18px; overflow: auto; }
#q-stage .qcard { max-width: 900px; width: 100%; }
#q-stage .qcard .qs { font-size: clamp(26px, 5vw, 56px); min-height: 30vh; }
#q-stage .qcard .qs.lead { font-size: clamp(16px, 2.2vw, 24px); min-height: 0; }
#q-stage .opt { font-size: clamp(20px, 3.4vw, 40px); min-height: 12vh; }
#q-stage .opts { grid-template-columns: 1fr auto 1fr; align-items: stretch; }
#q-stage .opts .or { align-self: center; }
#q-stage .cdown { font-size: clamp(60px, 14vw, 180px); min-height: 1.1em; }
@media (max-width: 640px) { #q-stage .opts { grid-template-columns: 1fr; } .qcard .qs { font-size: 22px; } .opt { font-size: 18px; } }
@media print { .qlist li { font-size: 10.5pt; padding: 3px 0 3px 30px; } }
