/*
 * Summit Access : sondages, côté participant (16.0.0).
 * Couleurs : variables --sa-sv-* posées sur la zone par le serveur, calculées depuis les
 * couleurs du sommet avec correction de contraste (surveys.php). Valeurs de repli ici si
 * la variable manque. Police, taille de base : celles de la page (inherit).
 */
.sa-sv { margin: 2em 0; font: inherit; color: var(--sa-sv-ink, #1f2328); }
.sa-sv *, .sa-sv *::before, .sa-sv *::after { box-sizing: border-box; }
/* L'attribut hidden doit gagner sur les display des boutons et des blocs. */
.sa-sv [hidden] { display: none !important; }
.sa-sv-card {
	background: var(--sa-sv-surface, #fff);
	color: var(--sa-sv-ink, #1f2328);
	border: 1px solid var(--sa-sv-line, #d0d7de);
	border-top: 4px solid var(--sa-sv-accent, #2f3e46);
	border-radius: 12px;
	padding: clamp(16px, 4vw, 28px);
	max-width: 760px;
	margin: 0 auto;
	line-height: 1.5;
}
.sa-sv-banner { background: #fff8c5; color: #3b2f00; border-radius: 8px; padding: 8px 12px; margin: 0 0 12px; font-size: .95em; }
.sa-sv-title { margin: 0 0 .4em; font-size: 1.4em; line-height: 1.25; color: var(--sa-sv-ink, #1f2328); }
.sa-sv-title:focus { outline: none; }
.sa-sv-intro, .sa-sv-desc { margin: 0 0 .8em; }
.sa-sv-meta, .sa-sv-privacy, .sa-sv-help, .sa-sv-count, .sa-sv-progress { color: var(--sa-sv-muted, #57606a); font-size: .9em; margin: 0 0 .8em; }
.sa-sv-status { margin: .8em 0 0; min-height: 1px; }
.sa-sv-status.is-ok { color: var(--sa-sv-ink, #1f2328); font-weight: 600; }
.sa-sv-status.is-error, .sa-sv-err { color: var(--sa-sv-error, #b42318); }
.sa-sv-actions { margin: 1em 0 0; }
.sa-sv-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; min-width: 44px; padding: 10px 20px;
	border: 2px solid var(--sa-sv-accent, #2f3e46); border-radius: 999px;
	background: var(--sa-sv-accent, #2f3e46); color: var(--sa-sv-accent-text, #fff);
	font: inherit; font-weight: 600; cursor: pointer; text-decoration: none;
}
.sa-sv-btn:hover { filter: brightness(1.08); }
.sa-sv-btn[disabled] { opacity: .6; cursor: progress; }
.sa-sv-ghost { background: transparent; color: var(--sa-sv-accent, #2f3e46); }
.sa-sv-retry { margin-top: .6em; }
.sa-sv :focus-visible { outline: 3px solid var(--sa-sv-accent, #2f3e46); outline-offset: 2px; }
.sa-sv-bar { height: 6px; background: var(--sa-sv-accent-soft, #eef1f3); border-radius: 3px; overflow: hidden; margin: 0 0 1em; }
.sa-sv-bar span { display: block; height: 100%; background: var(--sa-sv-accent, #2f3e46); }
.sa-sv-section { font-size: 1.15em; margin: .4em 0 .4em; }
.sa-sv-summary { background: #fdecea; color: var(--sa-sv-error, #b42318); border-radius: 8px; padding: 10px 12px; margin: 0 0 1em; font-weight: 600; }
.sa-sv-summary:focus { outline: 3px solid var(--sa-sv-error, #b42318); }
.sa-sv-q { border: 0; margin: 0 0 1.4em; padding: 0; min-width: 0; }
.sa-sv-q.has-error { border-left: 4px solid var(--sa-sv-error, #b42318); padding-left: 12px; }
.sa-sv-label { font-weight: 600; padding: 0; margin: 0 0 .4em; }
.sa-sv-req { font-weight: 400; color: var(--sa-sv-muted, #57606a); font-size: .9em; }
.sa-sv-choices { display: grid; gap: 8px; }
.sa-sv-choice {
	display: flex; align-items: center; gap: 10px; min-height: 44px;
	padding: 8px 12px; border: 1px solid var(--sa-sv-line, #d0d7de); border-radius: 8px; cursor: pointer;
	background: var(--sa-sv-surface, #fff);
}
.sa-sv-choice:has(input:checked) { border-color: var(--sa-sv-accent, #2f3e46); background: var(--sa-sv-accent-soft, #eef1f3); }
.sa-sv-choice input { width: 20px; height: 20px; margin: 0; accent-color: var(--sa-sv-accent, #2f3e46); flex: none; }
.sa-sv-rating, .sa-sv-scale { display: flex; flex-wrap: wrap; gap: 6px; }
.sa-sv-point { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; cursor: pointer; border-radius: 8px; }
.sa-sv-point input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.sa-sv-point:has(input:focus-visible) { outline: 3px solid var(--sa-sv-accent, #2f3e46); outline-offset: 2px; }
.sa-sv-star { font-size: 32px; line-height: 1; color: #c3c9cf; }
.sa-sv-point.is-on .sa-sv-star { color: var(--sa-sv-accent, #2f3e46); }
.sa-sv-num { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--sa-sv-line, #d0d7de); border-radius: 8px; font-weight: 600; }
.sa-sv-point:has(input:checked) .sa-sv-num { background: var(--sa-sv-accent, #2f3e46); color: var(--sa-sv-accent-text, #fff); border-color: var(--sa-sv-accent, #2f3e46); }
.sa-sv-ends { display: flex; justify-content: space-between; color: var(--sa-sv-muted, #57606a); font-size: .85em; margin: 0 0 4px; }
.sa-sv input[type=text], .sa-sv textarea {
	width: 100%; font: inherit; color: var(--sa-sv-ink, #1f2328); background: #fff;
	border: 1px solid #8c959f; border-radius: 8px; padding: 10px 12px; min-height: 44px;
}
.sa-sv-matrix-wrap { overflow-x: auto; }
.sa-sv-matrix { border-collapse: collapse; width: 100%; font-size: .95em; }
.sa-sv-matrix th, .sa-sv-matrix td { padding: 8px 6px; border-bottom: 1px solid var(--sa-sv-line, #d0d7de); text-align: center; }
.sa-sv-matrix th[scope=row] { text-align: left; font-weight: 400; }
.sa-sv-matrix input { width: 22px; height: 22px; accent-color: var(--sa-sv-accent, #2f3e46); }
.sa-sv-nav { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 1em; }
.sa-sv-thanks { padding: 12px 0; font-size: 1.1em; }
.sa-sv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.sa-sv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 560px) {
	.sa-sv-matrix thead { display: none; }
	.sa-sv-matrix, .sa-sv-matrix tbody, .sa-sv-matrix tr, .sa-sv-matrix th, .sa-sv-matrix td { display: block; width: 100%; }
	.sa-sv-matrix tr { padding: 8px 0; border-bottom: 1px solid var(--sa-sv-line, #d0d7de); }
	.sa-sv-matrix th[scope=row] { font-weight: 600; border: 0; padding: 4px 0; }
	.sa-sv-matrix td { display: flex; align-items: center; gap: 10px; text-align: left; border: 0; padding: 6px 0; min-height: 44px; }
	.sa-sv-matrix td::after { content: attr(data-label); }
	.sa-sv-nav { justify-content: stretch; }
	.sa-sv-nav .sa-sv-btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: no-preference) { .sa-sv-bar span { transition: width .2s ease; } }
