:root{
    --bg:#0B0D10; --panel:#12151A; --panel-2:#181C22; --line:#262B33;
    --text:#E9ECEF; --muted:#8B93A1; --amber:#E8A33D; --amber-dim:#8a6528;
    --teal:#3FA9A0; --red:#D6544A; --orange:#E0813F; --yellow:#D9B23C; --green:#4E9F6E; --blue:#4A8FE0;
    --font-display:'Iowan Old Style','Georgia','Times New Roman',serif;
    --font-body:'Inter','Helvetica Neue',Arial,sans-serif;
    --sel-tint:#1c1a12; --cta-text:#141210;
    /* Échelle de couleur du niveau d'exposition (0 = vert ... 100 = rouge vif).
       Mêmes valeurs dans cpc_exposure_colors.js : à modifier aux deux endroits. */
    --exp-g:#3FAE7A; --exp-y:#E8B93A; --exp-o:#EE7A2F; --exp-r:#FF1F1F;
    --red-vivid:#FF1F1F;
  }
  body.theme-light{
    --bg:#F7F6F3; --panel:#FFFFFF; --panel-2:#F1EFEA; --line:#E2DFD8;
    --text:#17181A; --muted:#6B6F76; --amber-dim:#C7963D; --sel-tint:#FBF0DC;
  }
  body.theme-light .brand-title-white{color:#000000 !important}
  *{box-sizing:border-box} html,body{margin:0;padding:0}
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh}
  .wrap{max-width:920px;margin:0 auto;padding:48px 24px 96px}
  .brand{display:flex;align-items:center;justify-content:flex-start;gap:11px;margin-bottom:24px;padding-bottom:2px;border-bottom:1px solid var(--line);position:relative}
  /* Logo CPC : PNG carré 1/1 (502x502) affiché en 112x112, sans déformation.
     Le PNG contient ~22% de marge transparente en haut et en bas : compensée par une marge négative
     (proportionnelle à --logo) pour que la ligne de séparation passe juste sous le logo visible. */
  .brand-logo{--logo:112px;flex:0 0 auto;display:block;width:var(--logo);height:var(--logo);margin:calc(var(--logo) * -.223) 0;pointer-events:none}
  body.theme-light .brand-logo{filter:invert(1) hue-rotate(180deg)}
  .brand-mark{min-width:0;font-family:var(--font-display);font-size:16px;letter-spacing:.02em;color:var(--text);line-height:1.35}.brand-mark span{display:block;font-size:12px;color:var(--muted);font-style:italic;letter-spacing:.03em;margin-top:2px}
  .lang-switch-link{white-space:nowrap;color:var(--amber);font-style:normal;text-decoration:none;cursor:pointer;border-bottom:1px solid transparent;transition:border-color .15s ease}
  .lang-switch-link:hover{border-bottom-color:var(--amber-dim)}
  .brand-tag{display:block;margin-top:8px;color:var(--amber);font-size:34px;font-style:normal;font-weight:700;letter-spacing:.01em}
  .brand-sub{font-size:12px;color:var(--muted);letter-spacing:.04em}
  .brand-version{font-size:12px;color:var(--muted);letter-spacing:.04em;text-align:right;white-space:nowrap;line-height:1.5;flex-shrink:0}
  .brand-title-white{display:block;font-size:16px !important;color:#FFFFFF !important;font-style:normal;font-family:var(--font-display);letter-spacing:.02em;margin-bottom:4px}
  /* Titre d'en-tête en 2 segments (coupure propre sur mobile) */
  .brand-title-white .bt-1,.brand-title-white .bt-2,.brand-title-white .bt-sep{display:inline;font-size:inherit;color:inherit;font-style:inherit;letter-spacing:inherit;margin:0}
  .screen{display:none}.screen.active{display:block}
  .hidden{display:none !important}
  .intake-title{font-family:var(--font-display);font-size:40px;line-height:1.15;max-width:680px;margin:0 0 14px;font-weight:400;text-wrap:balance}
  .intake-desc{color:var(--muted);font-size:15px;max-width:620px;line-height:1.6;margin-bottom:28px}
  .methodo-note{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber-dim);padding:16px 18px;border-radius:3px;margin-bottom:44px;max-width:660px}
  .methodo-note .icon{font-family:var(--font-display);font-style:italic;color:var(--amber);font-size:18px;line-height:1;flex-shrink:0}
  .methodo-note p{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}
  .methodo-note p b{color:var(--text);font-weight:500}
  .field{margin-bottom:32px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:10px}
  .field input[type=text],.field input[type=number],.field input[type=email],.field select{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:14px 16px;font-size:16px;border-radius:3px;font-family:var(--font-body);-webkit-appearance:none;appearance:none}
  .field input:focus,.field select:focus{outline:none;border-color:var(--amber-dim)}
  /* Empêche l'autofill du navigateur (Chrome/Safari/Edge/Firefox) de forcer
     un fond blanc + texte noir sur les champs quand on tape dedans (ex.
     email, prénom déjà vus par le navigateur) : sans ce correctif, le style
     sombre du site est écrasé de force par le navigateur dès l'autofill.
     Écrit en 2 blocs séparés (préfixé / standard) : mélanger les deux
     pseudo-classes dans le même sélecteur invaliderait toute la règle dans
     les navigateurs qui ne connaissent que l'une des deux. */
  .field input:-webkit-autofill,
  .field input:-webkit-autofill:hover,
  .field input:-webkit-autofill:focus,
  .field input:-webkit-autofill:active{
    -webkit-box-shadow:0 0 0px 1000px var(--panel) inset !important;
    box-shadow:0 0 0px 1000px var(--panel) inset !important;
    -webkit-text-fill-color:var(--text) !important;
    caret-color:var(--text);
    transition:background-color 9999s ease-in-out 0s;
  }
  .field input:autofill{
    box-shadow:0 0 0px 1000px var(--panel) inset !important;
    color:var(--text) !important;
    caret-color:var(--text);
  }
  .delay-toggle{display:flex;gap:10px;margin-bottom:14px}.toggle-btn{flex:1;padding:12px 14px;background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:3px;cursor:pointer;font-size:14px;text-align:center}
  .toggle-btn.selected{border-color:var(--amber);color:var(--text);background:var(--sel-tint)}.days-input{display:none}.days-input.show{display:block}
  .days-input input[type=number]{width:220px;max-width:100%}
  .days-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .days-weeks{font-size:13px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:3px;padding:12px 14px;width:210px;flex-shrink:0;text-align:center;line-height:1.4;white-space:normal}
  .days-weeks b{color:var(--text);font-weight:600}
  .field-error{font-size:11px;color:var(--red);margin-top:6px;display:none}.field-error.show{display:block}
  .profile-toggle{display:flex;gap:10px;flex-wrap:wrap}
  .profile-btn{flex:1 1 200px;text-align:center;border-left-width:4px!important;transition:background .15s ease,color .15s ease,border-color .15s ease}
  .profile-btn[data-profile="client"]{border-left-color:var(--teal)}
  .profile-btn[data-profile="client"]:hover{border-color:var(--line);border-left-color:var(--teal);background:var(--panel-2)}
  .profile-btn[data-profile="client"].selected{background:var(--teal);border-color:var(--teal);color:#0B1210;font-weight:600}
  .profile-btn[data-profile="agence"]{border-left-color:var(--amber)}
  .profile-btn[data-profile="agence"]:hover{border-color:var(--line);border-left-color:var(--amber);background:var(--panel-2)}
  .profile-btn[data-profile="agence"].selected{background:var(--amber);border-color:var(--amber);color:#141210;font-weight:600}
  .profile-btn[data-profile="prod"]{border-left-color:var(--blue)}
  .profile-btn[data-profile="prod"]:hover{border-color:var(--line);border-left-color:var(--blue);background:var(--panel-2)}
  .profile-btn[data-profile="prod"].selected{background:var(--blue);border-color:var(--blue);color:#0B1220;font-weight:600}
  .profile-btn.disabled{opacity:.4;cursor:not-allowed}
  .profile-btn.disabled:hover{background:var(--panel);border-color:var(--line)}
  .profile-btn.locked{opacity:.45;cursor:not-allowed}
  .profile-btn.locked:hover{background:var(--panel);border-color:var(--line)}
  .profile-btn.locked::after{content:"🔒";margin-left:8px;font-size:12px;vertical-align:middle}
  .profile-soon{display:block;font-size:10px;margin-top:5px;color:var(--muted);font-style:italic}
  .cta{display:inline-flex;align-items:center;gap:10px;background:var(--amber);color:#141210;border:none;padding:15px 28px;font-size:15px;font-weight:600;border-radius:3px;cursor:pointer;font-family:var(--font-body)}
  .cta:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}.cta.secondary{background:transparent;border:1px solid var(--line);color:var(--text)}
  .q-progress{display:flex;align-items:center;gap:16px;margin-bottom:40px}.q-progress-track{flex:1;height:2px;background:var(--line);position:relative}
  .pipeline-title{font-family:var(--font-display);font-size:21px;font-weight:700;color:var(--text);letter-spacing:.01em;margin-bottom:10px}
  .pipeline-wrap{position:relative;margin-bottom:26px;background:#0B0D10;border-radius:4px;padding:12px 16px 12px 0;text-align:left}
  .pipeline-wrap::after{content:'';position:absolute;top:0;right:0;bottom:0;width:28px;background:linear-gradient(to right, transparent, #0B0D10);pointer-events:none}
  .pipeline-line{white-space:nowrap;overflow-x:auto;font-size:13px;color:#FFFFFF;letter-spacing:.02em;padding-bottom:2px;padding-right:22px;text-align:left}
  .pipeline-line::-webkit-scrollbar{height:3px}
  .pipeline-line::-webkit-scrollbar-thumb{background:var(--amber-dim);border-radius:2px}
  .pipeline-line::-webkit-scrollbar-track{background:transparent}
  .pipeline-line .arrow{color:var(--amber);margin:0 3px}
  .q-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--amber);transition:width .3s ease}
  .q-progress-label{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
  .reset-btn{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:12px;padding:7px 12px;border-radius:3px;cursor:pointer;white-space:nowrap;font-family:var(--font-body)}
  .reset-btn:hover{border-color:var(--amber-dim);color:var(--text)}
  .q-count{font-size:12px;color:var(--amber-dim);letter-spacing:.04em;margin-bottom:14px}
  .q-factor{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
  .q-text{font-family:var(--font-display);font-size:23px;line-height:1.3;margin:0 0 34px;max-width:700px;font-weight:400}
  .q-options{display:flex;flex-direction:column;gap:10px;margin-bottom:40px}.q-option{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:3px;cursor:pointer}
  .q-option:hover{border-color:var(--amber-dim)}.q-option.selected{border-color:var(--amber);background:var(--sel-tint)}
  .q-option-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);flex-shrink:0;margin-top:2px;position:relative}
  .q-option.selected .q-option-dot{border-color:var(--amber)}.q-option.selected .q-option-dot:after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--amber)}
  .q-option-text{font-size:15px;line-height:1.45;color:var(--text)}.q-nav{display:flex;justify-content:space-between;align-items:center}
  .q-hint{font-size:12px;color:var(--red);opacity:0;transition:opacity .2s}.q-hint.show{opacity:1}
  .gate-card{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:30px 30px;margin-top:4px}
  .gate-kicker{font-size:12px;color:var(--amber-dim);letter-spacing:.06em;margin-bottom:12px}
  .gate-title{font-family:var(--font-display);font-size:27px;font-weight:400;margin:0 0 8px}
  .gate-text{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 20px;max-width:60ch}
  .welcome-line{color:#FFFFFF;font-size:16px;line-height:1.5;margin:0 0 24px}
  body.theme-light .welcome-line{color:#000000}
  .gate-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .gate-card .field{margin-bottom:20px}
  .gate-card .field label{margin-bottom:7px}
  .lead-lock-warning{font-size:12.5px;color:var(--red);line-height:1.5;font-weight:600;margin:0 0 12px}
  .consent-field{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px}
  .consent-field input{margin-top:3px;flex-shrink:0;width:16px;height:16px}
  .consent-field-text{display:flex;flex-direction:column;gap:6px}
  .consent-field label{font-size:12.5px;color:var(--muted);line-height:1.5;cursor:pointer}
  .consent-error{margin:0}
  .gate-loading{font-size:13px;color:var(--muted);margin-top:16px;display:none}.gate-loading.show{display:block}
  .gate-switch{display:inline-block;margin-top:18px;font-size:12.5px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line)}
  .gate-switch:hover{color:var(--text);border-color:var(--amber-dim)}
  .lock-badge{display:inline-block;font-size:10px;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:100px;padding:3px 10px;margin-left:8px;vertical-align:middle}
  .whatif-locked{font-size:13.5px;color:var(--muted);line-height:1.65;padding:4px 0 2px}
  @media(max-width:640px){.gate-row{grid-template-columns:1fr}}
  .report-kicker{font-size:12px;color:var(--amber-dim);letter-spacing:.06em;margin-bottom:10px}
  .report-title{font-family:var(--font-display);font-size:34px;margin:0 0 6px;font-weight:400}.report-meta{color:var(--muted);font-size:14px;margin-bottom:44px}.report-meta b{color:var(--text);font-weight:500}
  .exposure-card{background:var(--panel);border:1px solid var(--line);padding:28px 26px;border-radius:3px;margin-bottom:14px}
  .exposure-top{display:flex;justify-content:space-between;align-items:end;gap:20px}.exposure-label{font-size:12px;color:var(--amber);letter-spacing:.08em;font-weight:600}
  .exposure-score{font-family:var(--font-display);font-size:54px;font-style:italic;line-height:1}.exposure-score span{font-family:var(--font-body);font-size:14px;color:var(--muted);font-style:normal}
  .exposure-level{font-size:13px;letter-spacing:.08em;margin-top:8px}.exposure-bar{height:7px;background:var(--line);margin-top:22px;border-radius:4px;position:relative;overflow:hidden;container-type:inline-size}.exposure-bar-fill{position:absolute;left:0;top:0;width:0;height:100%;background:linear-gradient(90deg,var(--exp-g) 0%,var(--exp-y) 40%,var(--exp-o) 72%,var(--exp-r) 100%);background-repeat:no-repeat;background-size:100% 100%;background-size:100cqw 100%;border-radius:4px;transition:width .35s ease}
  .exposure-score,.exposure-level{transition:color .35s ease}
  .exposure-card[data-exp] .exposure-score{color:var(--exp-color)}
  .exposure-card[data-exp] .exposure-level{color:var(--exp-color) !important}
  .exposure-caveat{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  .amplif-note{display:flex;gap:10px;align-items:flex-start;background:var(--sel-tint);border:1px solid var(--amber-dim);padding:14px 18px;border-radius:3px;margin-bottom:26px}
  .amplif-note .icon{font-family:var(--font-display);font-style:italic;color:var(--amber);font-size:16px;line-height:1.3;flex-shrink:0}
  .amplif-note p{margin:0;font-size:13px;line-height:1.55;color:var(--text)}
  .go-box{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--panel);border:1px solid var(--line);padding:20px 24px;margin-bottom:26px;border-radius:3px;transition:background .2s ease,border-color .2s ease}.go-label{font-size:12px;color:var(--muted);letter-spacing:.08em}.go-status{font-family:var(--font-display);font-size:28px;font-style:italic}
  .go-status.go,.go-status.nogo,.go-status.conditional{font-style:normal;font-weight:800;font-size:38px;letter-spacing:.01em}
  .go-status.go{color:var(--green)}.go-status.nogo{color:var(--red-vivid)}.go-status.conditional{color:var(--orange)}.go-note{font-size:13px;color:var(--muted);line-height:1.5;text-align:right;max-width:430px}
  .go-box.go{background:rgba(78,159,110,.08);border-color:var(--green);border-width:1.5px}
  .go-box.go .go-label{color:var(--green)}
  .go-box.go .go-note{color:var(--green);font-weight:500}
  .go-box.nogo{background:rgba(255,31,31,.1);border-color:var(--red-vivid);border-width:1.5px}
  .go-box.nogo .go-label{color:var(--red-vivid)}
  .go-box.nogo .go-note{color:var(--red-vivid);font-weight:500}
  .go-box.conditional{background:rgba(224,129,63,.1);border-color:var(--orange);border-width:1.5px}
  .go-box.conditional .go-label{color:var(--orange)}
  .go-box.conditional .go-note{color:var(--orange);font-weight:500}
  .priority-list{margin:0;padding:0;list-style:none}
  .priority-list li{display:flex;gap:12px;font-size:15px;line-height:1.5;padding:9px 0;border-top:1px solid var(--line)}.priority-list li:first-child{border-top:none}.priority-list .pnum{color:var(--amber);font-family:var(--font-display);font-style:italic;flex-shrink:0}
  .section-title{font-size:12px;color:var(--muted);letter-spacing:.07em;margin:0 0 14px}
  .factor-list{margin-bottom:42px}.factor-row{display:grid;grid-template-columns:1fr 150px auto;gap:18px;align-items:center;padding:17px 0;border-top:1px solid var(--line)}
  .factor-name{font-size:16px}.factor-desc{font-size:12px;color:var(--muted);margin-top:4px}.factor-score{font-family:var(--font-display);font-size:24px;font-style:italic;text-align:right}.factor-bar{height:5px;background:var(--line);border-radius:3px;overflow:hidden}.factor-bar-fill{height:100%;background:var(--amber)}
  .risk-list{margin-bottom:14px}.risk-row{display:grid;grid-template-columns:96px 1fr auto;gap:20px;align-items:center;padding:20px 0;border-top:1px solid var(--line);cursor:pointer}
  .risk-name{font-size:17px;color:var(--text);margin-bottom:4px}.risk-sub{font-size:12.5px;color:var(--muted)}.risk-score-num{font-family:var(--font-display);font-size:26px;text-align:right;font-style:italic}.risk-score-lvl{font-size:11px;letter-spacing:.05em;text-align:right;margin-top:2px}
  .gauge{width:96px;height:56px}.lvl-critique{color:var(--red)}.lvl-eleve{color:var(--orange)}.lvl-significatif{color:var(--yellow)}.lvl-modere{color:var(--teal)}.lvl-faible{color:var(--green)}
  .detail-panel{max-height:0;overflow:hidden;transition:max-height .3s ease}.detail-panel.open{max-height:700px}.detail-inner{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:6px 0 26px}
  .detail-col h4{font-size:11px;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;font-weight:600}.detail-col ul{margin:0;padding:0;list-style:none}
  .detail-col li{font-size:14px;line-height:1.55;color:var(--text);padding-left:16px;position:relative;margin-bottom:9px}.detail-col li:before{content:'•';position:absolute;left:0;color:var(--muted)}.detail-col.actions li:before{content:'→';color:var(--amber)}
  .expand-icon{color:var(--amber);font-size:15px;transition:transform .2s;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1.5px solid var(--amber-dim);border-radius:50%;margin-left:6px;flex-shrink:0}
  .risk-row.open .expand-icon{transform:rotate(180deg);background:var(--amber);color:#141210;border-color:var(--amber)}
  .risk-hint{font-size:10.5px;color:var(--muted);letter-spacing:.03em;margin-top:3px}
  .diagnosis-box{border-top:1px solid var(--line);padding-top:28px;margin-top:8px;margin-bottom:42px}.diagnosis-box p{font-family:var(--font-display);font-size:18px;line-height:1.5;margin:0;max-width:760px}
  .collapse-box{background:var(--panel);border:1px solid var(--line);border-radius:3px;margin-bottom:26px;overflow:hidden}
  .collapse-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;cursor:pointer;font-size:12px;letter-spacing:.07em;color:var(--muted);user-select:none}
  .section-subtitle,#factors-subtitle,#risks-subtitle{font-size:12px;font-weight:400;font-style:italic;letter-spacing:normal;color:rgba(255,255,255,.4)!important;line-height:1.3;text-align:left;padding:0 22px 14px;margin-top:-12px}
  .section-subtitle:empty{display:none}
  .collapse-header:hover{color:var(--text)}
  .collapse-panel{max-height:0;overflow:hidden;transition:max-height .4s ease}
  .collapse-panel.open{max-height:8000px}
  .collapse-inner{padding:0 22px 22px}
  .expand-icon-lg{color:var(--amber);font-size:20px;line-height:1;transition:transform .25s ease;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--amber);border-radius:50%;background:var(--sel-tint);flex-shrink:0}
  .collapse-header.open .expand-icon-lg{transform:rotate(180deg);background:var(--amber);color:#141210}
  .synthesis-item{padding:14px 0;border-top:1px solid var(--line)}
  .synthesis-item:first-child{border-top:none}
  .synthesis-q{font-size:11px;color:var(--amber-dim);letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}
  .synthesis-answer{font-size:14.5px;color:var(--text);margin-bottom:4px;line-height:1.4}
  .synthesis-remark{font-size:12.5px;line-height:1.5}
  .remark-good{color:var(--green)}
  .remark-watch{color:var(--yellow)}
  .remark-risk{color:var(--red)}
  .footer-actions{margin-top:56px;display:flex;flex-direction:column;gap:22px;padding-top:32px;border-top:1px solid var(--line)}
  .footer-actions .btn-row{display:flex;gap:14px}
  .footer-disclaimer{font-size:11.5px;color:var(--muted);line-height:1.6;max-width:760px}
  .site-footer{max-width:920px;margin:0 auto;padding:24px 24px 40px;text-align:center;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
  .site-footer a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line)}
  .site-footer a:hover{color:var(--amber);border-color:var(--amber-dim)}
  .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;align-items:center;justify-content:center;padding:24px}
  .modal-overlay.open{display:flex}
  .gate-modal-wrap{position:relative;width:100%;max-width:520px;max-height:85vh}
  .gate-modal{width:100%;height:100%;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .gate-modal-close{position:absolute;top:8px;right:8px;z-index:5;width:32px;height:32px;border:1px solid var(--amber);border-radius:50%;background:transparent;color:var(--amber);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
  .gate-modal-close:hover{background:var(--amber);color:#141210}
  .modal-box{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:6px;max-width:560px;width:100%;padding:36px 32px;max-height:85vh;overflow-y:auto}
  .modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .modal-close:hover{border-color:var(--amber-dim);color:var(--text)}
  .modal-title{font-family:var(--font-display);font-size:24px;font-weight:400;margin:0 0 18px;color:var(--text)}
  .modal-text{font-size:14.5px;line-height:1.7;color:var(--text);margin:0 0 20px;white-space:pre-line}
  .modal-text a{color:var(--amber);text-decoration:none;border-bottom:1px solid var(--amber-dim)}
  .modal-site-link{display:inline-block;font-size:13px;color:var(--amber);text-decoration:none;border-bottom:1px solid var(--amber-dim)}
  .modal-site-link:hover{color:var(--amber);border-color:var(--amber-dim)}
  .modal-box-compact{max-width:400px;text-align:center}
  .modal-box-compact .modal-title{margin-bottom:12px}
  .modal-box-compact .modal-text{margin-bottom:24px}
  .modal-box-compact .cta{width:auto;min-width:130px;justify-content:center;margin:0 auto}
  .theme-toggle-btn{position:fixed;top:150px;left:18px;width:52px;height:52px;border-radius:50%;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:22px;line-height:1;cursor:grab;z-index:999;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(0,0,0,.3);-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;touch-action:none;user-select:none}
  .theme-toggle-btn:active{cursor:grabbing}
  .theme-toggle-btn:hover{border-color:var(--amber-dim)}
  .expert-popup{position:fixed;right:22px;bottom:22px;max-width:360px;width:calc(100% - 44px);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px 20px 18px;box-shadow:0 8px 32px rgba(0,0,0,.45);z-index:1200;transform:translateY(24px);opacity:0;pointer-events:none;transition:transform .35s ease,opacity .35s ease}
  .expert-popup.show{transform:translateY(0);opacity:1;pointer-events:auto}
  .expert-popup-close{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .expert-popup-close:hover{border-color:var(--amber-dim);color:var(--text)}
  .expert-popup-kicker{font-size:17px;color:var(--amber);letter-spacing:.02em;font-weight:700;margin-bottom:8px;padding-right:22px}
  .expert-popup-text{font-size:13.5px;line-height:1.55;color:var(--text);margin:0 0 16px}
  .expert-popup-text b{color:var(--amber)}
  .expert-popup-links{display:flex;gap:10px;justify-content:center}
  .expert-popup-link{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 16px;border-radius:3px;border:1px solid var(--amber);background:var(--amber);color:#141210;text-decoration:none;font-size:13.5px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:background .15s ease,border-color .15s ease}
  .expert-popup-link svg{width:15px;height:15px;flex-shrink:0}
  .expert-popup-link:hover{background:var(--amber-dim);border-color:var(--amber-dim)}
  .contact-textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:12px 14px;font-size:14px;line-height:1.5;border-radius:3px;font-family:var(--font-body);resize:vertical;min-height:96px}
  .contact-textarea:focus{outline:none;border-color:var(--amber-dim)}
  .contact-textarea::placeholder{color:var(--muted)}

  /* FAQ : ancré directement sous le bouton "Commencer le diagnostic" (position:absolute +
     top:100%, right:0), flush à droite, sorti du flux normal — même principe que l'ancien
     ancrage sur .brand, simplement réancré sur ce bouton. */
  .start-btn-wrap{position:relative}
  .faq-trigger{position:absolute;top:100%;right:0;margin-top:14px;flex-shrink:0;padding:7px 14px;border-radius:3px;border:1px solid var(--amber);background:var(--bg,#0c0b0a);color:var(--amber);font-size:12px;font-weight:700;letter-spacing:.05em;font-family:var(--font-body);cursor:pointer;transition:background .15s ease,color .15s ease}
  .faq-trigger:hover{background:var(--amber);color:#141210}
  .faq-list{margin-top:4px}
  .faq-item{margin-bottom:10px}
  .faq-item:last-child{margin-bottom:0}
  .faq-q-header{font-size:13.5px;letter-spacing:0;color:var(--text)}
  .faq-a{font-size:13.5px;line-height:1.6;color:var(--muted);margin:0}
  .faq-inline-contact-link{background:none;border:0;padding:0;margin:0;font:inherit;font-weight:600;color:var(--amber);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
  .faq-inline-contact-link:hover{color:var(--amber-dim)}
  .contact-send-row{display:flex;justify-content:center;margin-top:18px}
  /* ===== TABLETTE (768px – 1024px) ===== */
  @media(max-width:1024px){
    .wrap{padding:40px 28px 88px}
    .brand-tag{font-size:29px}
    .intake-title{font-size:34px}
    .intake-desc{font-size:14.5px}
    .q-text{font-size:21px}
    .report-title{font-size:31px}
    .exposure-score{font-size:48px}
    .go-status.go,.go-status.nogo,.go-status.conditional{font-size:32px}
    .diagnosis-box p{font-size:17px}
    .priority-list li{font-size:14.5px}
    .risk-name{font-size:16px}
    .theme-toggle-btn{width:60px;height:60px;font-size:26px}
    .pipeline-wrap::after{display:none}
    .pipeline-line{white-space:normal;overflow-x:visible;padding-right:0;text-align:left;overflow-wrap:anywhere;word-break:break-word}
    .pipeline-title{font-size:17px}
  }

  /* ===== MOBILE (≤ 640px) ===== */
  @media(max-width:640px){
    .wrap{padding:28px 18px 64px}
    .brand{margin-bottom:16px;padding-bottom:2px;gap:9px}
    .brand-logo{--logo:76px}
    .brand-mark{font-size:13.5px}
    .brand-mark span{font-size:10.5px}
    .brand-title-white{font-size:12px !important;white-space:normal}
    .brand-title-white .bt-1,.brand-title-white .bt-2{display:block}
    .brand-title-white .bt-sep{display:none}
    .brand-tag{font-size:21px}
    .brand-version{font-size:0;max-width:90px}
    .brand-version:after{content:'V0.2';font-size:11px}
    .faq-trigger{padding:6px 11px;font-size:11px}

    .intake-title{font-size:20px;line-height:1.22}
    .intake-desc{font-size:13.5px;line-height:1.55}
    .methodo-note{padding:13px 15px;gap:10px}
    .methodo-note .icon{font-size:16px}
    .methodo-note p{font-size:12px}
    .field{margin-bottom:24px}
    .field label{font-size:12px}
    .field input[type=text],.field input[type=number],.field input[type=email],.field select{font-size:15px;padding:12px 14px}
    .days-row{gap:8px}
    .days-input input[type=number]{width:100%}
    .days-weeks{font-size:12px;padding:10px 12px;width:100%;text-align:center}
    .delay-toggle{gap:8px}
    .profile-toggle{flex-direction:column;gap:8px}
    .profile-btn{flex:1 1 auto}
    .toggle-btn{font-size:12.5px;padding:11px 8px}
    .field-error{font-size:10.5px}
    .cta{padding:13px 20px;font-size:13.5px}

    /* Le popup d'inscription (gate) doit tenir entièrement dans l'écran
       sur mobile, sans obliger à faire défiler la page derrière. On
       réduit le padding de l'overlay et on laisse le popup lui-même
       défiler en interne (voir .gate-modal) si le contenu est trop long
       pour les très petits écrans, tout en resserrant les espacements
       internes pour qu'il tienne le plus souvent d'un seul tenant. */
    #gate-overlay{padding:0;align-items:flex-end}
    .gate-modal-wrap{max-width:100%;max-height:96vh}
    .gate-modal{max-height:96vh;border-radius:12px 12px 0 0}
    .gate-card{padding:22px 18px 20px}
    .gate-title{font-size:19px;margin-bottom:6px}
    .gate-text{font-size:12.5px;margin-bottom:18px}
    .gate-card .field{margin-bottom:16px}
    .gate-card .field label{margin-bottom:6px}
    .gate-row{gap:12px}
    .lead-lock-warning{font-size:11.5px;margin-bottom:10px}
    .consent-field{margin-bottom:16px}
    .gate-card .cta{width:100%;justify-content:center}

    .q-progress{gap:10px;margin-bottom:26px}
    .pipeline-wrap{margin-bottom:20px;padding:10px 12px 10px 0}
    .pipeline-line{font-size:11px;white-space:normal;overflow-x:visible;overflow-y:visible;padding-right:0;text-align:left;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
    .pipeline-line .arrow{margin:0 2px}
    .q-progress-label{font-size:11px}
    .reset-btn{font-size:10.5px;padding:6px 9px}
    .q-count{font-size:11px;margin-bottom:10px}
    .q-factor{font-size:10px;margin-bottom:6px}
    .q-text{font-size:16px;margin-bottom:24px}
    .q-options{gap:8px;margin-bottom:28px}
    .q-option{padding:13px 14px;gap:11px}
    .q-option-text{font-size:13.5px;line-height:1.4}
    .q-hint{font-size:11px}

    .report-kicker{font-size:11px}
    .report-title{font-size:23px}
    .report-meta{font-size:12.5px;margin-bottom:30px}
    .exposure-card{padding:20px 18px}
    .exposure-label{font-size:11px}
    .exposure-score{font-size:36px}
    .exposure-score span{font-size:12px}
    .exposure-level{font-size:11.5px}
    .exposure-caveat{font-size:10.5px;margin-top:12px;padding-top:12px}
    .amplif-note{padding:12px 14px}
    .amplif-note p{font-size:12px}
    .go-box{flex-direction:column-reverse;align-items:flex-start;gap:8px;padding:16px 18px}
    .go-status.go,.go-status.nogo,.go-status.conditional{font-size:28px}
    .go-note{text-align:left;max-width:100%;font-size:12px}
    .diagnosis-box{padding-top:22px}
    .diagnosis-box p{font-size:15.5px;line-height:1.5}
    .priority-list li{font-size:13.5px}
    .section-title{font-size:11px}

    .factor-row{grid-template-columns:1fr 80px}
    .factor-bar{grid-column:1/-1;grid-row:2}
    .factor-name{font-size:14px}
    .factor-desc{font-size:11px}
    .factor-score{font-size:19px}

    .risk-row{grid-template-columns:64px 1fr auto;gap:12px;padding:16px 0}
    .gauge{width:64px;height:40px}
    .risk-name{font-size:14.5px}
    .risk-sub{font-size:11px}
    .risk-score-num{font-size:20px}
    .risk-score-lvl{font-size:9.5px}
    .detail-inner{grid-template-columns:1fr;gap:18px;padding:4px 0 20px}
    .detail-col h4{font-size:10px}
    .detail-col li{font-size:13px}
    .collapse-header{padding:14px 16px;font-size:11px}
    .section-subtitle{font-size:9.5px;padding:0 16px 10px}
    .lock-badge{font-size:8px;padding:2px 6px;margin-left:5px}
    .collapse-inner{padding:0 16px 16px}
    .expand-icon-lg{width:26px;height:26px;font-size:16px}
    .synthesis-q{font-size:10px}
    .synthesis-answer{font-size:13px}
    .synthesis-remark{font-size:11.5px}
    .footer-actions{margin-top:40px;gap:16px;padding-top:24px}
    .footer-disclaimer{font-size:10.5px}

    .modal-box{padding:26px 20px}
    .modal-title{font-size:19px}
    .modal-text{font-size:13px;line-height:1.6}
    .modal-site-link{font-size:12px}

    .expert-popup{right:12px;left:12px;bottom:12px;max-width:none;width:auto}
  }

  /* ===== TRÈS PETITS ÉCRANS (≤ 380px) ===== */
  @media(max-width:380px){
    .brand-logo{--logo:64px}
    .brand-tag{font-size:18px}
    .intake-title{font-size:18px}
    .q-text{font-size:14.5px}
    .report-title{font-size:20px}
    .exposure-score{font-size:30px}
    .go-status.go,.go-status.nogo,.go-status.conditional{font-size:23px}
    .cta{padding:12px 16px;font-size:13px}
    .risk-row{grid-template-columns:52px 1fr auto;gap:10px}
    .gauge{width:52px;height:34px}
    .gate-card{padding:18px 14px 16px}
    .gate-card .field{margin-bottom:12px}
    .gate-title{font-size:17px}
    .gate-text{font-size:12px;margin-bottom:14px}
  }