:root { --ink:#17212b; --blue:#315cff; --mint:#59d8b2; --paper:#050b18; --muted:#a8afb8; }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; color:#fff; font-family:Montserrat,Arial,sans-serif; background-color:var(--paper); background-image:radial-gradient(ellipse 60% 40% at 85% 6%,rgba(47,104,253,.26),transparent 70%),radial-gradient(ellipse 45% 35% at 8% 30%,rgba(62,232,176,.07),transparent 70%); }
.shell { width:min(1200px,calc(100% - 48px)); margin:auto; }
.nav { display:flex; justify-content:space-between; align-items:center; padding:24px 0; }
.site-topbar { display:flex; justify-content:space-between; align-items:center; padding:26px 0; }.site-topbar .brand { color:#fff; }.site-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:28px 0 38px; color:var(--muted); font-size:12px; }.site-footer a { color:var(--mint); text-decoration:none; }.site-footer .footer-links { color:var(--mint); font-weight:600; }
.brand { display:flex; gap:10px; align-items:center; color:#fff; font:700 17px Syne,sans-serif; letter-spacing:-.045em; text-decoration:none; }.brand img { width:34px; height:34px; border-radius:8px; }
.back { color:var(--mint); text-decoration:none; font-size:13px; font-weight:600; }
.hero { padding:62px 0 44px; max-width:760px; }.eyebrow { margin:0 0 17px; color:var(--mint); font-size:12px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }.eyebrow:before { content:""; display:inline-block; width:28px; height:2px; margin:0 10px 3px 0; background:var(--blue); }
h1,h2 { margin:0; font-family:Syne,Arial,sans-serif; letter-spacing:-.06em; line-height:.98; }h1 { font-size:clamp(45px,7vw,76px); }h2 { font-size:29px; }.lead { margin:23px 0 0; color:#c8ccd2; font-size:17px; line-height:1.7; }
.panel { margin:20px 0 60px; padding:34px; border-radius:18px; background:#fff; color:var(--ink); box-shadow:10px 12px 0 var(--blue); }.panel p { color:#53606c; line-height:1.6; }.event { margin:0 0 25px; padding:18px 0 24px; border-bottom:1px solid #dce0e3; }.event:after { content:""; display:block; clear:both; }.event-banner { float:right; width:40%; height:auto; margin:0 0 18px 26px; border-radius:11px; object-fit:contain; }.event h2 { font-size:31px; }.event .meta { margin:12px 0 0; color:var(--blue); font-size:13px; font-weight:600; }
.discord-link { display:inline-flex; align-items:center; gap:8px; margin-top:17px; border-radius:8px; padding:10px 13px; background:#5865f2; color:#fff; text-decoration:none; font-size:13px; font-weight:600; }.discord-link:hover { background:#4650c7; }.discord-link svg { width:19px; height:19px; }
.event-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0 0 25px; }.event-gallery figure { margin:0; overflow:hidden; border-radius:10px; background:#edf0f2; }.event-gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }.event-gallery figcaption { padding:9px 11px; color:#53606c; font-size:12px; line-height:1.45; }.gallery-captions { display:grid; gap:12px; }.gallery-existing { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.gallery-existing > p { grid-column:1/-1; margin:0; }.gallery-existing-item { display:grid; grid-template-columns:1fr auto; gap:7px; align-items:center; padding:8px; border:1px solid #dce0e3; border-radius:8px; font-size:11px; }.gallery-existing-item img { grid-column:1/-1; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:5px; }.gallery-existing-item input { width:auto; padding:0; }
.notice { margin:0 0 20px; padding:13px 15px; border-radius:8px; background:#e8faf3; color:#126445; font-size:14px; }.error { background:#fff0f0; color:#a32929; }
form { display:grid; gap:16px; }.fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }label { display:grid; gap:7px; color:#283641; font-size:12px; font-weight:600; }input,textarea,select { width:100%; border:1px solid #ced4da; border-radius:8px; padding:13px 14px; color:var(--ink); font:14px Montserrat,sans-serif; }textarea { min-height:125px; resize:vertical; }select { background:#fff; }input:focus,textarea:focus,select:focus { outline:3px solid rgba(89,216,178,.55); border-color:var(--mint); }.check { display:flex; gap:9px; align-items:flex-start; font-size:12px; line-height:1.5; font-weight:400; }.check input { width:auto; margin:2px 0 0; }.button { justify-self:start; border:0; border-radius:8px; padding:14px 18px; background:var(--ink); color:#fff; cursor:pointer; font:600 12px Montserrat,sans-serif; }.button:hover { background:var(--blue); }.capacity { display:inline-flex; align-items:center; margin:0 0 20px; border-radius:999px; padding:8px 12px; background:var(--ink); color:#fff; font-size:12px; font-weight:600; }.capacity b { margin-left:5px; color:var(--mint); }
.empty { padding:25px; border:1px dashed rgba(255,255,255,.35); border-radius:12px; color:#c8ccd2; line-height:1.6; }.admin-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); gap:22px; padding:22px 0 60px; }.admin-grid .panel { margin:0; box-shadow:7px 9px 0 var(--blue); }.admin-grid h2 { margin-bottom:18px; }.table-wrap { overflow:auto; }.table { width:100%; border-collapse:collapse; font-size:13px; }.table th,.table td { padding:11px 8px; border-bottom:1px solid #e0e4e7; text-align:left; vertical-align:top; }.table th { color:#64717c; font-size:11px; text-transform:uppercase; letter-spacing:.05em; }.small { color:#66717d; font-size:12px; line-height:1.55; }.logout { margin-top:16px; background:#e8eaed; color:#25313c; }.event-list { margin:0; padding:0; list-style:none; }.event-list li { padding:12px 0; border-bottom:1px solid #e0e4e7; }.event-list strong { display:block; }.event-list span { color:#66717d; font-size:12px; }
.legal-copy { margin:20px 0 60px; padding:34px; border-radius:18px; background:#fff; color:var(--ink); box-shadow:10px 12px 0 var(--blue); }.legal-copy h2 { margin:34px 0 12px; font-size:26px; }.legal-copy h2:first-child { margin-top:0; }.legal-copy p,.legal-copy li { color:#53606c; font-size:14px; line-height:1.7; }.legal-copy a,.check a { color:#204ee7; }.legal-copy ul { padding-left:22px; }.legal-footer { display:flex; gap:15px; width:min(1200px,calc(100% - 48px)); margin:0 auto; padding:0 0 30px; color:var(--muted); font-size:12px; }.legal-footer a { color:var(--mint); text-decoration:none; }
.form-actions,.event-actions { display:flex; align-items:center; gap:12px; }.event-actions { margin-top:11px; }.event-actions form { display:block; }.text-action { color:#204ee7; font-size:12px; font-weight:600; text-decoration:none; }.danger-button { border:0; padding:0; background:transparent; color:#b22d35; font:600 12px Montserrat,sans-serif; cursor:pointer; }
.partner-admin-row { display:flex; align-items:center; gap:12px; }.partner-admin-row img { width:72px; height:40px; object-fit:contain; object-position:left center; }.partner-admin-row .event-actions { margin:0 0 0 auto; }
@media(max-width:700px){ .shell{width:min(100% - 36px,1200px)}.hero{padding-top:45px}.panel{padding:25px;box-shadow:7px 8px 0 var(--blue)}.event-banner{float:none;display:block;width:100%;margin:0 0 20px;object-fit:cover}.fields,.admin-grid,.event-gallery,.gallery-existing{grid-template-columns:1fr}.admin-grid{padding-top:10px}.nav,.site-topbar{padding:18px 0;}.site-footer{align-items:flex-start;flex-direction:column;} }

/* Calendar links, waitlist, AI co-pilot and matchmaking. */
.calendar-links { display:flex; flex-wrap:wrap; gap:18px; margin:0 0 20px; }
.panel + .panel { margin-top:0; }
.ai-panel { border-top:4px solid var(--mint); }
.ai-badge { display:inline-block; margin-left:8px; padding:3px 8px; border-radius:999px; background:var(--mint); color:var(--ink); font:700 11px Montserrat,sans-serif; letter-spacing:.06em; vertical-align:middle; }
.ai-draft { display:grid; gap:14px; margin-top:22px; padding-top:22px; border-top:1px solid #e3e6ea; }
.ai-draft textarea[readonly] { background:#f6f8fa; }
.copy-button { margin-left:8px; padding:0; border:0; background:none; cursor:pointer; }
.button:disabled { opacity:.55; cursor:wait; }
.match-list { margin:0; padding-left:18px; }
.match-list li { margin-bottom:8px; line-height:1.5; }
.intro-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.intro-card { padding:18px; border:1px solid #e3e6ea; border-radius:12px; }
.intro-card h3 { margin:0; font:700 18px Syne,sans-serif; }
.intro-card .icebreaker { color:#126445; font-size:13px; }

/* Live event pages: attendee Q&A (/live), watch page, projector screen and moderator console. */
[hidden] { display:none !important; }
.live-hero { padding:34px 0 22px; }.live-hero h1 { font-size:clamp(36px,6vw,60px); }
.live-shell .panel { margin:0 0 22px; }
.live-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin:0 0 16px; }
.lang-toggle { border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:9px 14px; background:rgba(255,255,255,.04); color:#fff; font:600 12px Montserrat,sans-serif; cursor:pointer; }
.live-form { margin:16px 0 8px; }.live-counter { justify-self:end; }
.live-status { margin:0 !important; font-size:13px; font-weight:600; color:#126445 !important; }.live-status.is-error { color:#a32929 !important; }
.live-list-title { margin:26px 0 10px; font:700 17px Syne,sans-serif; letter-spacing:-.03em; }
.live-list,.console-list,.screen-list { margin:0; padding:0; list-style:none; }
.live-item { display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid #e3e6ea; }
.live-item.is-answering { margin:0 -12px; padding:14px 12px; border-radius:12px; background:#e8faf3; border-bottom-color:transparent; }
.live-item.is-answered .vote-button,.live-item.is-answered .live-text,.live-item.is-answered .live-meta,.live-item.is-played { opacity:.6; }
.live-item.is-new,.live-item.is-hidden { opacity:.75; }
.live-body { min-width:0; flex:1; }
.live-text { margin:0 !important; color:var(--ink) !important; font-size:15px; line-height:1.5 !important; overflow-wrap:anywhere; }
.live-meta { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:5px 0 0 !important; font-size:12px; color:#66717d !important; }
.live-empty,.console-empty { padding:16px 0; color:#66717d; font-size:13px; }
.vote-button { display:flex; flex:0 0 auto; flex-direction:column; align-items:center; min-width:50px; border:1px solid #ced4da; border-radius:10px; padding:7px 6px; background:#fff; color:var(--ink); font:700 14px Montserrat,sans-serif; cursor:pointer; }
.vote-button:hover:not(:disabled) { border-color:var(--blue); color:var(--blue); }
.vote-button.is-voted { border-color:var(--blue); background:var(--blue); color:#fff; }
.vote-button:disabled { cursor:default; opacity:.55; }
.vote-arrow { font-size:11px; line-height:1; }
.badge { display:inline-block; padding:2px 8px; border-radius:999px; background:#eef1f4; color:#4a5560; font-size:11px; font-weight:600; }
.badge-stage { background:var(--mint); color:var(--ink); }.badge-wait { background:#fff4dc; color:#7a5300; }.badge-mine { background:#e7ecff; color:#2846c4; }
.mini-button { border:0; border-radius:7px; padding:8px 12px; background:var(--ink); color:#fff; font:600 12px Montserrat,sans-serif; cursor:pointer; }.mini-button:hover { background:var(--blue); }
.watch-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr); gap:22px; align-items:start; padding-bottom:40px; }
.watch-stream { position:sticky; top:16px; }
.stream-frame { overflow:hidden; aspect-ratio:16/9; border-radius:16px; background:#101820; box-shadow:10px 12px 0 var(--blue); }
.stream-frame iframe { display:block; width:100%; height:100%; border:0; }
.stream-waiting { display:grid; place-items:center; height:100%; margin:0; padding:24px; color:#c8ccd2; text-align:center; line-height:1.6; }
@media(max-width:900px){ .watch-layout{grid-template-columns:1fr}.watch-stream{position:static} }

/* Projector screens: a compact join card on the left (only as tall as its content), the content column on the right
   with the title at the top and the list (or an empty-state panel) filling the rest of the height. */
.screen { display:grid; grid-template-columns:minmax(260px,25vw) 1fr; gap:5vw; min-height:100vh; padding:6vh 5vw; }
.screen-join { align-self:center; display:flex; flex-direction:column; align-items:center; padding:4vh 2.2vw 3.4vh; border-radius:26px; background:#fff; color:var(--ink); text-align:center; box-shadow:12px 14px 0 var(--blue); }
.screen-logo { width:56px; height:56px; border-radius:12px; }
.screen-call { margin:2vh 0; font:700 clamp(28px,3vw,52px) Syne,sans-serif; letter-spacing:-.05em; line-height:1; }
.screen-qr { width:100%; max-width:21vw; height:auto; image-rendering:pixelated; }
.screen-url { max-width:100%; margin:2vh 0 0; font:700 clamp(11px,.95vw,22px) Montserrat,sans-serif; color:var(--blue); white-space:nowrap; }
.screen-questions { display:flex; flex-direction:column; min-width:0; }
#screen-questions-view { display:flex; flex:1; flex-direction:column; }
.screen-title { margin:0 0 4vh; padding-bottom:3vh; border-bottom:1px solid rgba(255,255,255,.12); color:#fff; font-size:clamp(32px,3.6vw,68px); line-height:1.05; letter-spacing:-.03em; }
.screen-stage,.screen-item { display:flex; gap:2vw; align-items:flex-start; }
.screen-stage { margin:0 0 3vh; padding:3vh 2vw; border-radius:18px; background:var(--mint); color:var(--ink); }
.screen-item { padding:2vh 0; border-bottom:1px solid rgba(255,255,255,.15); }
.screen-votes { display:flex; flex:none; flex-direction:column; align-items:center; min-width:5vw; padding:1.2vh .8vw; border-radius:14px; background:rgba(255,255,255,.07); color:var(--mint); font-size:clamp(14px,1.2vw,20px); }.screen-votes b { color:#fff; }.screen-stage .screen-votes { background:rgba(8,17,32,.1); color:var(--ink); }.screen-stage .screen-votes b { color:var(--ink); }.screen-votes b { font-size:clamp(24px,2.4vw,44px); }
.screen-label { margin:0 0 1vh; font-size:clamp(13px,1.1vw,18px); font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.screen-text { margin:0; font-size:clamp(22px,2.3vw,44px); font-weight:600; line-height:1.3; overflow-wrap:anywhere; }.screen-stage .screen-text { font-size:clamp(28px,3vw,56px); }
.screen-name { margin:1vh 0 0; color:var(--muted); font-size:clamp(14px,1.2vw,20px); }.screen-stage .screen-name { color:#2c4a40; }
.screen-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; padding:4vh 3vw; border:2px dashed rgba(255,255,255,.14); border-radius:26px; color:#c8ccd2; font-size:clamp(22px,2.2vw,40px); text-align:center; }
.screen-empty[hidden] { display:none; }

/* Centered: while there is nothing to list (no questions yet, the quiz join view, an empty leaderboard) the title, the
   join card and the call to action stack in the middle, on a soft glow inside a dashed frame. */
.screen.is-centered { position:relative; height:100vh; min-height:0; overflow:hidden; grid-template-columns:1fr; align-content:center; justify-items:center; gap:0; padding:7vh 5vw; text-align:center;
  background:radial-gradient(ellipse 44vw 58vh at 50% 54%, rgba(40,190,160,.40), rgba(30,100,170,.20) 50%, transparent 78%), #060b18; }
.screen.is-centered::before { content:""; position:absolute; inset:3.5vh 2.5vw; border:2px dashed rgba(255,255,255,.12); border-radius:28px; pointer-events:none; }
.screen.is-centered .screen-questions, .screen.is-centered #screen-questions-view { display:contents; }
.screen.is-centered #screen-stage, .screen.is-centered #screen-list, .screen.is-centered .quiz-board { display:none; }
.screen.is-centered .screen-label { order:1; margin:0 0 1vh; }
.screen.is-centered .screen-title { order:2; margin:0 0 1.4vh; padding:0; border:0; font-size:clamp(28px,4.4vh,64px); }
.screen.is-centered .screen-talk:not([hidden]) { order:3; display:block; margin:0 0 1vh; padding:0; border:0; }
.screen.is-centered .screen-join { order:4; align-self:auto; margin:2.4vh 0 0; padding:2.6vh 1.8vw 2.2vh; box-shadow:12px 14px 0 var(--blue), 0 0 90px 10px rgba(87,217,176,.22); }
.screen.is-centered .screen-call { margin:1.2vh 0 1.6vh; font-size:clamp(24px,4vh,48px); }
.screen.is-centered .screen-logo { width:5vh; height:5vh; }
.screen.is-centered .screen-qr { width:min(34vh,26vw); max-width:none; }
.screen.is-centered .screen-empty, .screen.is-centered .quiz-join-panel { order:5; flex:none; margin:3.6vh 0 0; padding:0; border:0; font-size:clamp(18px,3vh,36px); }
.screen.is-centered .screen-empty::before { content:"↑"; margin-bottom:1.4vh; font-size:1.2em; }
.screen.is-centered .quiz-join-panel { flex-direction:row; align-items:baseline; gap:1vw; }
.screen.is-centered .quiz-join-panel b { font-size:clamp(32px,5vh,72px); }
.screen.is-centered .quiz-join-panel span { font-size:clamp(18px,3vh,36px); }
.screen.is-centered .quiz-join-closed { margin:0 0 0 1vw; align-self:center; }
.screen-empty::before { content:"↖"; display:block; margin-bottom:2vh; color:var(--mint); font-size:1.6em; line-height:1; }
@media(max-width:800px){ .screen{grid-template-columns:1fr}.screen-qr{max-width:60vw} }

.console-controls { display:grid; gap:16px; }
.console-toggles { display:flex; flex-wrap:wrap; gap:12px 26px; }
.switch { display:flex; gap:8px; align-items:center; font-size:13px; }.switch input { width:auto; margin:0; }
.console-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin:0; }
.stream-form { grid-template-columns:1fr auto; align-items:end; }
.console-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:0 0 22px; }
.console-grid .panel { margin:0; box-shadow:7px 9px 0 var(--blue); }
.console-column { min-width:0; padding:24px; }
.console-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; }.console-heading h2 { font-size:24px; }
.console-count { display:inline-block; min-width:26px; padding:2px 8px; border-radius:999px; background:#eef1f4; font:700 13px Montserrat,sans-serif; letter-spacing:0; text-align:center; vertical-align:middle; }
.console-item { display:flex; gap:12px; padding:13px 0; border-bottom:1px solid #e3e6ea; }
.console-item.is-answering { margin:0 -10px; padding:13px 10px; border-radius:10px; background:#e8faf3; }
.console-item.is-hidden,.console-item.is-played { opacity:.6; }
.console-votes { display:flex; flex-direction:column; align-items:center; min-width:40px; color:#66717d; font-size:10px; }.console-votes b { color:var(--ink); font-size:18px; }
.console-body { min-width:0; flex:1; }
.console-text { margin:0 !important; color:var(--ink) !important; font-size:14px; line-height:1.45 !important; overflow-wrap:anywhere; }
.console-translation { margin:4px 0 0 !important; font-size:12px; font-style:italic; }
.console-meta { margin:4px 0 0 !important; color:#66717d !important; font-size:11px; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
.chip { padding:3px 8px; border-radius:6px; background:#eef1f4; color:#4a5560; font-size:11px; font-weight:600; line-height:1.4; }
.chip-ok { background:#e8faf3; color:#126445; }.chip-flag { background:#fff0f0; color:#a32929; }.chip-stage { background:var(--mint); color:var(--ink); }
.console-duplicate { margin:7px 0 0 !important; padding:7px 9px; border-radius:7px; background:#fff8e6; color:#6b4b00 !important; font-size:12px; }
.console-actions { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; margin-top:9px; }
.theme-card { padding:12px 0; border-bottom:1px solid #e3e6ea; }
.theme-title { margin:0 !important; color:var(--ink) !important; font-weight:700; }
.theme-summary { margin:4px 0 0 !important; font-size:13px; }
.console-done { margin-top:20px; }.console-done summary { color:#204ee7; cursor:pointer; font-size:13px; font-weight:600; }
@media(max-width:1000px){ .console-grid{grid-template-columns:1fr} }
@media(max-width:700px){ .stream-form{grid-template-columns:1fr}.live-toolbar{flex-wrap:wrap} }

/* Text-style buttons (the shared .text-action class is also used on <button>). */
button.text-action { padding:0; border:0; background:none; cursor:pointer; font-family:Montserrat,sans-serif; }

/* Door check-in: attendee ticket, camera scanner, console door panel. */
.ticket { display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; }
.ticket-qr { width:220px; height:220px; image-rendering:pixelated; border-radius:8px; }
.ticket h2 { margin-bottom:8px; }.ticket .meta { margin:0 0 10px; color:var(--blue); font-weight:600; }
.ticket.is-checked-in { box-shadow:10px 12px 0 var(--mint); }.ticket.is-checked-in .ticket-qr { opacity:.25; }
.ticket .button { display:inline-block; text-decoration:none; }
@media(max-width:600px){ .ticket{grid-template-columns:1fr;justify-items:center;text-align:center}.ticket-qr{width:min(70vw,260px);height:auto} }
.scanner-shell .nav { padding:16px 0; }
.scanner-title { margin:0 0 14px; font-size:clamp(24px,6vw,40px); }
.scan-stats { padding:6px 12px; border-radius:999px; background:var(--mint); color:var(--ink); font-size:13px; font-weight:700; }
.scanner-camera { position:relative; overflow:hidden; aspect-ratio:1; max-width:520px; margin:0 auto 16px; border-radius:18px; background:#101820; }
.scanner-camera video { width:100%; height:100%; object-fit:cover; }
.scan-frame { position:absolute; inset:18%; border:3px solid rgba(89,216,178,.85); border-radius:16px; box-shadow:0 0 0 999px rgba(0,0,0,.35); opacity:0; }
.is-scanning .scan-frame { opacity:1; }
.scan-start { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); padding:16px 24px; font-size:15px; }
.scan-hint { position:absolute; left:0; right:0; bottom:0; margin:0; padding:12px; background:rgba(0,0,0,.55); color:#fff; font-size:13px; text-align:center; }
.scan-result { max-width:520px; margin:0 auto 16px; padding:20px 22px; border-radius:16px; background:#fff; color:var(--ink); }
.scan-result.is-checked_in { background:var(--mint); }.scan-result.is-already { background:#ffd98a; }.scan-result.is-wrong_event,.scan-result.is-unknown { background:#ff9a9a; }
.scan-status { margin:0; font:800 clamp(26px,7vw,40px) Syne,sans-serif; letter-spacing:-.04em; }
.scan-name { margin:6px 0 0; font-size:22px; font-weight:700; }.scan-detail { margin:4px 0 0; font-size:14px; }
.door-list { max-width:520px; margin:0 auto 40px !important; }.door-list input { margin:10px 0 6px; }
.door-list .console-item { align-items:center; }.door-list .is-checked .console-text { color:#126445 !important; }
.scanner-link { display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center; margin-top:16px; }.scanner-link img { width:150px; height:150px; image-rendering:pixelated; }
.door-actions { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.pass-overlay { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:16px; background:rgba(4,10,20,.78); }
.pass-card { width:min(100%,380px); padding:26px 24px; border-radius:20px; background:#fff; color:var(--ink); text-align:center; }
.pass-card h2 { margin:4px 0 14px; }.pass-card .eyebrow { color:var(--blue); }
.pass-qr { display:block; width:min(100%,280px); margin:0 auto 12px; image-rendering:pixelated; }
.pass-card .button { margin-top:8px; }
.scanner-link input { font-size:12px; }.scanner-link .text-action { margin-top:8px; }
@media(max-width:600px){ .scanner-link{grid-template-columns:1fr} }
.live-privacy { margin:14px 0 30px; color:#8c97a6; }.live-privacy .text-action { color:var(--mint); }

a.button { display:inline-block; text-decoration:none; }
/* Post-event survey: score scales are radio buttons drawn as a row of boxes. */
.survey fieldset { margin:0; padding:0; border:0; min-width:0; }
.survey legend { margin:0 0 10px; padding:0; color:var(--ink); font:700 16px Montserrat,sans-serif; line-height:1.4; }
.survey .required { color:#c0392b; }
.scale { display:flex; flex-wrap:wrap; gap:6px; }
.scale-option { display:block; position:relative; }
.scale-option input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.scale-option span { display:grid; place-items:center; min-width:42px; height:42px; padding:0 8px; border:1px solid #ced4da; border-radius:10px; background:#fff; color:var(--ink); font:600 15px Montserrat,sans-serif; }
.scale-option input:hover + span { border-color:var(--blue); }
.scale-option input:checked + span { border-color:var(--blue); background:var(--blue); color:#fff; }
.scale-option input:focus-visible + span { outline:2px solid var(--blue); outline-offset:2px; }
.scale-skip span { color:#66727d; font-size:13px; }
.survey-aspect .scale-skip { margin-left:6px; }
.scale-row { display:flex; gap:6px; align-items:flex-start; }
.scale-wrap { display:inline-block; max-width:100%; }
.scale-ends { display:flex; justify-content:space-between; gap:12px; margin:6px 0 0 !important; color:#66727d !important; font-size:12px; }
.scale-skip input:checked + span { border-color:#c7d2fe; background:#eef1ff; color:#2846c4; }
.survey fieldset > .small { margin:-4px 0 10px; }
.survey-aspect { margin:0 0 14px; }
.survey-aspect-label { margin:0 0 6px !important; color:var(--ink) !important; font-size:14px; font-weight:600; }
.survey-checks { display:flex; flex-wrap:wrap; gap:10px 22px; }
.survey .check { display:flex; gap:10px; align-items:flex-start; font-size:14px; font-weight:500; line-height:1.5; }
.survey .check input { width:auto; margin:3px 0 0; }
@media(max-width:520px){ .scale-option span{min-width:36px;height:38px;font-size:14px} .scale{gap:5px} }
.speaker-avatar { width:32px; height:32px; margin-right:8px; border-radius:50%; object-fit:cover; vertical-align:middle; }

/* Live polls on the attendee page: big tap targets; results appear once the Q&A manager reveals them. */
.live-poll { border:2px solid var(--mint) !important; }
.live-poll-label { margin:0 0 6px !important; color:#0b7a59 !important; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.live-poll h2 { margin:0 0 16px; font-size:24px; line-height:1.25; }
.live-poll-options { display:grid; gap:10px; }
.live-poll-options.is-rating { grid-template-columns:repeat(5,minmax(0,1fr)); }
.poll-choice { padding:14px 16px; border:1px solid #ced4da; border-radius:12px; background:#fff; color:var(--ink); font:600 15px Montserrat,sans-serif; text-align:left; cursor:pointer; }
.live-poll-options.is-rating .poll-choice { padding:12px 4px; color:#c98a00; font-size:13px; text-align:center; letter-spacing:-.1em; }
.poll-choice:hover { border-color:var(--blue); }
.poll-choice.is-chosen { border-color:var(--blue); background:var(--blue); color:#fff; }
.live-poll-options.is-rating .poll-choice.is-chosen { color:#ffd257; }
.poll-results { display:grid; gap:8px; margin:6px 0 0; padding:0; list-style:none; grid-column:1/-1; }
.poll-bar { display:grid; grid-template-columns:minmax(80px,1.2fr) 2fr 60px; gap:10px; align-items:center; color:var(--ink); font-size:13px; }
.poll-bar.is-mine .poll-bar-label { font-weight:700; }
.poll-bar-track { height:10px; overflow:hidden; border-radius:99px; background:#e6eaee; }
.poll-bar-track i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,var(--mint),var(--blue)); transition:width .4s ease; }
.poll-bar b { text-align:right; }
.live-poll-total { margin:12px 0 0 !important; }
.live-now { margin:0 0 14px !important; padding:8px 12px; border-radius:10px; background:#e8faf3; color:#126445 !important; font-size:13px; font-weight:600; }
.badge-talk { background:#eef1ff; color:#2846c4; }
.live-answer { margin:8px 0 0 !important; padding:10px 12px; border-left:3px solid var(--mint); border-radius:0 10px 10px 0; background:#f3faf7; color:#24323d !important; font-size:14px; line-height:1.5 !important; white-space:pre-line; }
.live-answer span, .console-answer span, .recap-answer span { display:block; margin-bottom:2px; color:#0b7a59; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }

/* Projector: talk on stage, and the poll view (QR on the left, question and bars on the right). */
.screen-talk { margin:-2vh 0 3vh; color:#c8ccd2; font-size:clamp(16px,1.4vw,26px); font-weight:600; }
.screen-poll-question { margin:0 0 4vh; color:#fff; font:700 clamp(30px,3.4vw,64px)/1.15 Syne,sans-serif; letter-spacing:-.03em; }
.screen-poll .screen-label { color:var(--mint); }
.screen-poll-bars { display:grid; gap:2.2vh; margin:0; padding:0; list-style:none; }
.screen-bar { display:grid; grid-template-columns:minmax(120px,1fr) 2.4fr 7vw; gap:1.6vw; align-items:center; font-size:clamp(18px,1.8vw,34px); font-weight:600; }
.screen-bar.is-pending { grid-template-columns:1fr; padding:1.6vh 2vw; border:1px solid rgba(255,255,255,.18); border-radius:14px; }
.screen-bar-track { height:3.2vh; min-height:14px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.12); }
.screen-bar-track i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,var(--mint),var(--blue)); transition:width .6s ease; }
.screen-bar b { color:var(--mint); text-align:right; }
.screen-poll-total { margin:4vh 0 0; color:#c8ccd2; font-size:clamp(16px,1.4vw,26px); }

/* Q&A console: talk switch, filters, answers, polls, projector control. */
.console-label { margin:0 0 8px !important; color:var(--ink) !important; font-size:13px; font-weight:700; }
.talk-switch { display:flex; flex-wrap:wrap; gap:10px; }
.talk-pill { display:grid; gap:2px; min-width:150px; padding:10px 14px; border:1px solid #ced4da; border-radius:12px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; font:600 14px Montserrat,sans-serif; }
.talk-pill span { color:#66727d; font-size:11px; font-weight:500; }
.talk-pill:hover { border-color:var(--blue); }
.talk-pill.is-active { border-color:#0b7a59; background:#e8faf3; box-shadow:inset 0 0 0 1px #0b7a59; }
.talk-filter { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.talk-tab { padding:7px 14px; border:1px solid rgba(255,255,255,.25); border-radius:999px; background:transparent; color:#fff; font:600 13px Montserrat,sans-serif; cursor:pointer; }
.talk-tab span { margin-left:4px; opacity:.7; }
.talk-tab.is-active { border-color:var(--mint); background:var(--mint); color:var(--ink); }
html[data-theme="light"] .talk-tab { border-color:#c9d0d6; color:var(--text); }
html[data-theme="light"] .talk-tab.is-active { color:var(--ink); }
.talk-select { width:auto; max-width:180px; padding:4px 26px 4px 8px; font-size:12px; }
.answer-view { display:flex; flex-wrap:wrap; align-items:flex-start; gap:4px 10px; margin:8px 0 0; }
.console-answer { flex:1 1 100%; margin:0 !important; padding:8px 10px; border-left:3px solid var(--mint); border-radius:0 8px 8px 0; background:#f3faf7; color:#24323d !important; font-size:13px; line-height:1.5 !important; white-space:pre-line; }
.answer-edit { display:grid; gap:8px; margin:8px 0 0; }
.answer-input { font-size:13px; }
.screen-control .form-actions { flex-wrap:wrap; }
.poll-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:26px; align-items:start; }
.poll-form { gap:12px; }
.poll-item .poll-results { margin:8px 0; }
.poll-item .poll-bar { grid-template-columns:minmax(70px,1fr) 2fr 70px; font-size:12px; }
.console-item.is-open { margin:0 -10px; padding:13px 10px; border-radius:10px; background:#eef1ff; }
@media(max-width:900px){ .poll-grid{grid-template-columns:1fr} }

/* Q&A recap page. */
.recap-label { margin:0 0 6px !important; color:#0b7a59 !important; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.recap-talk h2, .recap-polls h2 { margin:0 0 18px; font-size:28px; }
.recap-talk-title { color:#66727d; font:500 16px Montserrat,sans-serif; letter-spacing:0; }
.recap-list { display:grid; gap:18px; margin:0; padding:0; list-style:none; }
.recap-list li { padding:0 0 18px; border-bottom:1px solid #e3e6ea; }
.recap-list li:last-child { border-bottom:0; padding-bottom:0; }
.recap-q { margin:0 !important; color:var(--ink) !important; font-size:17px; font-weight:600; line-height:1.4 !important; }
.recap-translation { display:block; margin-top:3px; color:#66727d; font-size:14px; font-weight:500; }
.recap-meta { margin:4px 0 0 !important; color:#66727d !important; font-size:12px; }
.recap-answer { margin:10px 0 0; padding:12px 14px; border-left:3px solid var(--mint); border-radius:0 12px 12px 0; background:#f3faf7; color:#24323d; font-size:15px; line-height:1.6; }
.recap-other { margin:18px 0 0; }
.recap-other summary { color:var(--blue); font-weight:600; cursor:pointer; }
.recap-other .recap-list { margin-top:14px; }
.recap-poll { margin:0 0 24px; }
.recap-poll h3 { margin:0 0 10px; font-size:18px; }
.recap-bar { display:grid; grid-template-columns:minmax(90px,1fr) 2fr 50px; gap:10px; align-items:center; margin:0 0 8px; color:var(--ink); font-size:14px; }
.recap-track { height:10px; overflow:hidden; border-radius:99px; background:#e6eaee; }
.recap-track i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,var(--mint),var(--blue)); }
.recap-bar b { text-align:right; }

/* Live page: choose who a question is for (speaker cards and a general card), then write it. */
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.ask-hint { margin:0 0 10px !important; }
.ask-hint.is-done { padding:8px 12px; border-radius:10px; background:#e8faf3; color:#126445 !important; font-weight:600; }
.ask-targets { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr)); gap:10px; margin:0 0 16px; }
.ask-card { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid #ced4da; border-radius:14px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; font:inherit; transition:border-color .15s ease,box-shadow .15s ease; }
.ask-card:hover { border-color:var(--blue); }
.ask-card.is-chosen { border-color:var(--blue); box-shadow:inset 0 0 0 1px var(--blue); background:#f2f5ff; }
.ask-card.is-general { border-style:dashed; }
.ask-card-photo { flex:none; width:46px; height:46px; border:2px solid var(--mint); border-radius:12px; object-fit:cover; object-position:50% 25%; background:#0f2a5a; }
.ask-card-initials { display:grid; place-items:center; color:#fff; font:800 16px Syne,sans-serif; }
.ask-card.is-general .ask-card-initials { border-color:#c9d0d6; background:#eef1f4; color:#53606c; }
.ask-card-text { display:grid; gap:2px; min-width:0; flex:1; }
.ask-card-text b { font-size:14px; line-height:1.25; }
.ask-card-text span { color:#66727d; font-size:12px; line-height:1.35; }
.ask-card-text .badge { justify-self:start; margin-top:4px; font-style:normal; }
.ask-form, .ask-signin { display:grid; gap:12px; margin:0 0 16px; padding:16px; border:1px solid #dfe5ff; border-radius:14px; background:#f7f9ff; }
.ask-for { margin:0 !important; color:var(--ink) !important; font-weight:700; }
.ask-name { display:flex; gap:10px; align-items:flex-start; font-size:13px; font-weight:500; }
.ask-name input { width:auto; margin:3px 0 0; }
.ask-me { margin:0 0 14px !important; }
.answer-by { display:flex; align-items:center; gap:8px; font-size:12px; }

/* Attendee quiz (/quiz): options are radio inputs drawn as cards; with JavaScript one question shows at a time. */
.quiz-shell .panel { max-width:760px; }
.quiz fieldset { margin:0; padding:0; border:0; min-width:0; }
.quiz legend { margin:0 0 14px; padding:0; color:var(--ink); font:700 clamp(19px,2.6vw,24px)/1.35 Syne,sans-serif; letter-spacing:-.02em; }
.quiz-number { color:var(--blue); }
.quiz.is-stepped .quiz-number { display:none; }
.quiz:not(.is-stepped) .quiz-step + .quiz-step { padding-top:22px; border-top:1px solid #e3e7eb; }
.quiz-options { display:grid; gap:10px; }
.quiz-option { display:block; position:relative; }
.quiz-option input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.quiz-option span { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 18px; border:2px solid #dde2e7; border-radius:14px; background:#fff; color:var(--ink); font:500 16px/1.4 Montserrat,sans-serif; transition:border-color .15s ease,background .15s ease; }
.quiz-option span::after { content:""; flex:none; width:20px; height:20px; border:2px solid #b9c1c9; border-radius:50%; box-sizing:border-box; }
.quiz-option input:hover + span { border-color:#9aa8ff; }
.quiz-option input:checked + span { border-color:var(--blue); background:#eef1ff; }
.quiz-option input:checked + span::after { border:6px solid var(--blue); }
.quiz-option input:focus-visible + span { outline:2px solid var(--blue); outline-offset:2px; }
.quiz-progress { display:grid; gap:10px; }
.quiz-count { color:var(--blue); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.quiz-bar { height:6px; border-radius:999px; background:#e6eaee; overflow:hidden; }
.quiz-bar span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--blue),var(--mint)); transition:width .4s ease; }
.quiz-actions { display:flex; align-items:center; gap:12px; }
.quiz-actions .button { margin-left:auto; padding:14px 22px; font-size:14px; }
.quiz-actions .button:disabled { background:#c8cdd3; cursor:not-allowed; }
.quiz-result { display:grid; gap:6px; }
.quiz-result h2 { margin:0; color:var(--ink); }
.quiz-result > p { margin:0; color:#53606c; }
.quiz-score { margin:0 !important; color:#66727d !important; font:600 22px Syne,sans-serif; }
.quiz-score b { font-size:56px; letter-spacing:-.04em; color:var(--blue); }
.quiz-result.is-pass .quiz-score b { color:#0b7a59; }
.quiz-review { display:grid; gap:12px; margin:16px 0 8px; padding:0; list-style:none; }
.quiz-review li { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border-radius:12px; background:#f4f6f8; }
.quiz-review p { margin:0; }
.quiz-review-q { color:var(--ink); font-weight:600; line-height:1.45; }
.quiz-mark { display:grid; place-items:center; flex:none; width:26px; height:26px; border-radius:50%; color:#fff; font-weight:700; font-size:14px; }
.is-right .quiz-mark { background:#0b7a59; }
.is-wrong .quiz-mark { background:#c0392b; }
.quiz-reward { position:relative; max-width:420px; margin:22px 0 0; padding:28px 26px 24px; border:1px solid rgba(89,216,178,.35); border-radius:22px; background:linear-gradient(150deg,#0f1d33,#081120); color:#e9eef7; text-align:center; overflow:hidden; }
.quiz-reward::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,var(--mint),var(--blue)); }
.quiz-reward .eyebrow { margin:0 0 12px; color:var(--mint); }
.quiz-code { margin:0; padding:16px 12px; border:2px dashed rgba(89,216,178,.45); border-radius:14px; background:#050b18; color:var(--mint); font:700 clamp(22px,6vw,30px) ui-monospace,Menlo,Consolas,monospace; letter-spacing:.04em; word-break:break-all; }
.quiz-reward-name { margin:14px 0 4px; font:700 18px Syne,sans-serif; }
.quiz-reward .small { margin:0; color:#a8afb8; }
.quiz-claimed { margin:6px 0 0; color:var(--mint); font-weight:700; }
@media(max-width:520px){ .quiz-option span{padding:14px;font-size:15px} .quiz-score b{font-size:46px} }
/* Quiz leaderboard on the projector (/quiz/screen). */
.quiz-board { display:grid; gap:1.2vh; margin:0; padding:0; list-style:none; counter-reset:none; }
.quiz-board-row { display:flex; align-items:center; gap:2vw; padding:1.6vh 2vw; border-radius:16px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); font-size:clamp(18px,2vw,38px); }
.quiz-board-rank { display:grid; place-items:center; flex:none; width:2.2em; height:2.2em; border-radius:50%; background:rgba(255,255,255,.1); font:700 .8em Syne,sans-serif; }
.quiz-board-name { flex:1; min-width:0; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.quiz-board-score { flex:none; color:var(--muted); font-size:.85em; }
.quiz-board-score b { color:#fff; font:700 1.3em Syne,sans-serif; }
.quiz-board-row.is-rank-1 { background:var(--mint); border-color:var(--mint); color:var(--ink); font-size:clamp(22px,2.6vw,48px); }
.quiz-board-row.is-rank-1 .quiz-board-rank { background:var(--ink); color:var(--mint); }
.quiz-board-row.is-rank-1 .quiz-board-score, .quiz-board-row.is-rank-1 .quiz-board-score b { color:var(--ink); }
.quiz-board-row.is-rank-2 .quiz-board-rank { background:#d9dee5; color:var(--ink); }
.quiz-board-row.is-rank-3 .quiz-board-rank { background:#d6a26b; color:var(--ink); }
.quiz-screen .screen-label { color:var(--mint); }
.quiz-screen .screen-title { margin-bottom:1.4vh; padding-bottom:0; border:0; }
.quiz-screen .screen-talk { margin:0 0 4vh; padding-bottom:3vh; border-bottom:1px solid rgba(255,255,255,.12); color:#c8ccd2; font-size:clamp(16px,1.4vw,26px); }
/* Self check-in (/here): the confirmation card. */
.here-card { position:relative; margin:6px 0 30px; padding:clamp(34px,6vw,64px) clamp(24px,5vw,56px); border-radius:26px; background:linear-gradient(150deg,#0f2a24,#081120 70%); color:#e9eef7; text-align:center; box-shadow:0 22px 44px -22px rgba(5,11,24,.45); }
.here-card h1 { margin:6px 0 10px; color:#fff; font-size:clamp(34px,6vw,58px); }
.here-card .eyebrow { color:var(--mint); }
html[data-theme] .here-card .lead { max-width:560px; margin:0 auto; color:rgba(233,238,247,.88); }
.here-card .lead b { color:#fff; }
.here-tick { display:grid; place-items:center; width:84px; height:84px; margin:0 auto 18px; border-radius:50%; background:var(--mint); color:#06121f; font:700 44px/1 Montserrat,sans-serif; animation:here-pop .45s cubic-bezier(.2,1.4,.4,1); }
@keyframes here-pop { from { transform:scale(.4); opacity:0; } to { transform:scale(1); opacity:1; } }
.here-next { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:12px; max-width:560px; margin:28px auto 0; }
.here-code { font-size:28px; letter-spacing:.3em; text-align:center; font-variant-numeric:tabular-nums; }
.here-link { display:grid; gap:4px; padding:16px 18px; border:1px solid rgba(255,255,255,.18); border-radius:16px; background:rgba(255,255,255,.06); color:#fff; text-align:left; text-decoration:none; }
.here-link:hover { background:rgba(255,255,255,.12); }
.here-link span { color:#a8afb8; font-size:13px; }
@media (prefers-reduced-motion:reduce) { .here-tick { animation:none; } }

/* Event day monitor (/event-day): headline cards and the live attendance table. */
.event-day .nav .brand { font-weight:700; }
.ed-live { display:inline-flex; align-items:center; gap:8px; color:var(--text-soft); font-size:12px; font-weight:600; }
.ed-dot { width:8px; height:8px; border-radius:50%; background:#2fbf94; box-shadow:0 0 0 0 rgba(47,191,148,.6); animation:ed-pulse 2s infinite; }
@keyframes ed-pulse { 70% { box-shadow:0 0 0 8px rgba(47,191,148,0); } 100% { box-shadow:0 0 0 0 rgba(47,191,148,0); } }
.ed-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; margin:10px 0 22px; }
.ed-head h1 { margin:4px 0 0; color:var(--text); font-size:clamp(28px,4vw,44px); }
.ed-pick label { color:var(--text-soft); }
.ed-pick select { min-width:min(320px,80vw); }
.ed-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:14px; margin:0 0 22px; }
.ed-card { padding:18px 20px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.ed-card p { margin:0; }
.ed-card-label { color:var(--text-soft); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.ed-card-value { margin:6px 0 4px !important; color:var(--text); font:700 clamp(34px,4vw,48px)/1 Syne,sans-serif; letter-spacing:-.03em; }
.ed-card-sub { color:var(--text-faint); font-size:13px; }
.ed-card.is-main { border-color:var(--mint); background:var(--mint); }
.ed-card.is-main .ed-card-label, .ed-card.is-main .ed-card-value, .ed-card.is-main .ed-card-sub { color:#06121f; }
.ed-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; }
.ed-tools input { max-width:300px; }
.ed-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.ed-tabs button { padding:9px 14px; border:1px solid #ced4da; border-radius:999px; background:#fff; color:var(--ink); cursor:pointer; font:600 13px Montserrat,sans-serif; }
.ed-tabs button span { margin-left:4px; color:#66727d; }
.ed-tabs button.is-active { border-color:var(--ink); background:var(--ink); color:#fff; }
.ed-tabs button.is-active span { color:var(--mint); }
.ed-table .table { width:100%; }
.ed-badge { display:inline-block; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:700; }
.ed-badge.is-self { background:rgba(49,92,255,.12); color:#2846c4; }
.ed-badge.is-door { background:#eef0f2; color:#4a5560; }
.ed-badge.is-pass { background:rgba(89,216,178,.2); color:#0b7a59; }
.ed-table tr.is-new td { animation:ed-flash 3s ease-out; }
@keyframes ed-flash { from { background:rgba(89,216,178,.45); } to { background:transparent; } }
/* Quiz join view on the projector (/quiz/screen?view=join): text on the left, a very large QR code on the right. */
/* The quiz join view: the projector layout, with the live "answered so far" count in the panel. */
.quiz-join-panel { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.4vh; padding:4vh 3vw; border:2px dashed rgba(255,255,255,.14); border-radius:26px; text-align:center; }
.quiz-join-panel b { color:var(--mint); font:700 clamp(72px,10vw,200px)/1 Syne,sans-serif; letter-spacing:-.04em; }
.quiz-join-panel span { color:#c8ccd2; font-size:clamp(22px,2.2vw,40px); }
.quiz-join-closed { margin:2vh 0 0; padding:1vh 1.4vw; border-radius:999px; background:#c0392b; color:#fff; font-weight:700; font-size:clamp(16px,1.4vw,26px); }
.quiz-join-closed[hidden] { display:none; }
/* Live Q&A list: count, Top/Newest switch, AI relevance meter, and "already asked" hints while typing. */
.live-list-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin:26px 0 4px; }
.live-list-head .live-list-title { margin:0; }
.live-list-count { color:#66727d; font:600 14px Montserrat,sans-serif; }
.live-list-hint { margin:0 0 6px !important; }
.live-sort { display:inline-flex; padding:3px; border-radius:999px; background:#eef0f2; }
.live-sort button { padding:6px 14px; border:0; border-radius:999px; background:transparent; color:#4a5560; cursor:pointer; font:600 12px Montserrat,sans-serif; }
.live-sort button.is-active { background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(5,11,24,.15); }
.vote-button .vote-arrow { font-size:16px; line-height:1.1; }
.vote-button.is-voted .vote-arrow { filter:grayscale(1) brightness(3); }
.relevance { display:inline-flex; align-items:center; gap:5px; padding:2px 8px; border-radius:999px; background:#f1f3ff; color:#2846c4; font-size:11px; font-weight:700; }
.relevance-dots { display:inline-flex; gap:2px; }
.relevance-dots span { width:6px; height:6px; border-radius:50%; background:#c7d0f5; }
.relevance-dots span.is-on { background:#315cff; }
.ask-similar { padding:12px 14px; border:1px solid #ffd58a; border-radius:12px; background:#fff8e8; }
.ask-similar-title { margin:0 0 6px !important; color:#7a4f00 !important; font-size:13px; font-weight:700; }
.ask-similar-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.ask-similar-item { display:flex; gap:12px; align-items:center; }
.ask-similar-item .live-text { margin:0; font-size:14px; }
