/* ==========================================================================
   Thème USPI Genève, Label Qualité 2026
   Surcharge du thème extends_fruity (variante sea_green neutralisée).
   Une seule couleur d'accent : le bleu du logo Label Qualité.
   ========================================================================== */

@font-face { font-family: "Lato USPI"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/upload/themes/survey/extends_fruity/files/lato-regular.woff2") format("woff2"); }
@font-face { font-family: "Lato USPI"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/upload/themes/survey/extends_fruity/files/lato-bold.woff2") format("woff2"); }
@font-face { font-family: "Lato USPI"; font-weight: 900; font-style: normal; font-display: swap;
  src: url("/upload/themes/survey/extends_fruity/files/lato-black.woff2") format("woff2"); }

:root {
  --uspi-bleu: #0b3d91;
  --uspi-bleu-fonce: #082a66;
  --uspi-bleu-pale: #eef3fa;
  --uspi-encre: #1d2329;
  --uspi-ardoise: #4e575e;
  --uspi-gris: #6b747b;
  --uspi-filet: #e3e6ea;
  --uspi-bord: #d3d8de;
  --uspi-fond: #f6f7f9;
  --uspi-erreur: #b42318;
  --bs-primary: #0b3d91;
  --bs-primary-rgb: 11, 61, 145;
  --bs-link-color: #0b3d91;
  --bs-link-hover-color: #082a66;
}

/* ---------- Base ---------- */
html, body {
  background: var(--uspi-fond) !important;
  color: var(--uspi-encre) !important;
  font-family: "Lato USPI", Lato, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
body, body p, body li, body label, body input, body button, body textarea, body select, .navbar, .btn {
  font-family: "Lato USPI", Lato, "Helvetica Neue", Arial, sans-serif !important;
}
a { color: var(--uspi-bleu); }
a:hover { color: var(--uspi-bleu-fonce); }
::selection { background: var(--uspi-bleu-pale); }

/* ---------- En-tête ---------- */
#survey-nav {
  background: #ffffff !important;
  border-bottom: 1px solid var(--uspi-filet) !important;
  box-shadow: none !important;
  min-height: 64px;
}
#survey-nav .container-fluid { max-width: 760px; margin: 0 auto; padding: 0 24px; min-height: 64px; }
#survey-nav .logo-container {
  padding: 0 !important; margin: 0 !important;
  width: auto !important; max-width: none !important; flex: 0 0 auto !important;
}
/* Le thème ajoute 15 px de marge interne à l'image (comptée dans la hauteur) : on l'annule */
#survey-nav .logo, #survey-nav .logo-container > img {
  height: 40px !important; width: auto !important; max-width: none !important; max-height: none !important;
  padding: 0 !important; margin: 12px 0 !important;
}
/* Mobile : le thème masque le logo (d-none d-md-block) ; on l'affiche, menu à droite */
@media (max-width: 767.98px) {
  #survey-nav .logo-container.d-none { display: block !important; }
  #survey-nav .logo, #survey-nav .logo-container > img { height: 34px !important; margin: 10px 0 !important; }
  #survey-nav .navbar-toggler { order: 2; margin-left: auto; }
  #survey-nav .navbar-collapse { order: 3; }
}
#survey-nav .nav-link, #survey-nav a.ls-link-action {
  color: var(--uspi-ardoise) !important;
  font-size: 14px; font-weight: 700;
  padding: 8px 14px !important;
  border: 1px solid var(--uspi-bord);
  border-radius: 8px; text-decoration: none !important;
  transition: border-color .15s ease, color .15s ease;
}
#survey-nav .nav-link:hover, #survey-nav a.ls-link-action:hover {
  color: var(--uspi-bleu) !important; border-color: var(--uspi-bleu);
}

/* ---------- Progression ---------- */
/* Le thème décale déjà le contenu sous l'en-tête fixe : pas de marge supplémentaire */
.top-container { padding: 0 !important; margin-top: 0 !important; }
.top-container .top-content { padding: 0 !important; }
/* Accueil : LimeSurvey ne calcule pas encore la progression (le lecteur d'écran lirait « % ») */
body:has(.survey-welcome) .top-container { display: none !important; }
.top-container .progress {
  height: 4px !important; border-radius: 0 !important; margin: 0 !important;
  background: var(--uspi-filet) !important; box-shadow: none !important;
}
.top-container .progress-bar {
  background: var(--uspi-bleu) !important; font-size: 0 !important; color: transparent !important;
  min-width: 0 !important; height: 100% !important; transition: width .3s ease;
}

/* ---------- Colonne de lecture ---------- */
#outerframeContainer { max-width: 760px !important; padding: 48px 24px 64px !important; margin: 0 auto; }
#main-col { width: 100% !important; max-width: 100% !important; padding: 0 !important; }

/* Titre et description du questionnaire */
.survey-name, h1.survey-name {
  text-align: left !important;
  font-size: 32px !important; line-height: 1.2 !important; font-weight: 900 !important;
  color: var(--uspi-encre) !important; letter-spacing: -0.01em;
  margin: 0 0 12px !important; text-wrap: balance;
}
.survey-description, .survey-description p {
  text-align: left !important; color: var(--uspi-ardoise) !important;
  font-size: 17px !important; line-height: 1.6 !important; margin: 0 0 28px !important;
}
.survey-welcome { margin: 0 0 24px !important; }
.number-of-questions, .question-count-text { display: none !important; }

/* Groupes */
.group-title, .group-name, h2.group-title {
  text-align: left !important;
  font-size: 26px !important; line-height: 1.25 !important; font-weight: 900 !important;
  color: var(--uspi-encre) !important; margin: 0 0 20px !important; text-wrap: balance;
}
.group-title + .group-description, .group-name + .group-description { margin-top: -12px !important; }
.group-description, .group-description p {
  text-align: left !important; color: var(--uspi-ardoise) !important;
  font-size: 16px !important; line-height: 1.6 !important; margin: 0 0 24px !important;
}

/* ---------- Questions ---------- */
.question-container {
  background: #ffffff !important;
  border: 1px solid var(--uspi-filet) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  padding: 36px 36px 32px !important;
  margin: 0 0 24px !important;
}
.question-title-container { padding: 0 !important; margin: 0 0 14px !important; }
/* Questions simples : 19 px gras. Les descendants héritent sans être forcés. */
.question-text, .ls-label-question {
  font-size: 19px !important; line-height: 1.45 !important; font-weight: 700 !important;
  color: var(--uspi-encre) !important;
}
/* Mention « Obligatoire » discrète */
.question-container .asterisk, .question-container .text-danger.asterisk {
  color: var(--uspi-gris) !important; font-size: 12px !important; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; margin-bottom: 10px;
}
.question-container .asterisk *, .question-container .text-danger.asterisk * { color: inherit !important; }
.question-container .asterisk .fa, .question-container .asterisk .fa-asterisk,
.question-container .asterisk .ri-asterisk { display: none !important; }

/* Pratiques (questions BPxxSCORE) : description, exemples, puis question */
.group-container:has(.uspi-pratique) .group-description { display: none !important; }
.question-container:has(.uspi-pratique) .question-title-container { margin-bottom: 24px !important; }
.uspi-pratique { font-size: 16px; font-weight: 400; color: var(--uspi-encre); }
.question-text .uspi-pratique p, .question-text .uspi-pratique li {
  font-weight: 400 !important; color: var(--uspi-encre) !important;
}
.question-text p.uspi-pratique-desc {
  font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 24px !important;
}
.uspi-exemples {
  background: var(--uspi-fond); border-left: 3px solid var(--uspi-bleu);
  border-radius: 0 8px 8px 0; padding: 18px 22px; margin: 0 0 28px;
}
.question-text p.uspi-exemples-titre {
  font-size: 12px !important; line-height: 1.4 !important; font-weight: 700 !important;
  color: var(--uspi-bleu) !important; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 10px !important;
}
.uspi-exemples ul { list-style: square; margin: 0; padding: 0 0 0 20px; }
.uspi-exemples li::marker { color: var(--uspi-bleu); }
.question-text .uspi-exemples li {
  font-size: 15px !important; line-height: 1.6 !important; color: var(--uspi-ardoise) !important; margin: 0 0 8px;
}
.uspi-exemples li:last-child { margin-bottom: 0; }
.question-text p.uspi-pratique-question {
  font-size: 19px !important; line-height: 1.45 !important; font-weight: 700 !important;
  border-top: 1px solid var(--uspi-filet); padding-top: 24px; margin: 0 !important;
}

/* Aide et consignes */
.question-help-container, .ls-questionhelp, .ls-em-tip, .em_default, .questionhelp {
  color: var(--uspi-ardoise) !important; font-size: 15px !important; font-weight: 400 !important;
  line-height: 1.55 !important;
}
.question-help-container { margin: 0 0 22px !important; padding: 0 !important; }
.question-valid-container { margin: 0 0 16px !important; }
/* Icônes « ? » colorées du thème (balises <i> et pseudo-élément FontAwesome de .ls-questionhelp) */
.question-help-container i, .ls-em-tip i, .question-valid-container i { display: none !important; }
.ls-questionhelp::before { content: none !important; display: none !important; }
.dir-ltr .ls-questionhelp, .dir-rtl .ls-questionhelp { margin-left: 0 !important; margin-right: 0 !important; }
.ls-em-tip.em_default { font-size: 14px !important; color: var(--uspi-gris) !important; }

/* Réponses à choix unique ou multiple : grandes options cliquables */
.answer-container { padding: 0 !important; margin-top: 8px !important; }
ul.answers-list, .answers-list { list-style: none !important; padding: 0 !important; margin: 0 !important;
  display: grid; gap: 12px; }
.answers-list .answer-item, li.answer-item.radio-item, li.answer-item.checkbox-item {
  position: relative; margin: 0 !important; padding: 0 !important;
  border: 1.5px solid var(--uspi-bord); border-radius: 10px; background: #ffffff;
  transition: border-color .15s ease, background-color .15s ease;
}
.answers-list .answer-item:hover { border-color: var(--uspi-bleu); }
.answers-list .answer-item:has(input:checked) {
  border-color: var(--uspi-bleu); background: var(--uspi-bleu-pale);
}
.answers-list .answer-item:has(input:focus-visible) {
  outline: 3px solid rgba(11, 61, 145, .35); outline-offset: 2px;
}
.answers-list .answer-item label, .answers-list .answer-item .control-label {
  display: block !important; width: 100%; cursor: pointer;
  padding: 15px 18px 15px 52px !important; margin: 0 !important;
  font-size: 16px !important; line-height: 1.45 !important; color: var(--uspi-encre) !important;
  font-weight: 400 !important;
}
.answers-list .answer-item:has(input:checked) label { font-weight: 700 !important; }
/* Bouton radio natif */
.answers-list .answer-item input[type="radio"], .answers-list .answer-item input[type="checkbox"] {
  position: absolute !important; left: 18px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; margin: 0 !important; accent-color: var(--uspi-bleu); cursor: pointer;
}
/* Variante awesome-bootstrap-checkbox (cercle dessiné en CSS) */
.radio-item label::before, .checkbox-item label::before {
  left: 18px !important; top: 50% !important; transform: translateY(-50%);
  margin: 0 !important; width: 20px !important; height: 20px !important;
  border: 2px solid var(--uspi-bord) !important; background: #fff !important;
}
.radio-item input:checked + label::before, .checkbox-item input:checked + label::before {
  border-color: var(--uspi-bleu) !important;
}
.radio-item label::after {
  left: 23px !important; top: 50% !important; transform: translateY(-50%) !important;
  margin: 0 !important; width: 10px !important; height: 10px !important;
  background: var(--uspi-bleu) !important;
}
.checkbox-item input:checked + label::before { background: var(--uspi-bleu) !important; }
.checkbox-item label::after { color: #fff !important; left: 20px !important; top: 50% !important;
  transform: translateY(-50%); margin: 0 !important; }

/* Champs texte */
.question-container input[type="text"], .question-container input[type="tel"],
.question-container input[type="email"], .question-container textarea, .question-container select {
  border: 1.5px solid var(--uspi-bord) !important; border-radius: 10px !important;
  padding: 12px 14px !important; font-size: 16px !important; color: var(--uspi-encre) !important;
  box-shadow: none !important; background: #fff !important;
}
.question-container input:focus, .question-container textarea:focus, .question-container select:focus {
  border-color: var(--uspi-bleu) !important; outline: 3px solid rgba(11, 61, 145, .2) !important;
  outline-offset: 0;
}
.question-container textarea { min-height: 110px; }

/* ---------- Navigation ---------- */
#navigator-container { margin: 32px 0 0 !important; padding: 0 !important; }
.btn {
  border-radius: 10px !important; font-weight: 700 !important; font-size: 16px !important;
  padding: 13px 28px !important; box-shadow: none !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn-primary, #ls-button-submit, .ls-move-next-btn, .ls-move-submit-btn {
  background: var(--uspi-bleu) !important; border: 1.5px solid var(--uspi-bleu) !important; color: #fff !important;
}
.btn-primary:hover, #ls-button-submit:hover { background: var(--uspi-bleu-fonce) !important;
  border-color: var(--uspi-bleu-fonce) !important; }
.btn-outline-secondary, #ls-button-previous, .ls-move-previous-btn, .btn-default {
  background: #fff !important; color: var(--uspi-ardoise) !important;
  border: 1.5px solid var(--uspi-bord) !important;
}
.btn-outline-secondary:hover, #ls-button-previous:hover {
  color: var(--uspi-bleu) !important; border-color: var(--uspi-bleu) !important;
}
.btn:focus-visible { outline: 3px solid rgba(11, 61, 145, .35) !important; outline-offset: 2px; }

/* ---------- Page de fin ---------- */
.completed-wrapper, .completed-text { text-align: left !important; }
.completed-text h1, .completed-text h2, .completed-text h3 {
  font-weight: 900 !important; color: var(--uspi-encre) !important;
}
.uspi-fin {
  background: #ffffff; border: 1px solid var(--uspi-filet); border-top: 4px solid var(--uspi-bleu);
  border-radius: 12px; padding: 40px 40px 32px;
}
.uspi-fin p { margin: 0; }
.uspi-fin-message { font-size: 17px; line-height: 1.65; color: var(--uspi-encre); }
/* La première phrase en gras sert de titre */
.uspi-fin-message strong {
  display: block; font-size: 28px; line-height: 1.2; font-weight: 900; letter-spacing: -0.01em;
  margin: 0 0 12px; text-wrap: balance;
}
.uspi-fin-action { margin-top: 28px !important; }
.uspi-fin-action:empty { display: none; }
a.uspi-fin-bouton {
  display: inline-block; background: var(--uspi-bleu); color: #ffffff !important;
  border-radius: 10px; padding: 13px 28px; font-size: 16px; font-weight: 700;
  text-decoration: none !important; transition: background-color .15s ease;
}
a.uspi-fin-bouton:hover { background: var(--uspi-bleu-fonce); }
a.uspi-fin-bouton:focus-visible { outline: 3px solid rgba(11, 61, 145, .35); outline-offset: 2px; }
.uspi-fin-contact {
  margin-top: 32px !important; padding-top: 20px; border-top: 1px solid var(--uspi-filet);
  font-size: 15px; color: var(--uspi-ardoise);
}
.completed-text a:not(.uspi-fin-bouton) { color: var(--uspi-bleu) !important; }
.completed-text a:not(.uspi-fin-bouton):hover { color: var(--uspi-bleu-fonce) !important; }

/* ---------- Pied de page ---------- */
.footer, footer, #ls-footer { background: transparent !important; color: var(--uspi-gris) !important; }

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
  #outerframeContainer { padding: 28px 16px 48px !important; }
  .survey-name { font-size: 26px !important; }
  .group-title, .group-name { font-size: 22px !important; }
  .question-container { padding: 24px 20px 22px !important; }
  .question-text, .ls-label-question, .question-text p.uspi-pratique-question { font-size: 17px !important; }
  .uspi-exemples { padding: 14px 16px; }
  .uspi-fin { padding: 28px 20px 24px; }
  .uspi-fin-message strong { font-size: 23px; }
  a.uspi-fin-bouton { display: block; text-align: center; }
  /* Deux colonnes Bootstrap de 50 % : pas de gap (il ferait passer Suivant à la ligne) */
  #navigator-container .btn { width: 100%; padding-left: 12px !important; padding-right: 12px !important; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ==========================================================================
   Règles reprises de l'ancien custom.css (messages d'erreur masqués)
   ========================================================================== */
.ls-question-mandatory { display: none; }
.question-container.missing, .question-container.has-error {
  background-color: #ffffff !important; border-color: var(--uspi-filet) !important; box-shadow: none !important;
}
.question-container.missing .question-text { color: inherit !important; }
.question-container.missing input, .question-container.missing .input-error { border-color: var(--uspi-bord) !important; }
.ls-em-tip.ls-em-error { display: none; }

/* ---------- Texte d'accueil ---------- */
.uspi-accueil p { font-size: 17px; line-height: 1.65; color: var(--uspi-encre); margin: 0 0 14px; }
.uspi-faits { display: flex; flex-wrap: wrap; gap: 0; margin: 24px 0 0; padding: 0; list-style: none;
  border-top: 1px solid var(--uspi-filet); border-bottom: 1px solid var(--uspi-filet); }
.uspi-faits li { flex: 1 1 160px; padding: 16px 20px 16px 0; margin: 0; }
.uspi-faits li + li { padding-left: 20px; border-left: 1px solid var(--uspi-filet); }
.uspi-faits strong { display: block; font-size: 20px; font-weight: 900; color: var(--uspi-bleu); line-height: 1.2; }
.uspi-faits span { display: block; font-size: 14px; color: var(--uspi-ardoise); margin-top: 2px; }
@media (max-width: 640px) {
  .uspi-faits li + li { border-left: 0; padding-left: 0; border-top: 1px solid var(--uspi-filet); }
}

/* En-tête : retrait du soulignement vert du thème sous « Finir plus tard » */
#survey-nav .nav-item, #survey-nav .navbar-nav > li,
#survey-nav .nav-link, #survey-nav a.ls-link-action {
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
#survey-nav .nav-item::before, #survey-nav .nav-item::after,
#survey-nav .nav-link::before, #survey-nav .nav-link::after,
#survey-nav .navbar-nav > li::before, #survey-nav .navbar-nav > li::after {
  display: none !important;
}
#survey-nav .nav-link:focus-visible, #survey-nav a.ls-link-action:focus-visible {
  outline: 3px solid rgba(11, 61, 145, .35) !important;
  outline-offset: 2px;
}

/* En-tête : bouton « Finir plus tard » centré, sans être rogné */
#survey-nav { overflow: visible !important; height: auto !important; }
#survey-nav .container-fluid { display: flex !important; align-items: center !important; justify-content: space-between; }
#survey-nav .navbar-collapse, #survey-nav .navbar-nav, #survey-nav .nav-item, #survey-nav .navbar-nav > li {
  display: flex !important; align-items: center !important;
  height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
  overflow: visible !important;
}
#survey-nav .nav-link, #survey-nav a.ls-link-action {
  display: inline-flex !important; align-items: center; line-height: 1.2 !important;
  margin: 12px 0 !important;
}

/* En-tête : bouton « Finir plus tard » renvoyé à droite */
#survey-nav .navbar-collapse { flex-grow: 1 !important; justify-content: flex-end !important; }
#survey-nav .navbar-nav { margin-left: auto !important; }

/* En-tête : bordure complète du bouton « Finir plus tard » */
#survey-nav .nav-link, #survey-nav a.ls-link-action { border: 1px solid #d3d8de !important; }
#survey-nav .nav-link:hover, #survey-nav a.ls-link-action:hover { border-color: #0b3d91 !important; }

/* Cases à cocher : coche blanche centrée dans le carré bleu (plus de coche verte du thème) */
.answers-list .checkbox-item label::after {
  background: transparent !important; color: #fff !important;
  left: 18px !important; top: 50% !important; width: 20px !important; height: 20px !important;
  transform: translateY(-50%) !important; text-align: center !important;
  line-height: 20px !important; font-size: 14px !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important;
}

/* ==========================================================================
   Direction A : style administratif sobre (validé le 5 octobre 2026)
   Page blanche, sans cartes ni filets de couleur, séparateurs gris fins.
   Ce bloc est placé en fin de fichier et prime sur les règles précédentes.
   ========================================================================== */

html, body { background: #ffffff !important; }

/* En-tête : filet gris fin, lien texte souligné */
#survey-nav { border-bottom: 1px solid var(--uspi-bord) !important; }
#survey-nav .nav-link, #survey-nav a.ls-link-action {
  border: 0 !important; border-radius: 0 !important; padding: 6px 0 !important;
  color: var(--uspi-bleu) !important; font-weight: 700 !important;
  text-decoration: underline !important; text-underline-offset: 3px;
}
#survey-nav .nav-link:hover, #survey-nav a.ls-link-action:hover { color: var(--uspi-bleu-fonce) !important; }

/* Progression : 17 segments fins */
.top-container .progress {
  height: 3px !important; background: var(--uspi-filet) !important;
  max-width: 712px; margin: 32px auto 0 !important; position: relative; overflow: hidden;
}
.top-container .progress::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0, transparent calc(100% / 17 - 3px), #ffffff calc(100% / 17 - 3px), #ffffff calc(100% / 17));
}
#outerframeContainer { padding-top: 32px !important; }

/* Questions : plus de cartes, séparateur fin entre les blocs */
.question-container {
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; padding: 0 0 28px !important; margin: 0 0 28px !important;
  border-bottom: 1px solid var(--uspi-filet) !important;
}
.question-container:last-of-type { border-bottom: 0 !important; }
.group-title, .group-name, h2.group-title { font-size: 28px !important; margin-bottom: 14px !important; }
.question-container .asterisk { color: var(--uspi-ardoise) !important; letter-spacing: 0 !important; text-transform: none !important; font-size: 13px !important; }

/* Bloc de la pratique : texte simple, exemples en liste sans encadré */
.uspi-pratique-desc { font-size: 16px !important; line-height: 1.6 !important; color: #2e363d !important; margin: 0 0 20px !important; }
.uspi-exemples {
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; margin: 0 0 28px !important; box-shadow: none !important;
}
.uspi-exemples-titre {
  font-size: 14px !important; font-weight: 700 !important; color: var(--uspi-encre) !important;
  text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 6px !important;
}
.uspi-exemples ul { padding-left: 20px !important; margin: 0 !important; color: var(--uspi-ardoise) !important;
  font-size: 15px !important; line-height: 1.6 !important; list-style: disc !important; }
.uspi-exemples li { margin: 0 0 6px !important; }
.uspi-pratique-question {
  font-size: 18px !important; font-weight: 700 !important; color: var(--uspi-encre) !important;
  margin: 0 !important; padding-top: 24px !important; border-top: 1px solid var(--uspi-filet) !important;
}

/* Réponses : simple liste à séparateurs, sans tuiles colorées */
ul.answers-list, .answers-list { gap: 0 !important; }
.answers-list .answer-item, li.answer-item.radio-item, li.answer-item.checkbox-item {
  border: 0 !important; border-bottom: 1px solid #eef0f2 !important; border-radius: 0 !important;
  background: transparent !important;
}
.answers-list .answer-item:hover { background: #fafbfc !important; }
.answers-list .answer-item:has(input:checked) { background: transparent !important; }
.answers-list .answer-item:has(input:checked) label { font-weight: 400 !important; }
.answers-list .answer-item label, .answers-list .answer-item .control-label {
  padding: 13px 12px 13px 34px !important;
}
.answers-list .answer-item input[type="radio"], .answers-list .answer-item input[type="checkbox"] { left: 2px !important; }
.radio-item label::before, .checkbox-item label::before { left: 2px !important; border-color: #8a939a !important; }
.radio-item input:checked + label::before, .checkbox-item input:checked + label::before { border-color: var(--uspi-bleu) !important; }
.radio-item label::after { left: 7px !important; }
.answers-list .checkbox-item label::after { left: 2px !important; }

/* Champs texte : angles discrets */
.question-container input[type="text"], .question-container input[type="tel"],
.question-container input[type="email"], .question-container textarea, .question-container select {
  border-radius: 3px !important; border: 1px solid #8a939a !important;
}

/* Boutons rectangulaires */
.btn { border-radius: 3px !important; padding: 11px 24px !important; font-size: 15px !important; }
.btn-outline-secondary, #ls-button-previous, .ls-move-previous-btn, .btn-default {
  color: var(--uspi-bleu) !important; border: 1px solid var(--uspi-bleu) !important;
}

/* Page de fin : sans carte ni filet */
.uspi-fin {
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; padding: 8px 0 0 !important;
}
.uspi-fin h1, .uspi-fin h2, .uspi-fin h3 { font-size: 28px !important; }
.uspi-fin hr { border: 0 !important; border-top: 1px solid var(--uspi-filet) !important; }

/* Page du code d'accès : plus de filets de couleur ni d'encadrés teintés */
#outerframeContainer:has(#uspi-token), #main-col:has(#uspi-token), .token-page,
#uspi-token > div { background: transparent !important; border: 0 !important; box-shadow: none !important; }
#uspi-token div[style*="border-bottom: 4px"] { border-bottom: 1px solid #d3d8de !important; }
#uspi-token div[style*="border-left"], #uspi-token div[style*="#eef3fa"] {
  border: 0 !important; background: transparent !important; padding-left: 0 !important; padding-right: 0 !important;
}
#uspi-token div[style*="border-top: 1px"] { background: transparent !important; }
#uspi-token button[type=submit] { border-radius: 3px !important; }

/* Logo de l'en-tête à taille lisible */
#survey-nav .logo-container { width: auto !important; flex: 0 0 auto !important; max-width: none !important; }
#survey-nav .logo { height: 40px !important; width: auto !important; max-width: none !important; max-height: none !important; }

/* Case unique : consigne « Cochez tout ce qui s'applique » masquée */
.question-container:has(.answers-list > li.checkbox-item:only-child) .ls-em-tip,
.question-container:has(.answers-list > li.checkbox-item:only-child) .question-valid-container { display: none !important; }
