.qns-quiz-app {
	max-width: 640px;
	margin: 40px auto;
	padding: 32px;
	border: 1px solid #e5e0d8;
	border-radius: 12px;
	font-family: inherit;
}
@media (max-width: 600px) {
	.qns-quiz-app {
		margin: 20px auto;
		padding: 16px;
	}
}

.qns-quiz-loading,
.qns-error {
	text-align: center;
	color: #555;
	padding: 20px 0;
}

/* --- Conto alla rovescia prima della prima domanda (17/07/2026) --- */
.qns-quiz-countdown {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 0;
}
.qns-quiz-countdown-number {
	font-size: 72px;
	font-weight: 800;
	color: #0661FD;
}
.qns-quiz-countdown-number.qns-quiz-countdown-pulse {
	animation: qns-countdown-pulse 0.7s ease-out;
}
@keyframes qns-countdown-pulse {
	0% {
		transform: scale(1.6);
		opacity: 0;
	}
	40% {
		transform: scale(1);
		opacity: 1;
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

/* --- Schermata linee guida --- */
.qns-guidelines h3 {
	margin-top: 0;
}
.qns-register-gate-text {
	color: #555;
	line-height: 1.6;
	margin: 0 0 24px;
}
.qns-guidelines ul {
	list-style: none;
	padding: 0;
	margin: 20px 0;
}
.qns-guidelines li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 14px;
	line-height: 1.5;
}
.qns-guidelines li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: #0661FD;
	font-weight: bold;
}

/* --- Barra di avanzamento --- */
.qns-progress-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 24px;
}
.qns-progress-bar {
	flex: 1;
	height: 6px;
	border-radius: 4px;
	background: #ece7dd;
	overflow: hidden;
}
.qns-progress-fill {
	height: 100%;
	background: #0661FD;
	border-radius: 4px;
	transition: width 0.25s ease;
}
.qns-progress-label {
	font-size: 13px;
	color: #777;
	min-width: 50px;
	text-align: right;
}

/* --- Domanda e opzioni --- */
.qns-question-source {
	font-size: 12px;
	color: #888;
	margin: 0 0 6px;
	font-weight: 600;
}
.qns-question-text {
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 20px;
}
.qns-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 24px;
}
.qns-option-btn {
	text-align: left;
	padding: 14px 16px;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	font-size: 15px;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.qns-option-btn:hover {
	border-color: #0661FD;
}
.qns-option-selected {
	border-color: #0661FD;
	background: #D6E4FF;
	font-weight: 600;
}

/* --- Pulsanti --- */
.qns-btn-primary {
	width: 100%;
	padding: 14px;
	background: #0661FD;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.qns-btn-primary:hover {
	color: #FDCC06;
}
.qns-btn-primary:disabled {
	background: #A9C5FF;
	cursor: not-allowed;
}

/* --- Schermata risultato --- */
.qns-result {
	text-align: center;
	padding: 20px 0;
}
.qns-result-icon {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 12px;
}
.qns-result-icon img {
	width: 80px;
	height: 80px;
	display: block;
}
.qns-result-label {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 8px;
}
.qns-result-won .qns-result-icon {
	background: #E1F5EE;
}
.qns-result-won .qns-result-label {
	color: #1F9D55;
}
.qns-result-tie .qns-result-icon {
	background: #FAEEDA;
}
.qns-result-tie .qns-result-label {
	color: #9a6c00;
}
.qns-result-lost .qns-result-icon {
	background: #FCEBEB;
}
.qns-result-lost .qns-result-label {
	color: #A32D2D;
}
.qns-challenge-sub-strong {
	font-size: 17px !important;
	font-weight: 600;
	color: #1A2937 !important;
}
.qns-result-score {
	font-size: 48px;
	font-weight: 700;
	margin: 0 0 8px;
	color: #0661FD;
}
.qns-result-sub {
	color: #555;
	margin: 0 0 20px;
}
.qns-result-note {
	font-size: 13px;
	color: #888;
	border-top: 1px solid #eee;
	padding-top: 16px;
}
.qns-upsell {
	margin: 24px 0 0;
	padding: 28px 24px;
	background: #fff;
	border: 2px solid #FDCC06;
	border-radius: 14px;
	text-align: left;
}
.qns-upsell-badge {
	display: inline-block;
	background: #1A2937;
	color: #FDCC06;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	padding: 4px 10px;
	border-radius: 20px;
	margin-bottom: 12px;
}
.qns-upsell-hook {
	font-size: 15px;
	font-weight: 700;
	color: #0661FD;
	margin: 0 0 6px;
}
.qns-upsell-title {
	font-size: 20px;
	margin: 0 0 14px;
	color: #1A2937;
}
.qns-upsell-list {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
}
.qns-upsell-list li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 10px;
	font-size: 14px;
	color: #333;
	line-height: 1.4;
}
.qns-upsell-list li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: #0661FD;
	font-weight: bold;
}
.qns-upsell-price {
	margin: 0 0 4px;
}
.qns-upsell-price .qns-pricing-price-cell {
	align-items: flex-start;
	text-align: left;
}
.qns-upsell-price-note {
	color: #888;
	font-size: 12px;
	margin: 0 0 18px;
}
.qns-upsell-btn {
	display: inline-block;
	text-decoration: none;
	text-align: center;
	width: 100%;
	box-sizing: border-box;
}
.qns-content-toggle-wrap {
	margin: 4px 0 24px;
}
.qns-content-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	color: #0661FD;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	padding: 4px 0;
}
.qns-content-toggle-arrow {
	display: inline-block;
	font-size: 12px;
	transition: transform 0.2s ease;
}
.qns-content-toggle-open .qns-content-toggle-arrow {
	transform: rotate(180deg);
}
.qns-content-toggle-body {
	margin-top: 12px;
}
.qns-register-form {
	max-width: 420px;
	margin: 40px auto;
	padding: 32px;
	border: 1px solid #e5e0d8;
	border-radius: 12px;
}
.qns-register-sub {
	color: #777;
	font-size: 14px;
	margin: 0 0 24px;
}
.qns-register-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #1A2937;
	margin: 16px 0 6px;
}
.qns-register-input {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	font-family: inherit;
	font-size: 15px;
}
.qns-avatar-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-bottom: 8px;
}
.qns-avatar-choice {
	aspect-ratio: 1;
	border: 2px solid #ddd6c8;
	border-radius: 50%;
	background: #f5f2ea;
	padding: 0;
	cursor: pointer;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.qns-avatar-choice img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.qns-avatar-fallback {
	font-size: 18px;
	font-weight: 600;
	color: #999;
}
.qns-avatar-selected {
	border-color: #0661FD;
	box-shadow: 0 0 0 2px rgba(6, 97, 253, 0.2);
}
.qns-color-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 20px;
}
.qns-color-choice {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 2px solid transparent;
	cursor: pointer;
	padding: 0;
}
.qns-color-selected {
	border-color: #1A2937;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px #1A2937;
}
.qns-honeypot-field {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 0;
	overflow: hidden;
}
.qns-avatar-premium-label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
}
.qns-avatar-premium-tag {
	display: inline-block;
	background: #1A2937;
	color: #FDCC06;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 12px;
}
.qns-avatar-locked {
	position: relative;
	cursor: not-allowed;
	opacity: 0.55;
}
.qns-avatar-lock {
	position: absolute;
	bottom: -2px;
	right: -2px;
	background: #fff;
	border-radius: 50%;
	font-size: 13px;
	width: 20px;
	height: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.qns-avatar-premium-note {
	font-size: 12px;
	color: #999;
	margin: 8px 0 0;
	font-style: italic;
}
.qns-register-submit {
	margin-top: 20px;
}
.qns-register-feedback {
	font-size: 13px;
	margin: 10px 0 0;
	text-align: center;
}
.qns-register-feedback-error {
	color: #D9614F;
}
.qns-register-feedback-success {
	color: #1F9D55;
	font-weight: 600;
}
.qns-register-already {
	text-align: center;
	color: #777;
	padding: 20px 0;
}
.qns-timed-mode-frame {
	margin-top: 10px;
	padding: 16px;
	background: #EAF1FF;
	border: 2px solid #0661FD;
	border-radius: 10px;
}
.qns-btn-timed-solid {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 14px 16px;
	background: #1A2937;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-weight: 700;
	font-size: 17px;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.1s ease;
}
.qns-btn-timed-solid:hover {
	background: #0f1720;
}
.qns-btn-timed-solid:active {
	transform: scale(0.99);
}
.qns-timed-mode-desc {
	margin: 10px 0 0;
	font-size: 13px;
	color: #4a6a9c;
	text-align: center;
}
.qns-timer-wrap {
	text-align: center;
	margin: 0 0 20px;
}
.qns-timer-value {
	font-size: 48px;
	font-weight: 700;
	color: #0661FD;
	line-height: 1;
}
.qns-timer-unit {
	display: block;
	font-size: 13px;
	color: #777;
	margin-top: 2px;
}
.qns-challenge-cta {
	margin: 20px 0;
	padding: 20px;
	background: #eaf1ff;
	border-radius: 12px;
	text-align: center;
}
.qns-challenge-rematch-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.qns-challenge-rematch-cta .qns-btn-primary,
.qns-challenge-rematch-cta .qns-rematch-other-topic {
	width: 100%;
	max-width: 360px;
}
.qns-challenge-rematch-cta .qns-friend-challenge-btn {
	width: 100%;
}
.qns-challenge-esito-cta {
	margin: 20px 0;
}
.qns-challenge-guest-name-wrap {
	margin: 20px 0;
	padding: 16px 20px;
	background: #eaf1ff;
	border-radius: 12px;
}
.qns-challenge-guest-name-label {
	font-size: 15px;
	margin: 0 0 8px;
}
.qns-challenge-cta-guest p {
	margin: 0 0 12px;
	font-size: 14px;
	color: #1A2937;
}
.qns-auth-cta-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	align-items: center;
}
.qns-auth-cta-buttons .qns-btn-primary {
	width: auto;
	display: inline-block;
	text-decoration: none;
}
.qns-btn-secondary {
	display: inline-block;
	padding: 14px 24px;
	background: #fff;
	color: #0661FD;
	border: 1.5px solid #0661FD;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.qns-btn-secondary:hover {
	background: #eaf1ff;
}
.qns-challenge-countdown {
	font-size: 13px;
	color: #777;
	margin: 0 0 16px;
}
.qns-btn-scope {
	width: 100%;
	box-sizing: border-box;
	margin-top: 10px;
	padding: 12px 14px;
	background: #fff;
	color: #1A2937;
	border: 1.5px solid #FDCC06;
	border-radius: 8px;
	cursor: pointer;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: inherit;
}
.qns-btn-scope-title {
	font-weight: 600;
	font-size: 15px;
}
.qns-btn-scope-sub {
	font-size: 12px;
	color: #777;
}
.qns-btn-campionato {
	width: 100%;
	box-sizing: border-box;
	margin-top: 10px;
	padding: 12px 14px;
	background: #1A2937;
	color: #fff;
	border: 1.5px solid #1A2937;
	border-radius: 8px;
	cursor: pointer;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: inherit;
}
.qns-btn-campionato .qns-btn-scope-title {
	color: #FDCC06;
}
.qns-btn-campionato .qns-btn-scope-sub {
	color: #cfd8e0;
}
.qns-campionato-expiry-picker {
	margin-top: 10px;
	padding: 14px;
	background: #faf7f0;
	border-radius: 8px;
	text-align: center;
}
.qns-campionato-expiry-label {
	font-size: 13px;
	color: #555;
	margin: 0 0 10px;
	font-weight: 600;
}
.qns-expiry-choice {
	display: inline-block;
	padding: 8px 16px;
	margin: 0 4px;
	background: #fff;
	border: 1.5px solid #1A2937;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	color: #1A2937;
}
.qns-expiry-choice:hover {
	background: #1A2937;
	color: #fff;
}

/* Pannello "Lancia una sfida avanzata" ridisegnato (31/07/2026) - 3
   gruppi di pillole componibili (Su cosa/Con chi/Quanto dura) invece
   dei due box impilati di prima. Sostituisce .qns-btn-scope/
   .qns-btn-campionato dentro l'accordion (quelle classi restano usate
   altrove, es. rivincita sulla pagina sfida, non toccate). */
.qns-advanced-panel-label {
	font-size: 13px;
	font-weight: 600;
	color: #555;
	margin: 14px 0 8px;
}
.qns-advanced-panel-label:first-child {
	margin-top: 0;
}
.qns-advanced-pill-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.qns-advanced-pill {
	padding: 8px 14px;
	border-radius: 20px;
	border: 1.5px solid #d8d8d8;
	background: #fff;
	color: #1A2937;
	font-size: 13px;
	font-weight: 500;
	font-family: inherit;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.qns-advanced-pill:hover {
	border-color: #FDCC06;
}
.qns-advanced-pill-active {
	background: #FDCC06;
	border-color: #FDCC06;
	color: #1A2937;
	font-weight: 700;
}
.qns-btn-advanced-launch {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 20px;
	padding: 14px 18px;
	background: #FDCC06;
	color: #1A2937;
	border: none;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 700;
	font-family: inherit;
	cursor: pointer;
	text-align: center;
}
.qns-btn-advanced-launch:hover {
	filter: brightness(0.96);
}
.qns-advanced-panel-summary {
	text-align: center;
	font-size: 12.5px;
	color: #777;
	margin: 10px 0 0;
}
.qns-advanced-upsell {
	margin-top: 14px;
	padding: 14px;
	background: #FFF8E1;
	border: 1px solid #FDCC06;
	border-radius: 8px;
	font-size: 13px;
	color: #5c4c00;
	line-height: 1.5;
}
.qns-advanced-upsell a {
	color: #0661FD;
	font-weight: 600;
	text-decoration: underline;
}
.qns-invite-friends-actions {
	display: flex;
	gap: 10px;
	margin-top: 12px;
}
.qns-invite-friends-actions .qns-invite-friends-confirm {
	flex: 1;
}
.qns-btn-invite-cancel {
	padding: 12px 18px;
	background: #fff;
	color: #777;
	border: 1.5px solid #d8d8d8;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
}
.qns-btn-invite-cancel:hover {
	border-color: #999;
	color: #1A2937;
}
.qns-classifica-sub {
	text-align: center;
	font-size: 13px;
	color: #777;
	margin: 12px 0 20px;
}
.qns-challenge-link-label {
	font-size: 13px;
	color: #777;
	margin: 12px 0 8px;
}
.qns-whatsapp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #25D366;
	color: #fff;
	text-decoration: none;
	padding: 12px 20px;
	border-radius: 8px;
	font-weight: 600;
}
.qns-challenge-share-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	align-items: center;
}
.qns-btn-copy-link {
	display: inline-block;
	background: #fff;
	color: #1A2937;
	border: 1.5px solid #1A2937;
	text-decoration: none;
	padding: 12px 20px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	font-family: inherit;
}
.qns-challenge-page {
	max-width: 640px;
	margin: 40px auto;
	padding: 0 24px;
}
.qns-challenge-header {
	text-align: center;
	margin-bottom: 28px;
}
.qns-challenge-eyebrow {
	font-size: 16px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #0661FD;
	font-weight: 700;
	margin: 0 0 8px;
}
.qns-challenge-header h1 {
	font-size: 26px;
	margin: 0 0 6px;
	color: #1A2937;
}
.qns-challenge-sub {
	color: #777;
	margin: 0;
}
.qns-challenge-leaderboard {
	margin-top: 40px;
}
.qns-challenge-leaderboard h2 {
	font-size: 20px;
	margin: 0 0 16px;
}
.qns-challenge-not-found {
	text-align: center;
	padding: 60px 0;
}
.qns-challenge-refresh-note {
	font-size: 13px;
	color: #777;
	margin-top: 16px;
}
.qns-public-profile {
	max-width: 560px;
	margin: 40px auto;
	padding: 0 24px;
	text-align: center;
}
.qns-public-profile-avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 16px;
	border: 3px solid #0661FD;
}
.qns-public-profile-header h1 {
	margin: 0 0 4px;
	font-size: 28px;
}
.qns-public-profile-sub {
	color: #777;
	margin: 0 0 32px;
}
.qns-public-profile-challenges {
	color: #555;
	font-size: 14px;
	margin: 16px 0;
}
.qns-public-profile-cta {
	margin-top: 32px;
	padding: 24px;
	background: #faf7f0;
	border-radius: 12px;
}
.qns-public-profile-cta p {
	margin: 0 0 12px;
	font-weight: 600;
	color: #1A2937;
}
.qns-profile-header-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}
.qns-email-verify-notice {
	margin: 0 0 24px;
	padding: 16px 20px;
	background: #fff8e6;
	border: 1px solid #FDCC06;
	border-radius: 10px;
}
.qns-email-verify-notice p {
	margin: 0 0 10px;
	font-size: 14px;
	color: #1A2937;
}
.qns-resend-verification-feedback {
	font-size: 13px;
	color: #555;
	margin-top: 8px !important;
}
.qns-profile-share-inline {
	display: flex;
	gap: 8px;
}
.qns-share-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	font-family: inherit;
	border: none;
	white-space: nowrap;
}
.qns-share-pill-whatsapp {
	background: #e5f9ed;
	color: #1a8a44;
}
.qns-share-pill-whatsapp:hover {
	background: #d3f3dd;
}
.qns-share-pill.qns-btn-copy-link {
	background: #f0f0f0;
	color: #1A2937;
}
.qns-share-pill.qns-btn-copy-link:hover {
	background: #e4e4e4;
}

/* --- Dettaglio risposte --- */
.qns-detail-container {
	margin-top: 20px;
	text-align: left;
}
.qns-detail-item {
	padding: 14px 16px;
	border-radius: 8px;
	margin-bottom: 10px;
	border-left: 4px solid #ddd;
}
.qns-detail-correct {
	background: #E8F8EE;
	border-left-color: #1F9D55;
}
.qns-detail-wrong {
	background: #fbf0ef;
	border-left-color: #D9614F;
}
.qns-detail-question {
	font-weight: 600;
	margin: 0 0 6px;
}
.qns-detail-answer,
.qns-detail-correct-answer {
	margin: 0 0 4px;
	font-size: 14px;
}
.qns-detail-correct-answer {
	color: #1F9D55;
	font-weight: 600;
}
.qns-detail-explanation {
	margin: 8px 0 0;
	font-size: 13px;
	color: #777;
	font-style: italic;
}

/* --- Dashboard profilo --- */
.qns-profile {
	max-width: 720px;
	margin: 40px auto;
	padding: 32px;
}
.qns-profile-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 12px;
}
.qns-profile-header-identity {
	display: flex;
	align-items: center;
	gap: 14px;
}
.qns-profile-header-identity h2 {
	font-size: 22px;
	margin: 0;
}
@media (max-width: 600px) {
	.qns-profile {
		padding: 20px 14px;
	}
	.qns-profile-header {
		flex-direction: column;
		align-items: flex-start;
	}
	.qns-profile-header-right {
		align-items: flex-start;
		width: 100%;
	}
	.qns-profile-share-inline {
		flex-wrap: wrap;
	}
}
.qns-profile-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #0661FD;
	flex-shrink: 0;
}
.qns-profile-avatar-subscriber {
	box-shadow: 0 0 0 3px #FDCC06;
}
.qns-badge-active {
	background: #E6EFFF;
	color: #0661FD;
	padding: 6px 12px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
}
/* Override oro SOLO per il badge "Abbonamento attivo" nel profilo
   (17/07/2026) - .qns-badge-active da sola resta blu, riusata anche
   dal badge "Registrazione gratuita" in homepage, che non deve cambiare. */
.qns-badge-subscribed {
	background: #FDCC06;
	color: #1A2937;
	font-weight: 700;
}
.qns-badge-inactive {
	background: #f2f2f2;
	color: #888;
	padding: 6px 12px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
}
.qns-profile-average {
	text-align: center;
	padding: 24px;
	background: #faf7f0;
	border-radius: 12px;
	margin-bottom: 24px;
}
.qns-profile-modes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
	margin-bottom: 24px;
}
.qns-profile-modes .qns-profile-average {
	margin-bottom: 0;
}
.qns-profile-average-timed {
	background: #1A2937;
}
.qns-profile-average-timed .qns-profile-average-label {
	color: #cfd8e0;
}
.qns-profile-average-timed .qns-profile-average-value {
	color: #ffffff;
}
.qns-profile-average-wl {
	background: #fffbea;
	border: 1px solid #FDCC06;
}
.qns-profile-average-wl .qns-profile-average-value {
	color: #1A2937;
}
.qns-profile-average-label {
	display: block;
	font-size: 14px;
	color: #777;
	margin-bottom: 6px;
}
.qns-profile-average-value {
	display: block;
	font-size: 42px;
	font-weight: 700;
	color: #0661FD;
}
.qns-profile-categories {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	margin-bottom: 24px;
}
.qns-profile-category-card {
	padding: 16px;
	border: 1px solid #e5e0d8;
	border-radius: 10px;
	text-align: center;
}
.qns-cat-name {
	display: block;
	font-size: 13px;
	color: #777;
	margin-bottom: 4px;
}
.qns-cat-value {
	display: block;
	font-size: 26px;
	font-weight: 700;
	color: #0661FD;
}
.qns-cat-count {
	display: block;
	font-size: 12px;
	color: #999;
	margin-top: 4px;
}
.qns-profile-trophies {
	margin-bottom: 28px;
}
.qns-profile-trophies-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
}
.qns-profile-trophy-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 18px 12px;
	background: #FAF7F0;
	border: 1.5px solid #FDCC06;
	border-radius: 10px;
	transition: transform 0.15s ease;
}
.qns-profile-trophy-card:hover {
	transform: translateY(-2px);
}
.qns-profile-trophy-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	color: #1A2937;
}
.qns-victory-certificate-link {
	margin-top: 10px;
	font-size: 12px;
	color: #0661FD;
	text-decoration: none;
	font-weight: 600;
}
.qns-victory-certificate-link:hover {
	text-decoration: underline;
}
.qns-profile-trophy-icon {
	font-size: 28px;
	margin-bottom: 8px;
}
.qns-profile-trophy-label {
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 4px;
}
.qns-profile-trophy-date {
	font-size: 12px;
	color: #8a8578;
}
.qns-pricing-table-wrap {
	max-width: 960px;
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 40px;
	overflow-x: auto;
	border-radius: 16px;
	box-shadow: 0 4px 20px rgba(26, 41, 55, 0.08);
	border: 1px solid #ece6d9;
}
.qns-pricing-table {
	width: 100%;
	/* table-layout:fixed (17/07/2026, su richiesta di Gianluca): senza
	   questo, le colonne si allargano/restringono in base al contenuto
	   di ogni riga, risultando disallineate colonna per colonna. Con
	   fixed, la larghezza è decisa una sola volta dalle percentuali
	   sotto e resta identica per tutte le righe della tabella. */
	table-layout: fixed;
	border-collapse: collapse;
	font-size: 15px;
	background: #fff;
}
.qns-pricing-table th,
.qns-pricing-table td {
	width: 25%;
	padding: 14px 16px;
	text-align: center;
	border-bottom: 1px solid #ece6d9;
	white-space: normal;
	word-wrap: break-word;
}
.qns-pricing-table thead th {
	font-size: 16px;
	font-weight: 700;
	color: #1A2937;
	padding: 20px 16px;
	background: #faf7f0;
}
.qns-pricing-table tbody tr:nth-child(even) {
	background: #fbfaf6;
}
.qns-pricing-table tbody tr:last-child td {
	border-bottom: none;
}
.qns-pricing-label {
	text-align: left !important;
	font-weight: 500;
	color: #333;
	white-space: normal;
	position: sticky;
	left: 0;
	background: inherit;
	background-color: #fff;
}
.qns-pricing-table tbody tr:nth-child(even) .qns-pricing-label {
	background-color: #fbfaf6;
}
.qns-pricing-col-highlight {
	background: #fffbea;
}
.qns-pricing-table tbody tr:nth-child(even) .qns-pricing-col-highlight {
	background: #fff5d1;
}
.qns-pricing-table thead .qns-pricing-col-highlight {
	background: #1A2937;
	color: #FDCC06;
}
.qns-pricing-yes {
	color: #1F9D55;
	font-weight: 700;
	font-size: 18px;
}
.qns-pricing-no {
	color: #ccc;
	font-weight: 700;
}
.qns-pricing-note {
	text-align: center;
	margin-top: 20px;
	color: #555;
}
.qns-pricing-note a {
	color: #0661FD;
	font-weight: 600;
}
/* --- Cella prezzo commerciale abbonato (08/08/2026) --- */
.qns-pricing-price-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
}
.qns-pricing-price-strike {
	font-size: 12px;
	color: #999;
	text-decoration: line-through;
}
.qns-pricing-price-main {
	font-size: 17px;
	font-weight: 700;
	color: #1A2937;
}
.qns-pricing-savings-badge {
	display: inline-block;
	margin-top: 4px;
	padding: 3px 10px;
	background: #FDCC06;
	color: #1A2937;
	font-size: 12px;
	font-weight: 700;
	border-radius: 999px;
}
.qns-pricing-note-gate {
	max-width: 560px;
	margin: 0 auto 40px;
	padding: 32px;
	background: #faf7f0;
	border: 1px solid #FDCC06;
	border-radius: 16px;
	text-align: center;
}
.qns-pricing-note-gate h3 {
	margin: 0 0 10px;
	font-size: 22px;
	color: #1A2937;
}
.qns-pricing-note-gate p {
	margin: 0 0 20px;
	color: #555;
	line-height: 1.5;
}
.qns-pricing-note-gate .qns-btn-primary {
	display: inline-block;
	width: auto;
	padding: 14px 32px;
	text-decoration: none;
}

/* --- Riga CTA in fondo alla tabella (17/07/2026) --- */
.qns-pricing-cta-row td {
	padding: 18px 12px;
	border-bottom: none;
}
.qns-pricing-cta-btn {
	display: inline-block;
	padding: 10px 16px;
	border-radius: 8px;
	border: 1.5px solid #0661FD;
	color: #0661FD;
	background: #fff;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s ease, color 0.15s ease;
}
.qns-pricing-cta-btn:hover {
	background: #0661FD;
	color: #fff;
}
.qns-pricing-cta-btn-highlight {
	background: #0661FD;
	color: #fff;
	border-color: #0661FD;
}
.qns-pricing-cta-btn-highlight:hover {
	background: #054fd1;
}
.qns-pricing-current-badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	color: #777;
	padding: 6px 10px;
	border-radius: 20px;
	background: #f0ece0;
}
.qns-pricing-current-badge-gold {
	color: #8a6d00;
	background: #FDCC06;
}
.qns-pricing-dash {
	color: #ccc;
}

/* --- Accordion checkout (17/07/2026) - sostituisce il form "buttato
   lì" subito sotto la tabella: chiuso di default, il pulsante "Abbonati
   ora" nella tabella lo apre e ci scorre sopra. --- */
.qns-pricing-checkout-wrap {
	max-width: 640px;
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}
.qns-pricing-checkout-toggle {
	display: none; /* il toggle interno resta nascosto: si apre solo dal pulsante nella tabella - evita un secondo punto di ingresso ridondante */
}
.qns-pricing-checkout-wrap.qns-pricing-checkout-open .qns-pricing-checkout-toggle {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	margin-bottom: 16px;
	background: #FAF7F0;
	border: 1px solid #ece6d9;
	border-radius: 10px;
	font-weight: 600;
	font-size: 15px;
	color: #1A2937;
	cursor: pointer;
	font-family: inherit;
}
.qns-pricing-checkout-wrap.qns-pricing-checkout-open .qns-content-toggle-arrow {
	transition: transform 0.2s ease;
	transform: rotate(180deg);
}
.qns-pricing-checkout-body {
	padding: 24px;
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 12px;
}
@media (max-width: 640px) {
	.qns-pricing-table {
		font-size: 13px;
	}
	.qns-pricing-table th,
	.qns-pricing-table td {
		padding: 10px 12px;
	}
	.qns-pricing-label {
		max-width: 150px;
		white-space: normal;
	}
}

.qns-profile-table-wrap {
	border: 1px solid #ece6d9;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 24px;
}
.qns-profile-history {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0;
}
.qns-profile-history th {
	background: #FAF7F0;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #777;
}
.qns-profile-history th,
.qns-profile-history td {
	text-align: left;
	padding: 12px 14px;
	border-bottom: 1px solid #eee;
	font-size: 14px;
}
.qns-profile-history tbody tr:last-child td {
	border-bottom: none;
}
.qns-profile-history tbody tr:nth-child(even) {
	background: #fbfaf7;
}
.qns-leaderboard-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.qns-profile-history tbody tr:hover {
	background: #FAF7F0;
}
.qns-profile-history-title {
	color: #1A2937;
	font-weight: 600;
	text-decoration: none;
}
.qns-profile-history-title:hover {
	color: #0661FD;
}
.qns-profile-history-sub {
	color: #999;
	font-size: 12px;
	margin-left: 4px;
}
@media (max-width: 640px) {
	.qns-profile-history {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		white-space: nowrap;
	}
}

/* --- Badge colorati (17/07/2026, miglioria grafica profilo) --- */
.qns-badge-score,
.qns-badge-stato {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
/* .qns-badge-esito separata dalle altre due (31/07/2026): il testo può
   essere lungo ("Conclusa, nessun partecipante registrato", "In attesa
   del primo partecipante") - forzarlo su una riga sola allargava a
   dismisura la colonna nella tabella Sfide/Campionati del profilo,
   rendendo illeggibili le altre colonne. */
.qns-badge-esito {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
	white-space: normal;
	line-height: 1.4;
	max-width: 220px;
}
.qns-badge-score-good { background: #E4F5E9; color: #1e7d3c; }
.qns-badge-score-mid  { background: #FFF3D6; color: #9a6c00; }
.qns-badge-score-low  { background: #FCE6E5; color: #b3261e; }

.qns-badge-esito-win     { background: #E4F5E9; color: #1e7d3c; }
.qns-badge-esito-loss    { background: #FCE6E5; color: #b3261e; }
.qns-badge-esito-neutral { background: #f0ece0; color: #777; }
.qns-badge-esito-pending { background: #E6EFFF; color: #0661FD; }
.qns-badge-esito-tie     { background: #FFF3D0; color: #9a6c00; }

.qns-badge-stato-attiva  { background: #E6EFFF; color: #0661FD; }
.qns-badge-stato-scaduta { background: #f0ece0; color: #888; }
.qns-badge-stato-conclusa { background: #f0ece0; color: #555; }

.qns-badge-rank {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
	background: #f0ece0;
	color: #555;
}
.qns-badge-rank-1 {
	background: #FDCC06;
	color: #6b5300;
}
.qns-badge-rank-2 {
	background: #E2E5E9;
	color: #4a5158;
}
.qns-badge-rank-3 {
	background: #F0D3B4;
	color: #7a4a1e;
}

.qns-profile-challenge-summary {
	display: flex;
	gap: 12px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}
.qns-profile-mini-stat {
	flex: 1;
	min-width: 90px;
	text-align: center;
	padding: 12px 8px;
	border-radius: 10px;
	background: #FAF7F0;
}
.qns-profile-mini-stat-value {
	display: block;
	font-size: 26px;
	font-weight: 800;
	color: #1A2937;
}
.qns-profile-mini-stat-label {
	display: block;
	font-size: 12px;
	color: #666;
	margin-top: 2px;
}
.qns-mini-stat-win .qns-profile-mini-stat-value {
	color: #1e7d3c;
}
.qns-mini-stat-loss .qns-profile-mini-stat-value {
	color: #b3261e;
}
.qns-mini-stat-tie .qns-profile-mini-stat-value {
	color: #9a6c00;
}

/* --- Layout a tab del profilo (17/07/2026, solo admin per ora) --- */
/* "Attività in corso" (04/08/2026) - stile funzionale di base, da
   rifinire in un secondo passaggio estetico dedicato (colori/icone più
   curati), come concordato con Gianluca. */
.qns-ongoing-section {
	margin: 20px 0 28px;
	padding: 18px 20px;
	background: #fff;
	border: 1.5px solid #FDCC06;
	border-radius: 12px;
}
.qns-ongoing-title {
	margin: 0 0 14px;
	font-size: 18px;
}
.qns-ongoing-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 10px;
}
.qns-ongoing-group:last-child {
	margin-bottom: 0;
}
.qns-ongoing-card {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	background: #FAF8F2;
	border-radius: 8px;
	text-decoration: none;
	color: #1A2937;
}
.qns-ongoing-card-icon {
	font-size: 18px;
	flex-shrink: 0;
}
.qns-ongoing-card-text {
	flex: 1;
	font-size: 14px;
	line-height: 1.4;
}
.qns-ongoing-card-sub {
	display: block;
	font-size: 12px;
	color: #777;
}
.qns-ongoing-remind-btn {
	flex-shrink: 0;
	padding: 6px 12px;
	background: #0661FD;
	color: #fff;
	border: none;
	border-radius: 20px;
	font-size: 12.5px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
.qns-ongoing-remind-btn:disabled {
	background: #ddd6c8;
	color: #999;
	cursor: default;
}

.qns-profile-tabs-nav {
	position: sticky;
	top: var(--header-height, 88px);
	z-index: 50;
	display: flex;
	gap: 10px;
	background: #fff;
	padding: 12px 4px 16px;
	margin-bottom: 20px;
	border-bottom: 2px solid #ece6d9;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;
}
/* Barra di scorrimento sottile invece di quella di sistema, solo dove
   supportato (Chrome/Edge/Safari) - su Firefox resta quella standard,
   nessun problema, è solo un dettaglio estetico non funzionale. */
.qns-profile-tabs-nav::-webkit-scrollbar {
	height: 6px;
}
.qns-profile-tabs-nav::-webkit-scrollbar-thumb {
	background: #ddd6c8;
	border-radius: 10px;
}
/* Pannello profilo - pulsanti tab ridisegnati (04/08/2026, feedback di
   Gianluca: "così anonimi da non sembrare bottoni, poco stimolante") -
   bordo sempre visibile, ombra leggera per dare profondità, icona
   dedicata al posto dell'emoji. Corretto anche un bug reale trovato
   qui: il pulsante ATTIVO, se ci passavi sopra il mouse, diventava
   quasi illeggibile (sfondo chiaro + testo bianco ereditato dallo
   stato attivo) - mancava una regola per l'hover sull'attivo stesso. */
.qns-profile-tab-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex: 0 0 auto;
	width: 88px;
	padding: 6px 6px 10px;
	border: 1.5px solid #e4ddc8;
	background: #fff;
	color: #1A2937;
	border-radius: 14px;
	font-weight: 600;
	font-size: 12.5px;
	line-height: 1.25;
	cursor: pointer;
	font-family: inherit;
	text-align: center;
	scroll-snap-align: start;
	box-shadow: 0 2px 5px rgba(0,0,0,0.05);
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.qns-profile-tab-btn:hover {
	background: #EAF1FF;
	border-color: #0661FD;
	box-shadow: 0 4px 10px rgba(6,97,253,0.12);
}
.qns-profile-tab-btn-active,
.qns-profile-tab-btn-active:hover {
	background: #0661FD;
	border-color: #0661FD;
	color: #fff;
	box-shadow: 0 4px 12px rgba(6,97,253,0.3);
}
.qns-tab-icon {
	width: 60px;
	height: 60px;
	object-fit: contain;
	flex-shrink: 0;
}
.qns-esito-icon {
	width: 16px;
	height: 16px;
	object-fit: contain;
	vertical-align: -3px;
}
.qns-btn-icon {
	width: 20px;
	height: 20px;
	object-fit: contain;
	vertical-align: -5px;
	margin-right: 2px;
}
.qns-profile-tab-panel {
	animation: qns-tab-fade-in 0.2s ease;
}
@keyframes qns-tab-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.qns-profile-average-count {
	display: block;
	font-size: 12px;
	color: #666;
	margin-top: 4px;
}
.qns-profile-average-win .qns-profile-average-value {
	color: #1e7d3c;
}
.qns-profile-average-loss .qns-profile-average-value {
	color: #b3261e;
}
.qns-profile-wl-note {
	text-align: center;
	font-size: 12px;
	color: #999;
	margin: -12px 0 24px;
}
.qns-guest-tag {
	font-size: 11px;
	color: #999;
	font-style: italic;
	cursor: help;
}

/* --- Ciambelle di progresso per macrocategoria (17/07/2026) --- */
/* --- Amici (17/07/2026) --- */
.qns-add-friend-btn {
	margin-top: 10px;
	padding: 8px 16px;
	background: #fff;
	border: 1.5px solid #0661FD;
	color: #0661FD;
	border-radius: 8px;
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
	font-family: inherit;
}
.qns-add-friend-btn:hover {
	background: #0661FD;
	color: #fff;
}
.qns-add-friend-btn:disabled {
	opacity: 0.7;
	cursor: default;
	background: #E4F5E9;
	border-color: #1e7d3c;
	color: #1e7d3c;
}
.qns-add-friend-btn-small {
	margin-top: 0;
	padding: 4px 10px;
	font-size: 12px;
}
.qns-friends-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media (max-width: 600px) {
	.qns-friends-grid {
		grid-template-columns: 1fr;
	}
}
.qns-friend-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 18px 12px;
	border: 1px solid #ece6d9;
	border-radius: 14px;
}
.qns-friend-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 10px;
}
.qns-friend-name {
	font-weight: 700;
	font-size: 14px;
}
.qns-friend-note {
	font-size: 12px;
	color: #777;
	margin-top: 4px;
	font-style: italic;
}
.qns-friend-history-btn {
	padding: 6px 14px;
	background: #FAF7F0;
	border: none;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 600;
	color: #0661FD;
	cursor: pointer;
	font-family: inherit;
}
.qns-friend-history-btn:hover {
	background: #f0ece0;
}
.qns-friend-card-actions {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	width: 100%;
}
.qns-friend-card-actions button {
	flex: 1;
}
.qns-friend-challenge-btn {
	padding: 6px 10px;
	background: #FDCC06;
	border: none;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 700;
	color: #1A2937;
	cursor: pointer;
	font-family: inherit;
}
.qns-friend-challenge-btn:hover {
	background: #e6ba00;
}
.qns-friend-topic-picker {
	width: 100%;
	margin-top: 12px;
	text-align: left;
}
.qns-friend-topic-search {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	font-family: inherit;
	font-size: 13px;
}
.qns-friend-topic-results {
	max-height: 200px;
	overflow-y: auto;
	margin-top: 6px;
}
.qns-friend-topic-results .qns-site-search-result {
	display: block;
	padding: 8px 10px;
	font-size: 13px;
	color: #1A2937;
	text-decoration: none;
	border-radius: 6px;
}
.qns-friend-topic-results .qns-site-search-result:hover {
	background: #FAF7F0;
	color: #0661FD;
}
.qns-friend-back-btn {
	background: none;
	border: none;
	color: #0661FD;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	font-family: inherit;
	padding: 0;
	margin-bottom: 16px;
}

/* --- Sfida riservata a un amico (17/07/2026) --- */
.qns-challenge-friend-banner {
	background: #FAF7F0;
	border: 2px solid #FDCC06;
	border-radius: 12px;
	padding: 14px 20px;
	margin: 0 auto 20px;
	max-width: 700px;
	text-align: center;
	font-weight: 600;
	color: #1A2937;
}
.qns-btn-friend-challenge {
	display: block;
	width: 100%;
	margin-top: 10px;
	padding: 12px;
	background: #fff;
	border: 1.5px solid #0661FD;
	color: #0661FD;
	border-radius: 8px;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	font-family: inherit;
}
.qns-btn-friend-challenge:hover {
	background: #eaf1ff;
}
.qns-create-challenge-btn-direct {
	width: 100%;
}
.qns-friend-picker {
	margin-top: 12px;
	text-align: left;
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 10px;
	padding: 12px;
}
.qns-friend-picker-search {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	font-family: inherit;
	font-size: 13px;
	margin-bottom: 8px;
}
.qns-friend-picker-list {
	max-height: 220px;
	overflow-y: auto;
}
.qns-friend-picker-item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 8px 10px;
	background: none;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	text-align: left;
	color: #1A2937;
}
.qns-friend-picker-item:hover {
	background: #FAF7F0;
}
.qns-friend-picker-item img {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}
.qns-friend-challenge-sent {
	background: #E4F5E9;
	color: #1e7d3c;
	border-radius: 10px;
	padding: 14px;
	font-weight: 600;
	text-align: center;
}

.qns-profile-progress-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin-bottom: 32px;
}
.qns-profile-progress-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 20px;
	border: 1px solid #ece6d9;
	border-radius: 14px;
	text-decoration: none;
	color: #1A2937;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.qns-profile-progress-card:hover {
	box-shadow: 0 6px 20px rgba(26, 41, 55, 0.08);
	transform: translateY(-2px);
}
.qns-profile-progress-title {
	font-weight: 700;
	font-size: 15px;
	margin-bottom: 14px;
}
.qns-profile-progress-rings {
	display: flex;
	gap: 20px;
}
.qns-progress-ring {
	position: relative;
	width: 88px;
	height: 88px;
}
.qns-progress-ring-svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}
.qns-progress-ring-bg {
	fill: none;
	stroke: #f0ece0;
	stroke-width: 8;
}
.qns-progress-ring-fill {
	fill: none;
	stroke-width: 8;
	stroke-linecap: round;
	stroke: #0661FD;
	transition: stroke-dashoffset 1s ease;
}
.qns-progress-ring-fill.qns-ring-completion {
	stroke: #0661FD;
}
.qns-progress-ring-fill.qns-badge-score-good {
	stroke: #1e7d3c;
}
.qns-progress-ring-fill.qns-badge-score-mid {
	stroke: #c98f00;
}
.qns-progress-ring-fill.qns-badge-score-low {
	stroke: #b3261e;
}
.qns-progress-ring-text {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
}
.qns-progress-ring-text strong {
	font-size: 18px;
}
.qns-progress-ring-text small {
	font-size: 11px;
	color: #666;
	margin-top: 2px;
}
.qns-progress-ring-group {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.qns-progress-ring-caption {
	display: block;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	color: #555;
	margin-top: 6px;
	width: 88px;
}

/* --- Ricerca e "mostra altri" nello storico tentativi (17/07/2026) --- */
.qns-profile-history-search {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px;
	margin-bottom: 12px;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	font-family: inherit;
	font-size: 14px;
}
.qns-profile-history-search:focus {
	outline: none;
	border-color: #0661FD;
}
.qns-profile-history-show-more {
	display: block;
	width: 100%;
	margin-bottom: 24px;
	padding: 10px;
	background: #FAF7F0;
	border: 1px solid #ece6d9;
	border-radius: 8px;
	color: #0661FD;
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
	font-family: inherit;
}
.qns-profile-history-show-more:hover {
	background: #f0ece0;
}

.qns-profile-cta {
	text-align: center;
	padding: 20px;
	background: #faf7f0;
	border-radius: 12px;
}
.qns-profile-thanks {
	text-align: center;
	padding: 16px;
	background: #FDCC06;
	color: #1A2937;
	border-radius: 12px;
	font-weight: 700;
}

/* --- Pagina archivio categoria --- */
.qns-archive {
	max-width: 1000px;
	margin: 50px auto;
	padding: 0 24px;
}
@media (max-width: 760px) {
	.qns-archive {
		margin: 16px auto;
	}
}
.qns-archive-header {
	text-align: center;
	margin-bottom: 44px;
}
.qns-archive-banner {
	max-width: 100%;
	height: 260px;
	border-radius: 16px;
	overflow: hidden;
	margin-bottom: 28px;
}
.qns-archive-banner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.qns-archive-header-split {
	display: flex;
	align-items: center;
	gap: 44px;
	margin-bottom: 48px;
	text-align: left;
}
.qns-archive-header-split .qns-archive-header-text {
	flex: 1 1 50%;
}
.qns-archive-header-split h1 {
	font-size: 32px;
	margin: 0 0 12px;
}
.qns-archive-header-image {
	flex: 1 1 45%;
	max-width: 420px;
	height: 260px;
	border-radius: 16px;
	overflow: hidden;
	flex-shrink: 0;
}
.qns-archive-header-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.qns-archive-subheading {
	text-align: center;
	margin-bottom: 24px;
}
.qns-archive-direct-quizzes {
	margin-bottom: 12px;
}
.qns-archive-grid-direct {
	margin-bottom: 40px;
}
@media (max-width: 760px) {
	.qns-archive-header-split {
		flex-direction: column;
		text-align: center;
		margin-bottom: 20px;
		gap: 0;
	}
	/* "Dissolve" il contenitore titolo+testo così titolo e testo
	   diventano riordinabili indipendentemente rispetto all'immagine,
	   senza dover cambiare la struttura HTML. */
	.qns-archive-header-text {
		display: contents;
	}
	.qns-archive-header-text .qns-breadcrumb {
		order: 1;
		margin: 0 0 2px;
	}
	.qns-archive-header-text h1 {
		order: 2;
		margin: 0 0 4px;
	}
	.qns-archive-header-image {
		order: 3;
		max-width: 100%;
		width: 100%;
		height: 180px;
		margin-bottom: 10px;
	}
	.qns-archive-header-text .qns-archive-description {
		order: 4;
		margin-top: 0;
	}
}
.qns-archive-header h1 {
	font-size: 32px;
	margin-bottom: 8px;
}
@media (max-width: 760px) {
	.qns-archive-header {
		margin-bottom: 20px;
	}
	.qns-archive-header h1 {
		margin-bottom: 2px;
	}
	.qns-archive-description {
		margin-top: 0;
	}
}
.qns-archive-description {
	color: #666;
	max-width: 600px;
	margin: 12px auto 0;
	font-size: 15px;
}

/* --- Taglio a poche righe per testi "un unico paragrafo lungo"
   (16/07/2026) - la descrizione di categoria è quasi sempre un blocco
   di testo continuo, non paragrafi multipli, quindi il meccanismo a
   paragrafi (.qns-content-toggle-*, usato altrove) non taglia nulla.
   Qui invece si taglia per NUMERO DI RIGHE VISIVE via CSS, che funziona
   a prescindere da come è strutturato il testo. -webkit-line-clamp è
   supportato da tutti i browser moderni (Chrome/Safari/Edge/Firefox
   68+), non solo WebKit nonostante il nome storico. */
.qns-clamp-wrap .qns-clamp-text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.qns-clamp-wrap.qns-clamp-open .qns-clamp-text {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
}
.qns-clamp-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 6px;
	padding: 0;
	background: none;
	border: none;
	color: #0661FD;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.qns-clamp-toggle-btn .qns-content-toggle-arrow {
	display: inline-block;
	transition: transform 0.15s ease;
	font-size: 11px;
}
.qns-clamp-wrap.qns-clamp-open .qns-content-toggle-arrow {
	transform: rotate(180deg);
}
/* --- Ricerca unificata sito/categoria (16/07/2026) ---
   Sostituisce .qns-grid-filter/.qns-grid-tag-chip (rimossi, il vecchio
   filtro "solo in questa pagina" non esiste più). position:relative sul
   contenitore per ancorare il menu risultati sotto il campo. */
.qns-site-search {
	position: relative;
	margin: 0 0 28px;
}
.qns-site-search-input {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 16px;
	border: 1.5px solid #d8d8d8 !important;
	border-radius: 16px;
	font-family: inherit;
	font-size: 15px;
	background: #fff !important;
	box-shadow: 0 10px 22px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 45%, transparent) !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.qns-site-search-input::placeholder {
	color: #6b7280;
}
.qns-site-search-input:focus {
	outline: none;
	border-color: #0661FD !important;
	box-shadow: 0 14px 28px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 65%, transparent) !important;
}
.qns-site-search-results {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ddd6c8;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.08);
	max-height: 320px;
	overflow-y: auto;
	z-index: 20;
}
.qns-site-search-result {
	display: block;
	padding: 10px 16px;
	color: #1A2937;
	text-decoration: none;
	font-size: 14px;
	border-bottom: 1px solid #f0ece0;
}
.qns-site-search-result:last-child {
	border-bottom: none;
}
.qns-site-search-result:hover {
	background: #FAF7F0;
	color: #0661FD;
}
.qns-site-search-empty {
	padding: 12px 16px;
	color: #888;
	font-size: 13px;
	font-style: italic;
}

/* --- Ricerca nell'header (16/07/2026) ---
   Shortcode [quantonesai_ricerca_header], incollato da Gianluca in un
   elemento "HTML personalizzato" dell'header di Blocksy. Icona a lente
   che apre un piccolo box ancorato sotto di sé - stesso .qns-site-search
   riusato dentro, stessa logica di ricerca/risultati. */
.qns-header-search {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}
.qns-header-search-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	color: #1A2937;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.qns-header-search-toggle svg {
	width: 24px;
	height: 24px;
}
.qns-header-search-toggle:hover {
	background: #FAF7F0;
	color: #0661FD;
}
.qns-header-search-box {
	position: fixed;
	top: calc(var(--header-height, 88px) + 10px);
	left: 50%;
	transform: translateX(-50%);
	width: 420px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 2px solid #0661FD;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
	padding: 14px;
	z-index: 999;
}
@media (max-width: 600px) {
	.qns-header-search-box {
		left: 12px;
		right: 12px;
		width: auto;
		max-width: none;
		transform: none;
	}
}
/* Dentro il box header, il .qns-site-search non ha bisogno del suo
   margine di default (già lo dà .qns-header-search-box col padding). */
.qns-header-search-box .qns-site-search {
	margin: 0;
}

/* --- Campanella notifiche nell'header (17/07/2026) ---
   Shortcode [quantonesai_notifiche_header], stesso linguaggio visivo
   della ricerca sopra - icona rotonda + pannello ancorato. Qui però
   ancorato a DESTRA (non centrato), essendo tipicamente più vicino
   all'icona account nella barra. */
.qns-header-notifications {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}
.qns-header-notifications-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	color: #1A2937;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.qns-header-notifications-toggle svg {
	width: 24px;
	height: 24px;
}
.qns-header-notifications-toggle:hover {
	background: #FAF7F0;
	color: #0661FD;
}
.qns-notif-badge {
	position: absolute;
	top: 2px;
	right: 2px;
	background: #b3261e;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	min-width: 16px;
	height: 16px;
	line-height: 16px;
	border-radius: 8px;
	text-align: center;
	padding: 0 3px;
}
.qns-header-notifications-box {
	position: fixed;
	top: calc(var(--header-height, 88px) + 10px);
	left: 50%;
	transform: translateX(-50%);
	width: 360px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 2px solid #0661FD;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
	z-index: 999;
	max-height: 70vh;
	overflow-y: auto;
}
.qns-header-notifications-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 14px;
	border-bottom: 1px solid #ece6d9;
	font-weight: 700;
	color: #1A2937;
	position: sticky;
	top: 0;
	background: #fff;
}
.qns-notif-mark-all-btn {
	background: none;
	border: none;
	color: #0661FD;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	padding: 0;
}
.qns-notif-item {
	display: block;
	padding: 12px 14px;
	text-decoration: none;
	border-bottom: 1px solid #f0ece0;
}
.qns-notif-item:last-child {
	border-bottom: none;
}
.qns-notif-item:hover {
	background: #FAF7F0;
}
.qns-notif-item-unread {
	background: #eaf1ff;
}
.qns-notif-item-title {
	display: block;
	font-weight: 700;
	font-size: 14px;
	color: #1A2937;
	margin-bottom: 2px;
}
.qns-notif-item-message {
	display: block;
	font-size: 13px;
	color: #666;
}
/* --- Elemento fisso "Domanda del giorno" nel pannello notifiche
   (07/08/2026) - è un <button>, non un <a> come le notifiche vere,
   quindi serve azzerare gli stili di default del browser per farlo
   sembrare identico al resto della lista. --- */
.qns-daily-question-item {
	width: 100%;
	text-align: left;
	background: #FAF7F0;
	border: none;
	border-bottom: 1px solid #f0ece0;
	font-family: inherit;
	cursor: pointer;
}
.qns-daily-question-answered {
	background: #fff;
}
.qns-daily-question-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #E53935;
	margin-left: 6px;
	vertical-align: middle;
}
@media (max-width: 600px) {
	.qns-header-notifications-box {
		left: 12px;
		right: 12px;
		width: auto;
		max-width: none;
		transform: none;
	}
}

.qns-quiz-tag-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 20px;
}
.qns-tag-pill {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 20px;
	background: #f0f0f0;
	color: #1A2937;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}
.qns-tag-pill:hover {
	background: #e4e4e4;
}
.qns-tag-challenge-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 10px 0 16px;
	padding: 8px 16px;
	background: #fff;
	color: #1A2937;
	border: 1.5px solid #FDCC06;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
.qns-tag-challenge-btn:hover {
	background: #fffbea;
}
.qns-classifica-link {
	display: inline-block;
	margin-left: 10px;
	font-size: 13px;
	color: #777;
	text-decoration: none;
	font-weight: 600;
}
.qns-classifica-link:hover {
	color: #0661FD;
}
.qns-classifica-page {
	max-width: 640px;
	margin: 40px auto;
	padding: 0 24px;
}
.qns-classifica-header {
	text-align: center;
	margin-bottom: 28px;
}
.qns-classifica-eyebrow {
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #FDCC06;
	background: #1A2937;
	display: inline-block;
	padding: 4px 12px;
	border-radius: 20px;
	font-weight: 700;
	margin: 0 0 12px;
}
.qns-classifica-header h1 {
	font-size: 26px;
	margin: 0 0 6px;
	color: #1A2937;
}
.qns-classifica-sub {
	color: #777;
	margin: 0;
}
.qns-classifica-table td:first-child {
	font-size: 18px;
	text-align: center;
	width: 60px;
}
.qns-classifica-cta {
	text-align: center;
	margin-top: 32px;
	padding: 24px;
	background: #faf7f0;
	border-radius: 12px;
}
.qns-classifica-cta p {
	margin: 0 0 14px;
	font-weight: 600;
	color: #1A2937;
}
.qns-archive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}
.qns-archive-card {
	display: flex;
	flex-direction: column;
	padding: 28px;
	background: #fff;
	border: 1.5px solid var(--qns-accent, #E0E0E0);
	border-radius: 16px;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 14px 28px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 55%, transparent);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	overflow: hidden;
}
.qns-archive-card.has-image {
	padding-top: 0;
}
.qns-archive-card-image {
	position: relative;
	margin: 0 -28px 16px -28px;
	height: 160px;
	background: #eee;
}
.qns-archive-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.qns-archive-card-image-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0) 65%);
	display: flex;
	align-items: flex-end;
	padding: 16px;
}
.qns-archive-card-image-overlay h3 {
	color: #fff;
	margin: 0;
	font-size: 19px;
	line-height: 1.3;
}
.qns-archive-card:hover {
	border-color: var(--qns-accent, #E0E0E0);
	box-shadow: 0 20px 38px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 75%, transparent);
	transform: translateY(-4px);
}
.qns-archive-card h3 {
	margin: 0 0 10px;
	font-size: 19px;
	line-height: 1.3;
}
.qns-archive-card p {
	color: #777;
	font-size: 14px;
	line-height: 1.5;
	margin: 0 0 16px;
}
.qns-archive-cta {
	display: block;
	text-align: center;
	background: #fff;
	color: #000;
	font-weight: 700;
	font-size: 14px;
	padding: 14px 18px;
	margin: 16px -28px -28px -28px;
	margin-top: auto;
	border-top: 1px solid var(--qns-accent, #E0E0E0);
	border-radius: 0 0 16px 16px;
	transition: background 0.15s ease;
}
.qns-archive-card:hover .qns-archive-cta {
	background: color-mix(in srgb, var(--qns-accent, #E0E0E0) 12%, #fff);
}
/* "Ultimi quiz aggiunti" (30/07/2026, aggiornato 31/07/2026: la base
   .qns-archive-card ha ormai lo stesso trattamento bordo+ombra colorata
   di questa variante --latest, introdotto per "categorie più amate" e
   le card di sezione. La differenza che resta qui è solo il CTA: quello
   base è bianco con bordo superiore colorato, questo resta antracite
   per dare più peso visivo a "ultimi quiz" rispetto al resto. */
.qns-archive-grid--latest .qns-archive-card {
	border-width: 1.5px;
	border-color: var(--qns-accent, #E0E0E0);
	box-shadow: 0 14px 32px -4px color-mix(in srgb, var(--qns-accent, #E0E0E0) 80%, transparent);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.qns-archive-grid--latest .qns-archive-card:hover {
	border-color: var(--qns-accent, #E0E0E0);
	box-shadow: 0 20px 42px -4px color-mix(in srgb, var(--qns-accent, #E0E0E0) 95%, transparent);
	transform: translateY(-4px);
}
.qns-archive-grid--latest .qns-archive-cta {
	background: #1A2937;
	color: #fff;
}
.qns-archive-grid--latest .qns-archive-card:hover .qns-archive-cta {
	color: var(--qns-accent, #E0E0E0);
}
/* Quando il CTA segue direttamente l'immagine (card senza testo, es.
   "Categorie più amate"), evita il doppio margine con
   .qns-archive-card-image che ha già margin-bottom: 16px. */
.qns-archive-card-image + .qns-archive-cta {
	margin-top: 0;
}
/* Stesso caso, ma visto dal lato dell'immagine: azzera anche il suo
   margine inferiore, altrimenti resta comunque uno spazio bianco tra il
   fondo dell'immagine e l'inizio del CTA. */
.qns-archive-card-image:has(+ .qns-archive-cta) {
	margin-bottom: 0;
}
.qns-already-done-badge {
	display: inline-block;
	background: #eef5f3;
	color: #0661FD;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
	margin-bottom: 10px;
}

/* --- Homepage --- */
.qns-home {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px 60px;
}
@media (max-width: 640px) {
	.qns-home {
		padding: 0 8px 40px;
	}
}
.qns-home-hero {
	text-align: center;
	padding: 20px 20px 50px;
}
.qns-home-hero h1 {
	font-size: 38px;
	margin: 0 0 12px;
	line-height: 1.25;
}
.qns-home-hero p {
	font-size: 18px;
	color: #666;
	margin: 0;
}

/* --- Gancio "Sfida" in homepage (17/07/2026, ritoccato dopo il primo
   giro: il nero a tutto contrasto era fuori tono col resto del sito -
   riallineato allo stesso crema/blu già usato in "Come funziona"
   subito sotto, solo con un accento in più per farla notare). --- */
.qns-home-sfida-hook {
	background: #faf7f0;
	border: 2px solid #0661FD;
	border-radius: 20px;
	margin-bottom: 50px;
	padding: 40px 24px;
}
.qns-home-sfida-hook-inner {
	max-width: 560px;
	margin: 0 auto;
	text-align: center;
}
.qns-home-sfida-hook h2 {
	color: #1A2937;
	font-size: 28px;
	line-height: 1.3;
	margin: 0 0 14px;
}
.qns-home-sfida-hook p {
	color: #555;
	font-size: 16px;
	margin: 0 0 24px;
}
.qns-home-sfida-cta {
	display: inline-block;
	background: #0661FD;
	color: #fff;
	font-weight: 700;
	padding: 14px 28px;
	border-radius: 10px;
	text-decoration: none;
	font-size: 15px;
}
.qns-home-sfida-cta:hover {
	background: #054fd1;
}
@media (max-width: 600px) {
	.qns-home-sfida-hook {
		padding: 32px 20px;
	}
	.qns-home-sfida-hook h2 {
		font-size: 22px;
	}
}
.qns-home-sezioni {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-bottom: 60px;
}
@media (max-width: 640px) {
	.qns-home-sezioni {
		grid-template-columns: 1fr;
	}
	.qns-home-sezione-card p {
		display: none;
	}
}
.qns-home-sezione-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1.5px solid var(--qns-accent, #E0E0E0);
	border-radius: 16px;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 16px 34px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 60%, transparent);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	overflow: hidden;
}
.qns-home-sezione-image {
	height: 220px;
	background: #eee;
	flex-shrink: 0;
}
.qns-home-sezione-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.qns-home-sezione-text {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px 28px 28px;
}
.qns-home-sezione-card:hover {
	border-color: var(--qns-accent, #E0E0E0);
	box-shadow: 0 22px 44px -6px color-mix(in srgb, var(--qns-accent, #E0E0E0) 80%, transparent);
	transform: translateY(-4px);
}
.qns-home-sezione-card h2 {
	font-size: 24px;
	margin: 0 0 10px;
}
.qns-home-sezione-card p {
	color: #777;
	margin: 0 0 16px;
}
.qns-home-steps {
	text-align: center;
	margin-bottom: 60px;
	background: #faf7f0;
	border: 2px solid #0661FD;
	border-radius: 20px;
	padding: 48px 32px;
}
.qns-home-steps-badge {
	display: inline-block;
	margin-bottom: 16px;
	font-size: 15px;
}
.qns-home-steps h2 {
	margin-bottom: 12px;
}
.qns-home-steps-intro {
	max-width: 560px;
	margin: 0 auto 32px;
	color: #333;
	font-size: 16px;
	line-height: 1.5;
}
.qns-home-steps-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 32px;
}
.qns-home-step {
	padding: 0 12px;
	position: relative;
}
.qns-home-step-number {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #0661FD;
	color: #fff;
	font-weight: 700;
	font-size: 18px;
	margin-bottom: 16px;
	box-shadow: 0 4px 10px rgba(6, 97, 253, 0.25);
}
@media (min-width: 641px) {
	.qns-home-step:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 24px;
		left: calc(50% + 24px);
		width: calc(100% - 48px);
		height: 2px;
		background: #D6E4FF;
		z-index: 0;
	}
}
.qns-home-step h3 {
	font-size: 17px;
	margin: 0 0 8px;
}
.qns-home-step p {
	color: #444;
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
}
.qns-home-section {
	margin-bottom: 60px;
}
.qns-home-section h2 {
	text-align: center;
	margin-bottom: 28px;
}
.qns-home-popular-placeholder {
	text-align: center;
	color: #888;
	font-style: italic;
}
/* --- Avviso tentativo di allenamento (aggiunta) ---
   Da incollare in fondo a assets/quiz-frontend.css esistente. */
.qns-training-notice {
	background: #fdf6e3;
	border-left: 4px solid #d9a441;
	padding: 12px 16px;
	border-radius: 6px;
	font-size: 14px;
	color: #6b5730;
	margin: 0 0 20px;
	line-height: 1.5;
}

/* --- Avviso tentativo di allenamento (aggiunta) ---
   Da incollare in fondo a assets/quiz-frontend.css esistente. */
.qns-training-notice {
	background: #fdf6e3;
	border-left: 4px solid #d9a441;
	padding: 12px 16px;
	border-radius: 6px;
	font-size: 14px;
	color: #6b5730;
	margin: 0 0 20px;
	line-height: 1.5;
}

/* --- Segnalazione ricorso su una domanda (aggiunta) --- */
.qns-appeal-toggle-btn {
	background: none;
	border: none;
	color: #888;
	font-size: 12px;
	text-decoration: underline;
	cursor: pointer;
	padding: 8px 0 0;
	display: block;
}
.qns-appeal-toggle-btn:hover {
	color: #0661FD;
}
.qns-appeal-form {
	margin-top: 10px;
	padding: 14px;
	background: #fff;
	border: 1px solid #e5e0d8;
	border-radius: 8px;
}
.qns-appeal-label {
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 8px;
}
.qns-appeal-options {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 10px;
}
.qns-appeal-option-label {
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}
.qns-appeal-motivazione {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ddd6c8;
	border-radius: 6px;
	font-family: inherit;
	font-size: 13px;
	margin-bottom: 10px;
	resize: vertical;
}
.qns-appeal-feedback {
	font-size: 13px;
	margin: 8px 0 0;
}
.qns-appeal-feedback-error {
	color: #D9614F;
}
.qns-appeal-feedback-success {
	color: #1F9D55;
	font-weight: 600;
}

/* --- Avviso tentativo di allenamento (aggiunta) ---
   Da incollare in fondo a assets/quiz-frontend.css esistente. */
.qns-training-notice {
	background: #fdf6e3;
	border-left: 4px solid #d9a441;
	padding: 12px 16px;
	border-radius: 6px;
	font-size: 14px;
	color: #6b5730;
	margin: 0 0 20px;
	line-height: 1.5;
}
.qns-mode-tag {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 10px;
	font-weight: 700;
	font-size: 13px;
	white-space: nowrap;
}
.qns-mode-tag-classica {
	background: #E6EFFF;
	color: #0661FD;
}
.qns-mode-tag-tempo {
	background: #FFF3D0;
	color: #9a6c00;
}

/* --- Segnalazione ricorso su una domanda (aggiunta) --- */
.qns-appeal-toggle-btn {
	background: none;
	border: none;
	color: #888;
	font-size: 12px;
	text-decoration: underline;
	cursor: pointer;
	padding: 8px 0 0;
	display: block;
}
.qns-appeal-toggle-btn:hover {
	color: #0661FD;
}
.qns-appeal-form {
	margin-top: 10px;
	padding: 14px;
	background: #fff;
	border: 1px solid #e5e0d8;
	border-radius: 8px;
}
.qns-appeal-label {
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 8px;
}
.qns-appeal-options {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 10px;
}
.qns-appeal-option-label {
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}
.qns-appeal-motivazione {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ddd6c8;
	border-radius: 6px;
	font-family: inherit;
	font-size: 13px;
	margin-bottom: 10px;
	resize: vertical;
}
.qns-appeal-feedback {
	font-size: 13px;
	margin: 8px 0 0;
}
.qns-appeal-feedback-error {
	color: #D9614F;
}
.qns-appeal-feedback-success {
	color: #1F9D55;
	font-weight: 600;
}

/* --- Link certificato nello storico tentativi (aggiunta) --- */
.qns-certificate-link {
	color: #0661FD;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	border: 1px solid #0661FD;
	padding: 4px 10px;
	border-radius: 6px;
	white-space: nowrap;
}
.qns-certificate-link:hover {
	background: #0661FD;
	color: #fff;
}

/* --- Selettore argomento sfida (aggiunta 16/07/2026) ---
   Compare SOLO quando ci sono più di un candidato (tag/categoria) validi
   per questo quiz - lascia scegliere all'utente su quale costruire
   Sfida/Sfida Tutti Contro Tutti, invece di sceglierlo per lui. Le
   pillole riprendono lo stile già usato in .qns-expiry-choice (stessa
   logica di "scelta tra poche opzioni" già presente altrove).

   Tutto il blocco (selettore argomento + pulsanti) vive dentro un
   accordion CHIUSO di default (16/07/2026, seconda revisione: troppi
   elementi visibili insieme sulla pagina del singolo quiz creavano
   confusione) - la pagina resta pulita con solo i 2 pulsanti
   principali, chi vuole le opzioni di sfida avanzate le apre con un
   click. La Classifica non compare più qui: resta solo sulla pagina
   di categoria/tag superiore (vedi .qns-classifica-link più sotto,
   ancora usata lì). */
.qns-scope-accordion {
	margin-top: 16px;
}
.qns-scope-accordion-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	background: #FFF6D9;
	color: #1A2937;
	border: 2px solid #FDCC06;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s ease;
}
.qns-scope-accordion-toggle:hover {
	background: #FFEFB8;
}
.qns-scope-accordion-arrow {
	display: inline-block;
	font-size: 12px;
	transition: transform 0.2s ease;
}
.qns-scope-accordion-open .qns-scope-accordion-arrow {
	transform: rotate(180deg);
}
.qns-scope-accordion-body {
	margin-top: 12px;
}
.qns-scope-picker {
	margin: 0 0 4px;
	padding: 14px;
	background: #faf7f0;
	border-radius: 8px;
	text-align: center;
}
.qns-scope-picker-label {
	font-size: 13px;
	color: #555;
	margin: 0 0 10px;
	font-weight: 600;
}
.qns-scope-picker-btn {
	display: inline-block;
	padding: 8px 16px;
	margin: 4px;
	background: #fff;
	border: 1.5px solid #0661FD;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	color: #0661FD;
	transition: background 0.15s ease, color 0.15s ease;
}
.qns-scope-picker-btn:hover {
	background: #EAF1FF;
}
.qns-scope-picker-active {
	background: #0661FD;
	color: #fff;
}
.qns-scope-picker-active:hover {
	background: #0661FD;
	color: #fff;
}
.qns-scope-block {
	display: block;
}

/* Breadcrumb (20/07/2026) - stile pulito ispirato a The North Face:
   maiuscolo, spaziatura larga tra le lettere, grigio tenue, separatore
   sottile. Il markup interno (link, testo, separatore) è generato da
   Yoast SEO (yoast_breadcrumb) - qui si stila solo il contenitore e i
   suoi elementi generici (a, span), non classi custom nostre. */
.qns-breadcrumb {
	display: block;
	margin: 6px 0 16px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: #9aa0a6;
}
.qns-breadcrumb a {
	color: #9aa0a6;
	text-decoration: none;
}
.qns-breadcrumb a:hover {
	color: #0661FD;
	text-decoration: underline;
}
.qns-breadcrumb span {
	color: #9aa0a6;
}
.qns-breadcrumb strong {
	font-weight: 600;
	color: #1A2937;
}
@media (max-width: 600px) {
	.qns-breadcrumb {
		text-align: center;
		font-size: 11px;
		letter-spacing: 0.5px;
		margin: 0 0 2px;
	}
}

/* Cuoricino Preferiti categoria (20/07/2026) - vuoto/grigio = spento,
   pieno/rosso = acceso. Accanto al titolo, dimensione discreta per
   non competere visivamente con l'h1. */
.qns-favorite-heart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	margin-left: 6px;
	color: #e0455a;
	transition: color 0.15s ease, transform 0.15s ease;
}
.qns-favorite-heart-btn svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}
.qns-favorite-heart-btn:hover {
	transform: scale(1.08);
}
.qns-favorite-heart-active {
	color: #e0455a;
}
.qns-favorite-heart-active svg {
	fill: currentColor;
}

/* Pulsantino info "i" + tooltip spiegazione (31/07/2026) - stesso
   pattern visivo/comportamentale del bollino "quiz rimasti oggi"
   (.qns-daily-badge-tooltip), riusato qui per coerenza nel sito. */
.qns-favorite-heart-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
}
.qns-favorite-info-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 1.3px solid #8a9099;
	background: none;
	color: #8a9099;
	font-size: 11px;
	font-weight: 700;
	font-style: italic;
	font-family: Georgia, serif;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	margin-left: 2px;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.qns-favorite-info-btn:hover {
	border-color: #0661FD;
	color: #0661FD;
}
.qns-favorite-info-tooltip {
	display: none;
	position: fixed;
	top: calc(var(--header-height, 88px) + 10px);
	left: 50%;
	transform: translateX(-50%);
	width: 280px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
	padding: 14px;
	text-align: left;
	z-index: 999;
}
.qns-favorite-info-tooltip.qns-favorite-info-tooltip-visible {
	display: block;
}
/* 31/07/2026: su schermi stretti un box "fixed" largo può comunque
   uscire dai bordi se non gli si dice esplicitamente di riempire la
   larghezza con margini fissi - stesso identico trattamento già dato a
   .qns-header-search-box, principio valido per QUALSIASI popup futuro
   sul sito: su mobile deve sempre stare centrato/a piena larghezza, mai
   ancorato al bottone che lo apre. */
@media (max-width: 600px) {
	.qns-favorite-info-tooltip {
		left: 12px;
		right: 12px;
		width: auto;
		max-width: none;
		transform: none;
	}
}
.qns-favorite-info-tooltip p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.4;
	color: #444;
}

/* Toast di conferma (20/07/2026) - popup breve in basso, si chiude da
   solo, riusabile per qualunque feedback rapido nel sito. */
.qns-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translate(-50%, 12px);
	max-width: calc(100vw - 32px);
	background: #1A2937;
	color: #fff;
	padding: 12px 20px;
	border-radius: 8px;
	font-size: 14px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.2);
	z-index: 9999;
	opacity: 0;
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}
.qns-toast-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* Tab Preferiti nel profilo (20/07/2026) - stessa griglia già usata
   per gli amici, per coerenza visiva. */
.qns-favorites-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media (max-width: 600px) {
	.qns-favorites-grid {
		grid-template-columns: 1fr;
	}
}
/* Tab Preferiti nel profilo (20/07/2026, ridisegnata per riusare lo
   stesso stile .qns-archive-card con immagine già usato per le card
   categoria altrove nel sito, invece di un rettangolo piatto). */
.qns-favorites-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
}
@media (max-width: 600px) {
	.qns-favorites-grid {
		grid-template-columns: 1fr;
	}
}
.qns-favorite-category-card {
	position: relative;
}
.qns-favorite-category-link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.qns-favorite-heart-overlay {
	position: absolute;
	top: 12px;
	right: 12px;
	background: rgba(255,255,255,0.9);
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
	z-index: 2;
}
.qns-favorite-heart-overlay:hover {
	transform: scale(1.08);
}

/* Schermata di conferma post-registrazione (20/07/2026) - mostra
   l'email inserita + possibilità di correggerla in un click. */
.qns-reg-fix-email-toggle {
	display: block;
	margin: 12px auto 0;
	background: none;
	border: none;
	color: #0661FD;
	font-size: 13px;
	text-decoration: underline;
	cursor: pointer;
	font-family: inherit;
}
.qns-reg-fix-email-box {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid #eee;
}
.qns-reg-continue-btn {
	width: 100%;
	margin-top: 8px;
}

/* Pagina "Ripassa i tuoi errori" (20/07/2026) - domanda singola,
   nessuna barra di progresso/punteggio, è studio non un quiz. */
.qns-review-app {
	max-width: 600px;
	margin: 0 auto;
	padding: 28px;
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 16px;
}
.qns-review-question-text {
	font-size: 18px;
	font-weight: 600;
	color: #1A2937;
	margin: 12px 0 20px;
}
.qns-review-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.qns-review-option-btn {
	position: relative;
	text-align: left;
	padding: 14px 18px 14px 54px;
	border: 1.5px solid #ddd;
	border-radius: 10px;
	background: #fff;
	font-family: inherit;
	font-size: 15px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.qns-review-option-btn::before {
	content: attr(data-option);
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #FAF7F0;
	border: 1.5px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 700;
	color: #1A2937;
}
.qns-review-option-btn:hover:not(:disabled) {
	border-color: #0661FD;
	background: #f5f8ff;
}
.qns-review-option-btn:disabled {
	cursor: default;
}
.qns-review-option-correct {
	border-color: #1F9D55 !important;
	background: #eafaf0 !important;
	font-weight: 600;
}
.qns-review-option-wrong {
	border-color: #D9614F !important;
	background: #fdeeec !important;
}
.qns-review-feedback {
	margin-top: 18px;
	padding: 14px 16px;
	border-radius: 10px;
	font-size: 14px;
}
.qns-review-feedback-success {
	background: #eafaf0;
	color: #166534;
}
.qns-review-feedback-error {
	background: #fdeeec;
	color: #9a3324;
}
.qns-review-gate {
	max-width: 500px;
	margin: 0 auto;
	padding: 28px;
	background: #FAF7F0;
	border-radius: 16px;
	text-align: center;
}
.qns-review-back-link {
	text-align: center;
	margin-top: 20px;
}

/* --- Motore popup generico (07/08/2026) ---
   Riusabile da qualunque feature futura ("Ripassa i tuoi errori" è il
   primo caso d'uso, "Domanda del giorno" il prossimo) - overlay scuro
   a tutto schermo + box centrato, chiude cliccando fuori O sul
   pulsante "Chiudi" in fondo (richiesto esplicitamente da Gianluca).
   Markup iniettato via JS (QnsPopup.open/close in quiz-frontend.js),
   contenitore aggiunto una sola volta a wp_footer. */
.qns-popup-overlay {
	position: fixed;
	inset: 0;
	background: rgba(26, 41, 55, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	z-index: 1000;
}
.qns-popup-overlay[hidden] {
	display: none !important;
}
.qns-popup-box {
	background: #fff;
	border: 2px solid #0661FD;
	border-radius: 16px;
	max-width: 480px;
	width: 100%;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: 28px;
	box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.qns-popup-close-btn {
	display: block;
	margin: 22px auto 0;
	padding: 12px 32px;
	background: #1A2937;
	border: none;
	border-radius: 8px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	cursor: pointer;
	transition: background 0.15s ease;
}
.qns-popup-close-btn:hover {
	background: #0661FD;
}
.qns-popup-loading {
	text-align: center;
	padding: 30px 0;
	color: #777;
}
@media (max-width: 600px) {
	.qns-popup-box {
		padding: 20px;
		border-radius: 12px;
	}
}

/* Pagina Impostazioni Account (20/07/2026) - riusa .qns-avatar-grid/
   .qns-color-grid già definite per la registrazione, solo il
   contenitore e il feedback sono nuovi. */
.qns-account-settings {
	max-width: 600px;
	margin: 0 auto;
	padding: 28px;
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 16px;
}
.qns-account-settings-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid #eee;
}
.qns-account-settings-avatar-preview {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 3px solid;
	flex-shrink: 0;
	object-fit: cover;
}
.qns-account-settings-header h2 {
	margin: 0 0 4px;
	font-size: 20px;
}
.qns-account-settings-intro {
	margin: 0;
	font-size: 14px;
	color: #666;
}
.qns-account-settings-save {
	margin-top: 20px;
	width: 100%;
}
.qns-account-settings-feedback {
	margin-top: 10px;
	font-size: 14px;
}

/* "Richiedi un quiz" (21/07/2026) - form semplice, riusa .qns-profile-history
   per l'elenco delle proprie richieste. */
.qns-quiz-request {
	max-width: 600px;
	margin: 0 auto;
	padding: 28px;
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 16px;
}
.qns-quiz-request-input {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 2px solid #c4c9cf;
	border-radius: 8px;
	font-family: inherit;
	font-size: 15px;
	resize: vertical;
	margin-bottom: 12px;
}
.qns-quiz-request-submit {
	width: 100%;
}
.qns-quiz-request-feedback {
	margin-top: 10px;
	font-size: 14px;
}
.qns-quiz-request-limit-note {
	margin-top: 12px;
	font-size: 13px;
	color: #777;
}
.qns-quiz-request-limit-reached {
	padding: 14px;
	background: #FAF7F0;
	border-radius: 10px;
	color: #1A2937;
}
.qns-quiz-request h3 {
	margin-top: 28px;
}

/* Pulsante "Mostra password" (21/07/2026). */
.qns-password-field-wrap {
	position: relative;
}
.qns-password-field-wrap .qns-register-input {
	padding-right: 44px;
}
.qns-password-toggle-btn {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	font-size: 18px;
	padding: 4px;
	line-height: 1;
}

/* Profilo pubblico - pulsante/nota amico (21/07/2026). */
.qns-public-profile-header .qns-add-friend-btn,
.qns-public-profile-header .qns-already-friend-note {
	margin-top: 14px;
}
.qns-already-friend-note {
	color: #1a8a44;
	font-weight: 600;
	font-size: 14px;
}

/* Tab Statistiche avanzate (21/07/2026, solo abbonati). */
.qns-stats-cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin-bottom: 20px;
}
.qns-stats-record {
	font-size: 22px !important;
}
.qns-stats-record-sub {
	font-size: 14px;
	color: var(--text-secondary, #777);
	font-weight: 400;
}
.qns-stats-up {
	color: #1a8a44 !important;
}
.qns-stats-down {
	color: #a32d2d !important;
}
.qns-stats-chart-wrap {
	position: relative;
	height: 180px;
	margin-bottom: 24px;
}
.qns-stats-category-bars {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 6px;
}
.qns-stats-category-labels {
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	margin-bottom: 4px;
}
.qns-stats-bar-track {
	position: relative;
	height: 8px;
	background: #eee;
	border-radius: 4px;
}
.qns-stats-bar-fill {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	background: #0661FD;
	border-radius: 4px;
}
.qns-stats-bar-marker {
	position: absolute;
	top: -2px;
	width: 2px;
	height: 12px;
	background: #888;
}
@media (max-width: 600px) {
	.qns-stats-cards {
		grid-template-columns: 1fr;
	}
}

/* Selettore amici al volo per campionato (26/07/2026). */
.qns-invite-friends-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 10px 0 16px;
	max-height: 220px;
	overflow-y: auto;
}
.qns-invite-friend-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	background: #FAF7F0;
	border-radius: 8px;
	font-size: 14px;
	cursor: pointer;
}
.qns-invite-friend-item img {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}
.qns-invite-friend-checkbox {
	width: 16px;
	height: 16px;
}

/* "Altri quiz su [Categoria]" (26/07/2026). */
.qns-related-quizzes {
	margin: 20px 0;
}
.qns-related-quizzes-label {
	font-size: 13px;
	font-weight: 600;
	color: #777;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 8px;
}
.qns-related-quizzes-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.qns-related-quiz-link {
	display: inline-block;
	padding: 10px 16px;
	background: #EAF1FF;
	border: 1.5px solid #b8d0fb;
	border-radius: 20px;
	color: #1A2937;
	text-decoration: none;
	font-size: 13px;
	font-weight: 500;
}
.qns-related-quiz-link:hover {
	background: #0661FD;
	border-color: #0661FD;
	color: #fff;
}

/* Archivio Notifiche (26/07/2026) + link "Vedi tutte" nella campanella. */
.qns-notif-archive-link {
	display: block;
	text-align: center;
	padding: 10px;
	font-size: 13px;
	color: #0661FD;
	text-decoration: none;
	border-top: 1px solid #eee;
	background: #fafafa;
}
.qns-notif-archive-link:hover {
	background: #f0f0f0;
}
.qns-notif-archive {
	max-width: 640px;
	margin: 0 auto;
}
.qns-notif-archive-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}
.qns-notif-archive-list {
	max-height: none;
	border: 1px solid #ece6d9;
	border-radius: 12px;
	overflow: hidden;
}
.qns-notif-archive-list .qns-notif-item {
	display: block;
	padding: 14px 18px;
	border-bottom: 1px solid #f0ece0;
}
.qns-notif-archive-list .qns-notif-item:last-child {
	border-bottom: none;
}
.qns-notif-item-date {
	display: block;
	font-size: 12px;
	color: #999;
	margin-top: 4px;
}

/* --- Timer per-domanda modalità classica (27/07/2026) ---
   Variante più piccola/discreta di .qns-timer-wrap: qui compare su
   OGNI domanda di un quiz da 30, quindi deve pesare meno visivamente
   del countdown totale della "Sfida a tempo" (che è un unico momento
   epico su 60 secondi, non 30 ripetizioni). */
.qns-timer-wrap-question {
	margin-bottom: 14px;
}
.qns-timer-wrap-question .qns-timer-value {
	font-size: 28px;
}

/* --- Selettore timer libero per abbonati (27/07/2026) ---
   Mostrato solo agli abbonati nella schermata di avvio della modalità
   classica: possono scegliere liberamente tra 5 e 10 secondi a
   domanda, invece di subire la riduzione automatica dei gratuiti. */
.qns-timer-picker {
	margin: 0 0 18px;
	text-align: center;
}
.qns-timer-picker-label {
	font-size: 13px;
	font-weight: 600;
	color: #4a4a4a;
	margin: 0 0 8px;
}
.qns-timer-picker-options {
	display: flex;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}
.qns-timer-picker-btn {
	padding: 8px 14px;
	border: 1.5px solid #d8d8d8;
	border-radius: 20px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	color: #555;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.qns-timer-picker-btn:hover {
	border-color: #0661FD;
	color: #0661FD;
}
.qns-timer-picker-btn.qns-timer-picker-active {
	background: #0661FD;
	border-color: #0661FD;
	color: #fff;
}

/* --- Tetto giornaliero gratuito (27/07/2026) --- */
.qns-quiz-wrapper {
	position: relative;
}
.qns-daily-badge-wrap {
	position: absolute;
	top: -10px;
	right: 14px;
	z-index: 5;
}
.qns-daily-badge {
	display: block;
	background: #1A2937;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 12px;
	border: none;
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
	white-space: nowrap;
	cursor: pointer;
}
.qns-daily-badge-tooltip {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 8px;
	width: 230px;
	background: #fff;
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
	padding: 14px;
	text-align: left;
}
.qns-daily-badge-wrap:hover .qns-daily-badge-tooltip,
.qns-daily-badge-tooltip.qns-daily-badge-tooltip-visible {
	display: block;
}
.qns-daily-badge-tooltip p {
	margin: 0 0 10px;
	font-size: 12.5px;
	line-height: 1.4;
	color: #444;
}
.qns-daily-badge-tooltip a {
	display: block;
	font-size: 12.5px;
	font-weight: 700;
	color: #0661FD;
	text-decoration: none;
}
.qns-upsell-daily-limit-text {
	font-size: 14px;
	color: #555;
	margin: 8px 0 16px;
	text-align: center;
}

/* --- Richiedi un quiz (27/07/2026) --- */
.qns-quiz-request-page {
	max-width: 640px;
	margin: 0 auto;
}
.qns-quiz-request-header {
	text-align: center;
	margin-bottom: 24px;
}
.qns-quiz-request-badge {
	display: inline-block;
	margin-top: 10px;
	background: #1A2937;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 14px;
	border-radius: 999px;
}
.qns-quiz-request-card {
	background: #fff;
	border: 1px solid #ece6d9;
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 20px;
}
.qns-quiz-request-input {
	width: 100%;
	box-sizing: border-box;
	border: 1.5px solid #d8d8d8;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 15px;
	font-family: inherit;
	resize: vertical;
	margin-bottom: 12px;
}
.qns-quiz-request-input:focus {
	outline: none;
	border-color: #0661FD;
}
.qns-quiz-request-feedback {
	margin-top: 10px;
	font-size: 13px;
}
.qns-quiz-request-limit-note {
	font-size: 14px;
	color: #555;
	text-align: center;
	margin: 0;
}
.qns-quiz-request-limit-reached {
	color: #7a4a00;
}
.qns-quiz-request-upsell {
	margin-bottom: 24px;
}
.qns-quiz-request-history-title {
	margin-top: 28px;
}

/* --- Vista admin del profilo di un altro utente (29/07/2026) --- */
.qns-admin-viewing-notice {
	background: #FFF8E1;
	border: 1px solid #FDCC06;
	border-radius: 10px;
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 14px;
	color: #6b5400;
}
.qns-admin-viewing-notice a {
	color: #0661FD;
	font-weight: 600;
	text-decoration: none;
}

/* --- Contatori "prova sociale" homepage (29/07/2026) --- */
.qns-home-hero-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 14px;
}
.qns-home-hero-count {
	display: inline-block;
	background: #EAF1FF;
	border: 1px solid #B8D4FF;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 14px;
	color: #1A2937;
}
.qns-home-hero-count strong {
	color: #0661FD;
	font-size: 15px;
}
.qns-home-hero-daily {
	display: inline-block;
	background: #E8F7EE;
	border: 1px solid #9EDDB8;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 14px;
	font-weight: 700;
	color: #15803D;
	text-decoration: none;
}
.qns-home-hero-daily:hover {
	background: #D8F0E1;
}
.qns-home-hero-queue {
	display: inline-block;
	background: #FCF3D6;
	border: 1px solid #F0D97A;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 14px;
	color: #7A5C00;
}
.qns-home-hero-queue strong {
	color: #7A5C00;
	font-size: 15px;
}
.qns-home-latest-subtitle {
	margin: -8px 0 20px;
	font-size: 14px;
	color: #333;
	text-align: center;
}
.qns-home-latest-subtitle strong {
	color: #1A2937;
}
.qns-archive-card-category {
	display: inline-block;
	background: none;
	color: #000;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 0;
	margin-bottom: 6px;
}
