*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f5f0e8;--primary:#1a1a1a;--logo1:#1a1a1a;--logo2:#7c9c3a}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem}
.logo{font-size:22px;font-weight:700;letter-spacing:-0.5px;margin-bottom:2rem;color:var(--logo1)}
.logo span{color:var(--logo2)}
.progress-bar{width:100%;max-width:680px;height:3px;background:#ddd;border-radius:2px;margin-bottom:2.5rem}
.progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width 0.4s ease}
.card{background:#fff;border-radius:16px;padding:2.5rem;width:100%;max-width:680px;box-shadow:0 1px 4px rgba(0,0,0,0.06)}
.step{display:none}.step.active{display:block}
.q-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:0.5rem}
.q-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--primary);color:#fff;border-radius:7px;font-size:13px;font-weight:600;flex-shrink:0;margin-top:2px}
.q-title{font-size:19px;font-weight:600;color:#1a1a1a;line-height:1.4}
.q-sub{font-size:13px;color:#888;margin:0.5rem 0 1.5rem 42px}
.choices{display:flex;flex-direction:column;gap:10px;margin-left:42px}
.choice{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e5e5e5;border-radius:10px;background:#fff;cursor:pointer;font-size:14px;color:#1a1a1a;text-align:left;transition:all 0.15s;width:100%}
.choice:hover{border-color:#bbb;background:#fafafa}
.choice.selected{border:1.5px solid var(--primary);background:#f9f9f9}
.choice-key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border:1px solid #ddd;border-radius:5px;font-size:11px;color:#888;flex-shrink:0}
.choice.selected .choice-key{background:var(--primary);color:#fff;border-color:var(--primary)}
.other-inline{flex:1;min-width:90px;border:none;border-bottom:1px solid #c9c4b8;background:transparent;padding:3px 2px;margin-left:8px;font-size:14px;font-family:inherit;color:#1a1a1a;outline:none}
.other-inline::placeholder{color:#b3aea3;font-style:italic}
.other-inline:focus{border-bottom-color:var(--primary)}
.choice-lbl{flex-shrink:0}
.multi-tag{font-size:12px;color:#888;margin:0 0 0.75rem 42px}
.input-wrap{margin-left:42px}
textarea,input[type=text],input[type=email],input[type=tel],input[type=password]{width:100%;border:none;border-bottom:1.5px solid #ddd;background:transparent;padding:10px 0;font-size:15px;color:#1a1a1a;outline:none;font-family:inherit;resize:none}
textarea:focus,input:focus{border-bottom-color:#1a1a1a}
.hint{font-size:11px;color:#aaa;margin-top:6px}
.btn-row{display:flex;align-items:center;gap:12px;margin-top:1.5rem;margin-left:42px}
.ok-btn{padding:11px 26px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.ok-btn:hover{filter:brightness(1.25)}
.back-btn{padding:11px 18px;background:transparent;color:#888;border:1px solid #ddd;border-radius:8px;font-size:14px;cursor:pointer;font-family:inherit}
.back-btn:hover{background:#f5f5f5;color:#333}
.field-row{display:flex;flex-direction:column;gap:1.5rem;margin-left:42px}
.field-row label{display:block;font-size:12px;color:#888;margin-bottom:5px;font-weight:500;text-transform:uppercase;letter-spacing:0.4px}
.last-text{font-size:15px;color:#1a1a1a;line-height:1.75;margin-left:42px;margin-bottom:1.5rem}
.last-text p{margin-bottom:0.9rem}
.last-text strong{font-weight:600}
.success{text-align:center;padding:1rem 0}
.success .check{font-size:56px;margin-bottom:1rem}
.success h2{font-size:22px;font-weight:600;margin-bottom:0.75rem;color:#1a1a1a}
.success p{font-size:15px;color:#666;line-height:1.6;margin-bottom:1.25rem}
.cal-wrap{margin-top:1rem;text-align:left;min-height:560px}
.cal-wrap iframe{width:100%;min-height:560px}
.cal-note{font-size:13px;color:#a06a1a;background:#fdf4e3;border-radius:8px;padding:10px 14px;display:inline-block}
.booked-banner{display:none;font-size:14px;color:#4a6b15;background:#eaf3d8;border-radius:8px;padding:12px 16px;margin:1rem 0;font-weight:600}
.card.wide{max-width:1040px}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}
.badge.ok{background:#eaf3d8;color:#4a6b15}
.badge.wait{background:#f3ede0;color:#9a7b3a}
@media(max-width:560px){
  body{padding:1.25rem 0.85rem}
  .logo{margin-bottom:1.25rem}
  .progress-bar{margin-bottom:1.5rem}
  .card{padding:1.35rem 1.15rem;border-radius:14px}
  .q-header{gap:10px}
  .q-num{width:26px;height:26px;font-size:12px}
  .q-title{font-size:17px}
  .choices,.input-wrap,.field-row,.multi-tag,.q-sub,.btn-row,.last-text,.qnav{margin-left:0}
  .q-sub{margin-top:0.4rem}
  .choice{padding:15px 14px;font-size:15px}
  /* 16px inputs stop iOS auto-zoom on focus */
  textarea,input[type=text],input[type=email],input[type=tel],input[type=password]{font-size:16px}
  .btn-row{margin-top:1.25rem;flex-wrap:wrap}
  .ok-btn,.back-btn{flex:1;min-width:120px;padding:13px 18px;text-align:center}
  .qnav{margin-top:1.1rem}
  .qnav button{width:48px;height:44px}
  .card.wide{max-width:100%}
  .cal-wrap,.cal-wrap iframe{min-height:620px}
}
/* ---------- Éditeur WYSIWYG ---------- */
body.editing{padding-top:72px}
.savebar{position:fixed;top:0;left:0;right:0;background:#fff;border-bottom:1px solid #ececec;display:flex;align-items:center;gap:12px;padding:10px 16px;z-index:100;box-shadow:0 1px 6px rgba(0,0,0,0.05);flex-wrap:wrap}
.savebar .spacer{flex:1}
.savebar-msg{font-size:13px;font-weight:600}
.savebar-msg.ok{color:#4a6b15}.savebar-msg.err{color:#c0392b}
.edit-hint-inline{font-size:12px;color:#999}
.color-pickers{display:flex;gap:10px;align-items:center}
.color-pickers label{font-size:11px;color:#888;display:flex;align-items:center;gap:4px;font-weight:600}
.color-pickers input[type=color]{width:26px;height:26px;border:1px solid #ddd;border-radius:6px;padding:0;background:none;cursor:pointer}
@media(max-width:760px){.color-pickers{order:3;width:100%;justify-content:flex-start}}
.editable{outline:1px dashed transparent;border-radius:5px;transition:background .12s,outline-color .12s;cursor:text;padding:1px 4px;margin:-1px -4px;min-width:24px;display:inline-block}
p.editable,div.editable,h2.editable{display:block}
.editable:hover{outline-color:#d3c6a3;background:#fbf7ee}
.editable:focus{outline:1.5px solid #7c9c3a;background:#fff}
.editable:empty:before{content:attr(data-ph);color:#c4c0b6}
.choice.ed{cursor:default}
.choice.ed .editable{flex:1}
.disq-edit{font-size:12px;color:#b08433;margin:2px 0 4px 36px}
.choice-row{margin-bottom:10px}
.choice-row .choice{margin-bottom:0}
.choice-row .opt-label{flex:1}
.disq-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:#999;font-weight:600;white-space:nowrap;cursor:pointer}
.disq-toggle input{cursor:pointer}
.opt-del{width:24px;height:24px;border:none;background:#f0ede6;color:#b94a3b;border-radius:6px;font-size:16px;line-height:1;cursor:pointer;flex-shrink:0}
.opt-del:hover{background:#f7dcd6}
.multi-pick{display:flex;align-items:center;gap:7px;margin:0 0 0.9rem 42px;font-size:13px;color:#5f7a2c;font-weight:600;cursor:pointer}
.multi-pick input{cursor:pointer;width:16px;height:16px}
.add-opt{margin-left:42px;margin-top:2px;padding:9px 14px;background:#fff;border:1px dashed #c9c2b2;border-radius:9px;color:#777;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.add-opt:hover{border-color:#7c9c3a;color:#5f7a2c;background:#fbfdf5}
.fake-input{color:#9a9a9a;font-size:15px;border-bottom:1.5px solid #e3e3e3;padding:8px 0;margin-top:4px}
.ed-label{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.ok-static{display:inline-block}
.ok-static .editable{color:#fff}
.cal-edit{margin-top:1.25rem;text-align:left}
.cal-edit label{display:block;font-size:12px;color:#888;margin-bottom:6px;font-weight:600}
.cal-code{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:12px;background:#fafafa}
@media(max-width:560px){.savebar{padding:8px 10px;gap:8px}.edit-hint-inline{display:none}.savebar .btn{padding:8px 11px;font-size:12px}}

/* smoother taps on touch */
.choice,.ok-btn,.back-btn,.qnav button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

/* ---------- Nav (préc / suiv) sous la question ---------- */
.qnav{display:flex;gap:2px;margin:1.25rem 0 0 42px}
.qnav button{width:42px;height:38px;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:filter 0.15s}
.qnav button:first-child{border-radius:8px 0 0 8px}
.qnav button:last-child{border-radius:0 8px 8px 0}
.qnav button:hover:not(:disabled){filter:brightness(1.25)}
.qnav button:disabled{background:#e2ddd2;color:#fff;cursor:default}

/* ---------- Admin ---------- */
.admin{max-width:900px;width:100%}
.admin .card{max-width:none}
.admin h1{font-size:24px;margin-bottom:0.25rem;color:#1a1a1a}
.admin .muted{color:#888;font-size:13px;margin-bottom:1.5rem}
.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:1.5rem}
.admin-nav a,.btn{display:inline-block;padding:9px 16px;background:#1a1a1a;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;font-family:inherit}
.admin-nav a.secondary,.btn.secondary{background:#fff;color:#1a1a1a;border:1px solid #ddd}
.admin-nav a:hover,.btn:hover{opacity:0.9}
.btn.danger{background:#c0392b}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid #eee;vertical-align:top}
th{color:#888;font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:0.4px}
tr:hover td{background:#fafafa}
.edit-block{border:1px solid #eee;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}
.edit-block h3{font-size:13px;color:#7c9c3a;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:0.75rem}
.edit-block label{display:block;font-size:12px;color:#888;margin:0.75rem 0 0.25rem;font-weight:500}
.edit-block input,.edit-block textarea{border:1px solid #ddd;border-radius:6px;padding:8px 10px;background:#fff}
.detail dt{font-size:11px;text-transform:uppercase;letter-spacing:0.4px;color:#888;margin-top:0.9rem;font-weight:600}
.detail dd{font-size:14px;color:#1a1a1a;white-space:pre-wrap;margin-top:2px}
.login-card{max-width:380px}
.flash{background:#eaf3d8;color:#4a6b15;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:1rem}
.err{background:#fbeae8;color:#9b2c1e;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:1rem}
