:root{--deep:#114B5F;--green:#61CE70;--green-dark:#4fb95e;--green-text:#0C3A23;--tint:#f5f8f9;--text:#1f2f36;--mute:#5b6b72;--border:rgba(17,75,95,.12);--sh-sm:0 2px 6px -1px rgba(17,75,95,.08);--sh-md:0 12px 28px -12px rgba(17,75,95,.18);--sh-lg:0 24px 48px -16px rgba(17,75,95,.22)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Open Sans',system-ui,sans-serif;color:var(--text);line-height:1.6;background:var(--tint);-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3,h4{font-family:'Montserrat',system-ui,sans-serif;color:var(--deep);letter-spacing:-.01em;line-height:1.25}
a{color:#028090}
button,input{font-family:inherit}
p{margin-bottom:.8em}
.h-xl{font-size:30px;margin:6px 0 10px}
.top{background:#fff;border-bottom:1px solid var(--border)}
.top .inner{max-width:1120px;margin:0 auto;padding:0 24px;height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-family:'Montserrat',sans-serif;font-weight:800;font-size:21px;color:var(--deep);text-decoration:none}
.brand sup{font-size:10px}
.top-actions{display:flex;gap:10px;align-items:center;font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;border:none;cursor:pointer;transition:background .15s,transform .15s;text-decoration:none;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-green{background:var(--green);color:var(--green-text);box-shadow:0 6px 16px -6px rgba(97,206,112,.6)}
.btn-green:hover{background:var(--green-dark)}
.btn-green:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-ghost{background:#fff;color:var(--deep);border:1.5px solid var(--border)}
.btn-ghost:hover{border-color:var(--deep)}
.btn-danger{background:#fff;color:#b23b2b;border:1.5px solid rgba(178,59,43,.3)}
.btn-sm{padding:9px 16px;font-size:13px}
.btn-block{width:100%}
.wrap{max-width:760px;width:100%;margin:0 auto;padding:44px 24px 80px;flex:1}
.wrap.wide{max-width:1040px}
.card{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--sh-md);padding:40px}
.card.narrow{max-width:520px;margin:0 auto}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.14em;color:#0f7f73;text-transform:uppercase;margin-bottom:8px}
.lead{color:var(--mute);font-size:17px;margin-top:6px}
.muted{color:var(--mute)}.small{font-size:13px}.center{text-align:center}.mt{margin-top:14px}.mt-s{margin-top:10px}
.center-row{justify-content:center}
.notice{background:#fff8e6;border:1px solid #f1d28a;color:#6b4d00;border-radius:12px;padding:14px 18px;margin:0 0 18px;font-size:14px}
.card .notice{margin:18px 0 0}
.field{margin-top:18px}
.field label{display:block;font-size:14px;font-weight:600;color:var(--deep);margin-bottom:6px}
.field input{width:100%;border:1.5px solid var(--border);border-radius:12px;padding:13px 14px;font-size:16px;outline:none;background:#fff}
.field input:focus{border-color:var(--green)}
.field input[readonly]{background:var(--tint);color:var(--mute)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-top:14px}
.check input{margin-top:4px;width:17px;height:17px;accent-color:var(--green);flex-shrink:0}
.check b{color:var(--deep)}
.note{background:var(--tint);border-radius:14px;padding:16px 18px;font-size:14px;color:var(--mute);margin-top:20px}
.note b{color:var(--deep)}
.scale-demo{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.scale-demo span{background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600;color:var(--deep)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;font-family:'Montserrat',sans-serif}
.invite-msg{background:var(--tint);border-left:4px solid var(--green);border-radius:10px;padding:18px 20px;font-size:15px;margin-top:18px}
/* Questionnaire */
.progress{margin-bottom:24px}
.progress .row{display:flex;justify-content:space-between;font-size:13px;color:var(--mute);margin-bottom:8px}
.progress .row b{color:var(--deep)}
.bar{height:8px;border-radius:4px;background:rgba(17,75,95,.08);overflow:hidden}
.bar>div{height:100%;background:var(--green);border-radius:4px;transition:width .3s}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.steps4 div{font-size:11px;font-weight:700;text-align:center;color:var(--mute);padding-top:6px;border-top:3px solid rgba(17,75,95,.1)}
.steps4 .done{border-color:var(--green);color:var(--deep)}.steps4 .cur{border-color:var(--deep);color:var(--deep)}
.q-axis{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0f7f73}
.q-text{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--deep);font-size:25px;line-height:1.3;margin:12px 0 8px}
.q-hint{font-size:14px;color:var(--mute);margin-bottom:22px}
.opts{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.opt{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:16px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .15s,background .15s}
.opt:hover{border-color:var(--deep)}
.opt .n{font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;color:var(--deep);line-height:1}
.opt .l{font-size:13px;font-weight:600;color:var(--mute)}
.opt.sel{background:rgba(97,206,112,.14);border:2px solid var(--green)}
.q-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
.linkbtn{background:none;border:none;color:var(--mute);font-weight:600;font-size:14px;cursor:pointer;padding:8px 0}
.linkbtn:hover{color:var(--deep)}
/* Paywall */
.lockgauge{position:relative;margin:10px auto 6px;max-width:320px}
.lockgauge .blur{filter:blur(7px);opacity:.75}
.lockgauge .lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:700;color:var(--deep);font-family:'Montserrat',sans-serif}
.lockgauge .ic{width:52px;height:52px;border-radius:50%;background:#fff;box-shadow:var(--sh-md);display:flex;align-items:center;justify-content:center}
.gauge{width:100%;max-width:300px;display:block;margin:6px auto 0}
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:26px}
.offer{background:#fff;border:1.5px solid var(--border);border-radius:18px;padding:24px;display:flex;flex-direction:column;position:relative}
.offer.sel{border:2px solid var(--green);background:linear-gradient(180deg,#fff,#f3fbf4)}
.offer .tag{position:absolute;top:-11px;left:20px;background:var(--green);color:var(--green-text);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px;font-family:'Montserrat',sans-serif}
.offer .ot{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}
.offer .price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:34px;color:var(--deep);margin:6px 0 2px}
.offer .price span{font-size:14px;color:var(--mute);font-weight:600}
.offer .terms{font-size:12px;color:var(--mute)}
.offer ul{list-style:none;margin:14px 0 18px;flex:1}
.offer li{font-size:14px;padding:4px 0 4px 22px;position:relative}
.offer li::before{content:"✓";color:#2e9e3e;font-weight:800;position:absolute;left:0}
/* Rapport */
.r-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;align-items:center}
.r-gauge{text-align:center}
.r-gauge .val{font-family:'Montserrat',sans-serif;font-weight:800;font-size:46px;color:var(--deep);line-height:1}
.r-gauge .val span{font-size:17px;color:var(--mute);font-weight:600}
.r-profile{font-size:30px;margin:6px 0 10px}
.r-sec{margin-top:26px}
.r-sec h3{font-size:20px;margin-bottom:14px}
.narr p{font-size:16px}
.rows .row{margin-bottom:16px}
.top2{display:flex;justify-content:space-between;align-items:baseline;font-size:15px;font-weight:600;color:var(--deep);margin-bottom:6px}
.top2 .z{font-size:12px;font-weight:700}
.track{height:10px;border-radius:5px;background:rgba(17,75,95,.08);overflow:hidden}
.fill{height:100%;border-radius:5px}
.legend{font-size:12px;color:var(--mute)}
.mini{background:var(--tint);border-radius:14px;padding:18px}
.mini .k{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.mini .v{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--deep);font-size:17px;margin-top:4px}
.mini p{font-size:14px;color:var(--mute);margin:6px 0 0}
.lev li{list-style:none;display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.lev li:last-child{border:none}
.lev .num{width:32px;height:32px;border-radius:50%;background:var(--deep);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:800;flex-shrink:0;font-size:14px}
.lev .t{font-weight:700;color:var(--deep);font-family:'Montserrat',sans-serif;font-size:15px}
.lev .b{font-size:14px;color:var(--mute)}
.alert{border-left:4px solid #CF6E3D;background:#fdf3ee;border-radius:10px;padding:16px 18px;font-size:14px;margin-top:22px}
.alert b{color:#8a3a1a}
.disc{font-size:12px;color:var(--mute);margin-top:26px;text-align:center}
.box{border:1px solid var(--border);border-radius:14px;padding:20px;margin-top:18px}
.box h3,.box h4{font-size:16px;margin-bottom:6px}
.box p{font-size:14px;color:var(--mute)}
.box.danger{border-color:rgba(178,59,43,.25)}
.sendbox{background:var(--tint);border:none;margin-top:28px;padding:26px}
.sendbox .field input{background:#fff}
.js-msg{margin-top:10px;font-weight:600}
.js-msg.ok{color:#2e7d3a}.js-msg.err{color:#b23b2b}
.spinner{width:44px;height:44px;border-radius:50%;border:4px solid rgba(17,75,95,.12);border-top-color:var(--green);margin:6px auto 18px;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* Espace client */
.acc{display:grid;grid-template-columns:220px 1fr;gap:26px;margin-top:18px}
.side{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px;height:fit-content;display:flex;flex-direction:column}
.side a{display:block;padding:11px 14px;border-radius:10px;font-size:14px;font-weight:600;color:var(--mute);text-decoration:none}
.side a.on{background:var(--tint);color:var(--deep)}
.panel{background:#fff;border:1px solid var(--border);border-radius:18px;padding:30px;min-width:0}
.panel h3{font-size:20px;margin-bottom:6px}
.hist{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px}
.hist td,.hist th{padding:11px 8px;border-bottom:1px solid var(--border);text-align:left}
.hist th{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.hist .acts{text-align:right;white-space:nowrap}
.curve{width:100%;margin-top:14px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px}
.kv span:first-child{color:var(--mute)}.kv span:last-child{font-weight:600;color:var(--deep);text-align:right}
.modal-bg{position:fixed;inset:0;background:rgba(10,49,64,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:200}
.modal-bg[hidden]{display:none}
.modal{background:#fff;border-radius:22px;max-width:540px;width:100%;max-height:92vh;overflow:auto;padding:30px;position:relative}
.modal .sendbox{background:none;padding:0;margin-top:4px}
.modal .close{position:absolute;top:12px;right:16px;border:none;background:none;font-size:26px;color:var(--mute);cursor:pointer}
.foot{background:#0a3140;color:rgba(255,255,255,.65);font-size:13px;padding:22px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.foot nav{display:flex;gap:16px;flex-wrap:wrap}
.foot a{color:rgba(255,255,255,.8);text-decoration:none}
.foot a:hover{color:#fff}
@media (max-width:760px){
  .card{padding:26px 20px}.h-xl{font-size:24px}.q-text{font-size:21px}
  .opts{grid-template-columns:1fr}.opt{flex-direction:row;justify-content:flex-start;gap:14px;padding:14px 16px}
  .two,.r-hero,.acc{grid-template-columns:1fr}
  .hide-m{display:none}
  .panel{padding:20px}
  .hist tr:first-child{display:none}
  .hist tr{display:grid;grid-template-columns:auto auto 1fr;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--border)}
  .hist td{border:none;padding:2px 0}
  .hist .acts{grid-column:1/-1;text-align:left;white-space:normal;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
}
