.kwiz-scope {
	--bg:#0a0e14; --bg2:#10151f; --trace:#39ff88; --blue:#4c7eff; --amber:#ffb454; --red:#ff5c5c;
	--ink:#e8ecf1; --ink-dim:#8a94a6; --panel:#131926; --line:#232b3b;
	background:
		radial-gradient(circle at 15% 0%, rgba(76,126,255,0.10), transparent 45%),
		radial-gradient(circle at 90% 100%, rgba(57,255,136,0.08), transparent 45%),
		var(--bg);
	color:var(--ink);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	border-radius:16px;
	padding:26px 18px 34px;
	max-width:640px;
	margin:0 auto;
	min-height:520px;
	position:relative;
	overflow:hidden;
}
.kwiz-scope *{ box-sizing:border-box; }
.kwiz-screen{ display:none; }
.kwiz-screen.active{ display:block; animation:kwizRise .3s ease both; }
@keyframes kwizRise{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }

.kwiz-eyebrow{ font: 600 12px ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--trace); display:flex; align-items:center; gap:8px; }
.kwiz-eyebrow::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--trace); box-shadow:0 0 8px var(--trace); }
.kwiz-h1{ font-size:26px; font-weight:800; margin:6px 0 18px; }

.kwiz-card{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:22px; }
.kwiz-center{ text-align:center; }
.kwiz-card label{ font: 600 11px ui-monospace, monospace; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.06em; display:block; }
.kwiz-card input[type=text]{
	width:100%; margin-top:6px; padding:13px 14px; background:var(--bg2); border:1px solid var(--line);
	border-radius:9px; color:var(--ink); font-size:16px; outline:none;
}
.kwiz-card input:focus{ border-color:var(--trace); }

.kwiz-avatars{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:8px; }
.kwiz-avatar-btn{ font-size:22px; background:var(--bg2); border:1px solid var(--line); border-radius:9px; padding:8px 0; cursor:pointer; }
.kwiz-avatar-btn.selected{ border-color:var(--trace); background:rgba(57,255,136,0.12); }

.kwiz-btn{ font-weight:700; font-size:16px; border:none; border-radius:9px; padding:14px 20px; cursor:pointer; width:100%; margin-top:18px; }
.kwiz-btn-primary{ background:var(--trace); color:#06130b; }
.kwiz-error{ color:var(--red); font-size:13px; margin-top:10px; min-height:16px; }

.kwiz-avatar-big{ font-size:56px; }
.kwiz-lobby-nick{ font-weight:800; font-size:20px; margin-top:6px; }
.kwiz-lobby-wait{ color:var(--ink-dim); margin-top:14px; font-size:14px; }
.kwiz-spinner{ width:26px; height:26px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--trace); margin:16px auto 0; animation:kwizSpin 0.9s linear infinite; }
@keyframes kwizSpin{ to{ transform:rotate(360deg); } }

.kwiz-top-row{ display:flex; justify-content:space-between; font: 600 12px ui-monospace, monospace; color:var(--ink-dim); margin-bottom:10px; }
.kwiz-score-pill{ color:var(--trace); }
.kwiz-timerwrap{ height:6px; background:var(--line); border-radius:4px; overflow:hidden; margin-bottom:16px; }
.kwiz-timerbar{ height:100%; background:linear-gradient(90deg,var(--trace),var(--blue)); width:100%; transition:width .2s linear; }
.kwiz-timerbar.warn{ background:linear-gradient(90deg,var(--amber),var(--red)); }
.kwiz-qcard{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:24px 18px; text-align:center; margin-bottom:16px; }
.kwiz-qtext{ font-weight:700; font-size:19px; line-height:1.35; }

.kwiz-answers{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:480px){ .kwiz-answers{ grid-template-columns:1fr; } }
.kwiz-ans{ display:flex; align-items:center; padding:16px; border-radius:11px; border:2px solid transparent; font-weight:700; font-size:15px; cursor:pointer; color:#0b0e14; text-align:left; }
.kwiz-ans.a{ background:var(--red); } .kwiz-ans.b{ background:var(--blue); } .kwiz-ans.c{ background:var(--amber); } .kwiz-ans.d{ background:var(--trace); }.kwiz-ans.picked{ border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,0.55); }
.kwiz-ans-check{ width:22px; height:22px; flex:none; margin-right:10px; border-radius:6px; border:2px solid rgba(11,14,20,0.45); background:rgba(255,255,255,0.25); display:inline-flex; align-items:center; justify-content:center; transition:background .12s ease, border-color .12s ease; }
.kwiz-ans.picked .kwiz-ans-check{ background:#0b0e14; border-color:#0b0e14; }
.kwiz-ans.picked .kwiz-ans-check::after{ content:'✓'; color:#fff; font-size:15px; font-weight:900; line-height:1; }

.kwiz-shape-icon{ width:18px; height:18px; flex:none; margin-right:10px; background:currentColor; display:inline-block; }
.kwiz-shape-triangle{ clip-path: polygon(50% 6%, 6% 94%, 94% 94%); }
.kwiz-shape-diamond{ clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); }
.kwiz-shape-circle{ border-radius: 50%; }
.kwiz-shape-square{ border-radius: 4px; }
.kwiz-ans:disabled{ opacity:.55; cursor:default; }
.kwiz-multi-submit{ grid-column:1 / -1; }
.kwiz-waiting-note{ text-align:center; color:var(--ink-dim); font-size:13px; margin-top:14px; }
.kwiz-paused-note{ text-align:center; color:var(--amber); font-weight:700; font-size:13px; margin-top:14px; }
.kwiz-timerbar.paused{ background:var(--amber); }

.kwiz-feedback .kwiz-fb-icon{ font-size:50px; }
.kwiz-fb-label{ font-weight:800; font-size:22px; margin-top:6px; }
.kwiz-fb-points{ color:var(--trace); font: 700 15px ui-monospace, monospace; margin-top:8px; }
.kwiz-fb-total{ color:var(--ink-dim); font-size:13px; margin-top:10px; }

.kwiz-podium-rank{ font-size:44px; font-weight:800; color:var(--trace); margin-top:8px; }
.kwiz-podium-sub{ color:var(--ink-dim); margin-top:4px; }
.kwiz-podium-top3{ margin-top:20px; display:flex; flex-direction:column; gap:8px; }
.kwiz-podium-row{ display:flex; align-items:center; gap:10px; background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:10px 14px; text-align:left; }
.kwiz-podium-row .medal{ font-size:20px; }
.kwiz-podium-row .name{ flex:1; font-weight:700; }
.kwiz-podium-row .pts{ font: 700 13px ui-monospace, monospace; color:var(--trace); }

.kwiz-sound-btn{ position:absolute; top:12px; right:12px; z-index:5; background:var(--panel); border:1px solid var(--line); color:var(--ink); font-size:16px; width:36px; height:36px; border-radius:50%; cursor:pointer; }

.kwiz-conn-banner{ margin:-4px -4px 14px; padding:10px 16px; text-align:center; font-weight:700; font-size:13px; border-radius:9px; }
.kwiz-conn-banner.kwiz-conn-bad{ background:var(--red); color:#fff; }
.kwiz-conn-banner.kwiz-conn-good{ background:var(--trace); color:#06130b; }

.kwiz-qimage{ max-width:100%; max-height:180px; border-radius:10px; margin-bottom:12px; }

.kwiz-fb-correct-text{ color:var(--ink-dim); font-size:13px; margin-top:6px; }

/* --- uszereguj (drag) --- */
.kwiz-order-list{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:8px; }
.kwiz-order-item{ display:flex; align-items:center; gap:10px; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-weight:600; touch-action:none; }
.kwiz-order-item.dragging{ opacity:0.5; border-color:var(--trace); }
.kwiz-drag-handle{ cursor:grab; color:var(--ink-dim); font-size:18px; user-select:none; touch-action:none; }
.kwiz-order-text{ flex:1; }

/* --- dopasuj pary --- */
.kwiz-match-cols{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.kwiz-match-col{ display:flex; flex-direction:column; gap:8px; }
.kwiz-match-item{ background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--line); border-radius:9px; padding:12px 10px; font-weight:600; font-size:14px; text-align:center; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.kwiz-match-item.active{ border-color:var(--blue); border-left-color:var(--blue); box-shadow:0 0 0 2px rgba(76,126,255,0.3); }
.kwiz-match-item.matched{ opacity:0.9; cursor:default; }

/* --- krótka odpowiedź --- */
.kwiz-open-input{ width:100%; padding:14px; background:var(--bg2); border:1px solid var(--line); border-radius:9px; color:var(--ink); font-size:16px; margin-bottom:12px; }
.kwiz-open-input:focus{ outline:none; border-color:var(--trace); }

.kwiz-confetti{ position:absolute; inset:0; pointer-events:none; }

.kwiz-account-tabs{ display:flex; gap:8px; margin-bottom:16px; }
.kwiz-account-tab{ flex:1; text-align:center; padding:10px; border-radius:9px; border:1px solid var(--line); color:var(--ink-dim); text-decoration:none; font-weight:700; font-size:14px; }
.kwiz-account-tab.active{ background:var(--trace); color:#06130b; border-color:var(--trace); }

.kwiz-desktop-hint{ margin-top:16px; font-size:12px; color:var(--ink-dim); line-height:1.5; text-align:center; }
.kwiz-desktop-hint b{ color:var(--trace); }

.kwiz-team-picker{ margin-top:6px; }
.kwiz-team-options{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.kwiz-team-btn{ flex:1; min-width:120px; background:var(--bg2); border:2px solid; border-radius:9px; padding:10px 8px; color:var(--ink); font-weight:700; font-size:13px; cursor:pointer; }
.kwiz-team-btn.selected{ color:#06130b; }
.kwiz-lobby-team{ color:var(--trace); font-weight:700; margin-top:4px; font-size:14px; }

.kwiz-countdown-num{ font-size:96px; font-weight:800; color:var(--trace); line-height:1; margin:14px 0; }
.kwiz-countdown-num.pulse{ animation:kwizPulse .5s ease; }
@keyframes kwizPulse{ 0%{ transform:scale(1.4); opacity:0.4; } 100%{ transform:scale(1); opacity:1; } }
.kwiz-countdown-sub{ color:var(--ink-dim); font-size:14px; }

.kwiz-quiz-context{ background:var(--panel); border:1px solid var(--trace); border-radius:12px; padding:16px 18px; margin-bottom:16px; }
.kwiz-quiz-context-badge{ font: 700 10px ui-monospace, monospace; letter-spacing:.1em; color:var(--trace); text-transform:uppercase; }
.kwiz-quiz-context-title{ font-weight:800; font-size:18px; margin-top:4px; }
.kwiz-quiz-context-desc{ color:var(--ink-dim); font-size:13px; margin-top:4px; }
.kwiz-quiz-context-meta{ font: 700 12px ui-monospace, monospace; color:var(--blue); margin-top:8px; }
.kwiz-quiz-context-note{ color:var(--ink-dim); font-size:12px; margin-top:8px; border-top:1px solid var(--line); padding-top:8px; }
