:root{
  --bg:#F2F5EC;
  --surface:#FFFFFF;
  --surface-2:#EAF0E1;
  --ink:#2A2420;
  --ink-soft:#5B5349;
  --line:#DAD9C9;
  --green:#3F6B33;
  --green-deep:#2C4A24;
  --gold:#C27C2B;
  --gold-soft:#F3E2C6;
  --danger:#B3451F;
  --radius:14px;
  --shadow:0 1px 2px rgba(42,36,32,.06), 0 8px 24px -12px rgba(42,36,32,.18);
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#1B1F16;
    --surface:#242922;
    --surface-2:#2C3327;
    --ink:#EDEAE2;
    --ink-soft:#B9B4A7;
    --line:#3A4234;
    --green:#7CB766;
    --green-deep:#9ED187;
    --gold:#E4A74F;
    --gold-soft:#3A2F1C;
    --danger:#E08B64;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
  }
}

*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  padding-inline:16px;
  padding-block:28px 60px;
  line-height:1.5;
}
h1,h2,h3{font-family:"Fraunces", Georgia, serif; text-wrap:balance; margin:0;}

.wrap{max-width:680px; margin:0 auto;}

.masthead{margin-bottom:22px;}
.eyebrow{font-size:12.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--green); font-weight:600; margin-bottom:8px; display:block;}
.masthead h1{font-size:30px; font-weight:600; color:var(--ink); margin-bottom:6px;}
.masthead p{color:var(--ink-soft); font-size:14.5px; max-width:56ch;}
.meta-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; font-size:12.5px; color:var(--ink-soft);}
.meta-pill{border:1px solid var(--line); border-radius:999px; padding:4px 11px; background:var(--surface);}

.progress-shell{margin:22px 0 26px;}
.progress-track{display:flex; gap:4px; margin-bottom:8px;}
.progress-seg{flex:1; height:5px; border-radius:3px; background:var(--line); transition:background .25s;}
.progress-seg.done{background:var(--green);}
.progress-seg.current{background:var(--gold);}
.progress-label{display:flex; justify-content:space-between; font-size:12.5px; color:var(--ink-soft);}
.progress-label b{color:var(--ink); font-weight:600;}

.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:26px 22px; margin-bottom:18px;
}
.section-tag{
  display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%;
  background:var(--green); color:#fff; font-family:"Fraunces", serif; font-weight:600; font-size:15px; flex:none;
}
.section-head{display:flex; align-items:center; gap:12px; margin-bottom:6px;}
.section-head h2{font-size:21px; color:var(--ink);}
.section-sub{color:var(--ink-soft); font-size:13.5px; margin:4px 0 22px; padding-left:42px;}

.intro-p{color:var(--ink-soft); font-size:14.5px; margin:0 0 10px;}
.intro-p:last-child{margin-bottom:0;}

.field{margin-bottom:20px;}
.field:last-child{margin-bottom:0;}
.field label.q{display:block; font-weight:600; font-size:14.5px; color:var(--ink); margin-bottom:8px;}
.field .hint{font-size:12.5px; color:var(--ink-soft); margin-top:6px;}

input[type=text], input[type=number], input[type=date], textarea{
  width:100%; font:inherit; font-size:14.5px; color:var(--ink);
  background:var(--surface-2); border:1px solid var(--line); border-radius:9px;
  padding:10px 12px; outline-offset:2px;
}
input::placeholder, textarea::placeholder{color:var(--ink-soft); opacity:.75;}
textarea{min-height:64px; resize:vertical; font-family:inherit;}
input:focus-visible, textarea:focus-visible, button:focus-visible, .opt:focus-visible{outline:2px solid var(--green); outline-offset:2px;}

.opts{display:flex; flex-direction:column; gap:8px;}
.opt{
  display:flex; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:10px;
  padding:10px 12px; cursor:pointer; background:var(--surface-2); font-size:14px; transition:border-color .15s, background .15s;
}
.opt:hover{border-color:var(--green);}
.opt input{margin-top:2px; accent-color:var(--green); flex:none;}
.opt.checked{border-color:var(--green); background:var(--gold-soft);}
.opt .opt-label{flex:1;}
.opt .autre-input{margin-top:8px; width:100%;}

.three-row{display:flex; gap:8px; align-items:center; margin-bottom:8px;}
.three-row:last-child{margin-bottom:0;}
.three-row .idx{
  flex:none; width:22px; height:22px; border-radius:50%; background:var(--surface-2); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-size:11.5px; color:var(--ink-soft);
  font-family:"IBM Plex Mono", monospace;
}

.mini-table{border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:6px;}
.mini-table-head{
  display:grid; grid-template-columns:1.3fr .85fr .85fr; background:var(--surface-2);
  font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); font-weight:600;
}
.mini-table-head div{padding:9px 10px;}
.mini-row{display:grid; grid-template-columns:1.3fr .85fr .85fr; border-top:1px solid var(--line);}
.mini-row .ind{padding:9px 10px; font-size:13px; color:var(--ink); display:flex; align-items:center;}
.mini-row .cell{padding:7px; border-left:1px solid var(--line);}
.mini-row .cell input{background:var(--surface); text-align:right;}
@media (max-width:460px){ .mini-table-head, .mini-row{grid-template-columns:1fr 1fr 1fr; font-size:11px;} }

.yesno-table{border:1px solid var(--line); border-radius:10px; overflow:hidden;}
.yesno-row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px; border-top:1px solid var(--line); background:var(--surface);}
.yesno-row:first-child{border-top:none;}
.yn-label{font-size:13.5px; color:var(--ink); flex:1;}
.yn-choices{display:flex; gap:8px; flex:none;}
.yn-opt{
  display:flex; align-items:center; gap:5px; border:1px solid var(--line); border-radius:8px;
  padding:5px 10px; font-size:12.5px; cursor:pointer; background:var(--surface-2); color:var(--ink-soft);
}
.yn-opt input{accent-color:var(--green);}
.yn-opt.checked{border-color:var(--green); background:var(--gold-soft); color:var(--ink); font-weight:600;}

.identity-grid{display:grid; grid-template-columns:1fr; gap:16px;}
.identity-grid .two{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:420px){ .identity-grid .two{grid-template-columns:1fr;} }

.nav-row{display:flex; gap:10px; margin-top:4px;}
button{font:inherit; cursor:pointer; border:none; border-radius:10px; padding:12px 20px; font-size:14.5px; font-weight:600;}
.btn-primary{background:var(--green); color:#fff; flex:1;}
.btn-primary:hover{background:var(--green-deep);}
.btn-ghost{background:transparent; color:var(--ink-soft); border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--ink-soft); color:var(--ink);}
.btn-gold{background:var(--gold); color:#fff; flex:1;}
.btn-gold:hover{filter:brightness(.93);}
button:disabled{opacity:.5; cursor:not-allowed;}

.review-group{margin-bottom:18px;}
.review-group h3{font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--green); margin-bottom:8px;}
.review-item{display:flex; gap:10px; padding:7px 0; border-top:1px solid var(--line); font-size:13.5px;}
.review-item:first-child{border-top:none;}
.review-item .q{color:var(--ink-soft); flex:1.1;}
.review-item .a{flex:1; color:var(--ink); font-weight:500; white-space:pre-wrap;}
.empty-a{color:var(--ink-soft); font-style:italic; font-weight:400;}

.send-box{text-align:center; padding:8px 4px 4px;}
.send-box .big-check{
  width:52px; height:52px; border-radius:50%; background:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px; color:var(--gold); font-size:26px;
}
.send-box .big-check.err{background:#f5d9ce; color:var(--danger);}
.send-box .big-check.spin{animation:spin 1s linear infinite;}
@keyframes spin{ to { transform:rotate(360deg); } }
.send-box h2{font-size:22px; margin-bottom:8px;}
.send-box p{color:var(--ink-soft); font-size:14px; max-width:46ch; margin:0 auto 18px;}
.send-actions{display:flex; flex-direction:column; gap:10px; max-width:360px; margin:0 auto;}
.copy-area{
  text-align:left; margin-top:18px; border:1px dashed var(--line); border-radius:10px; padding:12px;
  background:var(--surface-2); max-height:220px; overflow-y:auto;
  font-family:"IBM Plex Mono", monospace; font-size:11.5px; white-space:pre-wrap; color:var(--ink-soft);
}
.toast{
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(8px);
  background:var(--green-deep); color:#fff; padding:10px 18px; border-radius:999px; font-size:13.5px;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:50;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

[hidden]{display:none !important;}
