:root{
  --blue:#0066CC; --blue-d:#004a94; --green:#00B894; --green-d:#009478;
  --ink:#1d2733; --muted:#5b6b7b; --line:#e2e8f0; --bg:#f4f7fb; --card:#fff;
  --radius:14px; --shadow:0 2px 14px rgba(20,40,80,.07);
  --font:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.55}
a{color:var(--blue)}
img{max-width:100%}

/* Topbar */
.topbar{background:linear-gradient(90deg,var(--blue),var(--green));color:#fff;padding:14px 20px}
.brand{font-weight:800;font-size:1.2rem;letter-spacing:.3px;display:flex;align-items:center;gap:10px;max-width:880px;margin:0 auto}
.logo-brain{height:36px;width:auto;display:inline-block;vertical-align:middle;flex:0 0 auto}

.container{max-width:880px;margin:0 auto;padding:26px 18px 60px}
.intro h1{margin:.2em 0;font-size:1.7rem}
.intro p{color:var(--muted)}
.req{color:#e23b3b;font-weight:700}
.req-note{font-size:.9rem}

.section-title{margin:34px 0 10px;font-size:1.15rem;color:var(--blue-d);
  border-left:4px solid var(--green);padding-left:10px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px 20px;margin:14px 0}
.q{font-weight:700;margin:0 0 12px;font-size:1.02rem}
.num{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;
  padding:0 6px;border-radius:8px;background:var(--blue);color:#fff;font-size:.85rem;margin-right:8px}
.hint{color:var(--muted);font-size:.88rem;margin:.6em 0 0}

/* Options */
.opt{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;
  cursor:pointer;transition:background .15s}
.opt:hover{background:#f0f6ff}
.opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--blue);flex:0 0 auto}
.autre{margin-top:8px}
input[type=text],input[type=number],textarea{width:100%;padding:11px 12px;border:1px solid var(--line);
  border-radius:10px;font-family:inherit;font-size:1rem;color:var(--ink)}
input:focus,textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:2px}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}

/* Échelle 1-5 */
.scale1to5{display:flex;gap:10px;flex-wrap:wrap}
.scalebox{position:relative;cursor:pointer}
.scalebox input{position:absolute;opacity:0}
.scalebox span{display:flex;align-items:center;justify-content:center;width:52px;height:52px;
  border:2px solid var(--line);border-radius:12px;font-weight:800;font-size:1.1rem;color:var(--muted)}
.scalebox input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}

/* Matrice Likert */
.matrix-wrap{overflow-x:auto}
.matrix{border-collapse:collapse;width:100%;min-width:560px}
.matrix th,.matrix td{padding:8px;text-align:center;border-bottom:1px solid var(--line)}
.matrix thead th{vertical-align:bottom;font-size:.78rem;color:var(--muted);font-weight:700}
.matrix thead th span{display:block;line-height:1.15}
.matrix thead th small{color:var(--blue);font-weight:800}
.matrix .rowlabel{text-align:left;font-weight:600;font-size:.92rem;min-width:230px;color:var(--ink)}
.matrix tbody tr:hover{background:#f7fbff}
.dot{display:inline-flex;cursor:pointer}
.dot input{position:absolute;opacity:0}
.dot span{width:22px;height:22px;border-radius:50%;border:2px solid #c4d2e2;display:block}
.dot input:checked+span{background:var(--green);border-color:var(--green);box-shadow:inset 0 0 0 3px #fff}

.rgpd{background:#f0fbf7;border-color:#bfe9da}

.actions{margin-top:22px;text-align:center}
.btn{display:inline-block;padding:13px 26px;border-radius:12px;border:1px solid var(--line);
  background:#fff;color:var(--ink);font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-d)}
.btn.green{background:var(--green);border-color:var(--green);color:#fff}

.alert{padding:14px 16px;border-radius:12px;margin:14px 0}
.alert.error{background:#fdeaea;border:1px solid #f3b4b4;color:#a12727}
.alert.info{background:#eaf3fd;border:1px solid #aacdf3;color:#1a4d80}
.alert ul{margin:.5em 0 0;padding-left:20px}

.footer{background:#fff;border-top:1px solid var(--line);padding:18px;text-align:center;
  color:var(--muted);font-size:.85rem}

/* Bloc conditionnel masqué */
[data-show-when]{display:none}
[data-show-when].visible{display:block;animation:fade .25s ease}

/* Routage par parcours (géré par form.js) */
#parcours-b{display:none}
#parcours-b.active{display:block}
#parcours-a.hidden{display:none}
@keyframes fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1}}

/* Merci */
.thanks{text-align:center;padding:40px 24px}
.thanks .check{width:70px;height:70px;border-radius:50%;background:var(--green);color:#fff;
  font-size:2.2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}

/* Légal */
.legal h2{color:var(--blue-d);font-size:1.05rem;margin-top:1.4em}
.legal ul{padding-left:20px}

/* ===== Gamification ===== */
/* Barre de progression collante */
.progress-wrap{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(20,40,80,.06)}
.progress-inner{max-width:880px;margin:0 auto;padding:10px 18px}
.progress-track{height:12px;background:#e6eef7;border-radius:99px;overflow:hidden}
.progress-fill{height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--blue),var(--green));transition:width .45s cubic-bezier(.4,0,.2,1)}
.progress-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
#progressPct{font-weight:800;color:var(--blue-d);font-size:.95rem}
#progressMsg{color:var(--muted);font-weight:600;font-size:.9rem}

/* Validation visuelle des questions obligatoires */
.card.tracked{position:relative}
.card.done{border-color:#bfe9da;box-shadow:0 2px 16px rgba(0,184,148,.14)}
.card.done::after{content:"✓";position:absolute;top:14px;right:16px;width:26px;height:26px;
  border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.95rem;box-shadow:0 2px 8px rgba(0,184,148,.4);animation:badgePop .3s ease}
@keyframes badgePop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}

/* Indice sous le bouton d'envoi */
.submit-hint{color:var(--muted);font-weight:600;font-size:.92rem;margin:0 0 12px}

/* Toast d'encouragement */
.nc-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);
  background:var(--blue-d);color:#fff;padding:13px 24px;border-radius:99px;font-weight:700;font-size:.98rem;
  box-shadow:0 10px 28px rgba(0,40,90,.28);opacity:0;pointer-events:none;z-index:100;max-width:90%;text-align:center;
  transition:opacity .3s ease,transform .3s ease}
.nc-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Célébration page de remerciement */
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.form-page .topbar,.form-page main{position:relative;z-index:2}
.thanks .check.pop{animation:checkPop .55s cubic-bezier(.2,.8,.2,1.2)}
@keyframes checkPop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.15) rotate(6deg)}100%{transform:scale(1) rotate(0);opacity:1}}

/* Respect des préférences de mouvement réduit (accessibilité) */
@media (prefers-reduced-motion: reduce){
  .progress-fill{transition:none}
  .card.done::after{animation:none}
  .nc-toast{transition:opacity .2s ease}
  .thanks .check.pop{animation:none}
}
