:root{
  --navy:#0b2545; --navy-2:#13315c; --navy-3:#102d54;
  --vert:#5cb947; --vert-f:#3f9a2f; --vert-pale:#eef7ea;
  --encre:#1e293b; --muted:#64748b; --filet:#d7dee8; --doux:#f2f5f9;
  --orange:#e08a1e; --orange-pale:#fef6ec;
  --rouge:#c0392b; --rouge-pale:#fdecea;
  --r:10px; --sh:0 1px 3px rgba(11,37,69,.08);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{
  font-family:'Mulish',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--doux); color:var(--encre); font-size:16px; line-height:1.5;
  overscroll-behavior-y:none;
}
h1,h2,h3,.pop{font-family:'Poppins',-apple-system,sans-serif}

/* ---------- Barre haute ---------- */
.top{
  position:sticky; top:0; z-index:50; background:var(--navy);
  color:#fff; padding:calc(env(safe-area-inset-top) + 10px) 16px 0;
}
.top-row{display:flex;align-items:center;gap:12px;min-height:44px}
.top-t{font-size:15px;font-weight:600;flex:1;line-height:1.2}
.top-s{font-size:11px;color:rgba(255,255,255,.55);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.ico{
  width:38px;height:38px;border-radius:9px;border:0;background:rgba(255,255,255,.1);
  color:#fff;font-size:17px;display:grid;place-items:center;cursor:pointer;flex-shrink:0;
}
.ico:active{background:rgba(255,255,255,.2)}
.ico:disabled{opacity:.3}

/* progression */
.prog{display:flex;gap:3px;padding:12px 0 10px}
.prog i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.18);transition:background .25s}
.prog i.on{background:var(--vert)}
.prog i.now{background:#fff}

/* ---------- Contenu ---------- */
.wrap{padding:20px 16px 120px;max-width:640px;margin:0 auto}
.sec-h{margin-bottom:22px}
.sec-n{
  font-family:'Poppins';font-size:52px;font-weight:800;color:var(--navy);
  opacity:.09;line-height:.8;letter-spacing:-.03em
}
.sec-t{font-size:24px;font-weight:700;color:var(--navy);margin-top:-16px;letter-spacing:-.02em}
.sec-s{font-size:13px;color:var(--muted);margin-top:4px}

.intro{
  background:#fff;border-left:4px solid var(--navy);border-radius:0 var(--r) var(--r) 0;
  padding:14px 16px;margin-bottom:20px;font-size:14px;color:var(--encre);box-shadow:var(--sh)
}

/* ---------- Champ ---------- */
.f{background:#fff;border-radius:var(--r);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
.f.err{box-shadow:0 0 0 2px var(--rouge)}
.f-l{font-family:'Poppins';font-size:14px;font-weight:600;color:var(--navy);margin-bottom:4px;display:flex;gap:7px;align-items:flex-start}
.dot{width:6px;height:6px;border-radius:50%;background:var(--vert);flex-shrink:0;margin-top:6px}
.f.done .dot{background:var(--vert-f)}
.f.vide .dot{background:var(--filet)}
.f-a{font-size:12.5px;color:var(--muted);line-height:1.45;margin:0 0 12px 13px}
.f-a.fort{
  background:var(--orange-pale);border-left:3px solid var(--orange);color:#7a4a0a;
  padding:10px 12px;border-radius:0 6px 6px 0;margin-left:0;font-size:13px
}

input[type=text],input[type=number],input[type=tel],input[type=email],textarea,input[type=datetime-local]{
  width:100%;border:1.5px solid var(--filet);border-radius:8px;padding:12px 14px;
  font-family:inherit;font-size:16px;color:var(--encre);background:#fff;transition:border-color .15s
}
input:focus,textarea:focus{outline:0;border-color:var(--navy)}
textarea{resize:vertical;min-height:80px}

/* choix */
.opts{display:flex;flex-direction:column;gap:7px}
.opt{
  display:flex;align-items:center;gap:11px;padding:12px 14px;border:1.5px solid var(--filet);
  border-radius:8px;cursor:pointer;font-size:14.5px;transition:all .15s;background:#fff
}
.opt:active{transform:scale(.99)}
.opt.sel{border-color:var(--vert-f);background:var(--vert-pale)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.box{
  width:19px;height:19px;border:2px solid var(--filet);flex-shrink:0;
  display:grid;place-items:center;transition:all .15s
}
.box.rnd{border-radius:50%}
.box.sq{border-radius:5px}
.opt.sel .box{border-color:var(--vert-f);background:var(--vert-f)}
.box:after{content:'';opacity:0;transition:opacity .1s}
.opt.sel .box.rnd:after{opacity:1;width:7px;height:7px;border-radius:50%;background:#fff}
.opt.sel .box.sq:after{opacity:1;color:#fff;font-size:12px;font-weight:700;content:'✓'}

/* medias */
.med{
  border:2px dashed var(--filet);border-radius:9px;padding:22px 14px;text-align:center;
  cursor:pointer;transition:all .15s;background:var(--doux)
}
.med:active{border-color:var(--navy);background:#e9eef5}
.med-i{font-size:26px;margin-bottom:6px;opacity:.5}
.med-t{font-size:13px;color:var(--muted);font-weight:600}
.med input{display:none}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:10px}
.th{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--navy)}
.th img,.th video{width:100%;height:100%;object-fit:cover;display:block}
.th b{
  position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;
  background:rgba(0,0,0,.6);color:#fff;border:0;font-size:14px;cursor:pointer;
  display:grid;place-items:center;line-height:1
}

/* signature */
.sig{border:1.5px solid var(--filet);border-radius:8px;background:#fff;touch-action:none;width:100%;height:170px;display:block}
.sig-a{display:flex;justify-content:flex-end;margin-top:7px}
.lnk{background:0;border:0;color:var(--muted);font-size:12.5px;text-decoration:underline;cursor:pointer;font-family:inherit;padding:4px}

/* bloc repetable */
.rep{border:1.5px solid var(--filet);border-radius:9px;margin-top:11px;overflow:hidden}
.rep-h{
  background:var(--navy);color:#fff;padding:10px 14px;font-family:'Poppins';
  font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase
}
.rep-b{padding:14px;display:flex;flex-direction:column;gap:13px}
.rep-b .sf-l{font-family:'Poppins';font-size:13px;font-weight:600;color:var(--navy);margin-bottom:3px;display:flex;gap:6px}
.rep-b .f-a{margin-left:11px;margin-bottom:8px}

/* separateur */
.sep{
  background:var(--navy);color:#fff;padding:7px 13px;border-radius:6px;
  font-family:'Poppins';font-size:12px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;margin:22px 0 12px
}

/* alerte */
.warn{
  background:var(--orange-pale);border-left:4px solid var(--orange);border-radius:0 8px 8px 0;
  padding:12px 14px;margin-top:11px;font-size:13px;color:#7a4a0a;line-height:1.5
}
.warn b{display:block;font-family:'Poppins';font-weight:700;margin-bottom:3px;color:var(--orange)}

/* ---------- Barre basse ---------- */
.bot{
  position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--filet);
  padding:11px 16px calc(env(safe-area-inset-bottom) + 11px);display:flex;gap:10px;z-index:50
}
.btn{
  flex:1;padding:14px;border:0;border-radius:9px;font-family:'Poppins';font-size:14.5px;
  font-weight:600;cursor:pointer;transition:transform .1s
}
.btn:active{transform:scale(.98)}
.btn-p{background:var(--navy);color:#fff}
.btn-s{background:var(--doux);color:var(--navy);flex:0 0 auto;padding:14px 20px}
.btn-v{background:var(--vert-f);color:#fff}
.btn:disabled{opacity:.35}

/* ---------- Accueil ---------- */
.home{min-height:100vh;background:linear-gradient(150deg,var(--navy),var(--navy-3),var(--navy));padding:0 22px;display:flex;flex-direction:column;justify-content:center;color:#fff}
.home-in{max-width:440px;margin:0 auto;width:100%;padding:40px 0}
.badge{
  display:inline-block;background:#fff;border-radius:12px;padding:13px 17px;margin-bottom:26px;
  box-shadow:0 6px 20px rgba(0,0,0,.22)
}
.badge b{font-family:'Poppins';font-size:17px;font-weight:800;color:var(--navy);letter-spacing:-.02em;display:block;line-height:1.1}
.badge i{font-size:8px;color:var(--muted);letter-spacing:.14em;font-style:normal;display:block;margin-top:3px}
.eyebrow{font-family:'Poppins';font-size:11px;font-weight:600;color:var(--vert);letter-spacing:.16em;margin-bottom:9px}
.home h1{font-size:31px;font-weight:700;letter-spacing:-.025em;line-height:1.15}
.home p{color:rgba(255,255,255,.62);font-size:14.5px;margin-top:10px}
.rule{width:70px;height:5px;background:var(--vert);border-radius:3px;margin:22px 0}
.home-b{
  width:100%;padding:16px;border:0;border-radius:10px;background:var(--vert-f);color:#fff;
  font-family:'Poppins';font-size:15px;font-weight:600;cursor:pointer;margin-top:6px
}
.home-b.ghost{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.18);margin-top:10px}
.reprise{
  background:rgba(255,255,255,.07);border-left:4px solid var(--vert);border-radius:0 9px 9px 0;
  padding:13px 15px;margin-bottom:20px;font-size:13.5px
}
.reprise b{display:block;font-family:'Poppins';margin-bottom:2px}
.reprise span{color:rgba(255,255,255,.55);font-size:12px}

/* ---------- Bilan ---------- */
.kpi{display:flex;border:1.5px solid var(--navy);border-radius:8px;overflow:hidden;margin-bottom:18px;background:#fff}
.kpi div{flex:1;padding:14px 8px;text-align:center;border-right:1px solid var(--filet)}
.kpi div:last-child{border:0}
.kpi b{font-family:'Poppins';font-size:21px;font-weight:700;color:var(--navy);display:block}
.kpi b.ok{color:var(--vert-f)}
.kpi b.ko{color:var(--rouge)}
.kpi span{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin-top:3px}
.miss{background:var(--rouge-pale);border-left:4px solid var(--rouge);border-radius:0 8px 8px 0;padding:14px 16px;margin-bottom:16px}
.miss b{font-family:'Poppins';font-size:13px;color:var(--rouge);display:block;margin-bottom:9px}
.miss a{display:block;padding:8px 0;border-bottom:1px solid rgba(192,57,43,.12);font-size:13.5px;color:var(--encre);cursor:pointer;text-decoration:none}
.miss a:last-child{border:0}
.miss a i{font-style:normal;color:var(--muted);font-size:11px;display:block}
.ok-box{background:var(--vert-pale);border-left:4px solid var(--vert-f);border-radius:0 8px 8px 0;padding:16px;margin-bottom:16px;font-size:14px}
.ok-box b{font-family:'Poppins';color:var(--vert-f);display:block;margin-bottom:3px}

/* toast */
.toast{
  position:fixed;bottom:96px;left:50%;transform:translateX(-50%) translateY(70px);
  background:var(--navy);color:#fff;padding:11px 20px;border-radius:22px;font-size:13.5px;
  z-index:100;opacity:0;transition:all .25s;pointer-events:none;white-space:nowrap;
  font-family:'Poppins';font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.2)
}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.hide{display:none}

/* ---------- motif de non-réponse ---------- */
.mot-b{
  width:100%;margin-top:11px;padding:10px;border:1.5px dashed var(--filet);border-radius:8px;
  background:0;color:var(--muted);font-family:'Poppins';font-size:12.5px;font-weight:600;cursor:pointer
}
.mot-b:active{border-color:var(--orange);color:var(--orange)}
.mot{background:var(--orange-pale);border-left:3px solid var(--orange);border-radius:0 8px 8px 0;padding:13px;margin-top:11px}
.mot-h{font-family:'Poppins';font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.05em;text-transform:uppercase;margin-bottom:9px}
.mot .opt{background:#fff;font-size:13.5px;padding:10px 12px}
.mot .opt.sel{border-color:var(--orange);background:#fdf0dc}
.mot .opt.sel .box{border-color:var(--orange);background:var(--orange)}
.mot-c{margin-top:8px;font-size:14px !important;padding:10px 12px !important}
.mot .lnk{margin-top:6px}

/* ---------- bilan ---------- */
.kpi b.att{color:var(--orange)}
.etat{margin-bottom:12px}
.att-box{background:var(--orange-pale);border-left:4px solid var(--orange);border-radius:0 8px 8px 0;padding:15px;font-size:14px;color:#7a4a0a}
.att-box b{font-family:'Poppins';color:var(--orange);display:block;margin-bottom:3px}
.grp{background:#fff;border-radius:var(--r);margin-bottom:11px;overflow:hidden;box-shadow:var(--sh)}
.grp-h{background:var(--navy);color:#fff;padding:10px 14px;font-family:'Poppins';font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.grp a{display:block;padding:12px 14px;border-bottom:1px solid var(--filet);text-decoration:none;cursor:pointer}
.grp a:last-child{border:0}
.grp a:active{background:var(--doux)}
.grp a span{font-size:14px;color:var(--encre);display:block;font-weight:600}
.grp a i{font-style:normal;font-size:11px;color:var(--muted);display:block;margin-top:2px}
.grp a u{text-decoration:none;font-size:11.5px;color:var(--orange);display:block;margin-top:5px;font-weight:600}
.grp a u.no{color:var(--filet)}

/* menu déroulant */
.sel-in{
  width:100%;border:1.5px solid var(--filet);border-radius:8px;padding:12px 14px;
  font-family:inherit;font-size:16px;color:var(--encre);background:#fff;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230b2545' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px
}
.sel-in:focus{outline:0;border-color:var(--navy)}

/* ---------- accueil : visiteur + réglages ---------- */
.reglages{position:absolute;top:calc(env(safe-area-inset-top) + 16px);right:18px;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);color:#fff;font-size:19px;cursor:pointer}
.reglages:active{background:rgba(255,255,255,.2)}
.home-lab{display:block;font-family:'Poppins';font-size:11px;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}
.home-sel{width:100%;padding:15px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.09);color:#fff;font-family:'Poppins';font-size:15px;font-weight:600;margin-bottom:18px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.home-sel option{color:#1e293b}

/* ---------- réglages : liste visiteurs ---------- */
.vis-list{margin-top:12px}
.vis-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:9px;padding:14px 16px;margin-bottom:8px;box-shadow:var(--sh)}
.vis-item span{font-family:'Poppins';font-size:14.5px;font-weight:600;color:var(--navy)}
.vis-item button{width:28px;height:28px;border-radius:50%;border:0;background:var(--rouge-pale);color:var(--rouge);font-size:17px;cursor:pointer;line-height:1}

/* ---------- fichiers joints ---------- */
.files-list{margin-top:10px}
.file-it{display:flex;align-items:center;justify-content:space-between;background:var(--doux);border-radius:8px;padding:11px 13px;margin-bottom:7px;border:1px solid var(--filet)}
.file-it span{font-size:13px;color:var(--encre);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:10px}
.file-it button{width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.08);color:var(--muted);font-size:15px;cursor:pointer;flex-shrink:0;line-height:1}
