PageSourceSearch

https://proplace.co/assets/index-geH0eYqE.js

js proplace.co collected 2026-10-09 22:08:39 UTC 1,750,409 bytes, 5,201 lines download raw bytes

vendor: 6,709 bytes, lines 1-10
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AtelierV2Section-Cua_IQbO.js","assets/realCockpitRuntime-BFcvKTRp.js","assets/eye-4VqD_-7P.js","assets/memoContent-7h4qbRFv.js","assets/AtelierV2Section-CppDWkPn.css","assets/TutorialExperience-5ry8LDJZ.js"])))=>i.map(i=>d[i]);
2var B1=Object.defineProperty;var U1=(t,n,r)=>n in t?B1(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r;var eu=(t,n,r)=>U1(t,typeof n!="symbol"?n+"":n,r);function V1(t,n){for(var r=0;r<n.length;r++){const i=n[r];if(typeof i!="string"&&!Array.isArray(i)){for(const s in i)if(s!=="default"&&!(s in t)){const a=Object.getOwnPropertyDescriptor(i,s);a&&Object.defineProperty(t,s,a.get?a:{enumerable:!0,get:()=>i[s]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function r(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(s){if(s.ep)return;s.ep=!0;const a=r(s);fetch(s.href,a)}})();const H1="modulepreload",Y1=function(t){return"/"+t},tu={},Vr=function(n,r,i){let s=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.allSettled(r.map(l=>{if(l=Y1(l),l in tu)return;tu[l]=!0;const d=l.endsWith(".css"),p=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${p}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":H1,d||(u.as="script"),u.crossOrigin="",u.href=l,c&&u.setAttribute("nonce",c),document.head.appendChild(u),d)return new Promise((g,f)=>{u.addEventListener("load",g),u.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${l}`)))})}))}function a(o){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=o,window.dispatchEvent(c),!c.defaultPrevented)throw o}return s.then(o=>{for(const c of o||[])c.status==="rejected"&&a(c.reason);return n().catch(a)})};function G1(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Dm={exports:{}},Ho={},zm={exports:{}},ye={};/**
3 * @license React
4 * react.production.min.js
5 *
6 * Copyright (c) Facebook, Inc. and its affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var ia=Symbol.for("react.element"),W1=Symbol.for("react.portal"),Q1=Symbol.for("react.fragment"),Z1=Symbol.for("react.strict_mode"),K1=Symbol.for("react.profiler"),J1=Symbol.for("react.provider"),$1=Symbol.for("react.context"),X1=Symbol.for("react.forward_ref"),e0=Symbol.for("react.suspense"),t0=Symbol.for("react.memo"),n0=Symbol.for("react.lazy"),nu=Symbol.iterator;function r0(t){return t===null||typeof t!="object"?null:(t=nu&&t[nu]||t["@@iterator"],typeof t=="function"?t:null)}var Bm={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Um=Object.assign,Vm={};function Fi(t,n,r){this.props=t,this.context=n,this.refs=Vm,this.updater=r||Bm}Fi.prototype.isReactComponent={};Fi.prototype.setState=function(t,n){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,n,"setState")};Fi.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Hm(){}Hm.prototype=Fi.prototype;function kd(t,n,r){this.props=t,this.context=n,this.refs=Vm,this.updater=r||Bm}var Ad=kd.prototype=new Hm;Ad.constructor=kd;Um(Ad,Fi.prototype);Ad.isPureReactComponent=!0;var ru=Array.isArray,Ym=Object.prototype.hasOwnProperty,Sd={current:null},Gm={key:!0,ref:!0,__self:!0,__source:!0};function Wm(t,n,r){var i,s={},a=null,o=null;if(n!=null)for(i in n.ref!==void 0&&(o=n.ref),n.key!==void 0&&(a=""+n.key),n)Ym.call(n,i)&&!Gm.hasOwnProperty(i)&&(s[i]=n[i]);var c=arguments.length-2;if(c===1)s.children=r;else if(1<c){for(var l=Array(c),d=0;d<c;d++)l[d]=arguments[d+2];s.children=l}if(t&&t.defaultProps)for(i in c=t.defaultProps,c)s[i]===void 0&&(s[i]=c[i]);return{$$typeof:ia,type:t,key:a,ref:o,props:s,_owner:Sd.current}}function i0(t,n){return{$$typeof:ia,type:t.type,key:n,ref:t.ref,props:t.props,_owner:t._owner}}function Ed(t){return typeof t=="object"&&t!==null&&t.$$typeof===ia}function s0(t){var n={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(r){return n[r]})}var iu=/\/+/g;function wl(t,n){return typeof t=="object"&&t!==null&&t.key!=null?s0(""+t.key):n.toString(36)}function Ka(t,n,r,i,s){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(a){case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case ia:case W1:o=!0}}if(o)return o=t,s=s(o),t=i===""?"."+wl(o,0):i,ru(s)?(r="",t!=null&&(r=t.replace(iu,"$&/")+"/"),Ka(s,n,r,"",function(d){return d})):s!=null&&(Ed(s)&&(s=i0(s,r+(!s.key||o&&o.key===s.key?"":(""+s.key).replace(iu,"$&/")+"/")+t)),n.push(s)),1;if(o=0,i=i===""?".":i+":",ru(t))for(var c=0;c<t.length;c++){a=t[c];var l=i+wl(a,c);o+=Ka(a,n,r,l,s)}else if(l=r0(t),typeof l=="function")for(t=l.call(t),c=0;!(a=t.next()).done;)a=a.value,l=i+wl(a,c++),o+=Ka(a,n,r,l,s);else if(a==="object")throw n=String(t),Error("Objects are not valid as a React child (found: "+(n==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.");return o}function La(t,n,r){if(t==null)return t;var i=[],s=0;return Ka(t,i,"","",function(a){return n.call(r,a,s++)}),i}function a0(t){if(t._status===-1){var n=t._result;n=n(),n.then(function(r){(t._status===0||t._status===-1)&&(t._status=1,t._result=r)},function(r){(t._status===0||t._status===-1)&&(t._status=2,t._result=r)}),t._status===-1&&(t._status=0,t._result=n)}if(t._status===1)return t._result.default;throw t._result}var vt={current:null},Ja={transition:null},o0={ReactCurrentDispatcher:vt,ReactCurrentBatchConfig:Ja,ReactCurrentOwner:Sd};function Qm(){throw Error("act(...) is not supported in production builds of React.")}
vendor: 5,127 bytes, lines 10-26
10ye.Children={map:La,forEach:function(t,n,r){La(t,function(){n.apply(this,arguments)},r)},count:function(t){var n=0;return La(t,function(){n++}),n},toArray:function(t){return La(t,function(n){return n})||[]},only:function(t){if(!Ed(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};ye.Component=Fi;ye.Fragment=Q1;ye.Profiler=K1;ye.PureComponent=kd;ye.StrictMode=Z1;ye.Suspense=e0;ye.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=o0;ye.act=Qm;ye.cloneElement=function(t,n,r){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var i=Um({},t.props),s=t.key,a=t.ref,o=t._owner;if(n!=null){if(n.ref!==void 0&&(a=n.ref,o=Sd.current),n.key!==void 0&&(s=""+n.key),t.type&&t.type.defaultProps)var c=t.type.defaultProps;for(l in n)Ym.call(n,l)&&!Gm.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var d=0;d<l;d++)c[d]=arguments[d+2];i.children=c}return{$$typeof:ia,type:t.type,key:s,ref:a,props:i,_owner:o}};ye.createContext=function(t){return t={$$typeof:$1,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:J1,_context:t},t.Consumer=t};ye.createElement=Wm;ye.createFactory=function(t){var n=Wm.bind(null,t);return n.type=t,n};ye.createRef=function(){return{current:null}};ye.forwardRef=function(t){return{$$typeof:X1,render:t}};ye.isValidElement=Ed;ye.lazy=function(t){return{$$typeof:n0,_payload:{_status:-1,_result:t},_init:a0}};ye.memo=function(t,n){return{$$typeof:t0,type:t,compare:n===void 0?null:n}};ye.startTransition=function(t){var n=Ja.transition;Ja.transition={};try{t()}finally{Ja.transition=n}};ye.unstable_act=Qm;ye.useCallback=function(t,n){return vt.current.useCallback(t,n)};ye.useContext=function(t){return vt.current.useContext(t)};ye.useDebugValue=function(){};ye.useDeferredValue=function(t){return vt.current.useDeferredValue(t)};ye.useEffect=function(t,n){return vt.current.useEffect(t,n)};ye.useId=function(){return vt.current.useId()};ye.useImperativeHandle=function(t,n,r){return vt.current.useImperativeHandle(t,n,r)};ye.useInsertionEffect=function(t,n){return vt.current.useInsertionEffect(t,n)};ye.useLayoutEffect=function(t,n){return vt.current.useLayoutEffect(t,n)};ye.useMemo=function(t,n){return vt.current.useMemo(t,n)};ye.useReducer=function(t,n,r){return vt.current.useReducer(t,n,r)};ye.useRef=function(t){return vt.current.useRef(t)};ye.useState=function(t){return vt.current.useState(t)};ye.useSyncExternalStore=function(t,n,r){return vt.current.useSyncExternalStore(t,n,r)};ye.useTransition=function(){return vt.current.useTransition()};ye.version="18.3.1";zm.exports=ye;var m=zm.exports;const Zm=G1(m),l0=V1({__proto__:null,default:Zm},[m]);/**
11 * @license React
12 * react-jsx-runtime.production.min.js
13 *
14 * Copyright (c) Facebook, Inc. and its affiliates.
15 *
16 * This source code is licensed under the MIT license found in the
17 * LICENSE file in the root directory of this source tree.
18 */var c0=m,d0=Symbol.for("react.element"),p0=Symbol.for("react.fragment"),u0=Object.prototype.hasOwnProperty,h0=c0.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,m0={key:!0,ref:!0,__self:!0,__source:!0};function Km(t,n,r){var i,s={},a=null,o=null;r!==void 0&&(a=""+r),n.key!==void 0&&(a=""+n.key),n.ref!==void 0&&(o=n.ref);for(i in n)u0.call(n,i)&&!m0.hasOwnProperty(i)&&(s[i]=n[i]);if(t&&t.defaultProps)for(i in n=t.defaultProps,n)s[i]===void 0&&(s[i]=n[i]);return{$$typeof:d0,type:t,key:a,ref:o,props:s,_owner:h0.current}}Ho.Fragment=p0;Ho.jsx=Km;Ho.jsxs=Km;Dm.exports=Ho;var e=Dm.exports,uc={},Jm={exports:{}},Pt={},$m={exports:{}},Xm={};/**
19 * @license React
20 * scheduler.production.min.js
21 *
22 * Copyright (c) Facebook, Inc. and its affiliates.
23 *
24 * This source code is licensed under the MIT license found in the
25 * LICENSE file in the root directory of this source tree.
26 */(function(t){function n(P,D){var M=P.length;P.push(D);e:for(;0<M;){var re=M-1>>>1,H=P[re];if(0<s(H,D))P[re]=D,P[M]=H,M=re;else break e}}function r(P){return P.length===0?null:P[0]}function i(P){if(P.length===0)return null;var D=P[0],M=P.pop();if(M!==D){P[0]=M;e:for(var re=0,H=P.length,se=H>>>1;re<se;){var ie=2*(re+1)-1,he=P[ie],Le=ie+1,xe=P[Le];if(0>s(he,M))Le<H&&0>s(xe,he)?(P[re]=xe,P[Le]=M,re=Le):(P[re]=he,P[ie]=M,re=ie);else if(Le<H&&0>s(xe,M))P[re]=xe,P[Le]=M,re=Le;else break e}}return D}function s(P,D){var M=P.sortIndex-D.sortIndex;return M!==0?M:P.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,c=o.now();t.unstable_now=function(){return o.now()-c}}var l=[],d=[],p=1,u=null,g=3,f=!1,L=!1,v=!1,y=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);
vendor: 9,472 bytes, lines 26-35
26function x(P){for(var D=r(d);D!==null;){if(D.callback===null)i(d);else if(D.startTime<=P)i(d),D.sortIndex=D.expirationTime,n(l,D);else break;D=r(d)}}function A(P){if(v=!1,x(P),!L)if(r(l)!==null)L=!0,pe(w);else{var D=r(d);D!==null&&ee(A,D.startTime-P)}}function w(P,D){L=!1,v&&(v=!1,h(j),j=-1),f=!0;var M=g;try{for(x(D),u=r(l);u!==null&&(!(u.expirationTime>D)||P&&!_());){var re=u.callback;if(typeof re=="function"){u.callback=null,g=u.priorityLevel;var H=re(u.expirationTime<=D);D=t.unstable_now(),typeof H=="function"?u.callback=H:u===r(l)&&i(l),x(D)}else i(l);u=r(l)}if(u!==null)var se=!0;else{var ie=r(d);ie!==null&&ee(A,ie.startTime-D),se=!1}return se}finally{u=null,g=M,f=!1}}var S=!1,E=null,j=-1,O=5,k=-1;function _(){return!(t.unstable_now()-k<O)}function N(){if(E!==null){var P=t.unstable_now();k=P;var D=!0;try{D=E(!0,P)}finally{D?I():(S=!1,E=null)}}else S=!1}var I;if(typeof b=="function")I=function(){b(N)};else if(typeof MessageChannel<"u"){var ce=new MessageChannel,K=ce.port2;ce.port1.onmessage=N,I=function(){K.postMessage(null)}}else I=function(){y(N,0)};function pe(P){E=P,S||(S=!0,I())}function ee(P,D){j=y(function(){P(t.unstable_now())},D)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(P){P.callback=null},t.unstable_continueExecution=function(){L||f||(L=!0,pe(w))},t.unstable_forceFrameRate=function(P){0>P||125<P?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<P?Math.floor(1e3/P):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_getFirstCallbackNode=function(){return r(l)},t.unstable_next=function(P){switch(g){case 1:case 2:case 3:var D=3;break;default:D=g}var M=g;g=D;try{return P()}finally{g=M}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(P,D){switch(P){case 1:case 2:case 3:case 4:case 5:break;default:P=3}var M=g;g=P;try{return D()}finally{g=M}},t.unstable_scheduleCallback=function(P,D,M){var re=t.unstable_now();switch(typeof M=="object"&&M!==null?(M=M.delay,M=typeof M=="number"&&0<M?re+M:re):M=re,P){case 1:var H=-1;break;case 2:H=250;break;case 5:H=1073741823;break;case 4:H=1e4;break;default:H=5e3}return H=M+H,P={id:p++,callback:D,priorityLevel:P,startTime:M,expirationTime:H,sortIndex:-1},M>re?(P.sortIndex=M,n(d,P),r(l)===null&&P===r(d)&&(v?(h(j),j=-1):v=!0,ee(A,M-re))):(P.sortIndex=H,n(l,P),L||f||(L=!0,pe(w))),P},t.unstable_shouldYield=_,t.unstable_wrapCallback=function(P){var D=g;return function(){var M=g;g=D;try{return P.apply(this,arguments)}finally{g=M}}}})(Xm);$m.exports=Xm;var g0=$m.exports;/**
27 * @license React
28 * react-dom.production.min.js
29 *
30 * Copyright (c) Facebook, Inc. and its affiliates.
31 *
32 * This source code is licensed under the MIT license found in the
33 * LICENSE file in the root directory of this source tree.
34 */var f0=m,Mt=g0;function V(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var eg=new Set,_s={};function Hr(t,n){ki(t,n),ki(t+"Capture",n)}function ki(t,n){for(_s[t]=n,t=0;t<n.length;t++)eg.add(n[t])}var On=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),hc=Object.prototype.hasOwnProperty,x0=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,su={},au={};function L0(t){return hc.call(au,t)?!0:hc.call(su,t)?!1:x0.test(t)?au[t]=!0:(su[t]=!0,!1)}function v0(t,n,r,i){if(r!==null&&r.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return i?!1:r!==null?!r.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function b0(t,n,r,i){if(n===null||typeof n>"u"||v0(t,n,r,i))return!0;if(i)return!1;if(r!==null)switch(r.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function bt(t,n,r,i,s,a,o){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=i,this.attributeNamespace=s,this.mustUseProperty=r,this.propertyName=t,this.type=n,this.sanitizeURL=a,this.removeEmptyString=o}var lt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){lt[t]=new bt(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];lt[n]=new bt(n,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){lt[t]=new bt(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){lt[t]=new bt(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){lt[t]=new bt(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){lt[t]=new bt(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){lt[t]=new bt(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){lt[t]=new bt(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){lt[t]=new bt(t,5,!1,t.toLowerCase(),null,!1,!1)});var Nd=/[\-:]([a-z])/g;function Cd(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var n=t.replace(Nd,Cd);lt[n]=new bt(n,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(Nd,Cd);lt[n]=new bt(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(Nd,Cd);lt[n]=new bt(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){lt[t]=new bt(t,1,!1,t.toLowerCase(),null,!1,!1)});lt.xlinkHref=new bt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){lt[t]=new bt(t,1,!1,t.toLowerCase(),null,!0,!0)});function _d(t,n,r,i){var s=lt.hasOwnProperty(n)?lt[n]:null;(s!==null?s.type!==0:i||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(b0(n,r,s,i)&&(r=null),i||s===null?L0(n)&&(r===null?t.removeAttribute(n):t.setAttribute(n,""+r)):s.mustUseProperty?t[s.propertyName]=r===null?s.type===3?!1:"":r:(n=s.attributeName,i=s.attributeNamespace,r===null?t.removeAttribute(n):(s=s.type,r=s===3||s===4&&r===!0?"":""+r,i?t.setAttributeNS(i,n,r):t.setAttribute(n,r))))}var Un=f0.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for("react.element"),si=Symbol.for("react.portal"),ai=Symbol.for("react.fragment"),Td=Symbol.for("react.strict_mode"),mc=Symbol.for("react.profiler"),tg=Symbol.for("react.provider"),ng=Symbol.for("react.context"),qd=Symbol.for("react.forward_ref"),gc=Symbol.for("react.suspense"),fc=Symbol.for("react.suspense_list"),Fd=Symbol.for("react.memo"),Zn=Symbol.for("react.lazy"),rg=Symbol.for("react.offscreen"),ou=Symbol.iterator;function Gi(t){return t===null||typeof t!="object"?null:(t=ou&&t[ou]||t["@@iterator"],typeof t=="function"?t:null)}var Be=Object.assign,kl;function us(t){if(kl===void 0)try{throw Error()}catch(r){var n=r.stack.trim().match(/\n( *(at )?)/);kl=n&&n[1]||""}return`
35`+kl+t}var Al=!1;function Sl(t,n){if(!t||Al)return"";Al=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(d){var i=d}Reflect.construct(t,[],n)}
vendor: 4,203 bytes, lines 35-38
35else{try{n.call()}catch(d){i=d}t.call(n.prototype)}else{try{throw Error()}catch(d){i=d}t()}}catch(d){if(d&&i&&typeof d.stack=="string"){for(var s=d.stack.split(`
36`),a=i.stack.split(`
37`),o=s.length-1,c=a.length-1;1<=o&&0<=c&&s[o]!==a[c];)c--;for(;1<=o&&0<=c;o--,c--)if(s[o]!==a[c]){if(o!==1||c!==1)do if(o--,c--,0>c||s[o]!==a[c]){var l=`
38`+s[o].replace(" at new "," at ");return t.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",t.displayName)),l}while(1<=o&&0<=c);break}}}finally{Al=!1,Error.prepareStackTrace=r}return(t=t?t.displayName||t.name:"")?us(t):""}function y0(t){switch(t.tag){case 5:return us(t.type);case 16:return us("Lazy");case 13:return us("Suspense");case 19:return us("SuspenseList");case 0:case 2:case 15:return t=Sl(t.type,!1),t;case 11:return t=Sl(t.type.render,!1),t;case 1:return t=Sl(t.type,!0),t;default:return""}}function xc(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ai:return"Fragment";case si:return"Portal";case mc:return"Profiler";case Td:return"StrictMode";case gc:return"Suspense";case fc:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case ng:return(t.displayName||"Context")+".Consumer";case tg:return(t._context.displayName||"Context")+".Provider";case qd:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Fd:return n=t.displayName||null,n!==null?n:xc(t.type)||"Memo";case Zn:n=t._payload,t=t._init;try{return xc(t(n))}catch{}}return null}function j0(t){var n=t.type;switch(t.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return xc(n);case 8:return n===Td?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function hr(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function ig(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function w0(t){var n=ig(t)?"checked":"value",r=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),i=""+t[n];if(!t.hasOwnProperty(n)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var s=r.get,a=r.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return s.call(this)},set:function(o){i=""+o,a.call(this,o)}}),Object.defineProperty(t,n,{enumerable:r.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function ba(t){t._valueTracker||(t._valueTracker=w0(t))}function sg(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var r=n.getValue(),i="";return t&&(i=ig(t)?t.checked?"true":"false":t.value),t=i,t!==r?(n.setValue(t),!0):!1}function uo(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Lc(t,n){var r=n.checked;return Be({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??t._wrapperState.initialChecked})}function lu(t,n){var r=n.defaultValue==null?"":n.defaultValue,i=n.checked!=null?n.checked:n.defaultChecked;r=hr(n.value!=null?n.value:r),t._wrapperState={initialChecked:i,initialValue:r,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ag(t,n){n=n.checked,n!=null&&_d(t,"checked",n,!1)}function vc(t,n){ag(t,n);var r=hr(n.value),i=n.type;if(r!=null)i==="number"?(r===0&&t.value===""||t.value!=r)&&(t.value=""+r):t.value!==""+r&&(t.value=""+r);else if(i==="submit"||i==="reset"){t.removeAttribute("value");return}
vendor: 4,366 bytes, line 38
38n.hasOwnProperty("value")?bc(t,n.type,r):n.hasOwnProperty("defaultValue")&&bc(t,n.type,hr(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function cu(t,n,r){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var i=n.type;if(!(i!=="submit"&&i!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+t._wrapperState.initialValue,r||n===t.value||(t.value=n),t.defaultValue=n}r=t.name,r!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,r!==""&&(t.name=r)}function bc(t,n,r){(n!=="number"||uo(t.ownerDocument)!==t)&&(r==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+r&&(t.defaultValue=""+r))}var hs=Array.isArray;function xi(t,n,r,i){if(t=t.options,n){n={};for(var s=0;s<r.length;s++)n["$"+r[s]]=!0;for(r=0;r<t.length;r++)s=n.hasOwnProperty("$"+t[r].value),t[r].selected!==s&&(t[r].selected=s),s&&i&&(t[r].defaultSelected=!0)}else{for(r=""+hr(r),n=null,s=0;s<t.length;s++){if(t[s].value===r){t[s].selected=!0,i&&(t[s].defaultSelected=!0);return}n!==null||t[s].disabled||(n=t[s])}n!==null&&(n.selected=!0)}}function yc(t,n){if(n.dangerouslySetInnerHTML!=null)throw Error(V(91));return Be({},n,{value:void 0,defaultValue:void 0,children:""+t._wrapperState.initialValue})}function du(t,n){var r=n.value;if(r==null){if(r=n.children,n=n.defaultValue,r!=null){if(n!=null)throw Error(V(92));if(hs(r)){if(1<r.length)throw Error(V(93));r=r[0]}n=r}n==null&&(n=""),r=n}t._wrapperState={initialValue:hr(r)}}function og(t,n){var r=hr(n.value),i=hr(n.defaultValue);r!=null&&(r=""+r,r!==t.value&&(t.value=r),n.defaultValue==null&&t.defaultValue!==r&&(t.defaultValue=r)),i!=null&&(t.defaultValue=""+i)}function pu(t){var n=t.textContent;n===t._wrapperState.initialValue&&n!==""&&n!==null&&(t.value=n)}function lg(t){switch(t){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function jc(t,n){return t==null||t==="http://www.w3.org/1999/xhtml"?lg(n):t==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":t}var ya,cg=function(t){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,r,i,s){MSApp.execUnsafeLocalFunction(function(){return t(n,r,i,s)})}:t}(function(t,n){if(t.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in t)t.innerHTML=n;else{for(ya=ya||document.createElement("div"),ya.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=ya.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function Ts(t,n){if(n){var r=t.firstChild;if(r&&r===t.lastChild&&r.nodeType===3){r.nodeValue=n;return}}t.textContent=n}var bs={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},k0=["Webkit","ms","Moz","O"];Object.keys(bs).forEach(function(t){k0.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),bs[n]=bs[t]})});function dg(t,n,r){return n==null||typeof n=="boolean"||n===""?"":r||typeof n!="number"||n===0||bs.hasOwnProperty(t)&&bs[t]?(""+n).trim():n+"px"}function pg(t,n){t=t.style;for(var r in n)if(n.hasOwnProperty(r)){var i=r.indexOf("--")===0,s=dg(r,n[r],i);r==="float"&&(r="cssFloat"),i?t.setProperty(r,s):t[r]=s}}var A0=Be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function wc(t,n){if(n){if(A0[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(V(137,t));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(V(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(V(61))}if(n.style!=null&&typeof n.style!="object")throw Error(V(62))}}function kc(t,n){if(t.indexOf("-")===-1)return typeof n.is=="str
38ing";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ac=null;function Od(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Sc=null,Li=null,vi=null;function uu(t){if(t=oa(t)){if(typeof Sc!="function")throw Error(V(280));var n=t.stateNode;n&&(n=Zo(n),Sc(t.stateNode,t.type,n))}}function ug(t){Li?vi?vi.push(t):vi=[t]:Li=t}function hg(){if(Li){var t=Li,n=vi;if(vi=Li=null,uu(t),n)for(t=0;t<n.length;t++)uu(n[t])}}function mg(t,n){return t(n)}function gg(){}var El=!1;function fg(t,n,r){if(El)return t(n,r);El=!0;try{return mg(t,n,r)}finally{El=!1,(Li!==null||vi!==null)&&(gg(),hg())}}function qs(t,n){var r=t.stateNode;if(r===null)return null;var i=Zo(r);if(i===null)return null;r=i[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(t=t.type,i=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!i;break e;default:t=!1}if(t)return null;if(r&&typeof r!="function")throw Error(V(231,n,typeof r));return r}var Ec=!1;if(On)try{var Wi={};Object.defineProperty(Wi,"passive",{get:function(){Ec=!0}}),window.addEventListener("test",Wi,Wi),window.removeEventListener("test",Wi,Wi)}catch{Ec=!1}function S0(t,n,r,i,s,a,o,c,l){var d=Array.prototype.slice.call(arguments,3);try{n.apply(r,d)}catch(p){this.onError(p)}}var ys=!1,ho=null,mo=!1,Nc=null,E0={onError:function(t){ys=!0,ho=t}};function N0(t,n,r,i,s,a,o,c,l){ys=!1,ho=null,S0.apply(E0,arguments)}function C0(t,n,r,i,s,a,o,c,l){if(N0.apply(this,arguments),ys){if(ys){var d=ho;ys=!1,ho=null}else throw Error(V(198));mo||(mo=!0,Nc=d)}}function Yr(t){var n=t,r=t;if(t.alternate)for(;n.return;)n=n.return;else{t=n;do n=t,n.flags&4098&&(r=n.return),t=n.return;while(t)}return n.tag===3?r:null}function xg(t){if(t.tag===13){var n=t.memoizedState;if(n===null&&(t=t.alternate,t!==null&&(n=t.memoizedState)),n!==null)return n.dehydrated}return null}function hu(t){if(Yr(t)!==t)throw Error(V(188))}function _0(t){var n=t.alternate;if(!n){if(n=Yr(t),n===null)throw Error(V(188));return n!==t?null:t}for(var r=t,i=n;;){var s=r.return;if(s===null)break;var a=s.alternate;if(a===null){if(i=s.return,i!==null){r=i;continue}break}if(s.child===a.child){for(a=s.child;a;){if(a===r)return hu(s),t;if(a===i)return hu(s),n;a=a.sibling}throw Error(V(188))}if(r.return!==i.return)r=s,i=a;else{for(var o=!1,c=s.child;c;){if(c===r){o=!0,r=s,i=a;break}if(c===i){o=!0,i=s,r=a;break}c=c.sibling}if(!o){for(c=a.child;c;){if(c===r){o=!0,r=a,i=s;break}if(c===i){o=!0,i=a,r=s;break}c=c.sibling}if(!o)throw Error(V(189))}}if(r.alternate!==i)throw Error(V(190))}if(r.tag!==3)throw Error(V(188));return r.stateNode.current===r?t:n}function Lg(t){return t=_0(t),t!==null?vg(t):null}function vg(t){if(t.tag===5||t.tag===6)return t;for(t=t.child;t!==null;){var n=vg(t);if(n!==null)return n;t=t.sibling}return null}var bg=Mt.unstable_scheduleCallback,mu=Mt.unstable_cancelCallback,T0=Mt.unstable_shouldYield,q0=Mt.unstable_requestPaint,Ye=Mt.unstable_now,F0=Mt.unstable_getCurrentPriorityLevel,Md=Mt.unstable_ImmediatePriority,yg=Mt.unstable_UserBlockingPriority,go=Mt.unstable_NormalPriority,O0=Mt.unstable_LowPriority,jg=Mt.unstable_IdlePriority,Yo=null,mn=null;function M0(t){if(mn&&typeof mn.onCommitFiberRoot=="function")try{mn.onCommitFiberRoot(Yo,t,void 0,(t.current.flags&128)===128)}catch{}}var an=Math.clz32?Math.clz32:I0,R0=Math.log,P0=Math.LN2;function I0(t){return t>>>=0,t===0?32:31-(R0(t)/P0|0)|0}var ja=64,wa=4194304;function ms(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function fo(t,n){var r=t.pendingLanes;if(r===0)return 0;var i=0,s=t.suspendedLanes,a=t.pingedLanes,o=r&268435455;if(o!==0){var c=o&~s;c!==0?i=ms(c):(a&=o,a!==0&&(i=ms(a)))}else o=r&~s,o!==0?i=ms(o):a!==0&&(i=ms(a));if(i===0)return 0;if(n!==0&&n!==i&&!(n&s)&&(s=i&-i,a=n&-n,s>=a||s===16&&(a&4194240)!==0))return n;if(i&4&&(i|=r&16),n=t.entangledLanes,n!==0)for(t=t.entanglements,n&=i;0<n;)r=31-an(n),s=1<<r,i|=t[r],n&=~s;return i}function D0(t,n){switch(t){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}
vendor: 4,496 bytes, line 38
38function z0(t,n){for(var r=t.suspendedLanes,i=t.pingedLanes,s=t.expirationTimes,a=t.pendingLanes;0<a;){var o=31-an(a),c=1<<o,l=s[o];l===-1?(!(c&r)||c&i)&&(s[o]=D0(c,n)):l<=n&&(t.expiredLanes|=c),a&=~c}}function Cc(t){return t=t.pendingLanes&-1073741825,t!==0?t:t&1073741824?1073741824:0}function wg(){var t=ja;return ja<<=1,!(ja&4194240)&&(ja=64),t}function Nl(t){for(var n=[],r=0;31>r;r++)n.push(t);return n}function sa(t,n,r){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-an(n),t[n]=r}function B0(t,n){var r=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var i=t.eventTimes;for(t=t.expirationTimes;0<r;){var s=31-an(r),a=1<<s;n[s]=0,i[s]=-1,t[s]=-1,r&=~a}}function Rd(t,n){var r=t.entangledLanes|=n;for(t=t.entanglements;r;){var i=31-an(r),s=1<<i;s&n|t[i]&n&&(t[i]|=n),r&=~s}}var Ce=0;function kg(t){return t&=-t,1<t?4<t?t&268435455?16:536870912:4:1}var Ag,Pd,Sg,Eg,Ng,_c=!1,ka=[],rr=null,ir=null,sr=null,Fs=new Map,Os=new Map,Jn=[],U0="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function gu(t,n){switch(t){case"focusin":case"focusout":rr=null;break;case"dragenter":case"dragleave":ir=null;break;case"mouseover":case"mouseout":sr=null;break;case"pointerover":case"pointerout":Fs.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Os.delete(n.pointerId)}}function Qi(t,n,r,i,s,a){return t===null||t.nativeEvent!==a?(t={blockedOn:n,domEventName:r,eventSystemFlags:i,nativeEvent:a,targetContainers:[s]},n!==null&&(n=oa(n),n!==null&&Pd(n)),t):(t.eventSystemFlags|=i,n=t.targetContainers,s!==null&&n.indexOf(s)===-1&&n.push(s),t)}function V0(t,n,r,i,s){switch(n){case"focusin":return rr=Qi(rr,t,n,r,i,s),!0;case"dragenter":return ir=Qi(ir,t,n,r,i,s),!0;case"mouseover":return sr=Qi(sr,t,n,r,i,s),!0;case"pointerover":var a=s.pointerId;return Fs.set(a,Qi(Fs.get(a)||null,t,n,r,i,s)),!0;case"gotpointercapture":return a=s.pointerId,Os.set(a,Qi(Os.get(a)||null,t,n,r,i,s)),!0}return!1}function Cg(t){var n=Ar(t.target);if(n!==null){var r=Yr(n);if(r!==null){if(n=r.tag,n===13){if(n=xg(r),n!==null){t.blockedOn=n,Ng(t.priority,function(){Sg(r)});return}}else if(n===3&&r.stateNode.current.memoizedState.isDehydrated){t.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}t.blockedOn=null}function $a(t){if(t.blockedOn!==null)return!1;for(var n=t.targetContainers;0<n.length;){var r=Tc(t.domEventName,t.eventSystemFlags,n[0],t.nativeEvent);if(r===null){r=t.nativeEvent;var i=new r.constructor(r.type,r);Ac=i,r.target.dispatchEvent(i),Ac=null}else return n=oa(r),n!==null&&Pd(n),t.blockedOn=r,!1;n.shift()}return!0}function fu(t,n,r){$a(t)&&r.delete(n)}function H0(){_c=!1,rr!==null&&$a(rr)&&(rr=null),ir!==null&&$a(ir)&&(ir=null),sr!==null&&$a(sr)&&(sr=null),Fs.forEach(fu),Os.forEach(fu)}function Zi(t,n){t.blockedOn===n&&(t.blockedOn=null,_c||(_c=!0,Mt.unstable_scheduleCallback(Mt.unstable_NormalPriority,H0)))}function Ms(t){function n(s){return Zi(s,t)}if(0<ka.length){Zi(ka[0],t);for(var r=1;r<ka.length;r++){var i=ka[r];i.blockedOn===t&&(i.blockedOn=null)}}for(rr!==null&&Zi(rr,t),ir!==null&&Zi(ir,t),sr!==null&&Zi(sr,t),Fs.forEach(n),Os.forEach(n),r=0;r<Jn.length;r++)i=Jn[r],i.blockedOn===t&&(i.blockedOn=null);for(;0<Jn.length&&(r=Jn[0],r.blockedOn===null);)Cg(r),r.blockedOn===null&&Jn.shift()}var bi=Un.ReactCurrentBatchConfig,xo=!0;function Y0(t,n,r,i){var s=Ce,a=bi.transition;bi.transition=null;try{Ce=1,Id(t,n,r,i)}finally{Ce=s,bi.transition=a}}function G0(t,n,r,i){var s=Ce,a=bi.transition;bi.transition=null;try{Ce=4,Id(t,n,r,i)}finally{Ce=s,bi.transition=a}}function Id(t,n,r,i){if(xo){var s=Tc(t,n,r,i);if(s===null)Il(t,n,i,Lo,r),gu(t,i);else if(V0(s,t,n,r,i))i.stopPropagation();else if(gu(t,i),n&4&&-1<U0.indexOf(t)){for(;s!==null;){var a=oa(s);if(a!==null&&Ag(a),a=Tc(t,n,r,i),a===null&&Il(t,n,i,Lo,r),a===s)break;s=a}s!==null&&i.stopPropagation()}else Il(t,n,i,null,r)}}var Lo=null;function Tc(t,n,r,i){if(Lo=null,t=Od(i),t=Ar(t),t!==null)if(n=Yr(t),n===null)t=null;else if(r=n.tag,r===13){if(t=xg(n),t!==null)return t;t=null}else if(r===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;t=null}else n!==t&&(t=null);return Lo=t,null}
vendor: 10,401 bytes, line 38
38function _g(t){switch(t){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(F0()){case Md:return 1;case yg:return 4;case go:case O0:return 16;case jg:return 536870912;default:return 16}default:return 16}}var Xn=null,Dd=null,Xa=null;function Tg(){if(Xa)return Xa;var t,n=Dd,r=n.length,i,s="value"in Xn?Xn.value:Xn.textContent,a=s.length;for(t=0;t<r&&n[t]===s[t];t++);var o=r-t;for(i=1;i<=o&&n[r-i]===s[a-i];i++);return Xa=s.slice(t,1<i?1-i:void 0)}function eo(t){var n=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function Aa(){return!0}function xu(){return!1}function It(t){function n(r,i,s,a,o){this._reactName=r,this._targetInst=s,this.type=i,this.nativeEvent=a,this.target=o,this.currentTarget=null;for(var c in t)t.hasOwnProperty(c)&&(r=t[c],this[c]=r?r(a):a[c]);return this.isDefaultPrevented=(a.defaultPrevented!=null?a.defaultPrevented:a.returnValue===!1)?Aa:xu,this.isPropagationStopped=xu,this}return Be(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=Aa)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=Aa)},persist:function(){},isPersistent:Aa}),n}var Oi={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},zd=It(Oi),aa=Be({},Oi,{view:0,detail:0}),W0=It(aa),Cl,_l,Ki,Go=Be({},aa,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Bd,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Ki&&(Ki&&t.type==="mousemove"?(Cl=t.screenX-Ki.screenX,_l=t.screenY-Ki.screenY):_l=Cl=0,Ki=t),Cl)},movementY:function(t){return"movementY"in t?t.movementY:_l}}),Lu=It(Go),Q0=Be({},Go,{dataTransfer:0}),Z0=It(Q0),K0=Be({},aa,{relatedTarget:0}),Tl=It(K0),J0=Be({},Oi,{animationName:0,elapsedTime:0,pseudoElement:0}),$0=It(J0),X0=Be({},Oi,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),eL=It(X0),tL=Be({},Oi,{data:0}),vu=It(tL),nL={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},rL={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},iL={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function sL(t){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(t):(t=iL[t])?!!n[t]:!1}function Bd(){return sL}var aL=Be({},aa,{key:function(t){if(t.key){var n=nL[t.key]||t.key;if(n!=="Unidentified")return n}return t.type==="keypress"?(t=eo(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?rL[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Bd,charCode:function(t){return t.type==="keypress"?eo(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?eo(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),oL=It(aL),lL=Be({},Go,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),bu=It(lL),cL=Be({},aa,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Bd}),dL=It(cL),pL=Be({},Oi,{propertyName:0,elapsedTime:0,pseudoElement:0}),uL=It(pL),hL=Be({},Go,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),mL=It(hL),gL=[9,13,27,32],Ud=On&&"CompositionEvent"in window,js=null;On&&"documentMode"in document&&(js=document.documentMode);var fL=On&&"TextEvent"in window&&!js,qg=On&&(!Ud||js&&8<js&&11>=js),yu=" ",ju=!1;function Fg(t,n){switch(t){case"keyup":return gL.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Og(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var oi=!1;function xL(t,n){switch(t){case"compositionend":return Og(n);case"keypress":return n.which!==32?null:(ju=!0,yu);case"textInput":return t=n.data,t===yu&&ju?null:t;default:return null}}function LL(t,n){if(oi)return t==="compositionend"||!Ud&&Fg(t,n)?(t=Tg(),Xa=Dd=Xn=null,oi=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return qg&&n.locale!=="ko"?null:n.data;default:return null}}var vL={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function wu(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n==="input"?!!vL[t.type]:n==="textarea"}function Mg(t,n,r,i){ug(i),n=vo(n,"onChange"),0<n.length&&(r=new zd("onChange","change",null,r,i),t.push({event:r,listeners:n}))}var ws=null,Rs=null;function bL(t){Gg(t,0)}function Wo(t){var n=di(t);if(sg(n))return t}function yL(t,n){if(t==="change")return n}var Rg=!1;if(On){var ql;if(On){var Fl="oninput"in document;if(!Fl){var ku=document.createElement("div");ku.setAttribute("oninput","return;"),Fl=typeof ku.oninput=="function"}ql=Fl}else ql=!1;Rg=ql&&(!document.documentMode||9<document.documentMode)}function Au(){ws&&(ws.detachEvent("onpropertychange",Pg),Rs=ws=null)}function Pg(t){if(t.propertyName==="value"&&Wo(Rs)){var n=[];Mg(n,Rs,t,Od(t)),fg(bL,n)}}function jL(t,n,r){t==="focusin"?(Au(),ws=n,Rs=r,ws.attachEvent("onpropertychange",Pg)):t==="focusout"&&Au()}function wL(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return Wo(Rs)}function kL(t,n){if(t==="click")return Wo(n)}function AL(t,n){if(t==="input"||t==="change")return Wo(n)}function SL(t,n){return t===n&&(t!==0||1/t===1/n)||t!==t&&n!==n}var ln=typeof Object.is=="function"?Object.is:SL;function Ps(t,n){if(ln(t,n))return!0;if(typeof t!="object"||t===null||typeof n!="object"||n===null)return!1;var r=Object.keys(t),i=Object.keys(n);if(r.length!==i.length)return!1;for(i=0;i<r.length;i++){var s=r[i];if(!hc.call(n,s)||!ln(t[s],n[s]))return!1}return!0}function Su(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function Eu(t,n){var r=Su(t);t=0;for(var i;r;){if(r.nodeType===3){if(i=t+r.textContent.length,t<=n&&i>=n)return{node:r,offset:n-t};t=i}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Su(r)}}function Ig(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?Ig(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Dg(){for(var t=window,n=uo();n instanceof t.HTMLIFrameElement;){try{var r=typeof n.contentWindow.location.href=="string"}catch{r=!1}if(r)t=n.contentWindow;else break;n=uo(t.document)}return n}function Vd(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function EL(t){var n=Dg(),r=t.focusedElem,i=t.selectionRange;if(n!==r&&r&&r.ownerDocument&&Ig(r.ownerDocument.documentElement,r)){if(i!==null&&Vd(r)){if(n=i.start,t=i.end,t===void 0&&(t=n),"selectionStart"in r)r.selectionStart=n,r.selectionEnd=Math.min(t,r.value.length);else if(t=(n=r.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var s=r.textContent.length,a=Math.min(i.start,s);i=i.end===void 0?a:Math.min(i.end,s),!t.extend&&a>i&&(s=i,i=a,a=s),s=Eu(r,a);var o=Eu(r,i);s&&o&&(t.rangeCount!==1||t.anchorNode!==s.node||t.anchorOffset!==s.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(n=n.createRange(),n.setStart(s.node,s.offset),t.removeAllRanges(),a>i?(t.addRange(n),t.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),t.addRange(n)))}}for(n=[],t=r;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r<n.length;r++)t=n[r],t.element.scrollLeft=t.left,t.element.scrollTop=t.top}}var NL=On&&"documentMode"in document&&11>=document.documentMode,li=null,qc=null,ks=null,Fc=!1;function Nu(t,n,r){var i=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Fc||li==null||li!==uo(i)||(i=li,"selectionStart"in i&&Vd(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focu
vendor: 4,501 bytes, line 38
38sNode:i.focusNode,focusOffset:i.focusOffset}),ks&&Ps(ks,i)||(ks=i,i=vo(qc,"onSelect"),0<i.length&&(n=new zd("onSelect","select",null,n,r),t.push({event:n,listeners:i}),n.target=li)))}function Sa(t,n){var r={};return r[t.toLowerCase()]=n.toLowerCase(),r["Webkit"+t]="webkit"+n,r["Moz"+t]="moz"+n,r}var ci={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ol={},zg={};On&&(zg=document.createElement("div").style,"AnimationEvent"in window||(delete ci.animationend.animation,delete ci.animationiteration.animation,delete ci.animationstart.animation),"TransitionEvent"in window||delete ci.transitionend.transition);function Qo(t){if(Ol[t])return Ol[t];if(!ci[t])return t;var n=ci[t],r;for(r in n)if(n.hasOwnProperty(r)&&r in zg)return Ol[t]=n[r];return t}var Bg=Qo("animationend"),Ug=Qo("animationiteration"),Vg=Qo("animationstart"),Hg=Qo("transitionend"),Yg=new Map,Cu="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function fr(t,n){Yg.set(t,n),Hr(n,[t])}for(var Ml=0;Ml<Cu.length;Ml++){var Rl=Cu[Ml],CL=Rl.toLowerCase(),_L=Rl[0].toUpperCase()+Rl.slice(1);fr(CL,"on"+_L)}fr(Bg,"onAnimationEnd");fr(Ug,"onAnimationIteration");fr(Vg,"onAnimationStart");fr("dblclick","onDoubleClick");fr("focusin","onFocus");fr("focusout","onBlur");fr(Hg,"onTransitionEnd");ki("onMouseEnter",["mouseout","mouseover"]);ki("onMouseLeave",["mouseout","mouseover"]);ki("onPointerEnter",["pointerout","pointerover"]);ki("onPointerLeave",["pointerout","pointerover"]);Hr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Hr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Hr("onBeforeInput",["compositionend","keypress","textInput","paste"]);Hr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Hr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Hr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gs="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),TL=new Set("cancel close invalid load scroll toggle".split(" ").concat(gs));function _u(t,n,r){var i=t.type||"unknown-event";t.currentTarget=r,C0(i,n,void 0,t),t.currentTarget=null}function Gg(t,n){n=(n&4)!==0;for(var r=0;r<t.length;r++){var i=t[r],s=i.event;i=i.listeners;e:{var a=void 0;if(n)for(var o=i.length-1;0<=o;o--){var c=i[o],l=c.instance,d=c.currentTarget;if(c=c.listener,l!==a&&s.isPropagationStopped())break e;_u(s,c,d),a=l}else for(o=0;o<i.length;o++){if(c=i[o],l=c.instance,d=c.currentTarget,c=c.listener,l!==a&&s.isPropagationStopped())break e;_u(s,c,d),a=l}}}if(mo)throw t=Nc,mo=!1,Nc=null,t}function Oe(t,n){var r=n[Ic];r===void 0&&(r=n[Ic]=new Set);var i=t+"__bubble";r.has(i)||(Wg(n,t,2,!1),r.add(i))}function Pl(t,n,r){var i=0;n&&(i|=4),Wg(r,t,i,n)}var Ea="_reactListening"+Math.random().toString(36).slice(2);function Is(t){if(!t[Ea]){t[Ea]=!0,eg.forEach(function(r){r!=="selectionchange"&&(TL.has(r)||Pl(r,!1,t),Pl(r,!0,t))});var n=t.nodeType===9?t:t.ownerDocument;n===null||n[Ea]||(n[Ea]=!0,Pl("selectionchange",!1,n))}}function Wg(t,n,r,i){switch(_g(n)){case 1:var s=Y0;break;case 4:s=G0;break;default:s=Id}r=s.bind(null,n,r,t),s=void 0,!Ec||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(s=!0),i?s!==void 0?t.addEventListener(n,r,{capture:!0,passive:s}):t.addEventListener(n,r,!0):s!==void 0?t.addEventListener(n,r,{passive:s}):t.addEventListener(n,r,!1)}function Il(t,n,r,i,s){var a=i;if(!(n&1)&&!(n&2)&&i!==null)e:for(;;){if(i===null)return;var o=i.tag;if(o===3||o===4){var c=i.stateNode.containerInfo;
vendor: 5,316 bytes, lines 38-39
38if(c===s||c.nodeType===8&&c.parentNode===s)break;if(o===4)for(o=i.return;o!==null;){var l=o.tag;if((l===3||l===4)&&(l=o.stateNode.containerInfo,l===s||l.nodeType===8&&l.parentNode===s))return;o=o.return}for(;c!==null;){if(o=Ar(c),o===null)return;if(l=o.tag,l===5||l===6){i=a=o;continue e}c=c.parentNode}}i=i.return}fg(function(){var d=a,p=Od(r),u=[];e:{var g=Yg.get(t);if(g!==void 0){var f=zd,L=t;switch(t){case"keypress":if(eo(r)===0)break e;case"keydown":case"keyup":f=oL;break;case"focusin":L="focus",f=Tl;break;case"focusout":L="blur",f=Tl;break;case"beforeblur":case"afterblur":f=Tl;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":f=Lu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":f=Z0;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":f=dL;break;case Bg:case Ug:case Vg:f=$0;break;case Hg:f=uL;break;case"scroll":f=W0;break;case"wheel":f=mL;break;case"copy":case"cut":case"paste":f=eL;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":f=bu}var v=(n&4)!==0,y=!v&&t==="scroll",h=v?g!==null?g+"Capture":null:g;v=[];for(var b=d,x;b!==null;){x=b;var A=x.stateNode;if(x.tag===5&&A!==null&&(x=A,h!==null&&(A=qs(b,h),A!=null&&v.push(Ds(b,A,x)))),y)break;b=b.return}0<v.length&&(g=new f(g,L,null,r,p),u.push({event:g,listeners:v}))}}if(!(n&7)){e:{if(g=t==="mouseover"||t==="pointerover",f=t==="mouseout"||t==="pointerout",g&&r!==Ac&&(L=r.relatedTarget||r.fromElement)&&(Ar(L)||L[Mn]))break e;if((f||g)&&(g=p.window===p?p:(g=p.ownerDocument)?g.defaultView||g.parentWindow:window,f?(L=r.relatedTarget||r.toElement,f=d,L=L?Ar(L):null,L!==null&&(y=Yr(L),L!==y||L.tag!==5&&L.tag!==6)&&(L=null)):(f=null,L=d),f!==L)){if(v=Lu,A="onMouseLeave",h="onMouseEnter",b="mouse",(t==="pointerout"||t==="pointerover")&&(v=bu,A="onPointerLeave",h="onPointerEnter",b="pointer"),y=f==null?g:di(f),x=L==null?g:di(L),g=new v(A,b+"leave",f,r,p),g.target=y,g.relatedTarget=x,A=null,Ar(p)===d&&(v=new v(h,b+"enter",L,r,p),v.target=x,v.relatedTarget=y,A=v),y=A,f&&L)t:{for(v=f,h=L,b=0,x=v;x;x=Xr(x))b++;for(x=0,A=h;A;A=Xr(A))x++;for(;0<b-x;)v=Xr(v),b--;for(;0<x-b;)h=Xr(h),x--;for(;b--;){if(v===h||h!==null&&v===h.alternate)break t;v=Xr(v),h=Xr(h)}v=null}else v=null;f!==null&&Tu(u,g,f,v,!1),L!==null&&y!==null&&Tu(u,y,L,v,!0)}}e:{if(g=d?di(d):window,f=g.nodeName&&g.nodeName.toLowerCase(),f==="select"||f==="input"&&g.type==="file")var w=yL;else if(wu(g))if(Rg)w=AL;else{w=wL;var S=jL}else(f=g.nodeName)&&f.toLowerCase()==="input"&&(g.type==="checkbox"||g.type==="radio")&&(w=kL);if(w&&(w=w(t,d))){Mg(u,w,r,p);break e}S&&S(t,g,d),t==="focusout"&&(S=g._wrapperState)&&S.controlled&&g.type==="number"&&bc(g,"number",g.value)}switch(S=d?di(d):window,t){case"focusin":(wu(S)||S.contentEditable==="true")&&(li=S,qc=d,ks=null);break;case"focusout":ks=qc=li=null;break;case"mousedown":Fc=!0;break;case"contextmenu":case"mouseup":case"dragend":Fc=!1,Nu(u,r,p);break;case"selectionchange":if(NL)break;case"keydown":case"keyup":Nu(u,r,p)}var E;if(Ud)e:{switch(t){case"compositionstart":var j="onCompositionStart";break e;case"compositionend":j="onCompositionEnd";break e;case"compositionupdate":j="onCompositionUpdate";break e}j=void 0}else oi?Fg(t,r)&&(j="onCompositionEnd"):t==="keydown"&&r.keyCode===229&&(j="onCompositionStart");j&&(qg&&r.locale!=="ko"&&(oi||j!=="onCompositionStart"?j==="onCompositionEnd"&&oi&&(E=Tg()):(Xn=p,Dd="value"in Xn?Xn.value:Xn.textContent,oi=!0)),S=vo(d,j),0<S.length&&(j=new vu(j,t,null,r,p),u.push({event:j,listeners:S}),E?j.data=E:(E=Og(r),E!==null&&(j.data=E)))),(E=fL?xL(t,r):LL(t,r))&&(d=vo(d,"onBeforeInput"),0<d.length&&(p=new vu("onBeforeInput","beforeinput",null,r,p),u.push({event:p,listeners:d}),p.data=E))}Gg(u,n)})}function Ds(t,n,r){return{instance:t,listener:n,currentTarget:r}}function vo(t,n){for(var r=n+"Capture",i=[];t!==null;){var s=t,a=s.stateNode;s.tag===5&&a!==null&&(s=a,a=qs(t,r),a!=null&&i.unshift(Ds(t,a,s)),a=qs(t,n),a!=null&&i.push(Ds(t,a,s))),t=t.return}return i}function Xr(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5);return t||null}function Tu(t,n,r,i,s){for(var a=n._reactName,o=[];r!==null&&r!==i;){var c=r,l=c.alternate,d=c.stateNode;if(l!==null&&l===i)break;c.tag===5&&d!==null&&(c=d,s?(l=qs(r,a),l!=null&&o.unshift(Ds(r,l,c))):s||(l=qs(r,a),l!=null&&o.push(Ds(r,l,c)))),r=r.return}o.length!==0&&t.push({event:n,listeners:o})}var qL=/\r\n?/g,FL=/\u0000|\uFFFD/g;function qu(t){return(typeof t=="string"?t:""+t).replace(qL,`
39`).replace(FL,"")}function Na(t,n,r){if(n=qu(n),qu(t)!==n&&r)throw Error(V(425))}function bo(){}var Oc=null,Mc=null;function Rc(t,n){return t==="textarea"||t==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Pc=typeof setTimeout=="function"?setTimeout:void 0,OL=typeof clearTimeout=="function"?clearTimeout:void 0,Fu=typeof Promise=="function"?Promise:void 0,ML=typeof queueMicrotask=="function"?queueMicrotask:typeof Fu<"u"?function(t){return Fu.resolve(null).then(t).cat
vendor: 4,824 bytes, line 39
39ch(RL)}:Pc;function RL(t){setTimeout(function(){throw t})}function Dl(t,n){var r=n,i=0;do{var s=r.nextSibling;if(t.removeChild(r),s&&s.nodeType===8)if(r=s.data,r==="/$"){if(i===0){t.removeChild(s),Ms(n);return}i--}else r!=="$"&&r!=="$?"&&r!=="$!"||i++;r=s}while(r);Ms(n)}function ar(t){for(;t!=null;t=t.nextSibling){var n=t.nodeType;if(n===1||n===3)break;if(n===8){if(n=t.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return t}function Ou(t){t=t.previousSibling;for(var n=0;t;){if(t.nodeType===8){var r=t.data;if(r==="$"||r==="$!"||r==="$?"){if(n===0)return t;n--}else r==="/$"&&n++}t=t.previousSibling}return null}var Mi=Math.random().toString(36).slice(2),hn="__reactFiber$"+Mi,zs="__reactProps$"+Mi,Mn="__reactContainer$"+Mi,Ic="__reactEvents$"+Mi,PL="__reactListeners$"+Mi,IL="__reactHandles$"+Mi;function Ar(t){var n=t[hn];if(n)return n;for(var r=t.parentNode;r;){if(n=r[Mn]||r[hn]){if(r=n.alternate,n.child!==null||r!==null&&r.child!==null)for(t=Ou(t);t!==null;){if(r=t[hn])return r;t=Ou(t)}return n}t=r,r=t.parentNode}return null}function oa(t){return t=t[hn]||t[Mn],!t||t.tag!==5&&t.tag!==6&&t.tag!==13&&t.tag!==3?null:t}function di(t){if(t.tag===5||t.tag===6)return t.stateNode;throw Error(V(33))}function Zo(t){return t[zs]||null}var Dc=[],pi=-1;function xr(t){return{current:t}}function Me(t){0>pi||(t.current=Dc[pi],Dc[pi]=null,pi--)}function qe(t,n){pi++,Dc[pi]=t.current,t.current=n}var mr={},ut=xr(mr),At=xr(!1),Fr=mr;function Ai(t,n){var r=t.type.contextTypes;if(!r)return mr;var i=t.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===n)return i.__reactInternalMemoizedMaskedChildContext;var s={},a;for(a in r)s[a]=n[a];return i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=s),s}function St(t){return t=t.childContextTypes,t!=null}function yo(){Me(At),Me(ut)}function Mu(t,n,r){if(ut.current!==mr)throw Error(V(168));qe(ut,n),qe(At,r)}function Qg(t,n,r){var i=t.stateNode;if(n=n.childContextTypes,typeof i.getChildContext!="function")return r;i=i.getChildContext();for(var s in i)if(!(s in n))throw Error(V(108,j0(t)||"Unknown",s));return Be({},r,i)}function jo(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||mr,Fr=ut.current,qe(ut,t),qe(At,At.current),!0}function Ru(t,n,r){var i=t.stateNode;if(!i)throw Error(V(169));r?(t=Qg(t,n,Fr),i.__reactInternalMemoizedMergedChildContext=t,Me(At),Me(ut),qe(ut,t)):Me(At),qe(At,r)}var En=null,Ko=!1,zl=!1;function Zg(t){En===null?En=[t]:En.push(t)}function DL(t){Ko=!0,Zg(t)}function Lr(){if(!zl&&En!==null){zl=!0;var t=0,n=Ce;try{var r=En;for(Ce=1;t<r.length;t++){var i=r[t];do i=i(!0);while(i!==null)}En=null,Ko=!1}catch(s){throw En!==null&&(En=En.slice(t+1)),bg(Md,Lr),s}finally{Ce=n,zl=!1}}return null}var ui=[],hi=0,wo=null,ko=0,Bt=[],Ut=0,Or=null,Cn=1,_n="";function wr(t,n){ui[hi++]=ko,ui[hi++]=wo,wo=t,ko=n}function Kg(t,n,r){Bt[Ut++]=Cn,Bt[Ut++]=_n,Bt[Ut++]=Or,Or=t;var i=Cn;t=_n;var s=32-an(i)-1;i&=~(1<<s),r+=1;var a=32-an(n)+s;if(30<a){var o=s-s%5;a=(i&(1<<o)-1).toString(32),i>>=o,s-=o,Cn=1<<32-an(n)+s|r<<s|i,_n=a+t}else Cn=1<<a|r<<s|i,_n=t}function Hd(t){t.return!==null&&(wr(t,1),Kg(t,1,0))}function Yd(t){for(;t===wo;)wo=ui[--hi],ui[hi]=null,ko=ui[--hi],ui[hi]=null;for(;t===Or;)Or=Bt[--Ut],Bt[Ut]=null,_n=Bt[--Ut],Bt[Ut]=null,Cn=Bt[--Ut],Bt[Ut]=null}var Ot=null,Ft=null,Pe=!1,sn=null;function Jg(t,n){var r=Vt(5,null,null,0);r.elementType="DELETED",r.stateNode=n,r.return=t,n=t.deletions,n===null?(t.deletions=[r],t.flags|=16):n.push(r)}function Pu(t,n){switch(t.tag){case 5:var r=t.type;return n=n.nodeType!==1||r.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(t.stateNode=n,Ot=t,Ft=ar(n.firstChild),!0):!1;case 6:return n=t.pendingProps===""||n.nodeType!==3?null:n,n!==null?(t.stateNode=n,Ot=t,Ft=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(r=Or!==null?{id:Cn,overflow:_n}:null,t.memoizedState={dehydrated:n,treeContext:r,retryLane:1073741824},r=Vt(18,null,null,0),r.stateNode=n,r.return=t,t.child=r,Ot=t,Ft=null,!0):!1;default:return!1}}function zc(t){return(t.mode&1)!==0&&(t.flags&128)===0}function Bc(t){if(Pe){var n=Ft;if(n){var r=n;if(!Pu(t,n)){if(zc(t))throw Error(V(418));n=ar(r.nextSibling);var i=Ot;n&&Pu(t,n)?Jg(i,r):(t.flags=t.flags&-4097|2,Pe=!1,Ot=t)}}else{if(zc(t))throw Error(V(418));t.flags=t.flags&-4097|2,Pe=!1,Ot=t}}}function Iu(t){for(t=t.return;t!==null&&t.tag!==5&&t.tag!==3&&t.tag!==13;)t=t.return;Ot=t}function Ca(t){if(t!==Ot)return!1;if(!Pe)return Iu(t),Pe=!0,!1;var n;if((n=t.tag!==3)&&!(n=t.tag!==5)&&(n=t.type,n=n!=="head"&&n!=="body"&&!Rc(t.type,t.memoizedProps)),n&&(n=Ft)){if(zc(t))throw $g(),Error(V(418));for(;n;)Jg(t,n),n=ar(n.nextSibling)}if(Iu(t),t.tag===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(V(317));e:{for(t=t.nextSibling,n=0;t;
vendor: 25,596 bytes, lines 39-41
39){if(t.nodeType===8){var r=t.data;if(r==="/$"){if(n===0){Ft=ar(t.nextSibling);break e}n--}else r!=="$"&&r!=="$!"&&r!=="$?"||n++}t=t.nextSibling}Ft=null}}else Ft=Ot?ar(t.stateNode.nextSibling):null;return!0}function $g(){for(var t=Ft;t;)t=ar(t.nextSibling)}function Si(){Ft=Ot=null,Pe=!1}function Gd(t){sn===null?sn=[t]:sn.push(t)}var zL=Un.ReactCurrentBatchConfig;function Ji(t,n,r){if(t=r.ref,t!==null&&typeof t!="function"&&typeof t!="object"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(V(309));var i=r.stateNode}if(!i)throw Error(V(147,t));var s=i,a=""+t;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===a?n.ref:(n=function(o){var c=s.refs;o===null?delete c[a]:c[a]=o},n._stringRef=a,n)}if(typeof t!="string")throw Error(V(284));if(!r._owner)throw Error(V(290,t))}return t}function _a(t,n){throw t=Object.prototype.toString.call(n),Error(V(31,t==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":t))}function Du(t){var n=t._init;return n(t._payload)}function Xg(t){function n(h,b){if(t){var x=h.deletions;x===null?(h.deletions=[b],h.flags|=16):x.push(b)}}function r(h,b){if(!t)return null;for(;b!==null;)n(h,b),b=b.sibling;return null}function i(h,b){for(h=new Map;b!==null;)b.key!==null?h.set(b.key,b):h.set(b.index,b),b=b.sibling;return h}function s(h,b){return h=dr(h,b),h.index=0,h.sibling=null,h}function a(h,b,x){return h.index=x,t?(x=h.alternate,x!==null?(x=x.index,x<b?(h.flags|=2,b):x):(h.flags|=2,b)):(h.flags|=1048576,b)}function o(h){return t&&h.alternate===null&&(h.flags|=2),h}function c(h,b,x,A){return b===null||b.tag!==6?(b=Wl(x,h.mode,A),b.return=h,b):(b=s(b,x),b.return=h,b)}function l(h,b,x,A){var w=x.type;return w===ai?p(h,b,x.props.children,A,x.key):b!==null&&(b.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Zn&&Du(w)===b.type)?(A=s(b,x.props),A.ref=Ji(h,b,x),A.return=h,A):(A=oo(x.type,x.key,x.props,null,h.mode,A),A.ref=Ji(h,b,x),A.return=h,A)}function d(h,b,x,A){return b===null||b.tag!==4||b.stateNode.containerInfo!==x.containerInfo||b.stateNode.implementation!==x.implementation?(b=Ql(x,h.mode,A),b.return=h,b):(b=s(b,x.children||[]),b.return=h,b)}function p(h,b,x,A,w){return b===null||b.tag!==7?(b=_r(x,h.mode,A,w),b.return=h,b):(b=s(b,x),b.return=h,b)}function u(h,b,x){if(typeof b=="string"&&b!==""||typeof b=="number")return b=Wl(""+b,h.mode,x),b.return=h,b;if(typeof b=="object"&&b!==null){switch(b.$$typeof){case va:return x=oo(b.type,b.key,b.props,null,h.mode,x),x.ref=Ji(h,null,b),x.return=h,x;case si:return b=Ql(b,h.mode,x),b.return=h,b;case Zn:var A=b._init;return u(h,A(b._payload),x)}if(hs(b)||Gi(b))return b=_r(b,h.mode,x,null),b.return=h,b;_a(h,b)}return null}function g(h,b,x,A){var w=b!==null?b.key:null;if(typeof x=="string"&&x!==""||typeof x=="number")return w!==null?null:c(h,b,""+x,A);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case va:return x.key===w?l(h,b,x,A):null;case si:return x.key===w?d(h,b,x,A):null;case Zn:return w=x._init,g(h,b,w(x._payload),A)}if(hs(x)||Gi(x))return w!==null?null:p(h,b,x,A,null);_a(h,x)}return null}function f(h,b,x,A,w){if(typeof A=="string"&&A!==""||typeof A=="number")return h=h.get(x)||null,c(b,h,""+A,w);if(typeof A=="object"&&A!==null){switch(A.$$typeof){case va:return h=h.get(A.key===null?x:A.key)||null,l(b,h,A,w);case si:return h=h.get(A.key===null?x:A.key)||null,d(b,h,A,w);case Zn:var S=A._init;return f(h,b,x,S(A._payload),w)}if(hs(A)||Gi(A))return h=h.get(x)||null,p(b,h,A,w,null);_a(b,A)}return null}function L(h,b,x,A){for(var w=null,S=null,E=b,j=b=0,O=null;E!==null&&j<x.length;j++){E.index>j?(O=E,E=null):O=E.sibling;var k=g(h,E,x[j],A);if(k===null){E===null&&(E=O);break}t&&E&&k.alternate===null&&n(h,E),b=a(k,b,j),S===null?w=k:S.sibling=k,S=k,E=O}if(j===x.length)return r(h,E),Pe&&wr(h,j),w;if(E===null){for(;j<x.length;j++)E=u(h,x[j],A),E!==null&&(b=a(E,b,j),S===null?w=E:S.sibling=E,S=E);return Pe&&wr(h,j),w}for(E=i(h,E);j<x.length;j++)O=f(E,h,j,x[j],A),O!==null&&(t&&O.alternate!==null&&E.delete(O.key===null?j:O.key),b=a(O,b,j),S===null?w=O:S.sibling=O,S=O);return t&&E.forEach(function(_){return n(h,_)}),Pe&&wr(h,j),w}function v(h,b,x,A){var w=Gi(x);if(typeof w!="function")throw Error(V(150));if(x=w.call(x),x==null)throw Error(V(151));for(var S=w=null,E=b,j=b=0,O=null,k=x.next();E!==null&&!k.done;j++,k=x.next()){E.index>j?(O=E,E=null):O=E.sibling;var _=g(h,E,k.value,A);if(_===null){E===null&&(E=O);break}t&&E&&_.alternate===null&&n(h,E),b=a(_,b,j),S===null?w=_:S.sibling=_,S=_,E=O}if(k.done)return r(h,E),Pe&&wr(h,j),w;if(E===null){for(;!k.done;j++,k=x.next())k=u(h,k.value,A),k!==null&&(b=a(k,b,j),S===null?w=k:S.sibling=k,S=k);return Pe&&wr(h,j),w}for(E=i(h,E);!k.done;j++,k=x.next())k=f(E,h,j,k.value,A),k!==null&&(t&&k.alternate!==null&&E.delete(k.key===null?j:k.key),b=a(k,b,j),S===null?w=k:S.sibling=k,S=k);return t&&E.forEach(function(N){return n(h,N)}),Pe&&wr(h,j),w}function y(h,b,x,A){if(typeof x=="object"&&x!==null&&x.type===ai&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case va:e:{for(var w=x.key,S=b;S!==null;){if(S.key===w){if(w=x.type,w===ai){if(S.tag===7){r(h,S.sibling),b=s(S,x.props.children),b.return=h,h=b;break e}}else if(S.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Zn&&Du(w)===S.type){r(h,S.sibling),b=s(S,x.props),b.ref=Ji(h,S,x),b.return=h,h=b;break e}r(h,S);break}else n(h,S);S=S.sibling}x.type===ai?(b=_r(x.props.children,h.mode,A,x.key),b.return=h,h=b):(A=oo(x.type,x.key,x.props,null,h.mode,A),A.ref=Ji(h,b,x),A.return=h,h=A)}return o(h);case si:e:{for(S=x.key;b!==null;){if(b.key===S)if(b.tag===4&&b.stateNode.containerInfo===x.containerInfo&&b.stateNode.implementation===x.implementation){r(h,b.sibling),b=s(b,x.children||[]),b.return=h,h=b;break e}else{r(h,b);break}else n(h,b);b=b.sibling}b=Ql(x,h.mode,A),b.return=h,h=b}return o(h);case Zn:return S=x._init,y(h,b,S(x._payload),A)}if(hs(x))return L(h,b,x,A);if(Gi(x))return v(h,b,x,A);_a(h,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,b!==null&&b.tag===6?(r(h,b.sibling),b=s(b,x),b.return=h,h=b):(r(h,b),b=Wl(x,h.mode,A),b.return=h,h=b),o(h)):r(h,b)}return y}var Ei=Xg(!0),ef=Xg(!1),Ao=xr(null),So=null,mi=null,Wd=null;function Qd(){Wd=mi=So=null}function Zd(t){var n=Ao.current;Me(Ao),t._currentValue=n}function Uc(t,n,r){for(;t!==null;){var i=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,i!==null&&(i.childLanes|=n)):i!==null&&(i.childLanes&n)!==n&&(i.childLanes|=n),t===r)break;t=t.return}}function yi(t,n){So=t,Wd=mi=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&n&&(kt=!0),t.firstContext=null)}function Wt(t){var n=t._currentValue;if(Wd!==t)if(t={context:t,memoizedValue:n,next:null},mi===null){if(So===null)throw Error(V(308));mi=t,So.dependencies={lanes:0,firstContext:t}}else mi=mi.next=t;return n}var Sr=null;function Kd(t){Sr===null?Sr=[t]:Sr.push(t)}function tf(t,n,r,i){var s=n.interleaved;return s===null?(r.next=r,Kd(n)):(r.next=s.next,s.next=r),n.interleaved=r,Rn(t,i)}function Rn(t,n){t.lanes|=n;var r=t.alternate;for(r!==null&&(r.lanes|=n),r=t,t=t.return;t!==null;)t.childLanes|=n,r=t.alternate,r!==null&&(r.childLanes|=n),r=t,t=t.return;return r.tag===3?r.stateNode:null}var Kn=!1;function Jd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nf(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function qn(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function or(t,n,r){var i=t.updateQueue;if(i===null)return null;if(i=i.shared,Ee&2){var s=i.pending;return s===null?n.next=n:(n.next=s.next,s.next=n),i.pending=n,Rn(t,r)}return s=i.interleaved,s===null?(n.next=n,Kd(i)):(n.next=s.next,s.next=n),i.interleaved=n,Rn(t,r)}function to(t,n,r){if(n=n.updateQueue,n!==null&&(n=n.shared,(r&4194240)!==0)){var i=n.lanes;i&=t.pendingLanes,r|=i,n.lanes=r,Rd(t,r)}}function zu(t,n){var r=t.updateQueue,i=t.alternate;if(i!==null&&(i=i.updateQueue,r===i)){var s=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?s=a=o:a=a.next=o,r=r.next}while(r!==null);a===null?s=a=n:a=a.next=n}else s=a=n;r={baseState:i.baseState,firstBaseUpdate:s,lastBaseUpdate:a,shared:i.shared,effects:i.effects},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=n:t.next=n,r.lastBaseUpdate=n}function Eo(t,n,r,i){var s=t.updateQueue;Kn=!1;var a=s.firstBaseUpdate,o=s.lastBaseUpdate,c=s.shared.pending;if(c!==null){s.shared.pending=null;var l=c,d=l.next;l.next=null,o===null?a=d:o.next=d,o=l;var p=t.alternate;p!==null&&(p=p.updateQueue,c=p.lastBaseUpdate,c!==o&&(c===null?p.firstBaseUpdate=d:c.next=d,p.lastBaseUpdate=l))}if(a!==null){var u=s.baseState;o=0,p=d=l=null,c=a;do{var g=c.lane,f=c.eventTime;if((i&g)===g){p!==null&&(p=p.next={eventTime:f,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});e:{var L=t,v=c;switch(g=n,f=r,v.tag){case 1:if(L=v.payload,typeof L=="function"){u=L.call(f,u,g);break e}u=L;break e;case 3:L.flags=L.flags&-65537|128;case 0:if(L=v.payload,g=typeof L=="function"?L.call(f,u,g):L,g==null)break e;u=Be({},u,g);break e;case 2:Kn=!0}}c.callback!==null&&c.lane!==0&&(t.flags|=64,g=s.effects,g===null?s.effects=[c]:g.push(c))}else f={eventTime:f,lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},p===null?(d=p=f,l=u):p=p.next=f,o|=g;if(c=c.next,c===null){if(c=s.shared.pending,c===null)break;g=c,c=g.next,g.next=null,s.lastBaseUpdate=g,s.shared.pending=null}}while(!0);if(p===null&&(l=u),s.baseState=l,s.firstBaseUpdate=d,s.lastBaseUpdate=p,n=s.shared.interleaved,n!==null){s=n;do o|=s.lane,s=s.next;while(s!==n)}else a===null&&(s.shared.lanes=0);Rr|=o,t.lanes=o,t.memoizedState=u}}function Bu(t,n,r){if(t=n.effects,n.effects=null,t!==null)for(n=0;n<t.length;n++){var i=t[n],s=i.callback;if(s!==null){if(i.callback=null,i=r,typeof s!="function")throw Error(V(191,s));s.call(i)}}}var la={},gn=xr(la),Bs=xr(la),Us=xr(la);function Er(t){if(t===la)throw Error(V(174));return t}function $d(t,n){switch(qe(Us,n),qe(Bs,t),qe(gn,la),t=n.nodeType,t){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:jc(null,"");break;default:t=t===8?n.parentNode:n,n=t.namespaceURI||null,t=t.tagName,n=jc(n,t)}Me(gn),qe(gn,n)}function Ni(){Me(gn),Me(Bs),Me(Us)}function rf(t){Er(Us.current);var n=Er(gn.current),r=jc(n,t.type);n!==r&&(qe(Bs,t),qe(gn,r))}function Xd(t){Bs.current===t&&(Me(gn),Me(Bs))}var De=xr(0);function No(t){for(var n=t;n!==null;){if(n.tag===13){var r=n.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if(n.flags&128)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Bl=[];function ep(){for(var t=0;t<Bl.length;t++)Bl[t]._workInProgressVersionPrimary=null;Bl.length=0}var no=Un.ReactCurrentDispatcher,Ul=Un.ReactCurrentBatchConfig,Mr=0,ze=null,Xe=null,nt=null,Co=!1,As=!1,Vs=0,BL=0;function ct(){throw Error(V(321))}function tp(t,n){if(n===null)return!1;for(var r=0;r<n.length&&r<t.length;r++)if(!ln(t[r],n[r]))return!1;return!0}function np(t,n,r,i,s,a){if(Mr=a,ze=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,no.current=t===null||t.memoizedState===null?YL:GL,t=r(i,s),As){a=0;do{if(As=!1,Vs=0,25<=a)throw Error(V(301));a+=1,nt=Xe=null,n.updateQueue=null,no.current=WL,t=r(i,s)}while(As)}if(no.current=_o,n=Xe!==null&&Xe.next!==null,Mr=0,nt=Xe=ze=null,Co=!1,n)throw Error(V(300));return t}function rp(){var t=Vs!==0;return Vs=0,t}function un(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nt===null?ze.memoizedState=nt=t:nt=nt.next=t,nt}function Qt(){if(Xe===null){var t=ze.alternate;t=t!==null?t.memoizedState:null}else t=Xe.next;var n=nt===null?ze.memoizedState:nt.next;if(n!==null)nt=n,Xe=t;else{if(t===null)throw Error(V(310));Xe=t,t={memoizedState:Xe.memoizedState,baseState:Xe.baseState,baseQueue:Xe.baseQueue,queue:Xe.queue,next:null},nt===null?ze.memoizedState=nt=t:nt=nt.next=t}return nt}function Hs(t,n){return typeof n=="function"?n(t):n}function Vl(t){var n=Qt(),r=n.queue;if(r===null)throw Error(V(311));r.lastRenderedReducer=t;var i=Xe,s=i.baseQueue,a=r.pending;if(a!==null){if(s!==null){var o=s.next;s.next=a.next,a.next=o}i.baseQueue=s=a,r.pending=null}if(s!==null){a=s.next,i=i.baseState;var c=o=null,l=null,d=a;do{var p=d.lane;if((Mr&p)===p)l!==null&&(l=l.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),i=d.hasEagerState?d.eagerState:t(i,d.action);else{var u={lane:p,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};l===null?(c=l=u,o=i):l=l.next=u,ze.lanes|=p,Rr|=p}d=d.next}while(d!==null&&d!==a);l===null?o=i:l.next=c,ln(i,n.memoizedState)||(kt=!0),n.memoizedState=i,n.baseState=o,n.baseQueue=l,r.lastRenderedState=i}if(t=r.interleaved,t!==null){s=t;do a=s.lane,ze.lanes|=a,Rr|=a,s=s.next;while(s!==t)}else s===null&&(r.lanes=0);return[n.memoizedState,r.dispatch]}function Hl(t){var n=Qt(),r=n.queue;if(r===null)throw Error(V(311));r.lastRenderedReducer=t;var i=r.dispatch,s=r.pending,a=n.memoizedState;if(s!==null){r.pending=null;var o=s=s.next;do a=t(a,o.action),o=o.next;while(o!==s);ln(a,n.memoizedState)||(kt=!0),n.memoizedState=a,n.baseQueue===null&&(n.baseState=a),r.lastRenderedState=a}return[a,i]}function sf(){}function af(t,n){var r=ze,i=Qt(),s=n(),a=!ln(i.memoizedState,s);if(a&&(i.memoizedState=s,kt=!0),i=i.queue,ip(cf.bind(null,r,i,t),[t]),i.getSnapshot!==n||a||nt!==null&&nt.memoizedState.tag&1){if(r.flags|=2048,Ys(9,lf.bind(null,r,i,s,n),void 0,null),rt===null)throw Error(V(349));Mr&30||of(r,n,s)}return s}function of(t,n,r){t.flags|=16384,t={getSnapshot:n,value:r},n=ze.updateQueue,n===null?(n={lastEffect:null,stores:null},ze.updateQueue=n,n.stores=[t]):(r=n.stores,r===null?n.stores=[t]:r.push(t))}function lf(t,n,r,i){n.value=r,n.getSnapshot=i,df(n)&&pf(t)}function cf(t,n,r){return r(function(){df(n)&&pf(t)})}function df(t){var n=t.getSnapshot;t=t.value;try{var r=n();return!ln(t,r)}catch{return!0}}function pf(t){var n=Rn(t,1);n!==null&&on(n,t,1,-1)}function Uu(t){var n=un();return typeof t=="function"&&(t=t()),n.memoizedState=n.baseState=t,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Hs,lastRenderedState:t},n.queue=t,t=t.dispatch=HL.bind(null,ze,t),[n.memoizedState,t]}function Ys(t,n,r,i){return t={tag:t,create:n,destroy:r,deps:i,next:null},n=ze.updateQueue,n===null?(n={lastEffect:null,stores:null},ze.updateQueue=n,n.lastEffect=t.next=t):(r=n.lastEffect,r===null?n.lastEffect=t.next=t:(i=r.next,r.next=t,t.next=i,n.lastEffect=t)),t}function uf(){return Qt().memoizedState}function ro(t,n,r,i){var s=un();ze.flags|=t,s.memoizedState=Ys(1|n,r,void 0,i===void 0?null:i)}function Jo(t,n,r,i){var s=Qt();i=i===void 0?null:i;var a=void 0;if(Xe!==null){var o=Xe.memoizedState;if(a=o.destroy,i!==null&&tp(i,o.deps)){s.memoizedState=Ys(n,r,a,i);return}}ze.flags|=t,s.memoizedState=Ys(1|n,r,a,i)}function Vu(t,n){return ro(8390656,8,t,n)}function ip(t,n){return Jo(2048,8,t,n)}function hf(t,n){return Jo(4,2,t,n)}function mf(t,n){return Jo(4,4,t,n)}function gf(t,n){if(typeof n=="function")return t=t(),n(t),function(){n(null)};if(n!=null)return t=t(),n.current=t,function(){n.current=null}}function ff(t,n,r){return r=r!=null?r.concat([t]):null,Jo(4,4,gf.bind(null,n,t),r)}function sp(){}function xf(t,n){var r=Qt();n=n===void 0?null:n;var i=r.memoizedState;return i!==null&&n!==null&&tp(n,i[1])?i[0]:(r.memoizedState=[t,n],t)}function Lf(t,n){var r=Qt();n=n===void 0?null:n;var i=r.memoizedState;return i!==null&&n!==null&&tp(n,i[1])?i[0]:(t=t(),r.memoizedState=[t,n],t)}function vf(t,n,r){return Mr&21?(ln(r,n)||(r=wg(),ze.lanes|=r,Rr|=r,t.baseState=!0),n):(t.baseState&&(t.baseState=!1,kt=!0),t.memoizedState=r)}function UL(t,n){var r=Ce;Ce=r!==0&&4>r?r:4,t(!0);var i=Ul.transition;Ul.transition={};try{t(!1),n()}finally{Ce=r,Ul.transition=i}}function bf(){return Qt().memoizedState}function VL(t,n,r){var i=cr(t);if(r={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null},yf(t))jf(n,r);else if(r=tf(t,n,r,i),r!==null){var s=xt();on(r,t,i,s),wf(r,n,i)}}function HL(t,n,r){var i=cr(t),s={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null};if(yf(t))jf(n,s);else{var a=t.alternate;if(t.lanes===0&&(a===null||a.lanes===0)&&(a=n.lastRenderedReducer,a!==null))try{var o=n.lastRenderedState,c=a(o,r);if(s.hasEagerState=!0,s.eagerState=c,ln(c,o)){var l=n.interleaved;l===null?(s.next=s,Kd(n)):(s.next=l.next,l.next=s),n.interleaved=s;return}}catch{}finally{}r=tf(t,n,s,i),r!==null&&(s=xt(),on(r,t,i,s),wf(r,n,i))}}function yf(t){var n=t.alternate;return t===ze||n!==null&&n===ze}function jf(t,n){As=Co=!0;var r=t.pending;r===null?n.next=n:(n.next=r.next,r.next=n),t.pending=n}function wf(t,n,r){if(r&4194240){var i=n.lanes;i&=t.pendingLanes,r|=i,n.lanes=r,Rd(t,r)}}var _o={readContext:Wt,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useInsertionEffect:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useDeferredValue:ct,useTransition:ct,useMutableSource:ct,useSyncExternalStore:ct,useId:ct,unstable_isNewReconciler:!1},YL={readContext:Wt,useCallback:function(t,n){return un().memoizedState=[t,n===void 0?null:n],t},useContext:Wt,useEffect:Vu,useImperativeHandle:function(t,n,r){return r=r!=null?r.concat([t]):null,ro(4194308,4,gf.bind(null,n,t),r)},useLayoutEffect:function(t,n){return ro(4194308,4,t,n)},useInsertionEffect:function(t,n){return ro(4,2,t,n)},useMemo:function(t,n){var r=un();return n=n===void 0?null:n,t=t(),r.memoizedState=[t,n],t},useReducer:function(t,n,r){var i=un();return n=r!==void 0?r(n):n,i.memoizedState=i.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},i.queue=t,t=t.dispatch=VL.bind(null,ze,t),[i.memoizedState,t]},useRef:function(t){var n=un();return t={current:t},n.memoizedState=t},useState:Uu,useDebugValue:sp,useDeferredValue:function(t){return un().memoizedState=t},useTransition:function(){var t=Uu(!1),n=t[0];return t=UL.bind(null,t[1]),un().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,n,r){var i=ze,s=un();if(Pe){if(r===void 0)throw Error(V(407));r=r()}else{if(r=n(),rt===null)throw Error(V(349));Mr&30||of(i,n,r)}s.memoizedState=r;var a={value:r,getSnapshot:n};return s.queue=a,Vu(cf.bind(null,i,a,t),[t]),i.flags|=2048,Ys(9,lf.bind(null,i,a,r,n),void 0,null),r},useId:function(){var t=un(),n=rt.identifierPrefix;if(Pe){var r=_n,i=Cn;r=(i&~(1<<32-an(i)-1)).toString(32)+r,n=":"+n+"R"+r,r=Vs++,0<r&&(n+="H"+r.toString(32)),n+=":"}else r=BL++,n=":"+n+"r"+r.toString(32)+":";return t.memoizedState=n},unstable_isNewReconciler:!1},GL={readContext:Wt,useCallback:xf,useContext:Wt,useEffect:ip,useImperativeHandle:ff,useInsertionEffect:hf,useLayoutEffect:mf,useMemo:Lf,useReducer:Vl,useRef:uf,useState:function(){return Vl(Hs)},useDebugValue:sp,useDeferredValue:function(t){var n=Qt();return vf(n,Xe.memoizedState,t)},useTransition:function(){var t=Vl(Hs)[0],n=Qt().memoizedState;return[t,n]},useMutableSource:sf,useSyncExternalStore:af,useId:bf,unstable_isNewReconciler:!1},WL={readContext:Wt,useCallback:xf,useContext:Wt,useEffect:ip,useImperativeHandle:ff,useInsertionEffect:hf,useLayoutEffect:mf,useMemo:Lf,useReducer:Hl,useRef:uf,useState:function(){return Hl(Hs)},useDebugValue:sp,useDeferredValue:function(t){var n=Qt();return Xe===null?n.memoizedState=t:vf(n,Xe.memoizedState,t)},useTransition:function(){var t=Hl(Hs)[0],n=Qt().memoizedState;return[t,n]},useMutableSource:sf,useSyncExternalStore:af,useId:bf,unstable_isNewReconciler:!1};function en(t,n){if(t&&t.defaultProps){n=Be({},n),t=t.defaultProps;for(var r in t)n[r]===void 0&&(n[r]=t[r]);return n}return n}function Vc(t,n,r,i){n=t.memoizedState,r=r(i,n),r=r==null?n:Be({},n,r),t.memoizedState=r,t.lanes===0&&(t.updateQueue.baseState=r)}var $o={isMounted:function(t){return(t=t._reactInternals)?Yr(t)===t:!1},enqueueSetState:function(t,n,r){t=t._reactInternals;var i=xt(),s=cr(t),a=qn(i,s);a.payload=n,r!=null&&(a.callback=r),n=or(t,a,s),n!==null&&(on(n,t,s,i),to(n,t,s))},enqueueReplaceState:function(t,n,r){t=t._reactInternals;var i=xt(),s=cr(t),a=qn(i,s);a.tag=1,a.payload=n,r!=null&&(a.callback=r),n=or(t,a,s),n!==null&&(on(n,t,s,i),to(n,t,s))},enqueueForceUpdate:function(t,n){t=t._reactInternals;var r=xt(),i=cr(t),s=qn(r,i);s.tag=2,n!=null&&(s.callback=n),n=or(t,s,i),n!==null&&(on(n,t,i,r),to(n,t,i))}};function Hu(t,n,r,i,s,a,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(i,a,o):n.prototype&&n.prototype.isPureReactComponent?!Ps(r,i)||!Ps(s,a):!0}function kf(t,n,r){var i=!1,s=mr,a=n.contextType;return typeof a=="object"&&a!==null?a=Wt(a):(s=St(n)?Fr:ut.current,i=n.contextTypes,a=(i=i!=null)?Ai(t,s):mr),n=new n(r,a),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=$o,t.stateNode=n,n._reactInternals=t,i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=s,t.__reactInternalMemoizedMaskedChildContext=a),n}function Yu(t,n,r,i){t=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(r,i),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(r,i),n.state!==t&&$o.enqueueReplaceState(n,n.state,null)}function Hc(t,n,r,i){var s=t.stateNode;s.props=r,s.state=t.memoizedState,s.refs={},Jd(t);var a=n.contextType;typeof a=="object"&&a!==null?s.context=Wt(a):(a=St(n)?Fr:ut.current,s.context=Ai(t,a)),s.state=t.memoizedState,a=n.getDerivedStateFromProps,typeof a=="function"&&(Vc(t,n,a,r),s.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof s.getSnapshotBeforeUpdate=="function"||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(n=s.state,typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount(),n!==s.state&&$o.enqueueReplaceState(s,s.state,null),Eo(t,r,s,i),s.state=t.memoizedState),typeof s.componentDidMount=="function"&&(t.flags|=4194308)}function Ci(t,n){try{var r="",i=n;do r+=y0(i),i=i.return;while(i);var s=r}catch(a){s=`
40Error generating stack: `+a.message+`
41`+a.stack}return{value:t,source:n,stack:s,digest:null}}function Yl(t,n,r){return{value:t,source:null,stack:r??null,digest:n??null}}function Yc(t,n){try{console.error(n.value)}catch(r){setTimeout(function(){throw r})}}var QL=typeof WeakMap=="function"?WeakMap:Map;function Af(t,n,r){r=qn(-1,r),r.tag=3,r.payload={element:null};var i=n.value;return r.callback=function(){qo||(qo=!0,td=i),Yc(t,n)},r}function Sf(t,n,r){r=qn(-1,r),r.tag=3;var i=t.type.getDerivedStateFromError;if(typeof i=="function"){var s=n.value;r.payload=function(){return i(s)},r.callback=function(){Yc(t,n)}}var a=t.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(r.callback=function(){Yc(t,n),typeof i!="function"&&(lr===null?lr=new Set([this]):lr.add(this));var o=n.stack;this.componentDidCatch(n.value,{componentStack:o!==null?o:""})}),r}function Gu(t,n,r){var i=t.pingCache;if(i===null){i=t.pingCache=new QL;var s=new Set;i.set(n,s)}else s=i.get(n),s===void 0&&(s=new Set,i.set(n,s));s.has(r)||(s.add(r),t=lv.bind(null,t,n,r),n.then(t,t))}function Wu(t){do{var n;if((n=t.tag===13)&&(n=t.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return t;t=t.return}while(t!==null);return null}function Qu(t,n,r,i,s){return t.mode&1?(t.flags|=65536,t.lanes=s,t):(t===n?t.flags|=65536:(t.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(n=qn(-1,1),n.tag=2,or(r,n,1))),r.lanes|=1),t)}var ZL=Un.ReactCurrentOwner,kt=!1;function gt(t,n,r,i){n.child=t===null?ef(n,null,r,i):Ei(n,t.child,r,i)}function Zu(t,n,r,i,s){r=r.render;var a=n.ref;return yi(n,s),i=np(t,n,r,i,a,s),r=rp(),t!==null&&!kt?(n.updateQueue=t.updateQueue,n.flags&=-2053,t.lanes&=~s,Pn(t,n,s)):(Pe&&r&&Hd(n),n.flags|=1,gt(t,n,i,s),n.child)}function Ku(t,n,r,i,s){if(t===null){var a=r.type;return typeof a=="function"&&!hp(a)&&a.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(n.tag=15,n.type=a,Ef(t,n,a,i,s)):(t=oo(r.type,null,i,n,n.mode,s),t.ref=n.ref,t.return=n,n.child=t)}if(a=t.child,!(t.lanes&s)){var o=a.memoizedProps;if(r=r.compare,r=r!==null?r:Ps,r(o,i)&&t.ref===n.ref)return Pn(t,n,s)}return n.flags|=1,t=dr(a,i),t.ref=n.ref,t.return=n,n.child=t}function Ef(t,n,r,i,s){if(t!==null){var a=t.memoizedProps;if(Ps(a,i)&&t.ref===n.ref)if(kt=!1,n.pendingProps=i=a,(t.lanes&s)!==0)t.flags&131072&&(kt=!0);else return n.lanes=t.lanes,Pn(t,n,s)}return Gc(t,n,r,i,s)}function Nf(t,n,r){var i=n.pendingProps,s=i.children,a=t!==null?t.memoizedState:null;if(i.mode==="hidden")if(!(n.mode&1))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},qe(fi,qt),qt|=r;else{if(!(r&1073741824))return t=a!==null?a.baseLanes|r:r,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:t,cachePool:null,transitions:null},n.updateQueue=null,qe(fi,qt),qt|=t,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},i=a!==null?a.baseLanes:r,qe(fi,qt),qt|=i}else a!==null?(i=a.baseLanes|r,n.memoizedState=null):i=r,qe(fi,qt),qt|=i;return gt(t,n,s,r),n.child}function Cf(t,n){var r=n.ref;(t===null&&r!==null||t!==null&&t.ref!==r)&&(n.flags|=512,n.flags|=2097152)}
vendor: 4,057 bytes, line 41
41function Gc(t,n,r,i,s){var a=St(r)?Fr:ut.current;return a=Ai(n,a),yi(n,s),r=np(t,n,r,i,a,s),i=rp(),t!==null&&!kt?(n.updateQueue=t.updateQueue,n.flags&=-2053,t.lanes&=~s,Pn(t,n,s)):(Pe&&i&&Hd(n),n.flags|=1,gt(t,n,r,s),n.child)}function Ju(t,n,r,i,s){if(St(r)){var a=!0;jo(n)}else a=!1;if(yi(n,s),n.stateNode===null)io(t,n),kf(n,r,i),Hc(n,r,i,s),i=!0;else if(t===null){var o=n.stateNode,c=n.memoizedProps;o.props=c;var l=o.context,d=r.contextType;typeof d=="object"&&d!==null?d=Wt(d):(d=St(r)?Fr:ut.current,d=Ai(n,d));var p=r.getDerivedStateFromProps,u=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function";u||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(c!==i||l!==d)&&Yu(n,o,i,d),Kn=!1;var g=n.memoizedState;o.state=g,Eo(n,i,o,s),l=n.memoizedState,c!==i||g!==l||At.current||Kn?(typeof p=="function"&&(Vc(n,r,p,i),l=n.memoizedState),(c=Kn||Hu(n,r,c,i,g,l,d))?(u||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(n.flags|=4194308)):(typeof o.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=i,n.memoizedState=l),o.props=i,o.state=l,o.context=d,i=c):(typeof o.componentDidMount=="function"&&(n.flags|=4194308),i=!1)}else{o=n.stateNode,nf(t,n),c=n.memoizedProps,d=n.type===n.elementType?c:en(n.type,c),o.props=d,u=n.pendingProps,g=o.context,l=r.contextType,typeof l=="object"&&l!==null?l=Wt(l):(l=St(r)?Fr:ut.current,l=Ai(n,l));var f=r.getDerivedStateFromProps;(p=typeof f=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(c!==u||g!==l)&&Yu(n,o,i,l),Kn=!1,g=n.memoizedState,o.state=g,Eo(n,i,o,s);var L=n.memoizedState;c!==u||g!==L||At.current||Kn?(typeof f=="function"&&(Vc(n,r,f,i),L=n.memoizedState),(d=Kn||Hu(n,r,d,i,g,L,l)||!1)?(p||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(i,L,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(i,L,l)),typeof o.componentDidUpdate=="function"&&(n.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof o.componentDidUpdate!="function"||c===t.memoizedProps&&g===t.memoizedState||(n.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||c===t.memoizedProps&&g===t.memoizedState||(n.flags|=1024),n.memoizedProps=i,n.memoizedState=L),o.props=i,o.state=L,o.context=l,i=d):(typeof o.componentDidUpdate!="function"||c===t.memoizedProps&&g===t.memoizedState||(n.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||c===t.memoizedProps&&g===t.memoizedState||(n.flags|=1024),i=!1)}return Wc(t,n,r,i,a,s)}function Wc(t,n,r,i,s,a){Cf(t,n);var o=(n.flags&128)!==0;if(!i&&!o)return s&&Ru(n,r,!1),Pn(t,n,a);i=n.stateNode,ZL.current=n;var c=o&&typeof r.getDerivedStateFromError!="function"?null:i.render();return n.flags|=1,t!==null&&o?(n.child=Ei(n,t.child,null,a),n.child=Ei(n,null,c,a)):gt(t,n,c,a),n.memoizedState=i.state,s&&Ru(n,r,!0),n.child}function _f(t){var n=t.stateNode;n.pendingContext?Mu(t,n.pendingContext,n.pendingContext!==n.context):n.context&&Mu(t,n.context,!1),$d(t,n.containerInfo)}function $u(t,n,r,i,s){return Si(),Gd(s),n.flags|=256,gt(t,n,r,i),n.child}var Qc={dehydrated:null,treeContext:null,retryLane:0};function Zc(t){return{baseLanes:t,cachePool:null,transitions:null}}function Tf(t,n,r){var i=n.pendingProps,s=De.current,a=!1,o=(n.flags&128)!==0,c;if((c=o)||(c=t!==null&&t.memoizedState===null?!1:(s&2)!==0),c?(a=!0,n.flags&=-129):(t===null||t.memoizedState!==null)&&(s|=1),qe(De,s&1),t===null)return Bc(n),t=n.memoizedState,t!==null&&(t=t.dehydrated,t!==null)?(n.mode&1?t.data==="$!"?n.lanes=8:n.lanes=1073741824:n.lanes=1,null):(o=i.children,t=i.fallback,a?(i=n.mode,a=n.child,o={mode:"hidden",children:o}
vendor: 9,110 bytes, line 41
41,!(i&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=tl(o,i,0,null),t=_r(t,i,r,null),a.return=n,t.return=n,a.sibling=t,n.child=a,n.child.memoizedState=Zc(r),n.memoizedState=Qc,t):ap(n,o));if(s=t.memoizedState,s!==null&&(c=s.dehydrated,c!==null))return KL(t,n,o,i,c,s,r);if(a){a=i.fallback,o=n.mode,s=t.child,c=s.sibling;var l={mode:"hidden",children:i.children};return!(o&1)&&n.child!==s?(i=n.child,i.childLanes=0,i.pendingProps=l,n.deletions=null):(i=dr(s,l),i.subtreeFlags=s.subtreeFlags&14680064),c!==null?a=dr(c,a):(a=_r(a,o,r,null),a.flags|=2),a.return=n,i.return=n,i.sibling=a,n.child=i,i=a,a=n.child,o=t.child.memoizedState,o=o===null?Zc(r):{baseLanes:o.baseLanes|r,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=t.childLanes&~r,n.memoizedState=Qc,i}return a=t.child,t=a.sibling,i=dr(a,{mode:"visible",children:i.children}),!(n.mode&1)&&(i.lanes=r),i.return=n,i.sibling=null,t!==null&&(r=n.deletions,r===null?(n.deletions=[t],n.flags|=16):r.push(t)),n.child=i,n.memoizedState=null,i}function ap(t,n){return n=tl({mode:"visible",children:n},t.mode,0,null),n.return=t,t.child=n}function Ta(t,n,r,i){return i!==null&&Gd(i),Ei(n,t.child,null,r),t=ap(n,n.pendingProps.children),t.flags|=2,n.memoizedState=null,t}function KL(t,n,r,i,s,a,o){if(r)return n.flags&256?(n.flags&=-257,i=Yl(Error(V(422))),Ta(t,n,o,i)):n.memoizedState!==null?(n.child=t.child,n.flags|=128,null):(a=i.fallback,s=n.mode,i=tl({mode:"visible",children:i.children},s,0,null),a=_r(a,s,o,null),a.flags|=2,i.return=n,a.return=n,i.sibling=a,n.child=i,n.mode&1&&Ei(n,t.child,null,o),n.child.memoizedState=Zc(o),n.memoizedState=Qc,a);if(!(n.mode&1))return Ta(t,n,o,null);if(s.data==="$!"){if(i=s.nextSibling&&s.nextSibling.dataset,i)var c=i.dgst;return i=c,a=Error(V(419)),i=Yl(a,i,void 0),Ta(t,n,o,i)}if(c=(o&t.childLanes)!==0,kt||c){if(i=rt,i!==null){switch(o&-o){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=s&(i.suspendedLanes|o)?0:s,s!==0&&s!==a.retryLane&&(a.retryLane=s,Rn(t,s),on(i,t,s,-1))}return up(),i=Yl(Error(V(421))),Ta(t,n,o,i)}return s.data==="$?"?(n.flags|=128,n.child=t.child,n=cv.bind(null,t),s._reactRetry=n,null):(t=a.treeContext,Ft=ar(s.nextSibling),Ot=n,Pe=!0,sn=null,t!==null&&(Bt[Ut++]=Cn,Bt[Ut++]=_n,Bt[Ut++]=Or,Cn=t.id,_n=t.overflow,Or=n),n=ap(n,i.children),n.flags|=4096,n)}function Xu(t,n,r){t.lanes|=n;var i=t.alternate;i!==null&&(i.lanes|=n),Uc(t.return,n,r)}function Gl(t,n,r,i,s){var a=t.memoizedState;a===null?t.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:i,tail:r,tailMode:s}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=i,a.tail=r,a.tailMode=s)}function qf(t,n,r){var i=n.pendingProps,s=i.revealOrder,a=i.tail;if(gt(t,n,i.children,r),i=De.current,i&2)i=i&1|2,n.flags|=128;else{if(t!==null&&t.flags&128)e:for(t=n.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&Xu(t,r,n);else if(t.tag===19)Xu(t,r,n);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break e;for(;t.sibling===null;){if(t.return===null||t.return===n)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}i&=1}if(qe(De,i),!(n.mode&1))n.memoizedState=null;else switch(s){case"forwards":for(r=n.child,s=null;r!==null;)t=r.alternate,t!==null&&No(t)===null&&(s=r),r=r.sibling;r=s,r===null?(s=n.child,n.child=null):(s=r.sibling,r.sibling=null),Gl(n,!1,s,r,a);break;case"backwards":for(r=null,s=n.child,n.child=null;s!==null;){if(t=s.alternate,t!==null&&No(t)===null){n.child=s;break}t=s.sibling,s.sibling=r,r=s,s=t}Gl(n,!0,r,null,a);break;case"together":Gl(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function io(t,n){!(n.mode&1)&&t!==null&&(t.alternate=null,n.alternate=null,n.flags|=2)}function Pn(t,n,r){if(t!==null&&(n.dependencies=t.dependencies),Rr|=n.lanes,!(r&n.childLanes))return null;if(t!==null&&n.child!==t.child)throw Error(V(153));if(n.child!==null){for(t=n.child,r=dr(t,t.pendingProps),n.child=r,r.return=n;t.sibling!==null;)t=t.sibling,r=r.sibling=dr(t,t.pendingProps),r.return=n;r.sibling=null}return n.child}function JL(t,n,r){switch(n.tag){case 3:_f(n),Si();break;case 5:rf(n);break;case 1:St(n.type)&&jo(n);break;case 4:$d(n,n.stateNode.containerInfo);break;case 10:var i=n.type._context,s=n.memoizedProps.value;qe(Ao,i._currentValue),i._currentValue=s;break;case 13:if(i=n.memoizedState,i!==null)return i.dehydrated!==null?(qe(De,De.current&1),n.flags|=128,null):r&n.child.childLanes?Tf(t,n,r):(qe(De,De.current&1),t=Pn(t,n,r),t!==null?t.sibling:null);qe(De,De.current&1);break;case 19:if(i=(r&n.childLanes)!==0,t.flags&128){if(i)return qf(t,n,r);n.flags|=128}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),qe(De,De.current),i)break;return null;case 22:case 23:return n.lanes=0,Nf(t,n,r)}return Pn(t,n,r)}var Ff,Kc,Of,Mf;Ff=function(t,n){for(var r=n.child;r!==null;){if(r.tag===5||r.tag===6)t.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===n)break;for(;r.sibling===null;){if(r.return===null||r.return===n)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};Kc=function(){};Of=function(t,n,r,i){var s=t.memoizedProps;if(s!==i){t=n.stateNode,Er(gn.current);var a=null;switch(r){case"input":s=Lc(t,s),i=Lc(t,i),a=[];break;case"select":s=Be({},s,{value:void 0}),i=Be({},i,{value:void 0}),a=[];break;case"textarea":s=yc(t,s),i=yc(t,i),a=[];break;default:typeof s.onClick!="function"&&typeof i.onClick=="function"&&(t.onclick=bo)}wc(r,i);var o;r=null;for(d in s)if(!i.hasOwnProperty(d)&&s.hasOwnProperty(d)&&s[d]!=null)if(d==="style"){var c=s[d];for(o in c)c.hasOwnProperty(o)&&(r||(r={}),r[o]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(_s.hasOwnProperty(d)?a||(a=[]):(a=a||[]).push(d,null));for(d in i){var l=i[d];if(c=s!=null?s[d]:void 0,i.hasOwnProperty(d)&&l!==c&&(l!=null||c!=null))if(d==="style")if(c){for(o in c)!c.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(r||(r={}),r[o]="");for(o in l)l.hasOwnProperty(o)&&c[o]!==l[o]&&(r||(r={}),r[o]=l[o])}else r||(a||(a=[]),a.push(d,r)),r=l;else d==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,c=c?c.__html:void 0,l!=null&&c!==l&&(a=a||[]).push(d,l)):d==="children"?typeof l!="string"&&typeof l!="number"||(a=a||[]).push(d,""+l):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(_s.hasOwnProperty(d)?(l!=null&&d==="onScroll"&&Oe("scroll",t),a||c===l||(a=[])):(a=a||[]).push(d,l))}r&&(a=a||[]).push("style",r);var d=a;(n.updateQueue=d)&&(n.flags|=4)}};Mf=function(t,n,r,i){r!==i&&(n.flags|=4)};function $i(t,n){if(!Pe)switch(t.tailMode){case"hidden":n=t.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t.tail=null:r.sibling=null;break;case"collapsed":r=t.tail;for(var i=null;r!==null;)r.alternate!==null&&(i=r),r=r.sibling;i===null?n||t.tail===null?t.tail=null:t.tail.sibling=null:i.sibling=null}}function dt(t){var n=t.alternate!==null&&t.alternate.child===t.child,r=0,i=0;if(n)for(var s=t.child;s!==null;)r|=s.lanes|s.childLanes,i|=s.subtreeFlags&14680064,i|=s.flags&14680064,s.return=t,s=s.sibling;else for(s=t.child;s!==null;)r|=s.lanes|s.childLanes,i|=s.subtreeFlags,i|=s.flags,s.return=t,s=s.sibling;return t.subtreeFlags|=i,t.childLanes=r,n}function $L(t,n,r){var i=n.pendingProps;switch(Yd(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return dt(n),null;case 1:return St(n.type)&&yo(),dt(n),null;case 3:return i=n.stateNode,Ni(),Me(At),Me(ut),ep(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(t===null||t.child===null)&&(Ca(n)?n.flags|=4:t===null||t.memoizedState.isDehydrated&&!(n.flags&256)||(n.flags|=1024,sn!==null&&(id(sn),sn=null))),Kc(t,n),dt(n),null;case 5:Xd(n);var s=Er(Us.current);if(r=n.type,t!==null&&n.stateNode!=null)Of(t,n,r,i,s),t.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!i){if(n.stateNode===null)throw Error(V(166));return dt(n),null}if(t=Er(gn.current),Ca(n)){i=n.stateNode,r=n.type;var a=n.memoizedProps;switch(i[hn]=n,i[zs]=a,t=(n.mode&1)!==0,r){case"dialog":Oe("cancel",i),Oe("close",i);break;case"iframe":case"object":case"embed":Oe("load",i);break;case"video":case"audio":for(s=0;s<gs.length;s++)Oe(gs[s],i);break;case"source":Oe("error",i);break;case"img":case"image":case"link":Oe("error",i),Oe("load",i);break;case"details":Oe("toggle",i);break;case"input":lu(i,a),Oe("invalid",i);break;case"select":i._wrapperState={wasMultiple:!!a.multiple},Oe("invalid",i);break;case"textarea":du(i,a),Oe("invalid",i)}wc(r,a),s=null;for(var o in a)if(a.hasOwnProperty(o)){var c=a[o];o==="children"?typeof c=="string"?i.textContent!==c&&(a.suppressHydrationWarning!==!0&&Na(i.textContent,c,t),s=["children",c]):typeof c=="number"&&i.textContent!==""+c&&(a.suppressHydrationWarning!==!0&&Na(i.textContent,c,t),s=["children",""+c
vendor: 29,785 bytes, line 41
41]):_s.hasOwnProperty(o)&&c!=null&&o==="onScroll"&&Oe("scroll",i)}switch(r){case"input":ba(i),cu(i,a,!0);break;case"textarea":ba(i),pu(i);break;case"select":case"option":break;default:typeof a.onClick=="function"&&(i.onclick=bo)}i=s,n.updateQueue=i,i!==null&&(n.flags|=4)}else{o=s.nodeType===9?s:s.ownerDocument,t==="http://www.w3.org/1999/xhtml"&&(t=lg(r)),t==="http://www.w3.org/1999/xhtml"?r==="script"?(t=o.createElement("div"),t.innerHTML="<script><\/script>",t=t.removeChild(t.firstChild)):typeof i.is=="string"?t=o.createElement(r,{is:i.is}):(t=o.createElement(r),r==="select"&&(o=t,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):t=o.createElementNS(t,r),t[hn]=n,t[zs]=i,Ff(t,n,!1,!1),n.stateNode=t;e:{switch(o=kc(r,i),r){case"dialog":Oe("cancel",t),Oe("close",t),s=i;break;case"iframe":case"object":case"embed":Oe("load",t),s=i;break;case"video":case"audio":for(s=0;s<gs.length;s++)Oe(gs[s],t);s=i;break;case"source":Oe("error",t),s=i;break;case"img":case"image":case"link":Oe("error",t),Oe("load",t),s=i;break;case"details":Oe("toggle",t),s=i;break;case"input":lu(t,i),s=Lc(t,i),Oe("invalid",t);break;case"option":s=i;break;case"select":t._wrapperState={wasMultiple:!!i.multiple},s=Be({},i,{value:void 0}),Oe("invalid",t);break;case"textarea":du(t,i),s=yc(t,i),Oe("invalid",t);break;default:s=i}wc(r,s),c=s;for(a in c)if(c.hasOwnProperty(a)){var l=c[a];a==="style"?pg(t,l):a==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&cg(t,l)):a==="children"?typeof l=="string"?(r!=="textarea"||l!=="")&&Ts(t,l):typeof l=="number"&&Ts(t,""+l):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(_s.hasOwnProperty(a)?l!=null&&a==="onScroll"&&Oe("scroll",t):l!=null&&_d(t,a,l,o))}switch(r){case"input":ba(t),cu(t,i,!1);break;case"textarea":ba(t),pu(t);break;case"option":i.value!=null&&t.setAttribute("value",""+hr(i.value));break;case"select":t.multiple=!!i.multiple,a=i.value,a!=null?xi(t,!!i.multiple,a,!1):i.defaultValue!=null&&xi(t,!!i.multiple,i.defaultValue,!0);break;default:typeof s.onClick=="function"&&(t.onclick=bo)}switch(r){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}}i&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return dt(n),null;case 6:if(t&&n.stateNode!=null)Mf(t,n,t.memoizedProps,i);else{if(typeof i!="string"&&n.stateNode===null)throw Error(V(166));if(r=Er(Us.current),Er(gn.current),Ca(n)){if(i=n.stateNode,r=n.memoizedProps,i[hn]=n,(a=i.nodeValue!==r)&&(t=Ot,t!==null))switch(t.tag){case 3:Na(i.nodeValue,r,(t.mode&1)!==0);break;case 5:t.memoizedProps.suppressHydrationWarning!==!0&&Na(i.nodeValue,r,(t.mode&1)!==0)}a&&(n.flags|=4)}else i=(r.nodeType===9?r:r.ownerDocument).createTextNode(i),i[hn]=n,n.stateNode=i}return dt(n),null;case 13:if(Me(De),i=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(Pe&&Ft!==null&&n.mode&1&&!(n.flags&128))$g(),Si(),n.flags|=98560,a=!1;else if(a=Ca(n),i!==null&&i.dehydrated!==null){if(t===null){if(!a)throw Error(V(318));if(a=n.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(V(317));a[hn]=n}else Si(),!(n.flags&128)&&(n.memoizedState=null),n.flags|=4;dt(n),a=!1}else sn!==null&&(id(sn),sn=null),a=!0;if(!a)return n.flags&65536?n:null}return n.flags&128?(n.lanes=r,n):(i=i!==null,i!==(t!==null&&t.memoizedState!==null)&&i&&(n.child.flags|=8192,n.mode&1&&(t===null||De.current&1?et===0&&(et=3):up())),n.updateQueue!==null&&(n.flags|=4),dt(n),null);case 4:return Ni(),Kc(t,n),t===null&&Is(n.stateNode.containerInfo),dt(n),null;case 10:return Zd(n.type._context),dt(n),null;case 17:return St(n.type)&&yo(),dt(n),null;case 19:if(Me(De),a=n.memoizedState,a===null)return dt(n),null;if(i=(n.flags&128)!==0,o=a.rendering,o===null)if(i)$i(a,!1);else{if(et!==0||t!==null&&t.flags&128)for(t=n.child;t!==null;){if(o=No(t),o!==null){for(n.flags|=128,$i(a,!1),i=o.updateQueue,i!==null&&(n.updateQueue=i,n.flags|=4),n.subtreeFlags=0,i=r,r=n.child;r!==null;)a=r,t=i,a.flags&=14680066,o=a.alternate,o===null?(a.childLanes=0,a.lanes=t,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=o.childLanes,a.lanes=o.lanes,a.child=o.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=o.memoizedProps,a.memoizedState=o.memoizedState,a.updateQueue=o.updateQueue,a.type=o.type,t=o.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),r=r.sibling;return qe(De,De.current&1|2),n.child}t=t.sibling}a.tail!==null&&Ye()>_i&&(n.flags|=128,i=!0,$i(a,!1),n.lanes=4194304)}else{if(!i)if(t=No(o),t!==null){if(n.flags|=128,i=!0,r=t.updateQueue,r!==null&&(n.updateQueue=r,n.flags|=4),$i(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Pe)return dt(n),null}else 2*Ye()-a.renderingStartTime>_i&&r!==1073741824&&(n.flags|=128,i=!0,$i(a,!1),n.lanes=4194304);a.isBackwards?(o.sibling=n.child,n.child=o):(r=a.last,r!==null?r.sibling=o:n.child=o,a.last=o)}return a.tail!==null?(n=a.tail,a.rendering=n,a.tail=n.sibling,a.renderingStartTime=Ye(),n.sibling=null,r=De.current,qe(De,i?r&1|2:r&1),n):(dt(n),null);case 22:case 23:return pp(),i=n.memoizedState!==null,t!==null&&t.memoizedState!==null!==i&&(n.flags|=8192),i&&n.mode&1?qt&1073741824&&(dt(n),n.subtreeFlags&6&&(n.flags|=8192)):dt(n),null;case 24:return null;case 25:return null}throw Error(V(156,n.tag))}function XL(t,n){switch(Yd(n),n.tag){case 1:return St(n.type)&&yo(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return Ni(),Me(At),Me(ut),ep(),t=n.flags,t&65536&&!(t&128)?(n.flags=t&-65537|128,n):null;case 5:return Xd(n),null;case 13:if(Me(De),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(V(340));Si()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return Me(De),null;case 4:return Ni(),null;case 10:return Zd(n.type._context),null;case 22:case 23:return pp(),null;case 24:return null;default:return null}}var qa=!1,pt=!1,ev=typeof WeakSet=="function"?WeakSet:Set,ne=null;function gi(t,n){var r=t.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(i){Ve(t,n,i)}else r.current=null}function Jc(t,n,r){try{r()}catch(i){Ve(t,n,i)}}var eh=!1;function tv(t,n){if(Oc=xo,t=Dg(),Vd(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var s=i.anchorOffset,a=i.focusNode;i=i.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var o=0,c=-1,l=-1,d=0,p=0,u=t,g=null;t:for(;;){for(var f;u!==r||s!==0&&u.nodeType!==3||(c=o+s),u!==a||i!==0&&u.nodeType!==3||(l=o+i),u.nodeType===3&&(o+=u.nodeValue.length),(f=u.firstChild)!==null;)g=u,u=f;for(;;){if(u===t)break t;if(g===r&&++d===s&&(c=o),g===a&&++p===i&&(l=o),(f=u.nextSibling)!==null)break;u=g,g=u.parentNode}u=f}r=c===-1||l===-1?null:{start:c,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(Mc={focusedElem:t,selectionRange:r},xo=!1,ne=n;ne!==null;)if(n=ne,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ne=t;else for(;ne!==null;){n=ne;try{var L=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(L!==null){var v=L.memoizedProps,y=L.memoizedState,h=n.stateNode,b=h.getSnapshotBeforeUpdate(n.elementType===n.type?v:en(n.type,v),y);h.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var x=n.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(A){Ve(n,n.return,A)}if(t=n.sibling,t!==null){t.return=n.return,ne=t;break}ne=n.return}return L=eh,eh=!1,L}function Ss(t,n,r){var i=n.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var s=i=i.next;do{if((s.tag&t)===t){var a=s.destroy;s.destroy=void 0,a!==void 0&&Jc(n,r,a)}s=s.next}while(s!==i)}}function Xo(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&t)===t){var i=r.create;r.destroy=i()}r=r.next}while(r!==n)}}function $c(t){var n=t.ref;if(n!==null){var r=t.stateNode;switch(t.tag){case 5:t=r;break;default:t=r}typeof n=="function"?n(t):n.current=t}}function Rf(t){var n=t.alternate;n!==null&&(t.alternate=null,Rf(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[hn],delete n[zs],delete n[Ic],delete n[PL],delete n[IL])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Pf(t){return t.tag===5||t.tag===3||t.tag===4}function th(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Pf(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Xc(t,n,r){var i=t.tag;if(i===5||i===6)t=t.stateNode,n?r.nodeType===8?r.parentNode.insertBefore(t,n):r.insertBefore(t,n):(r.nodeType===8?(n=r.parentNode,n.insertBefore(t,r)):(n=r,n.appendChild(t)),r=r._reactRootContainer,r!=null||n.onclick!==null||(n.onclick=bo));else if(i!==4&&(t=t.child,t!==null))for(Xc(t,n,r),t=t.sibling;t!==null;)Xc(t,n,r),t=t.sibling}function ed(t,n,r){var i=t.tag;if(i===5||i===6)t=t.stateNode,n?r.insertBefore(t,n):r.appendChild(t);else if(i!==4&&(t=t.child,t!==null))for(ed(t,n,r),t=t.sibling;t!==null;)ed(t,n,r),t=t.sibling}var at=null,nn=!1;function Gn(t,n,r){for(r=r.child;r!==null;)If(t,n,r),r=r.sibling}function If(t,n,r){if(mn&&typeof mn.onCommitFiberUnmount=="function")try{mn.onCommitFiberUnmount(Yo,r)}catch{}switch(r.tag){case 5:pt||gi(r,n);case 6:var i=at,s=nn;at=null,Gn(t,n,r),at=i,nn=s,at!==null&&(nn?(t=at,r=r.stateNode,t.nodeType===8?t.parentNode.removeChild(r):t.removeChild(r)):at.removeChild(r.stateNode));break;case 18:at!==null&&(nn?(t=at,r=r.stateNode,t.nodeType===8?Dl(t.parentNode,r):t.nodeType===1&&Dl(t,r),Ms(t)):Dl(at,r.stateNode));break;case 4:i=at,s=nn,at=r.stateNode.containerInfo,nn=!0,Gn(t,n,r),at=i,nn=s;break;case 0:case 11:case 14:case 15:if(!pt&&(i=r.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){s=i=i.next;do{var a=s,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Jc(r,n,o),s=s.next}while(s!==i)}Gn(t,n,r);break;case 1:if(!pt&&(gi(r,n),i=r.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=r.memoizedProps,i.state=r.memoizedState,i.componentWillUnmount()}catch(c){Ve(r,n,c)}Gn(t,n,r);break;case 21:Gn(t,n,r);break;case 22:r.mode&1?(pt=(i=pt)||r.memoizedState!==null,Gn(t,n,r),pt=i):Gn(t,n,r);break;default:Gn(t,n,r)}}function nh(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var r=t.stateNode;r===null&&(r=t.stateNode=new ev),n.forEach(function(i){var s=dv.bind(null,t,i);r.has(i)||(r.add(i),i.then(s,s))})}}function Xt(t,n){var r=n.deletions;if(r!==null)for(var i=0;i<r.length;i++){var s=r[i];try{var a=t,o=n,c=o;e:for(;c!==null;){switch(c.tag){case 5:at=c.stateNode,nn=!1;break e;case 3:at=c.stateNode.containerInfo,nn=!0;break e;case 4:at=c.stateNode.containerInfo,nn=!0;break e}c=c.return}if(at===null)throw Error(V(160));If(a,o,s),at=null,nn=!1;var l=s.alternate;l!==null&&(l.return=null),s.return=null}catch(d){Ve(s,n,d)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Df(n,t),n=n.sibling}function Df(t,n){var r=t.alternate,i=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:if(Xt(n,t),pn(t),i&4){try{Ss(3,t,t.return),Xo(3,t)}catch(v){Ve(t,t.return,v)}try{Ss(5,t,t.return)}catch(v){Ve(t,t.return,v)}}break;case 1:Xt(n,t),pn(t),i&512&&r!==null&&gi(r,r.return);break;case 5:if(Xt(n,t),pn(t),i&512&&r!==null&&gi(r,r.return),t.flags&32){var s=t.stateNode;try{Ts(s,"")}catch(v){Ve(t,t.return,v)}}if(i&4&&(s=t.stateNode,s!=null)){var a=t.memoizedProps,o=r!==null?r.memoizedProps:a,c=t.type,l=t.updateQueue;if(t.updateQueue=null,l!==null)try{c==="input"&&a.type==="radio"&&a.name!=null&&ag(s,a),kc(c,o);var d=kc(c,a);for(o=0;o<l.length;o+=2){var p=l[o],u=l[o+1];p==="style"?pg(s,u):p==="dangerouslySetInnerHTML"?cg(s,u):p==="children"?Ts(s,u):_d(s,p,u,d)}switch(c){case"input":vc(s,a);break;case"textarea":og(s,a);break;case"select":var g=s._wrapperState.wasMultiple;s._wrapperState.wasMultiple=!!a.multiple;var f=a.value;f!=null?xi(s,!!a.multiple,f,!1):g!==!!a.multiple&&(a.defaultValue!=null?xi(s,!!a.multiple,a.defaultValue,!0):xi(s,!!a.multiple,a.multiple?[]:"",!1))}s[zs]=a}catch(v){Ve(t,t.return,v)}}break;case 6:if(Xt(n,t),pn(t),i&4){if(t.stateNode===null)throw Error(V(162));s=t.stateNode,a=t.memoizedProps;try{s.nodeValue=a}catch(v){Ve(t,t.return,v)}}break;case 3:if(Xt(n,t),pn(t),i&4&&r!==null&&r.memoizedState.isDehydrated)try{Ms(n.containerInfo)}catch(v){Ve(t,t.return,v)}break;case 4:Xt(n,t),pn(t);break;case 13:Xt(n,t),pn(t),s=t.child,s.flags&8192&&(a=s.memoizedState!==null,s.stateNode.isHidden=a,!a||s.alternate!==null&&s.alternate.memoizedState!==null||(cp=Ye())),i&4&&nh(t);break;case 22:if(p=r!==null&&r.memoizedState!==null,t.mode&1?(pt=(d=pt)||p,Xt(n,t),pt=d):Xt(n,t),pn(t),i&8192){if(d=t.memoizedState!==null,(t.stateNode.isHidden=d)&&!p&&t.mode&1)for(ne=t,p=t.child;p!==null;){for(u=ne=p;ne!==null;){switch(g=ne,f=g.child,g.tag){case 0:case 11:case 14:case 15:Ss(4,g,g.return);break;case 1:gi(g,g.return);var L=g.stateNode;if(typeof L.componentWillUnmount=="function"){i=g,r=g.return;try{n=i,L.props=n.memoizedProps,L.state=n.memoizedState,L.componentWillUnmount()}catch(v){Ve(i,r,v)}}break;case 5:gi(g,g.return);break;case 22:if(g.memoizedState!==null){ih(u);continue}}f!==null?(f.return=g,ne=f):ih(u)}p=p.sibling}e:for(p=null,u=t;;){if(u.tag===5){if(p===null){p=u;try{s=u.stateNode,d?(a=s.style,typeof a.setProperty=="function"?a.setProperty("display","none","important"):a.display="none"):(c=u.stateNode,l=u.memoizedProps.style,o=l!=null&&l.hasOwnProperty("display")?l.display:null,c.style.display=dg("display",o))}catch(v){Ve(t,t.return,v)}}}else if(u.tag===6){if(p===null)try{u.stateNode.nodeValue=d?"":u.memoizedProps}catch(v){Ve(t,t.return,v)}}else if((u.tag!==22&&u.tag!==23||u.memoizedState===null||u===t)&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===t)break e;for(;u.sibling===null;){if(u.return===null||u.return===t)break e;p===u&&(p=null),u=u.return}p===u&&(p=null),u.sibling.return=u.return,u=u.sibling}}break;case 19:Xt(n,t),pn(t),i&4&&nh(t);break;case 21:break;default:Xt(n,t),pn(t)}}function pn(t){var n=t.flags;if(n&2){try{e:{for(var r=t.return;r!==null;){if(Pf(r)){var i=r;break e}r=r.return}throw Error(V(160))}switch(i.tag){case 5:var s=i.stateNode;i.flags&32&&(Ts(s,""),i.flags&=-33);var a=th(t);ed(t,a,s);break;case 3:case 4:var o=i.stateNode.containerInfo,c=th(t);Xc(t,c,o);break;default:throw Error(V(161))}}catch(l){Ve(t,t.return,l)}t.flags&=-3}n&4096&&(t.flags&=-4097)}function nv(t,n,r){ne=t,zf(t)}function zf(t,n,r){for(var i=(t.mode&1)!==0;ne!==null;){var s=ne,a=s.child;if(s.tag===22&&i){var o=s.memoizedState!==null||qa;if(!o){var c=s.alternate,l=c!==null&&c.memoizedState!==null||pt;c=qa;var d=pt;if(qa=o,(pt=l)&&!d)for(ne=s;ne!==null;)o=ne,l=o.child,o.tag===22&&o.memoizedState!==null?sh(s):l!==null?(l.return=o,ne=l):sh(s);for(;a!==null;)ne=a,zf(a),a=a.sibling;ne=s,qa=c,pt=d}rh(t)}else s.subtreeFlags&8772&&a!==null?(a.return=s,ne=a):rh(t)}}function rh(t){for(;ne!==null;){var n=ne;if(n.flags&8772){var r=n.alternate;try{if(n.flags&8772)switch(n.tag){case 0:case 11:case 15:pt||Xo(5,n);break;case 1:var i=n.stateNode;if(n.flags&4&&!pt)if(r===null)i.componentDidMount();else{var s=n.elementType===n.type?r.memoizedProps:en(n.type,r.memoizedProps);i.componentDidUpdate(s,r.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var a=n.updateQueue;a!==null&&Bu(n,a,i);break;case 3:var o=n.updateQueue;if(o!==null){if(r=null,n.child!==null)switch(n.child.tag){case 5:r=n.child.stateNode;break;case 1:r=n.child.stateNode}Bu(n,o,r)}break;case 5:var c=n.stateNode;if(r===null&&n.flags&4){r=c;var l=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&r.focus();break;case"img":l.src&&(r.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var d=n.alternate;if(d!==null){var p=d.memoizedState;if(p!==null){var u=p.dehydrated;u!==null&&Ms(u)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(V(163))}pt||n.flags&512&&$c(n)}catch(g){Ve(n,n.return,g)}}if(n===t){ne=null;break}if(r=n.sibling,r!==null){r.return=n.return,ne=r;break}ne=n.return}}function ih(t){for(;ne!==null;){var n=ne;if(n===t){ne=null;break}var r=n.sibling;if(r!==null){r.return=n.return,ne=r;break}ne=n.return}}function sh(t){for(;ne!==null;){var n=ne;try{switch(n.tag){case 0:case 11:case 15:var r=n.return;try{Xo(4,n)}catch(l){Ve(n,r,l)}break;case 1:var i=n.stateNode;if(typeof i.componentDidMount=="function"){var s=n.return;try{i.componentDidMount()}catch(l){Ve(n,s,l)}}var a=n.return;try{$c(n)}catch(l){Ve(n,a,l)}break;case 5:var o=n.return;try{$c(n)}catch(l){Ve(n,o,l)}}}catch(l){Ve(n,n.return,l)}if(n===t){ne=null;break}var c=n.sibling;if(c!==null){c.return=n.return,ne=c;break}ne=n.return}}var rv=Math.ceil,To=Un.ReactCurrentDispatcher,op=Un.ReactCurrentOwner,Gt=Un.ReactCurrentBatchConfig,Ee=0,rt=null,We=null,ot=0,qt=0,fi=xr(0),et=0,Gs=null,Rr=0,el=0,lp=0,Es=null,wt=null,cp=0,_i=1/0,Sn=null,qo=!1,td=null,lr=null,Fa=!1,er=null,Fo=0,Ns=0,nd=null,so=-1,ao=0;function xt(){return Ee&6?Ye():so!==-1?so:so=Ye()}function cr(t){return t.mode&1?Ee&2&&ot!==0?ot&-ot:zL.transition!==null?(ao===0&&(ao=wg()),ao):(t=Ce,t!==0||(t=window.event,t=t===void 0?16:_g(t.type)),t):1}function on(t,n,r,i){if(50<Ns)throw Ns=0,nd=null,Error(V(185));sa(t,r,i),(!(Ee&2)||t!==rt)&&(t===rt&&(!(Ee&2)&&(el|=r),et===4&&$n(t,ot)),Et(t,i),r===1&&Ee===0&&!(n.mode&1)&&(_i=Ye()+500,Ko&&Lr()))}function Et(t,n){var r=t.callbackNode;z0(t,n);var i=fo(t,t===rt?ot:0);if(i===0)r!==null&&mu(r),t.callbackNode=null,t.callbackPriority=0;else if(n=i&-i,t.callbackPriority!==n){if(r!=null&&mu(r),n===1)t.tag===0?DL(ah.bind(null,t)):Zg(ah.bind(null,t)),ML(function(){!(Ee&6)&&Lr()}),r=null;else{switch(kg(i)){case 1:r=Md;break;case 4:r=yg;break;case 16:r=go;break;case 536870912:r=jg;break;default:r=go}r=Qf(r,Bf.bind(null,t))}t.callbackPriority=n,t.callbackNode=r}}function Bf(t,n){if(so=-1,ao=0,Ee&6)throw Error(V(327));var r=t.callbackNode;if(ji()&&t.callbackNode!==r)return null;var i=fo(t,t===rt?ot:0);if(i===0)return null;if(i&30||i&t.expiredLanes||n)n=Oo(t,i);else{n=i;var s=Ee;Ee|=2;var a=Vf();(rt!==t||ot!==n)&&(Sn=null,_i=Ye()+500,Cr(t,n));do try{av();break}catch(c){Uf(t,c)}while(!0);Qd(),To.current=a,Ee=s,We!==null?n=0:(rt=null,ot=0,n=et)}if(n!==0){if(n===2&&(s=Cc(t),s!==0&&(i=s,n=rd(t,s))),n===1)throw r=Gs,Cr(t,0),$n(t,i),Et(t,Ye()),r;if(n===6)$n(t,i);else{if(s=t.current.alternate,!(i&30)&&!iv(s)&&(n=Oo(t,i),n===2&&(a=Cc(t),a!==0&&(i=a,n=rd(t,a))),n===1))throw r=Gs,Cr(t,0),$n(t,i),Et(t,Ye()),r;switch(t.finishedWork=s,t.finishedLanes=i,n){case 0:case 1:throw Error(V(345));case 2:kr(t,wt,Sn);break;case 3:if($n(t,i),(i&130023424)===i&&(n=cp+500-Ye(),10<n)){if(fo(t,0)!==0)break;if(s=t.suspendedLanes,(s&i)!==i){xt(),t.pingedLanes|=t.suspendedLanes&s;break}t.timeoutHandle=Pc(kr.bind(null,t,wt,Sn),n);break}kr(t,wt,Sn);break;case 4:if($n(t,i),(i&4194240)===i)break;for(n=t.eventTimes,s=-1;0<i;){var o=31-an(i);a=1<<o,o=n[o],o>s&&(s=o),i&=~a}if(i=s,i=Ye()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*rv(i/1960))-i,10<i){t.timeoutHandle=Pc(kr.bind(null,t,wt,Sn),i);break}kr(t,wt,Sn);break;case 5:kr(t,wt,Sn);break;default:throw Error(V(329))}}}return Et(t,Ye()),t.callbackNode===r?Bf.bind(null,t):null}function rd(t,n){var r=Es;return t.current.memoizedState.isDehydrated&&(Cr(t,n).flags|=256),t=Oo(t,n),t!==2&&(n=wt,wt=r,n!==null&&id(n)),t}function id(t){wt===null?wt=t:wt.push.apply(wt,t)}function iv(t){for(var n=t;;){if(n.flags&16384){var r=n.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var i=0;i<r.length;i++){var s=r[i],a=s.getSnapshot;s=s.value;try{if(!ln(a(),s))return!1}catch{return!1}}}if(r=n.child,n.subtreeFlags&16384&&r!==null)r.return=n,n=r;else{if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function $n(t,n){for(n&=~lp,n&=~el,t.suspendedLanes|=n,t.pingedLanes&=~n,t=t.expirationTimes;0<n;){var r=31-an(n),i=1<<r;t[r]=-1,n&=~i}}function ah(t){if(Ee&6)throw Error(V(327));ji();var n=fo(t,0);if(!(n&1))return Et(t,Ye()),null;var r=Oo(t,n);if(t.tag!==0&&r===2){var i=Cc(t);i!==0&&(n=i,r=rd(t,i))}if(r===1)throw r=Gs,Cr(t,0),$n(t,n),Et(t,Ye()),r;if(r===6)throw Error(V(345));return t.finishedWork=t.current.alternate,t.finishedLanes=n,kr(t,wt,Sn),Et(t,Ye()),null}function dp(t,n){var r=Ee;Ee|=1;try{return t(n)}finally{Ee=r,Ee===0&&(_i=Ye()+500,Ko&&Lr())}}function Pr(t){er!==null&&er.tag===0&&!(Ee&6)&&ji();var n=Ee;Ee|=1;var r=Gt.transition,i=Ce;try{if(Gt.transition=null,Ce=1,t)return t()}finally{Ce=i,Gt.transition=r,Ee=n,!(Ee&6)&&Lr()}}function pp(){qt=fi.current,Me(fi)}function Cr(t,n){t.finishedWork=null,t.finishedLanes=0;var r=t.timeoutHandle;if(r!==-1&&(t.timeoutHandle=-1,OL(r)),We!==null)for(r=We.return;r!==null;){var i=r;switch(Yd(i),i.tag){case 1:i=i.type.childContextTypes,i!=null&&yo();break;case 3:Ni(),Me(At),Me(ut),ep();break;case 5:Xd(i);break;case 4:Ni();break;case 13:Me(De);break;case 19:Me(De);break;case 10:Zd(i.type._context);break;case 22:case 23:pp()}r=r.return}if(rt=t,We=t=dr(t.current,null),ot=qt=n,et=0,Gs=null,lp=el=Rr=0,wt=Es=null,Sr!==null){for(n=0;n<Sr.length;n++)if(r=Sr[n],i=r.interleaved,i!==null){r.interleaved=null;var s=i.next,a=r.pending;if(a!==null){var o=a.next;a.next=s,i.next=o}r.pending=i}Sr=null}return t}function Uf(t,n){do{var r=We;try{if(Qd(),no.current=_o,Co){for(var i=ze.memoizedState;i!==null;){var s=i.queue;s!==null&&(s.pending=null),i=i.next}Co=!1}if(Mr=0,nt=Xe=ze=null,As=!1,Vs=0,op.current=null,r===null||r.return===null){et=1,Gs=n,We=null;break}e:{var a=t,o=r.return,c=r,l=n;if(n=ot,c.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var d=l,p=c,u=p.tag;if(!(p.mode&1)&&(u===0||u===11||u===15)){var g=p.alternate;g?(p.updateQueue=g.updateQueue,p.memoizedState=g.memoizedState,p.lanes=g.lanes):(p.updateQueue=null,p.memoizedState=null)}var f=Wu(o);if(f!==null){f.flags&=-257,Qu(f,o,c,a,n),f.mode&1&&Gu(a,d,n),n=f,l=d;var L=n.updateQueue;if(L===null){var v=new Set;v.add(l),n.updateQueue=v}else L.add(l);break e}else{if(!(n&1)){Gu(a,d,n),up();break e}l=Error(V(426))}}else if(Pe&&c.mode&1){var y=Wu(o);if(y!==null){!(y.flags&65536)&&(y.flags|=256),Qu(y,o,c,a,n),Gd(Ci(l,c));break e}}a=l=Ci(l,c),et!==4&&(et=2),Es===null?Es=[a]:Es.push(a),a=o;do{switch(a.tag){case 3:a.flags|=65536,n&=-n,a.lanes|=n;var h=Af(a,l,n);zu(a,h);break e;case 1:c=l;var b=a.type,x=a.stateNode;if(!(a.flags&128)&&(typeof b.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(lr===null||!lr.has(x)))){a.flags|=65536,n&=-n,a.lanes|=n;var A=Sf(a,c,n);zu(a,A);break e}}a=a.return}while(a!==null)}Yf(r)}catch(w){n=w,We===r&&r!==null&&(We=r=r.return);continue}break}while(!0)}function Vf(){var t=To.current;return To.current=_o,t===null?_o:t}function up(){(et===0||et===3||et===2)&&(et=4),rt===null||!(Rr&268435455)&&!(el&268435455)||$n(rt,ot)}function Oo(t,n){var r=Ee;Ee|=2;var i=Vf();(rt!==t||ot!==n)&&(Sn=null,Cr(t,n));do try{sv();break}catch(s){Uf(t,s)}while(!0);if(Qd(),Ee=r,To.current=i,We!==null)throw Error(V(261));return rt=null,ot=0,et}function sv(){for(;We!==null;)Hf(We)}function av(){for(;We!==null&&!T0();)Hf(We)}function Hf(t){var n=Wf(t.alternate,t,qt);t.memoizedProps=t.pendingProps,n===null?Yf(t):We=n,op.current=null}function Yf(t){var n=t;do{var r=n.alternate;if(t=n.return,n.flags&32768){if(r=XL(r,n),r!==null){r.flags&=32767,We=r;return}if(t!==null)t.flags|=32768,t.subtreeFlags=0,t.deletions=null;else{et=6,We=null;return}}else if(r=$L(r,n,qt),r!==null){We=r;return}if(n=n.sibling,n!==null){We=n;return}We=n=t}while(n!==null);et===0&&(et=5)}function kr(t,n,r){var i=Ce,s=Gt.transition;try{Gt.transition=null,Ce=1,ov(t,n,r,i)}finally{Gt.transition=s,Ce=i}return null}function ov(t,n,r,i){do ji();while(er!==null);if(Ee&6)throw Error(V(327));r=t.finishedWork;var s=t.finishedLanes;if(r===null)return null;if(t.finishedWork=null,t.finishedLanes=0,r===t.current)throw Error(V(177));t.callbackNode=null,t.callbackPriority=0;var a=r.lanes|r.childLanes;if(B0(t,a),t===rt&&(We=rt=null,ot=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||Fa||(Fa=!0,Qf(go,function(){return ji(),null})),a=(r.flags&15990)!==0,r.subtreeFlags&15990||a){a=Gt.transition,Gt.transition=null;var o=Ce;Ce=1;var c=Ee;Ee|=4,op.current=null,tv(t,r),Df(r,t),EL(Mc),xo=!!Oc,Mc=Oc=null,t.current=r,nv(r),q0(),Ee=c,Ce=o,Gt.transition=a}else t.current=r;if(Fa&&(Fa=!1,er=t,Fo=s),a=t.pendingLanes,a===0&&(lr=null),M0(r.stateNode),Et(t,Ye()),n!==null)for(i=t.onRecoverableError,r=0;r<n.length;r++)s=n[r],i(s.value,{componentStack:s.stack,digest:s.digest});if(qo)throw qo=!1,t=td,td=null,t;return Fo&1&&t.tag!==0&&ji(),a=t.pendingLanes,a&1?t===nd?Ns++:(Ns=0,nd=t):Ns=0,Lr(),null}function ji(){if(er!==null){var t=kg(Fo),n=Gt.transition,r=Ce;try{if(Gt.transition=null,Ce=16>t?16:t,er===null)var i=!1;else{if(t=er,er=null,Fo=0,Ee&6)throw Error(V(331));var s=Ee;for(Ee|=4,ne=t.current;ne!==null;){var a=ne,o=a.child;if(ne.flags&16){var c=a.deletions;if(c!==null){for(var l=0;l<c.length;l++){var d=c[l];for(ne=d;ne!==null;){var p=ne;switch(p.tag){case 0:case 11:case 15:Ss(8,p,a)}var u=p.child;if(u!==null)u.return=p,ne=u;else for(;ne!==null;){p=ne;var g=p.sibling,f=p.return;if(Rf(p),p===d){ne=null;break}if(g!==null){g.return=f,ne=g;break}ne=f}}}var L=a.alternate;if(L!==null){var v=L.child;if(v!==null){L.child=null;do{var y=v.sibling;v.sibling=null,v=y}while(v!==null)}}ne=a}}if(a.subtreeFlags&2064&&o!==null)o.return=a,ne=o;else e:for(;ne!==null;){if(a=ne,a.flags&2048)switch(a.tag){case 0:case 11:case 15:Ss(9,a,a.return)}var h=a.sibling;if(h!==null){h.return=a.return,ne=h;break e}ne=a.return}}var b=t.current;for(ne=b;ne!==null;){o=ne;var x=o.child;if(o.subtreeFlags&2064&&x!==null)x.return=o,ne=x;else e:for(o=b;ne!==null;){if(c=ne,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:Xo(9,c)}}catch(w){Ve(c,c.return,w)}if(c===o){ne=null;break e}var A=c.sibling;if(A!==null){A.return=c.return,ne=A;break e}ne=c.return}}if(Ee=s,Lr(),mn&&typeof mn.onPostCommitFiberRoot=="function")try{mn.onPostCommitFiberRoot(Yo,t)}catch{}i=!0}return i}finally{Ce=r,Gt.transition=n}}return!1}function oh(t,n,r){n=Ci(r,n),n=Af(t,n,1),t=or(t,n,1),n=xt(),t!==null&&(sa(t,1,n),Et(t,n))}function Ve(t,n,r){if(t.tag===3)oh(t,t,r);else for(;n!==null;){if(n.tag===3){oh(n,t,r);break}else if(n.tag===1){var i=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(lr===null||!lr.has(i))){t=Ci(r,t),t=Sf(n,t,1),n=or(n,t,1),t=xt(),n!==null&&(sa(n,1,t),Et(n,t));break}}n=n.return}}function lv(t,n,r){var i=t.pingCache;i!==null&&i.delete(n),n=xt(),t.pingedLanes|=t.suspendedLanes&r,rt===t&&(ot&r)===r&&(et===4||et===3&&(ot&130023424)===ot&&500>Ye()-cp?Cr(t,0):lp|=r),Et(t,n)}function Gf(t,n){n===0&&(t.mode&1?(n=wa,wa<<=1,!(wa&130023424)&&(wa=4194304)):n=1);var r=xt();t=Rn(t,n),t!==null&&(sa(t,n,r),Et(t,r))}function cv(t){var n=t.memoizedState,r=0;n!==null&&(r=n.retryLane),Gf(t,r)}function dv(t,n){var r=0;switch(t.tag){case 13:var i=t.stateNode,s=t.memoizedState;s!==null&&(r=s.retryLane);break;case 19:i=t.stateNode;break;default:throw Error(V(314))}i!==null&&i.delete(n),Gf(t,r)}var Wf;Wf=function(t,n,r){if(t!==null)if(t.memoizedProps!==n.pendingProps||At.current)kt=!0;else{if(!(t.lanes&r)&&!(n.flags&128))return kt=!1,JL(t,n,r);kt=!!(t.flags&131072)}else kt=!1,Pe&&n.flags&1048576&&Kg(n,ko,n.index);switch(n.lanes=0,n.tag){case 2:var i=n.type;io(t,n),t=n.pendingProps;var s=Ai(n,ut.current);yi(n,r),s=np(null,n,i,t,s,r);var a=rp();return n.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,St(i)?(a=!0,jo(n)):a=!1,n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Jd(n),s.updater=$o,n.stateNode=s,s._reactInternals=n,Hc(n,i,t,r),n=Wc(null,n,i,!0,a,r)):(n.tag=0,Pe&&a&&Hd(n),gt(null,n,s,r),n=n.child),n;case 16:i=n.elementType;e:{switch(io(t,n),t=n.pendingProps,s=i._init,i=s(i._payload),n.type=i,s=n.tag=uv(i),t=en(i,t),s){case 0:n=Gc(null,n,i,t,r);break e;case 1:n=Ju(null,n,i,t,r);break e;case 11:n=Zu(null,n,i,t,r);break e;case 14:n=Ku(null,n,i,en(i.type,t),r);break e}throw Error(V(306,i,""))}return n;case 0:return i=n.type,s=n.pendingProps,s=n.elementType===i?s:en(i,s),Gc(t,n,i,s,r);case 1:return i=n.type,s=n.pendingProps,s=n.elementType===i?s:en(i,s),Ju(t,n,i,s,r);case 3:e:{if(_f(n),t===null)throw Error(V(387));i=n.pendingProps,a=n.memoizedState,s=a.element,nf(t,n),Eo(n,i,null,r);var o=n.memoizedState;if(i=o.element,a.isDehydrated)if(a={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},n.updateQueue.baseState=a,n.memoizedState=a,n.flags&256){s=Ci(Error(V(423)),n),n=$u(t,n,i,r,s);break e}else if(i!==s){s=Ci(Error(V(424)),n),n=$u(t,n,i,r,s);break e}else for(Ft=ar(n.stateNode.containerInfo.firstChild),Ot=n,Pe=!0,sn=null,r=ef(n,null,i,r),n.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Si(),i===s){n=Pn(t,n,r);break e}gt(t,n,i,r)}n=n.child}return n;case 5:return rf(n),t===null&&Bc(n),i=n.type,s=n.pendingProps,a=t!==null?t.memoizedProps:null,o=s.children,Rc(i,s)?o=null:a!==null&&Rc(i,a)&&(n.flags|=32),Cf(t,n),gt(t,n,o,r),n.child;case 6:return t===null&&Bc(n),null;case 13:return Tf(t,n,r);case 4:return $d(n,n.stateNode.containerInfo),i=n.pendingProps,t===null?n.child=Ei(n,null,i,r):gt(t,n,i,r),n.child;case 11:return i=n.type,s=n.pendingProps,s=n.elementType===i?s:en(i,s),Zu(t,n,i,s,r);
vendor: 5,879 bytes, line 41
41case 7:return gt(t,n,n.pendingProps,r),n.child;case 8:return gt(t,n,n.pendingProps.children,r),n.child;case 12:return gt(t,n,n.pendingProps.children,r),n.child;case 10:e:{if(i=n.type._context,s=n.pendingProps,a=n.memoizedProps,o=s.value,qe(Ao,i._currentValue),i._currentValue=o,a!==null)if(ln(a.value,o)){if(a.children===s.children&&!At.current){n=Pn(t,n,r);break e}}else for(a=n.child,a!==null&&(a.return=n);a!==null;){var c=a.dependencies;if(c!==null){o=a.child;for(var l=c.firstContext;l!==null;){if(l.context===i){if(a.tag===1){l=qn(-1,r&-r),l.tag=2;var d=a.updateQueue;if(d!==null){d=d.shared;var p=d.pending;p===null?l.next=l:(l.next=p.next,p.next=l),d.pending=l}}a.lanes|=r,l=a.alternate,l!==null&&(l.lanes|=r),Uc(a.return,r,n),c.lanes|=r;break}l=l.next}}else if(a.tag===10)o=a.type===n.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(V(341));o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),Uc(o,r,n),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===n){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}gt(t,n,s.children,r),n=n.child}return n;case 9:return s=n.type,i=n.pendingProps.children,yi(n,r),s=Wt(s),i=i(s),n.flags|=1,gt(t,n,i,r),n.child;case 14:return i=n.type,s=en(i,n.pendingProps),s=en(i.type,s),Ku(t,n,i,s,r);case 15:return Ef(t,n,n.type,n.pendingProps,r);case 17:return i=n.type,s=n.pendingProps,s=n.elementType===i?s:en(i,s),io(t,n),n.tag=1,St(i)?(t=!0,jo(n)):t=!1,yi(n,r),kf(n,i,s),Hc(n,i,s,r),Wc(null,n,i,!0,t,r);case 19:return qf(t,n,r);case 22:return Nf(t,n,r)}throw Error(V(156,n.tag))};function Qf(t,n){return bg(t,n)}function pv(t,n,r,i){this.tag=t,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Vt(t,n,r,i){return new pv(t,n,r,i)}function hp(t){return t=t.prototype,!(!t||!t.isReactComponent)}function uv(t){if(typeof t=="function")return hp(t)?1:0;if(t!=null){if(t=t.$$typeof,t===qd)return 11;if(t===Fd)return 14}return 2}function dr(t,n){var r=t.alternate;return r===null?(r=Vt(t.tag,n,t.key,t.mode),r.elementType=t.elementType,r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.pendingProps=n,r.type=t.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=t.flags&14680064,r.childLanes=t.childLanes,r.lanes=t.lanes,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,n=t.dependencies,r.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r}function oo(t,n,r,i,s,a){var o=2;if(i=t,typeof t=="function")hp(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case ai:return _r(r.children,s,a,n);case Td:o=8,s|=8;break;case mc:return t=Vt(12,r,n,s|2),t.elementType=mc,t.lanes=a,t;case gc:return t=Vt(13,r,n,s),t.elementType=gc,t.lanes=a,t;case fc:return t=Vt(19,r,n,s),t.elementType=fc,t.lanes=a,t;case rg:return tl(r,s,a,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case tg:o=10;break e;case ng:o=9;break e;case qd:o=11;break e;case Fd:o=14;break e;case Zn:o=16,i=null;break e}throw Error(V(130,t==null?t:typeof t,""))}return n=Vt(o,r,n,s),n.elementType=t,n.type=i,n.lanes=a,n}function _r(t,n,r,i){return t=Vt(7,t,i,n),t.lanes=r,t}function tl(t,n,r,i){return t=Vt(22,t,i,n),t.elementType=rg,t.lanes=r,t.stateNode={isHidden:!1},t}function Wl(t,n,r){return t=Vt(6,t,null,n),t.lanes=r,t}function Ql(t,n,r){return n=Vt(4,t.children!==null?t.children:[],t.key,n),n.lanes=r,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function hv(t,n,r,i,s){this.tag=n,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Nl(0),this.expirationTimes=Nl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Nl(0),this.identifierPrefix=i,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function mp(t,n,r,i,s,a,o,c,l){return t=new hv(t,n,r,c,l),n===1?(n=1,a===!0&&(n|=8)):n=0,a=Vt(3,null,null,n),t.current=a,a.stateNode=t,a.memoizedState={element:i,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Jd(a),t}function mv(t,n,r){var i=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:si,key:i==null?null:""+i,children:t,containerInfo:n,implementation:r}}function Zf(t){if(!t)return mr;t=t._reactInternals;e:{if(Yr(t)!==t||t.tag!==1)throw Error(V(170));var n=t;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(St(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(V(171))}if(t.tag===1){var r=t.type;if(St(r))return Qg(t,r,n)}return n}function Kf(t,n,r,i,s,a,o,c,l){return t=mp(r,i,!0,t,s,a,o,c,l),t.context=Zf(null),r=t.current,i=xt(),s=cr(r),a=qn(i,s),a.callback=n??null,or(r,a,s),t.current.lanes=s,sa(t,s,i),Et(t,i),t}function nl(t,n,r,i){var s=n.current,a=xt(),o=cr(s);return r=Zf(r),n.context===null?n.context=r:n.pendingContext=r,n=qn(a,o),n.payload={element:t},i=i===void 0?null:i,i!==null&&(n.callback=i),t=or(s,n,o),t!==null&&(on(t,s,o,a),to(t,s,o)),o}function Mo(t){if(t=t.current,!t.child)return null;switch(t.child.tag){case 5:return t.child.stateNode;default:return t.child.stateNode}}function lh(t,n){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var r=t.retryLane;t.retryLane=r!==0&&r<n?r:n}}function gp(t,n){lh(t,n),(t=t.alternate)&&lh(t,n)}
vendor: 4,803 bytes, line 41
41function gv(){return null}var Jf=typeof reportError=="function"?reportError:function(t){console.error(t)};function fp(t){this._internalRoot=t}rl.prototype.render=fp.prototype.render=function(t){var n=this._internalRoot;if(n===null)throw Error(V(409));nl(t,n,null,null)};rl.prototype.unmount=fp.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var n=t.containerInfo;Pr(function(){nl(null,t,null,null)}),n[Mn]=null}};function rl(t){this._internalRoot=t}rl.prototype.unstable_scheduleHydration=function(t){if(t){var n=Eg();t={blockedOn:null,target:t,priority:n};for(var r=0;r<Jn.length&&n!==0&&n<Jn[r].priority;r++);Jn.splice(r,0,t),r===0&&Cg(t)}};function xp(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function il(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11&&(t.nodeType!==8||t.nodeValue!==" react-mount-point-unstable "))}function ch(){}function fv(t,n,r,i,s){if(s){if(typeof i=="function"){var a=i;i=function(){var d=Mo(o);a.call(d)}}var o=Kf(n,i,t,0,null,!1,!1,"",ch);return t._reactRootContainer=o,t[Mn]=o.current,Is(t.nodeType===8?t.parentNode:t),Pr(),o}for(;s=t.lastChild;)t.removeChild(s);if(typeof i=="function"){var c=i;i=function(){var d=Mo(l);c.call(d)}}var l=mp(t,0,!1,null,null,!1,!1,"",ch);return t._reactRootContainer=l,t[Mn]=l.current,Is(t.nodeType===8?t.parentNode:t),Pr(function(){nl(n,l,r,i)}),l}function sl(t,n,r,i,s){var a=r._reactRootContainer;if(a){var o=a;if(typeof s=="function"){var c=s;s=function(){var l=Mo(o);c.call(l)}}nl(n,o,t,s)}else o=fv(r,n,t,s,i);return Mo(o)}Ag=function(t){switch(t.tag){case 3:var n=t.stateNode;if(n.current.memoizedState.isDehydrated){var r=ms(n.pendingLanes);r!==0&&(Rd(n,r|1),Et(n,Ye()),!(Ee&6)&&(_i=Ye()+500,Lr()))}break;case 13:Pr(function(){var i=Rn(t,1);if(i!==null){var s=xt();on(i,t,1,s)}}),gp(t,1)}};Pd=function(t){if(t.tag===13){var n=Rn(t,134217728);if(n!==null){var r=xt();on(n,t,134217728,r)}gp(t,134217728)}};Sg=function(t){if(t.tag===13){var n=cr(t),r=Rn(t,n);if(r!==null){var i=xt();on(r,t,n,i)}gp(t,n)}};Eg=function(){return Ce};Ng=function(t,n){var r=Ce;try{return Ce=t,n()}finally{Ce=r}};Sc=function(t,n,r){switch(n){case"input":if(vc(t,r),n=r.name,r.type==="radio"&&n!=null){for(r=t;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<r.length;n++){var i=r[n];if(i!==t&&i.form===t.form){var s=Zo(i);if(!s)throw Error(V(90));sg(i),vc(i,s)}}}break;case"textarea":og(t,r);break;case"select":n=r.value,n!=null&&xi(t,!!r.multiple,n,!1)}};mg=dp;gg=Pr;var xv={usingClientEntryPoint:!1,Events:[oa,di,Zo,ug,hg,dp]},Xi={findFiberByHostInstance:Ar,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Lv={bundleType:Xi.bundleType,version:Xi.version,rendererPackageName:Xi.rendererPackageName,rendererConfig:Xi.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Un.ReactCurrentDispatcher,findHostInstanceByFiber:function(t){return t=Lg(t),t===null?null:t.stateNode},findFiberByHostInstance:Xi.findFiberByHostInstance||gv,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Oa=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Oa.isDisabled&&Oa.supportsFiber)try{Yo=Oa.inject(Lv),mn=Oa}catch{}}Pt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=xv;Pt.createPortal=function(t,n){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!xp(n))throw Error(V(200));return mv(t,n,null,r)};Pt.createRoot=function(t,n){if(!xp(t))throw Error(V(299));var r=!1,i="",s=Jf;return n!=null&&(n.unstable_strictMode===!0&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(s=n.onRecoverableError)),n=mp(t,1,!1,null,null,r,!1,i,s),t[Mn]=n.current,Is(t.nodeType===8?t.parentNode:t),new fp(n)};Pt.findDOMNode=function(t){if(t==null)return null;if(t.nodeType===1)return t;var n=t._reactInternals;if(n===void 0)throw typeof t.render=="function"?Error(V(188)):(t=Object.keys(t).join(","),Error(V(268,t)));return t=Lg(n),t=t===null?null:t.stateNode,t};Pt.flushSync=function(t){return Pr(t)};Pt.hydrate=function(t,n,r){if(!il(n))throw Error(V(200));return sl(null,t,n,!0,r)};Pt.hydrateRoot=function(t,n,r){if(!xp(t))throw Error(V(405));var i=r!=null&&r.hydratedSources||null,s=!1,a="",o=Jf;if(r!=null&&(r.unstable_strictMode===!0&&(s=!0),r.identifierPrefix!==void 0&&(a=r.identifierPrefix),r.onRecoverableError!==void 0&&(o=r.onRecoverableError)),n=Kf(n,null,t,1,r??null,s,!1,a,o),t[Mn]=n.
41current,Is(t),i)for(t=0;t<i.length;t++)r=i[t],s=r._getVersion,s=s(r._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[r,s]:n.mutableSourceEagerHydrationData.push(r,s);return new rl(n)};Pt.render=function(t,n,r){if(!il(n))throw Error(V(200));return sl(null,t,n,!1,r)};Pt.unmountComponentAtNode=function(t){if(!il(t))throw Error(V(40));return t._reactRootContainer?(Pr(function(){sl(null,null,t,!1,function(){t._reactRootContainer=null,t[Mn]=null})}),!0):!1};Pt.unstable_batchedUpdates=dp;Pt.unstable_renderSubtreeIntoContainer=function(t,n,r,i){if(!il(r))throw Error(V(200));if(t==null||t._reactInternals===void 0)throw Error(V(38));return sl(t,n,r,!1,i)};Pt.version="18.3.1-next-f1338f8080-20240426";function $f(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE($f)}catch(t){console.error(t)}}$f(),Jm.exports=Pt;var Vn=Jm.exports,dh=Vn;uc.createRoot=dh.createRoot,uc.hydrateRoot=dh.hydrateRoot;/**
42 * @remix-run/router v1.23.2
43 *
44 * Copyright (c) Remix Software Inc.
45 *
46 * This source code is licensed under the MIT license found in the
47 * LICENSE.md file in the root directory of this source tree.
48 *
49 * @license MIT
50 */function Ws(){return Ws=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},Ws.apply(this,arguments)}var tr;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})(tr||(tr={}));const ph="popstate";function vv(t){t===void 0&&(t={});function n(i,s){let{pathname:a,search:o,hash:c}=i.location;return sd("",{pathname:a,search:o,hash:c},s.state&&s.state.usr||null,s.state&&s.state.key||"default")}function r(i,s){return typeof s=="string"?s:Ro(s)}return yv(n,r,null,t)}function Qe(t,n){if(t===!1||t===null||typeof t>"u")throw new Error(n)}function Lp(t,n){if(!t){typeof console<"u"&&console.warn(n);try{throw new Error(n)}catch{}}}function bv(){return Math.random().toString(36).substr(2,8)}function uh(t,n){return{usr:t.state,key:t.key,idx:n}}function sd(t,n,r,i){return r===void 0&&(r=null),Ws({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof n=="string"?Ri(n):n,{state:r,key:n&&n.key||i||bv()})}function Ro(t){let{pathname:n="/",search:r="",hash:i=""}=t;return r&&r!=="?"&&(n+=r.charAt(0)==="?"?r:"?"+r),i&&i!=="#"&&(n+=i.charAt(0)==="#"?i:"#"+i),n}function Ri(t){let n={};if(t){let r=t.indexOf("#");r>=0&&(n.hash=t.substr(r),t=t.substr(0,r));let i=t.indexOf("?");i>=0&&(n.search=t.substr(i),t=t.substr(0,i)),t&&(n.pathname=t)}return n}function yv(t,n,r,i){i===void 0&&(i={});let{window:s=document.defaultView,v5Compat:a=!1}=i,o=s.history,c=tr.Pop,l=null,d=p();d==null&&(d=0,o.replaceState(Ws({},o.state,{idx:d}),""));function p(){return(o.state||{idx:null}).idx}function u(){c=tr.Pop;let y=p(),h=y==null?null:y-d;d=y,l&&l({action:c,location:v.location,delta:h})}function g(y,h){c=tr.Push;let b=sd(v.location,y,h);d=p()+1;let x=uh(b,d),A=v.createHref(b);try{o.pushState(x,"",A)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;s.location.assign(A)}a&&l&&l({action:c,location:v.location,delta:1})}function f(y,h){c=tr.Replace;let b=sd(v.location,y,h);d=p();let x=uh(b,d),A=v.createHref(b);o.replaceState(x,"",A),a&&l&&l({action:c,location:v.location,delta:0})}function L(y){let h=s.location.origin!=="null"?s.location.origin:s.location.href,b=typeof y=="string"?y:Ro(y);return b=b.replace(/ $/,"%20"),Qe(h,"No window.location.(origin|href) available to create URL for href: "+b),new URL(b,h)}let v={get action(){return c},get location(){return t(s,o)},listen(y){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(ph,u),l=y,()=>{s.removeEventListener(ph,u),l=null}},createHref(y){return n(s,y)},createURL:L,encodeLocation(y){let h=L(y);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:g,replace:f,go(y){return o.go(y)}};return v}var hh;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(hh||(hh={}));function jv(t,n,r){return r===void 0&&(r="/"),wv(t,n,r)}function wv(t,n,r,i){let s=typeof n=="string"?Ri(n):n,a=vp(s.pathname||"/",r);if(a==null)return null;let o=Xf(t);kv(o);let c=null;for(let l=0;c==null&&l<o.length;++l){let d=Rv(a);c=Fv(o[l],d)}return c}function Xf(t,n,r,i){n===void 0&&(n=[]),r===void 0&&(r=[]),i===void 0&&(i="");let s=(a,o,c)=>{let l={relativePath:c===void 0?a.path||"":c,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};l.relativePath.startsWith("/")&&(Qe(l.relativePath.startsWith(i),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+i+'" is not val
50id. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(i.length));let d=pr([i,l.relativePath]),p=r.concat(l);a.children&&a.children.length>0&&(Qe(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),Xf(a.children,n,p,d)),!(a.path==null&&!a.index)&&n.push({path:d,score:Tv(d,a.index),routesMeta:p})};return t.forEach((a,o)=>{var c;if(a.path===""||!((c=a.path)!=null&&c.includes("?")))s(a,o);else for(let l of ex(a.path))s(a,o,l)}),n}function ex(t){let n=t.split("/");if(n.length===0)return[];let[r,...i]=n,s=r.endsWith("?"),a=r.replace(/\?$/,"");if(i.length===0)return s?[a,""]:[a];let o=ex(i.join("/")),c=[];return c.push(...o.map(l=>l===""?a:[a,l].join("/"))),s&&c.push(...o),c.map(l=>t.startsWith("/")&&l===""?"/":l)}function kv(t){t.sort((n,r)=>n.score!==r.score?r.score-n.score:qv(n.routesMeta.map(i=>i.childrenIndex),r.routesMeta.map(i=>i.childrenIndex)))}const Av=/^:[\w-]+$/,Sv=3,Ev=2,Nv=1,Cv=10,_v=-2,mh=t=>t==="*";function Tv(t,n){let r=t.split("/"),i=r.length;return r.some(mh)&&(i+=_v),n&&(i+=Ev),r.filter(s=>!mh(s)).reduce((s,a)=>s+(Av.test(a)?Sv:a===""?Nv:Cv),i)}function qv(t,n){return t.length===n.length&&t.slice(0,-1).every((i,s)=>i===n[s])?t[t.length-1]-n[n.length-1]:0}function Fv(t,n,r){let{routesMeta:i}=t,s={},a="/",o=[];for(let c=0;c<i.length;++c){let l=i[c],d=c===i.length-1,p=a==="/"?n:n.slice(a.length)||"/",u=Ov({path:l.relativePath,caseSensitive:l.caseSensitive,end:d},p),g=l.route;if(!u)return null;
vendor: 5,343 bytes, lines 50-59
50Object.assign(s,u.params),o.push({params:s,pathname:pr([a,u.pathname]),pathnameBase:Bv(pr([a,u.pathnameBase])),route:g}),u.pathnameBase!=="/"&&(a=pr([a,u.pathnameBase]))}return o}function Ov(t,n){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[r,i]=Mv(t.path,t.caseSensitive,t.end),s=n.match(r);if(!s)return null;let a=s[0],o=a.replace(/(.)\/+$/,"$1"),c=s.slice(1);return{params:i.reduce((d,p,u)=>{let{paramName:g,isOptional:f}=p;if(g==="*"){let v=c[u]||"";o=a.slice(0,a.length-v.length).replace(/(.)\/+$/,"$1")}const L=c[u];return f&&!L?d[g]=void 0:d[g]=(L||"").replace(/%2F/g,"/"),d},{}),pathname:a,pathnameBase:o,pattern:t}}function Mv(t,n,r){n===void 0&&(n=!1),r===void 0&&(r=!0),Lp(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let i=[],s="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,c,l)=>(i.push({paramName:c,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(i.push({paramName:"*"}),s+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?s+="\\/*$":t!==""&&t!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,n?void 0:"i"),i]}function Rv(t){try{return t.split("/").map(n=>decodeURIComponent(n).replace(/\//g,"%2F")).join("/")}catch(n){return Lp(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+n+").")),t}}function vp(t,n){if(n==="/")return t;if(!t.toLowerCase().startsWith(n.toLowerCase()))return null;let r=n.endsWith("/")?n.length-1:n.length,i=t.charAt(r);return i&&i!=="/"?null:t.slice(r)||"/"}const Pv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Iv=t=>Pv.test(t);function Dv(t,n){n===void 0&&(n="/");let{pathname:r,search:i="",hash:s=""}=typeof t=="string"?Ri(t):t,a;if(r)if(Iv(r))a=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),Lp(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?a=gh(r.substring(1),"/"):a=gh(r,n)}else a=n;return{pathname:a,search:Uv(i),hash:Vv(s)}}function gh(t,n){let r=n.replace(/\/+$/,"").split("/");return t.split("/").forEach(s=>{s===".."?r.length>1&&r.pop():s!=="."&&r.push(s)}),r.length>1?r.join("/"):"/"}function Zl(t,n,r,i){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+n+"` field ["+JSON.stringify(i)+"].  Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function zv(t){return t.filter((n,r)=>r===0||n.route.path&&n.route.path.length>0)}function tx(t,n){let r=zv(t);return n?r.map((i,s)=>s===r.length-1?i.pathname:i.pathnameBase):r.map(i=>i.pathnameBase)}function nx(t,n,r,i){i===void 0&&(i=!1);let s;typeof t=="string"?s=Ri(t):(s=Ws({},t),Qe(!s.pathname||!s.pathname.includes("?"),Zl("?","pathname","search",s)),Qe(!s.pathname||!s.pathname.includes("#"),Zl("#","pathname","hash",s)),Qe(!s.search||!s.search.includes("#"),Zl("#","search","hash",s)));let a=t===""||s.pathname==="",o=a?"/":s.pathname,c;if(o==null)c=r;else{let u=n.length-1;if(!i&&o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),u-=1;s.pathname=g.join("/")}c=u>=0?n[u]:"/"}let l=Dv(s,c),d=o&&o!=="/"&&o.endsWith("/"),p=(a||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(d||p)&&(l.pathname+="/"),l}const pr=t=>t.join("/").replace(/\/\/+/g,"/"),Bv=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Uv=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Vv=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Hv(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const rx=["post","put","patch","delete"];new Set(rx);const Yv=["get",...rx];new Set(Yv);/**
51 * React Router v6.30.3
52 *
53 * Copyright (c) Remix Software Inc.
54 *
55 * This source code is licensed under the MIT license found in the
56 * LICENSE.md file in the root directory of this source tree.
57 *
58 * @license MIT
59 */function Qs(){return Qs=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},Qs.apply(this,arguments)}const bp=m.createContext(null),Gv=m.createContext(null),Gr=m.createContext(null),al=m.createContext(null),vr=m.createContext({outlet:null,matches:[],isDataRoute:!1}),ix=m.createContext(null);function Wv(t,n){let{relative:r}=n===void 0?{}:n;ca()||Qe(!1);let{basename:i,navigator:s}=m.useContext(Gr),{hash:a,pathname:o,search:c}=ax(t,{relative:r}),l=o;return i!=="/"&&(l=o==="/"?i:pr([i,o])),s.createHref({pathname:l,search:c,hash:a})}function ca(){return m.useContext(al)!=null}function Wr(){return ca()||Qe(!1),m.useContext(al).location}function sx(t){m.useContext(Gr).static||m.useLayoutEffect(t)}function da(){let{isDataRoute:t}=m.useContext(vr);return t?a2():Qv()}function Qv(){ca()||Qe(!1);let t=m.useContext(bp),{basename:n,future:r,navigator:i}=m.useContext(Gr),{matches:s}=m.useContext(vr),{pathname:a}=Wr(),o=JSON.stringify(tx(s,r.v7_relativeSplatPath)),c=m.useRef(!1);return sx(()=>{c.current=!0}
vendor: 4,426 bytes, line 59
59),m.useCallback(function(d,p){if(p===void 0&&(p={}),!c.current)return;if(typeof d=="number"){i.go(d);return}let u=nx(d,JSON.parse(o),a,p.relative==="path");t==null&&n!=="/"&&(u.pathname=u.pathname==="/"?n:pr([n,u.pathname])),(p.replace?i.replace:i.push)(u,p.state,p)},[n,i,o,a,t])}function yp(){let{matches:t}=m.useContext(vr),n=t[t.length-1];return n?n.params:{}}function ax(t,n){let{relative:r}=n===void 0?{}:n,{future:i}=m.useContext(Gr),{matches:s}=m.useContext(vr),{pathname:a}=Wr(),o=JSON.stringify(tx(s,i.v7_relativeSplatPath));return m.useMemo(()=>nx(t,JSON.parse(o),a,r==="path"),[t,o,a,r])}function Zv(t,n){return Kv(t,n)}function Kv(t,n,r,i){ca()||Qe(!1);let{navigator:s}=m.useContext(Gr),{matches:a}=m.useContext(vr),o=a[a.length-1],c=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let d=Wr(),p;if(n){var u;let y=typeof n=="string"?Ri(n):n;l==="/"||(u=y.pathname)!=null&&u.startsWith(l)||Qe(!1),p=y}else p=d;let g=p.pathname||"/",f=g;if(l!=="/"){let y=l.replace(/^\//,"").split("/");f="/"+g.replace(/^\//,"").split("/").slice(y.length).join("/")}let L=jv(t,{pathname:f}),v=t2(L&&L.map(y=>Object.assign({},y,{params:Object.assign({},c,y.params),pathname:pr([l,s.encodeLocation?s.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:pr([l,s.encodeLocation?s.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),a,r,i);return n&&v?m.createElement(al.Provider,{value:{location:Qs({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:tr.Pop}},v):v}function Jv(){let t=s2(),n=Hv(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),r=t instanceof Error?t.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},n),r?m.createElement("pre",{style:s},r):null,null)}const $v=m.createElement(Jv,null);class Xv extends m.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,r){return r.location!==n.location||r.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:r.error,location:r.location,revalidation:n.revalidation||r.revalidation}}componentDidCatch(n,r){console.error("React Router caught the following error during render",n,r)}render(){return this.state.error!==void 0?m.createElement(vr.Provider,{value:this.props.routeContext},m.createElement(ix.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function e2(t){let{routeContext:n,match:r,children:i}=t,s=m.useContext(bp);return s&&s.static&&s.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=r.route.id),m.createElement(vr.Provider,{value:n},i)}function t2(t,n,r,i){var s;if(n===void 0&&(n=[]),r===void 0&&(r=null),i===void 0&&(i=null),t==null){var a;if(!r)return null;if(r.errors)t=r.matches;else if((a=i)!=null&&a.v7_partialHydration&&n.length===0&&!r.initialized&&r.matches.length>0)t=r.matches;else return null}let o=t,c=(s=r)==null?void 0:s.errors;if(c!=null){let p=o.findIndex(u=>u.route.id&&(c==null?void 0:c[u.route.id])!==void 0);p>=0||Qe(!1),o=o.slice(0,Math.min(o.length,p+1))}let l=!1,d=-1;if(r&&i&&i.v7_partialHydration)for(let p=0;p<o.length;p++){let u=o[p];if((u.route.HydrateFallback||u.route.hydrateFallbackElement)&&(d=p),u.route.id){let{loaderData:g,errors:f}=r,L=u.route.loader&&g[u.route.id]===void 0&&(!f||f[u.route.id]===void 0);if(u.route.lazy||L){l=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((p,u,g)=>{let f,L=!1,v=null,y=null;r&&(f=c&&u.route.id?c[u.route.id]:void 0,v=u.route.errorElement||$v,l&&(d<0&&g===0?(o2("route-fallback"),L=!0,y=null):d===g&&(L=!0,y=u.route.hydrateFallbackElement||null)));let h=n.concat(o.slice(0,g+1)),b=()=>{let x;return f?x=v:L?x=y:u.route.Component?x=m.createElement(u.route.Component,null):u.route.element?x=u.route.element:x=p,m.createElement(e2,{match:u,routeContext:{outlet:p,matches:h,isDataRoute:r!=null},children:x})};return r&&(u.route.ErrorBoundary||u.route.errorElement||g===0)?m.createElement(Xv,{location:r.location,revalidation:r.revalidation,component:v,error:f,children:b(),routeC
59ontext:{outlet:null,matches:h,isDataRoute:!0}}):b()},null)}var ox=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(ox||{}),lx=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(lx||{});function n2(t){let n=m.useContext(bp);return n||Qe(!1),n}function r2(t){let n=m.useContext(Gv);return n||Qe(!1),n}function i2(t){let n=m.useContext(vr);return n||Qe(!1),n}function cx(t){let n=i2(),r=n.matches[n.matches.length-1];return r.route.id||Qe(!1),r.route.id}function s2(){var t;let n=m.useContext(ix),r=r2(),i=cx();return n!==void 0?n:(t=r.errors)==null?void 0:t[i]}function a2(){let{router:t}=n2(ox.UseNavigateStable),n=cx(lx.UseNavigateStable),r=m.useRef(!1);return sx(()=>{r.current=!0}),m.useCallback(function(s,a){a===void 0&&(a={}),r.current&&(typeof s=="number"?t.navigate(s):t.navigate(s,Qs({fromRouteId:n},a)))},[t,n])}const fh={};function o2(t,n,r){fh[t]||(fh[t]=!0)}function l2(t,n){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function An(t){Qe(!1)}function c2(t){let{basename:n="/",children:r=null,location:i,navigationType:s=tr.Pop,navigator:a,static:o=!1,future:c}=t;ca()&&Qe(!1);let l=n.replace(/^\/*/,"/"),d=m.useMemo(()=>({basename:l,navigator:a,static:o,future:Qs({v7_relativeSplatPath:!1},c)}),[l,c,a,o]);typeof i=="string"&&(i=Ri(i));let{pathname:p="/",search:u="",hash:g="",state:f=null,key:L="default"}=i,v=m.useMemo(()=>{let y=vp(p,l);return y==null?null:{location:{pathname:y,search:u,hash:g,state:f,key:L},navigationType:s}},[l,p,u,g,f,L,s]);return v==null?null:m.createElement(Gr.Provider,{value:d},m.createElement(al.Provider,{children:r,value:v}))}function d2(t){let{children:n,location:r}=t;return Zv(ad(n),r)}new Promise(()=>{});function ad(t,n){n===void 0&&(n=[]);let r=[];return m.Children.forEach(t,(i,s)=>{if(!m.isValidElement(i))return;let a=[...n,s];if(i.type===m.Fragment){r.push.apply(r,ad(i.props.children,a));return}i.type!==An&&Qe(!1),!i.props.index||!i.props.children||Qe(!1);let o={id:i.props.id||a.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(o.children=ad(i.props.children,a)),r.push(o)}),r}/**
60 * React Router DOM v6.30.3
61 *
62 * Copyright (c) Remix Software Inc.
63 *
64 * This source code is licensed under the MIT license found in the
65 * LICENSE.md file in the root directory of this source tree.
66 *
67 * @license MIT
68 */function od(){return od=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},od.apply(this,arguments)}function p2(t,n){if(t==null)return{};var r={},i=Object.keys(t),s,a;for(a=0;a<i.length;a++)s=i[a],!(n.indexOf(s)>=0)&&(r[s]=t[s]);return r}function u2(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function h2(t,n){return t.button===0&&(!n||n==="_self")&&!u2(t)}function ld(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((n,r)=>{let i=t[r];return n.concat(Array.isArray(i)?i.map(s=>[r,s]):[[r,i]])},[]))}function m2(t,n){let r=ld(t);return n&&n.forEach((i,s)=>{r.has(s)||n.getAll(s).forEach(a=>{r.append(s,a)})}),r}const g2=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],f2="6";try{window.__reactRouterVersion=f2}catch{}const x2="startTransition",xh=l0[x2];function L2(t){let{basename:n,children:r,future:i,window:s}=t,a=m.useRef();a.current==null&&(a.current=vv({window:s,v5Compat:!0}));let o=a.current,[c,l]=m.useState({action:o.action,location:o.location}),{v7_startTransition:d}=i||{},p=m.useCallback(u=>{d&&xh?xh(()=>l(u)):l(u)},[l,d]);return m.useLayoutEffect(()=>o.listen(p),[o,p]),m.useEffect(()=>l2(i),[i]),m.createElement(c2,{basename:n,children:r,location:c.location,navigationType:c.action,navigator:o,future:i})}const v2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",b2=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ti=m.forwardRef(function(n,r){let{onClick:i,relative:s,reloadDocument:a,replace:o,state:c,target:l,to:d,preventScrollReset:p,viewTransition:u}=n,g=p2(n,g2),{basename:f}=m.useContext(Gr),L,v=!1;
68if(typeof d=="string"&&b2.test(d)&&(L=d,v2))try{let x=new URL(window.location.href),A=d.startsWith("//")?new URL(x.protocol+d):new URL(d),w=vp(A.pathname,f);A.origin===x.origin&&w!=null?d=w+A.search+A.hash:v=!0}catch{}let y=Wv(d,{relative:s}),h=y2(d,{replace:o,state:c,target:l,preventScrollReset:p,relative:s,viewTransition:u});function b(x){i&&i(x),x.defaultPrevented||h(x)}return m.createElement("a",od({},g,{href:L||y,onClick:v||a?i:b,ref:r,target:l}))});var Lh;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(Lh||(Lh={}));var vh;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(vh||(vh={}));function y2(t,n){let{target:r,replace:i,state:s,preventScrollReset:a,relative:o,viewTransition:c}=n===void 0?{}:n,l=da(),d=Wr(),p=ax(t,{relative:o});return m.useCallback(u=>{if(h2(u,r)){u.preventDefault();let g=i!==void 0?i:Ro(d)===Ro(p);l(t,{replace:g,state:s,preventScrollReset:a,relative:o,viewTransition:c})}},[d,l,p,i,s,r,t,a,o,c])}function j2(t){let n=m.useRef(ld(t)),r=m.useRef(!1),i=Wr(),s=m.useMemo(()=>m2(i.search,r.current?null:n.current),[i.search]),a=da(),o=m.useCallback((c,l)=>{const d=ld(typeof c=="function"?c(s):c);r.current=!0,a("?"+d,l)},[a,s]);return[s,o]}function dx(){return typeof window>"u"?!1:/^\/(?:fr\/)?carte\/?$/.test(window.location.pathname)&&new URLSearchParams(window.location.search).get("standardTutorial")==="1"}function In(){return dx()&&window.parent!==window}function T6(){return In()?(window.parent.postMessage({type:"proplace:standard-tutorial:choose-mode"},window.location.origin),!0):!1}const w2={email:"[email protected]",fund_type:"asteria-demo",ts:0},jp="proplace_auth",k2=60*60*24*365;function px(t){return typeof location<"u"&&location.hostname.endsWith("proplace.co")?`domain=.proplace.co; path=/; max-age=${t}; secure; samesite=lax`:`path=/; max-age=${t}; samesite=lax`}function A2(){if(In())return;
68const t=Ge();!(t!=null&&t.email)&&!(t!=null&&t.fund_type)||ur(t)}function ur(t){if(In())return;const n=encodeURIComponent(btoa(JSON.stringify(t)));document.cookie=`${jp}=${n}; ${px(k2)}`}function Ge(){if(In())return{...w2};if(typeof document>"u")return null;const t=document.cookie.split("; ").find(n=>n.startsWith(jp+"="));if(!t)return null;try{return JSON.parse(atob(decodeURIComponent(t.split("=")[1])))}catch{return null}}function ux(){In()||(document.cookie=`${jp}=; ${px(0)}`)}function hx(t){return(t||"").trim().replace(/^member-/i,"").replace(/[-_]+/g," ").trim()}function S2(t,n="fr"){const r=hx(t);return r?`${r} deal flow`:n==="fr"?"Mon deal flow":"My deal flow"}function wp(t){return(t||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)}function Tn(t){const n=wp(t);return n?`/cibles/${n}/`:"/cibles/"}function pa(t){const n=wp(t);return n?`/cibles/${n}/open/`:"/cibles/"}function kp(t){const n=(t||"").toLowerCase();return n==="standard"||n==="enterprise"}function Ir(t,n){var s;if((n==null?void 0:n.open)===!0)return pa(t);if((n==null?void 0:n.open)===!1)return Tn(t);const r=String(((s=Ge())==null?void 0:s.member_session)||"").trim(),i=`/cibles/go/?fund=${encodeURIComponent(t)}`;return r?`${i}&session=${encodeURIComponent(r)}`:i}function bh(t,n){return`https://proplace.co${n?pa(t):Tn(t)}`}function lo(t="fr"){return t==="fr"?"/fr/compte":"/compte"}function rn(t){return(t||"").toLowerCase().startsWith("member-")}const Kl="proplace_lang",E2=["/actualites","/research"];function Zs(t){return E2.some(n=>t===n||t.startsWith(n+"/"))}const mx=m.createContext(null);function yh(t){return t==="/en"||t.startsWith("/en/")?(Zs(t.slice(3)||"/"),"en"):Zs(t)||t==="/fr"||t.startsWith("/fr/")?"fr":"en"}function Ap(t){return/^\/en\/newsletter\/?$/.test(t)?"/newsletter":t.startsWith("/en/")&&Zs(t.slice(3))?t.slice(3):t==="/fr"?"/":t.startsWith("/fr/")?t.slice(3):t}function co(t,n){const r=Ap(t);return/^\/newsletter\/?$/.test(r)?`/${n}/newsletter`:Zs(r)?n==="fr"?r:"/en"+r:n==="en"?r:r==="/"?"/fr":"/fr"+r}let jh=!1;function N2({children:t}){const n=Wr(),r=da(),i=yh(n.pathname),s=m.useRef(!1);m.useEffect(()=>{if(jh||s.current||(jh=!0,s.current=!0,yh(n.pathname)!=="en")||/^\/en\/newsletter\/?$/.test(n.pathname)||Zs(Ap(n.pathname)))return;let c=null;try{const d=localStorage.getItem(Kl);(d==="en"||d==="fr")&&(c=d)}catch{}if((c??"en")==="fr"){const d=co(n.pathname,"fr")+n.search+n.hash;r(d,{replace:!0})}},[]),m.useEffect(()=>{typeof document<"u"&&(document.documentElement.lang=i);try{localStorage.setItem(Kl,i)}catch{}},[i]);const a=c=>{try{localStorage.setItem(Kl,c)}catch{}const l=co(n.pathname,c)+n.search+n.hash;r(l),typeof window<"u"&&window.scrollTo({top:0})},o=m.useMemo(()=>({lang:i,switchLang:a,toggle:()=>a(i==="en"?"fr":"en"),localizePath:(c,l=i)=>co(c,l)}),[i,n.pathname,n.search,n.hash]);return e.jsx(mx.Provider,{value:o,children:t})}function ae(){const t=m.useContext(mx);if(!t)throw new Error("useLang() doit être utilisé dans <LanguageProvider>");return t}const _e="https://alexandre-79537--sourcing-agent-fastapi-app.modal.run",Zt="https://alexandre-79537--proplace-chat-proxy-fastapi-app.modal.run",vn={resolveWebsite:`${_e}/inbound/resolve-website`,uploadDeck:`${_e}/inbound/upload-deck`,evaluateAndSignup:`${_e}/inbound/evaluate-and-signup`,verifyStart:`${_e}/inbound/verify/start`,verifyConfirm:`${_e}/inbound/verify/confirm`,thesisView:`${_e}/inbound/thesis-view`,activateAndSource:`${_e}/inbound/activate-and-source`,signup:`${_e}/inbound/signup`,memberMemos:`${_e}/inbound/member-memos`,credits:`${_e}/inbound/credits`,tryFree:`${_e}/inbound/try-free`,memoStatus:t=>`${_e}/v3/instant-memo/status/${encodeURIComponent(t)}`,memoNotes:(t,n)=>`${_e}/v3/instant-memo/notes/${encodeURIComponent(t)}?since=${n}`};async function q6(t){const n=await fetch(vn.resolveWebsite,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({company_name:t})}
68),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.detail||r.error||`HTTP ${n.status}`);return r}async function C2(t){const n=new FormData;n.append("file",t,t.name||"deck.pdf");const r=await fetch(vn.uploadDeck,{method:"POST",body:n}),i=await r.json().catch(()=>({}));if(!r.ok)throw new Error(i.detail||i.error||`HTTP ${r.status}`);return String(i.pitch_deck_url||"")}async function _2(t){const n=await fetch(vn.evaluateAndSignup,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok){const i=r.detail||r.error||`HTTP ${n.status}`;throw new Error(typeof i=="string"?i:JSON.stringify(i))}return r}async function T2(t){const n=await fetch(vn.signup,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok){const i=r.detail||r.error||`HTTP ${n.status}`;throw new Error(typeof i=="string"?i:JSON.stringify(i))}return r}async function Jl(t){const n=await fetch(vn.verifyStart,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok){const i=r.detail||r.error||`HTTP ${n.status}`;throw new Error(typeof i=="string"?i:JSON.stringify(i))}return r}async function Cs(t){const n=await fetch(vn.verifyConfirm,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok){const i=r.detail||r.error||`HTTP ${n.status}`;throw new Error(typeof i=="string"?i:JSON.stringify(i))}return r}async function gx(t,n=!1){const r=await fetch(vn.thesisView,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:t,fresh:n})}),i=await r.json().catch(()=>({}));if(!r.ok){const s=i.detail||i.error||`HTTP ${r.status}`;throw new Error(typeof s=="string"?s:JSON.stringify(s))}return i}async function fx(t,n="fr",r=""){const i=await fetch(vn.activateAndSource,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:t,lang:n,phone:r})}),s=await i.json().catch(()=>({}));if(!i.ok){const a=s.detail||s.error||`HTTP ${i.status}`;throw new Error(typeof a=="string"?a:JSON.stringify(a))}return s}function wh(t){if(!t)return"";const n=String(t.reply||"").trim(),r=String(t.clarification||"").trim();return r&&!n.includes(r)?n?`${n} ${r}`:r:n||String(t.error||"").trim()}const ol=(t,n="sourced")=>{var r;return{fund_slug:t,source:n,...(r=Ge())!=null&&r.member_session?{session:Ge().member_session}:{}}};async function q2(t){try{const n=await fetch(`${Zt}/cibles/last`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ol(t))});if(!n.ok)return null;const r=await n.json().catch(()=>({}));return!r||r.ok===!1?null:r.found===!0?!0:r.found===!1?!1:null}catch{return null}}async function F2(t){try{const r=await(await fetch(`${Zt}/cibles/last`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ol(t))})).json().catch(()=>({})),i=String(r.token||"");if(!i)return null;const s=await fetch(`${Zt}/cibles/list.json?token=${encodeURIComponent(i)}`);if(!s.ok)return null;const o=(await s.json()).criteria;return o&&typeof o=="object"?o:null}catch{return null}}async function O2(t){try{const r=await(await fetch(`${Zt}/cibles/last`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ol(t))})).json().catch(()=>({})),i=String(r.token||"");if(!i)return null;const s=await fetch(`${Zt}/engines-drilldown-batch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fund_slug:t,days:7,fund_scoped:!0,token:i,cibles_token:i})});if(!s.ok)return null;const a=await s.json();return a.error?null:a}catch{return null}}const M2="https://alexandre-79537--airtable-bridge-fastapi-app.modal.run";function R2(t){return t?typeof t=="string"?t:typeof t=="object"&&t&&"url"in t?String(t.url||""):"":""}async function kh(t){const n=await fetch(`${M2}/fund-thesis?slug=${encodeURIComponent(t)}`);if(!n.ok)return null;const i=((await n.json().catch(()=>({}))).records||[])[0];if(!i)return null;const s=i.fields||{};let a=null;if(typeof s.fund_thesis=="string"&&s.fund_thesis.trim())try{a=JSON.parse(s.fund_thesis)}catch{a=null}return{airtable_id:i.id,email_lead:String(s.email_lead||""),lang:String(s.lang||""),logo_url:R2(s.logo_url),thesis:a}}async function P2(t,n,r){const i=await fetch(`${Zt}/inbound/account-settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t,fund:n,fields:r})}),s=await i.json().catch(()=>({}));return!i.ok||!s.ok?{ok:!1,error:String(s.error||s.detail||`HTTP ${i.status}`)}:{ok:!0}}async function I2(t){const n={thumbs:[],counts:{yes:0,no:0}};try{const i=await(await fetch(`${Zt}/cibles/last`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ol(t))})).json().catch(()=>({})),s=String(i.token||"");if(!s)return n;const a=await fetch(`${Zt}/cibles/thumbs-journal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:s})});if(!a.ok)return n;const o=await a.json();return{thumbs:Array.isArray(o.thumbs)?o.thumbs:[],counts:o.counts||{yes:0,no:0}}}catch{return n}}async function D2(t,n,r){const i=await fetch(`${Zt}/inbound/account-thesis-chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t,fund:n,message:r})}),s=await i.json().catch(()=>({}));if(!i.ok)throw new Error(String(s.error||s.detail||`HTTP ${i.status}`));return s}async function xx(t,n){const r=await fetch(`${Zt}/inbound/thesis-refine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:t,message:n})}),i=await r.json().catch(()=>({}));if(!r.ok){const s=i.detail||i.error||`HTTP ${r.status}`;throw new Error(typeof s=="string"?s:JSON.stringify(s))}return i}async function Sp(t){return await(await fetch(`${Zt}/cibles/thesis-chat-status`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({job_id:t})})).json().catch(()=>({ok:!1,done:!1}))}async function z2(t,n){try{return await(await fetch(vn.memoNotes(t,n))).json()}catch{return{ok:!1,found:!1,seq:n,notes:[]}}}async function B2(t){return await(await fetch(vn.memoStatus(t))).json().catch(()=>({done:!1}))}const Ah={rss:"RSS",google_news:"Google News",google_alerts:"Google Alerts",pappers_fr:"Pappers FR",crt:"CRT",github:"GitHub",hn:"Hacker News",fundraising:"Fundraising",backfill:"Backfill",websets_engine:"Exa Websets",websets:"Exa Websets",parallel:"Parallel",linkedin_posts:"LinkedIn Posts",linkedin_jobs:"LinkedIn Jobs",exa_semantic:"Exa Semantic",exa_similar:"Exa Similar",crunchbase_search:"
68Crunchbase",other_custom:"Autres (Make sur-mesure)",manual_paste:"Saisie manuelle",find_similar_qualified:"Similaires aux qualifiés",editorial:"Éditorial (médias experts)",daily_news:"Daily news thèse",alumni:"Alumni fondateurs",competitor_exodus:"Départs concurrents",hackernews:"Hacker News",crt_sh:"CRT",pappers:"Pappers FR",pappers_intl:"Pappers International",opencorporates:"OpenCorporates",tavily:"Tavily",registre_gouv:"Registre officiel (gouv)",hunter:"Hunter",sales_nav:"Sales Navigator",sourcing:"Sourcing Proplace",local:"Moteur local (Google Maps + BODACC)",bot:"Bot"},U2={rss:"Lit chaque matin des centaines de médias et de flux spécialisés pour repérer les sociétés qui bougent dans votre secteur.",editorial:"Suit en continu les médias experts et lettres spécialisées de votre secteur pour repérer les sociétés dont on commence à parler.",google_news:"Balaie l'actualité mondiale en continu pour capter les sociétés qui font parler d'elles (levées, lancements, nominations).",google_alerts:"Surveille des mots-clés précis sur tout le web et remonte chaque société correspondante dès qu'elle apparaît.",pappers_fr:"Interroge les registres officiels français (SIRENE, codes d'activité) pour trouver des sociétés par métier, en temps réel.",crt:"Détecte les toutes nouvelles s
68ociétés dès la mise en ligne de leur site web — un signal très précoce, avant tout le monde.",github:"Détecte les sociétés tech par l'activité de leurs développeurs — un signal très en amont, avant qu'elles ne fassent parler d'elles.",hn:"Scrute Hacker News, le forum de référence des fondateurs tech, pour repérer les projets qui émergent en premier.",fundraising:"Repère les sociétés qui viennent de lever des fonds — le moment précis où elles accélèrent et deviennent intéressantes.",backfill:"Repasse sur les périodes passées pour rattraper les sociétés qui auraient pu passer entre les mailles du filet.",websets:"Construit des listes de sociétés sur mesure à partir d'une simple description, en explorant tout le web.",parallel:"Cherche chaque matin d'autres sociétés qui collent à votre thèse, en plus des moteurs déjà en place.",websets_engine:"Construit des listes de sociétés sur mesure à partir d'une simple description, en explorant tout le web.",linkedin_posts:"Analyse les publications LinkedIn pour repérer les sociétés et dirigeants qui annoncent quelque chose d'intéressant.",linkedin_jobs:"Lit les offres d'emploi LinkedIn : une société qui recrute massivement dans un domaine trahit sa stratégie et sa croissance.",exa_semantic:"Recherche sémantique sur tout le web : vous décrivez ce que vous cherchez en langage naturel, et il trouve les sociétés qui y ressemblent.",exa_similar:"Partez d'une société que vous aimez, et il trouve toutes celles qui lui ressemblent sur le web.",crunchbase_search:"Interroge la base mondiale des startups et de leurs financements pour trouver des sociétés par profil.",other_custom:"Moteurs branchés spécialement pour votre thèse — chaque signal utile peut devenir un moteur sur mesure.",manual_paste:"Les sociétés que vous ajoutez vous-même à la main, évaluées selon vos critères exactement comme les autres.",find_similar_qualified:"Part des sociétés que vous avez déjà retenues pour en trouver d'autres, très proches, partout sur le web.",daily_news:"Relit l'actualité du jour à travers le prisme exact de votre thèse pour n'en garder que ce qui vous concerne.",alumni:"Suit les diplômés des meilleures écoles pour repérer ceux qui viennent de fonder une société.",competitor_exodus:"Détecte les départs de talents des sociétés concurrentes — souvent le signe d'une nouvelle société en création.",hackernews:"Scrute Hacker News, le forum de référence des fondateurs tech, pour repérer les projets qui émergent en premier.",crt_sh:"Détecte les toutes nouvelles s
68ociétés dès la mise en ligne de leur site web — un signal très précoce, avant tout le monde.",pappers:"Interroge les registres officiels français (SIRENE, codes d'activité) pour trouver des sociétés par métier, en temps réel.",pappers_intl:"Interroge les registres d'entreprises internationaux pour trouver des sociétés par pays et par activité, en temps réel.",opencorporates:"Explore la plus grande base mondiale de registres d'entreprises pour retrouver des sociétés officielles partout dans le monde.",tavily:"Recherche web en temps réel : interroge tout le web à la volée pour capter les sociétés qui collent à votre thèse.",registre_gouv:"Interroge le registre officiel des entreprises françaises (recherche-entreprises) pour trouver des sociétés par activité.",local:"Trouve les commerces de proximité de votre métier, ville par ville. Sur Google Maps : les magasins physiques avec leur note, leurs avis et leur site (tri « leaders » ou « à reprendre »). Via le BODACC officiel : les affaires acquérables — liquidations, ventes & cessions de fonds, cessations (locaux à récupérer). Tourne à la demande (Google Maps payant) ; option radar quotidien gratuit via BODACC.",hunter:"Retrouve les coordonnées professionnelles des sociétés (emails, domaines) pour identifier les bons interlocuteurs à contacter."},V2={rss:"Reads hundreds of media outlets and specialist feeds every morning to spot the companies moving in your sector.",editorial:"Continuously follows the expert media and specialist newsletters in your sector to catch companies just starting to get noticed.",google_news:"Sweeps world news in real time to catch companies making headlines (raises, launches, appointments).",google_alerts:"Watches precise keywords across the whole web and surfaces every matching company the moment it appears.",pappers_fr:"Queries the official French registries (SIRENE, activity codes) to find companies by line of business, in real time.",crt:"Detects brand-new companies the moment their website goes live — a very early signal, ahead of everyone else.",github:"Detects tech companies from their developers' activity — a very early signal, before they make any noise.",hn:"Scans Hacker News, the go-to forum for tech founders, to catch the projects emerging first.",fundraising:"Spots companies that have just raised funds — the exact moment they accelerate and become interesting.",backfill:"Re-combs past periods to catch companies that might have slipped through the cracks.",websets:"Builds tailored company lists from a simple description, exploring the whole web.",parallel:"Each morning, finds more companies that fit your thesis, on top of the engines already running.",websets_engine:"Builds tailored company lists from a simple description, exploring the whole web.",linkedin_posts:"Reads LinkedIn posts to spot the companies and executives announcing something worth knowing.",linkedin_jobs:"Reads LinkedIn job ads: a company hiring heavily in one area reveals its strategy and its growth.",exa_semantic:"Semantic search across the whole web: describe what you're looking for in plain language, and it finds the companies that match.",exa_similar:"Start from a company you like, and it finds every similar one across the web.",crunchbase_search:"Queries the global database of startups and their funding to find companies by profile.",other_custom:"Engines wired specifically for your thesis — any useful signal can become a custom engine.",manual_paste:"The companies you add yourself by hand, scored against your criteria exactly like the rest.",find_similar_qualified:"Starts from companies you've already kept to find others, very close to them, across the web.",daily_news:"Re-reads today's news through the exact lens of your thesis, keeping only what concerns you.",alumni:"Tracks graduates of top schools to spot those who have just founded a company.",competitor_exodus:"Detects talent leaving competitor companies — often the sign of a new company being born.",hackernews:"Scans Hacker News, the go-to forum for te
68ch founders, to catch the projects emerging first.",crt_sh:"Detects brand-new companies the moment their website goes live — a very early signal, ahead of everyone else.",pappers:"Queries the official French registries (SIRENE, activity codes) to find companies by line of business, in real time.",pappers_intl:"Queries international company registries to find companies by country and activity, in real time.",opencorporates:"Explores the world's largest database of company registries to surface official companies anywhere in the world.",tavily:"Real-time web search: queries the whole web on the fly to catch companies matching your thesis.",registre_gouv:"Queries the official French company register (recherche-entreprises) to find companies by activity.",local:"Finds the main-street businesses in your trade, town by town. On Google Maps: the physical storefronts with their rating, reviews and website (sort 'leaders' or 'turnaround'). Via the official BODACC bulletin: acquirable businesses — insolvencies, sales & transfers of goodwill, closures (premises to take over). Runs on demand (Google Maps is paid); optional free daily BODACC radar.",hunter:"Finds companies' professional contact details (emails, domains) to identify the right people to reach."};function H2(t){const n=(t||"").trim().toLowerCase();if(!n)return"";const r=Ah[n]||Ah[n+"_engine"];return r||n.replace(/_/g," ").split(" ").filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Y2(t,n){const r=(t||"").trim().toLowerCase(),i=n?V2:U2;return i[r]||i[r+"_engine"]||""}const G2=/^(?:pass\s+)?if and only if\b/i,W2=/^(?:step\s+)?[a-e1-6]\s*[.):]?$/i;function Q2(t){return(t||"").replace(/\s+/g," ").trim().replace(/^(?:pass\s+)?if and only if(?:\s+[a-e](?:\s+and\s+[a-e])*)\s*\.?\s*/i,"")}function Z2(t){const n=/\b(?:STEP|ÉTAPE|ETAPE)\s*(\d+)\s*[—–\-:.)]\s*/gi,r=[];let i;for(;i=n.exec(t);)r.push({start:i.index,textStart:i.index+i[0].length});if(r.length<2)return null;const s="ABCDEFGH";return r.map((a,o)=>t.slice(a.textStart,o+1<r.length?r[o+1].start:t.length).trim()).map(a=>a.replace(/\s*\(([a-h])\)\s*/gi,(o,c)=>`
69(${c.toLowerCase()}) `).trim()).filter(a=>a.length>8).map((a,o)=>({k:s[o]||"",t:a}))}function K2(t){const n=Q2(t);if(!n)return[];const r=Z2(n);if(r&&r.length>=2)return r;const i=/(?:^|\s)(?:step\s+)?([a-e])[.):]\s+/gi,s=[];let a;for(;a=i.exec(n);)s.push({k:a[1].toUpperCase(),start:a.index,textStart:a.index+a[0].length});return s.length>=2?s.map((o,c)=>({k:o.k,t:n.slice(o.textStart,c+1<s.length?s[c+1].start:n.length).trim()})).filter(o=>o.t.length>8):n?[{k:"",t:n}]:[]}function Lx(t){if(!(t!=null&&t.length))return[];const r=t.map(s=>({k:(s.k||"").replace(/^STEP\s+/i,"").trim().toUpperCase(),t:(s.t||"").trim()})).filter(s=>s.t&&!G2.test(s.t)&&!W2.test(s.t)).filter(s=>/^[A-E]$/.test(s.k)&&s.t.length>20);if(r.length>=2)return r;const i=t.map(s=>{const a=(s.k||"").trim(),o=(s.t||"").trim();return a&&o&&!o.toUpperCase().startsWith(`${a}.`)&&!o.toUpperCase().startsWith(`${a} `)?`${a}. ${o}`:[a,o].filter(Boolean).join(" ")}).join(" ");return K2(i)}const J2=/\b(company core business|aligns with at least one angle|primary operations or hq|pre-revenue|brokerage|established broker|insurtech|at least one angle)\b/i,$2=[[/^company core business is\s+/i,"L’activité principale est "],[/^aligns with at least one angle:\s*/i,"Correspond à au moins un de ces axes : "],[/^primary operations or hq in\s+/i,"Siège ou activité principale : "],[/^target is an established\s+/i,"La cible est un "],[/,?\s*not pre-revenue startups?\.?$/i,", pas une start-up sans revenus."],[/\bor InsurTech with recurring premium portfolio/i," ou une InsurTech au portefeuille de primes récurrentes"],[/\binternational health insurance brokerage/i,"le courtage d’assurance santé internationale"],[/\bexpat medical coverage/i,"la couverture médicale des expatriés"],[/\bcross-border health advisory/i,"le conseil santé transfrontalier"],[/\bspecialized social protection for globally mobile populations/i,"la protection sociale des populations mobiles"],[/\bSME and multinational group health for expatriates/i,"santé groupe PME et multinationales pour expatriés"],[/\bgroup health for missions and international organizations/i,"santé groupe pour missions et organisations internationales"],[/\bstudent or young-professional mobility health/i,"santé mobilité étudiants et jeunes professionnels"],[/\bLAMal\/CMU\/EU cross-border compliance advisory/i,"conseil conformité LAMal / CMU / UE"],[/\bcross-border compliance advisory/i,"conseil en conformité transfrontalière"],[/\bdiplomatic mission contracts/i,"contrats de missions diplomatiques"],[/\bstudent and 
69young expat programs/i,"programmes étudiants et jeunes expatriés"],[/\bexpat group health brokerage/i,"courtage santé groupe expatriés"],[/\bor another country with significant expat or diplomatic hub/i,"ou un autre pays avec un hub d’expatriés ou diplomatique"],[/\bestablished broker/i,"courtier établi"]];function Ks(t,n="fr"){let r=(t||"").replace(/_/g," ").replace(/[^\S\n]+/g," ").replace(/ *\n */g,`
70`).trim();if(n!=="fr"||!J2.test(r))return r;for(const[i,s]of $2)r=r.replace(i,s);return r.replace(/[^\S\n]+/g," ").trim()}const X2=/(?:(?:STEP|ÉTAPE|ETAPE)\s*(?:\d+\s*[.\-:(]?\s*)?\(?\s*|(?:^|[\n;])\s*)([A-Da-d])\s*\)?\s*(?:is\s+met\s+as\s*|est\s+(?:satisfait|rempli|coch[ée])\w*\s*(?:car|comme|si|parce\s+que)?\s*)?[:.·—–\-]?\s*/gi,eb=/(?:^|[\n.]\s*)([A-Da-d])\s*[—–\-]\s+/g;function Sh(t,n){const r=[];n.lastIndex=0;let i;for(;i=n.exec(t);)r.push({k:i[1].toUpperCase(),start:i.index,textStart:i.index+i[0].length});for(let s=r.length-1;s>=0;s--)/^\s*(?:,|and\b|et\b|&)/i.test(t.slice(r[s].textStart,r[s].textStart+6))&&r.splice(s,1);if(!r.length)return[];if(r.length===1){if(t.length>1200)return[];if(!/(?:STEP|ÉTAPE|ETAPE)\s*[A-D]|[A-D]\s*[—–\-]/.test(t))return[]}return r.map((s,a)=>({k:s.k,t:t.slice(s.textStart,a+1<r.length?r[a+1].start:t.length).replace(/^(is met as|est satisfait\w*\s*(?:car|comme|parce que)?)\s*/i,"").replace(/^[·—–\-\s]+/,"").trim()})).filter(s=>s.t.length>8)}function tb(t){const n=(t||"").trim();if(!n)return[];const r=Sh(n,X2);return r.length?r:Sh(n,eb)}function $l(t){const n=Number(t);return Number.isFinite(n)?n<=1?`${Math.round(n*100)} %`:`${n} %`:""}function vx(t,n){var u;if(!t)return null;const r=t.financial_model_config||{},i=t.entry_gates||{},s=t.meta||{},a=String(r.mode||i.mode||s.mode||"").toUpperCase(),o=a==="MA"?n?"Croissance externe (M&A)":"External growth (M&A)":a==="VC"?n?"Capital-risque":"Venture capital":a==="PROSPECTION"?n?"Prospection / vente":"Sales / prospecting":a,c=String(r.ma_submode||""),l=a==="VC"?r.vc_config:a==="LBO"||a==="MA"&&c==="lbo_pure"?r.lbo_config:a==="MA"?r.ma_config:null,d=[];l&&(l.hurdle_irr!=null&&d.push({k:"Hurdle IRR",t:$l(l.hurdle_irr)}),l.hurdle_moic!=null&&d.push({k:"Hurdle MOIC",t:`${l.hurdle_moic}×`}),l.hurdle_roi!=null&&d.push({k:"Hurdle ROI",t:$l(l.hurdle_roi)}),l.hold_period_years!=null&&d.push({k:n?"Horizon de détention":"Holding period",t:`${l.hold_period_years} ${n?"ans":"years"}`}),l.max_leverage!=null&&d.push({k:n?"Levier maximal":"Maximum leverage",t:`${l.max_leverage}×`}),l.min_dscr!=null&&d.push({k:"DSCR minimum",t:`${l.min_dscr}×`}),l.hurdle_absolute_gain_eur!=null&&d.push({k:n?"Plus-value minimale":"Absolute gain hurdle",t:`${Number(l.hurdle_absolute_gain_eur).toLocaleString(n?"fr-FR":"en-GB")} €`}));const p=r.confidence_thresholds;if(p&&typeof p=="object"&&!Array.isArray(p))for(const[g,f]of Object.entries(p)){if(f==null||f==="")continue;const L=typeof f=="number"&&$l(f)||String(f);d.push({k:g.replace(/_/g," "),t:L})}return!o&&!i.target_range&&!r.business_model_archetype&&!d.length?null:{mode:a==="MA"&&c==="strategic_acquirer"?n?"Acquéreur stratég
70ique":"Strategic acquirer":a==="MA"&&c==="lbo_pure"||a==="LBO"?"LBO":o,modelKind:a==="VC"?"VC":c==="lbo_pure"||a==="LBO"?"LBO":a==="MA"?"MA":a,horizon:Number(r.synergy_horizon_years||((u=r.acquirer_context)==null?void 0:u.synergy_horizon_years))||void 0,range:String(i.target_range||r.target_range||""),archetype:String(r.business_model_archetype||r.sector_profile||"").replace(/_/g," "),hurdles:d}}const qi={fr:{hypTitle:"Notre hypothèse sur votre stratégie",hypSub:"Toute la sélection en découle. Si elle est à côté, corrigez-la ci-dessous — la recherche est réalignée et vous recevez une sélection corrigée.",hypSubPour:"Toute la sélection en découle.",profilsTitle:"Vos angles d’acquisition",profilsSub:"Les familles de sociétés que Stan traque en continu — chaque angle se déplie.",lookFor:"Ce que nous recherchons",ruleOut:"Ce que nous écartons",gateTitle:"Ce qui fait retenir une société",gateSub:"Stan ne garde une cible que si elle coche tous ces points. Sinon, il l’écarte.",evalKept:"Stan a retenu cette société car :",evalOut:"Stan a écarté cette société car :",evalKeptNeutral:"Retenue car :",evalOutNeutral:"Écartée car :",enginesTitle:"Les moteurs de sourcing",enginesToggle:"Tout afficher / tout masquer",enginesSub:"Chaque matin, Stan n’interroge pas le web en vrac. Il lance les moteurs que votre thèse a branchés, chacun avec sa requête et ses réglages. Dépliez un moteur pour voir ce qu’il fait, et le paramétrage actuel.",enginesQuery:"Réglage actuel",enginesFound:t=>t<=0?"En veille sur cette fenêtre.":`${t} société${t>1?"s":""} trouvée${t>1?"s":""} récemment.`,memoTitle:"Ce que la thèse fabrique : le mémo sur mesure",memoSub:"Quand une société passe le crible, Stan ne rédige pas une fiche générique. Il compose un mémo d’investissement calé sur cette thèse — vos angles, vos seuils, votre acquéreur. Voici, de A à Z, ce qu’elle produit. Lisez-le avant de demander une modification.",memoSecTitle:"Les sections du mémo",memoSecA:"Synergies",memoSecABody:"Le mémo chiffre ce que la cible apporte à votre groupe : cross-sell, coûts, distribution, géographie — à l’horizon fixé dans la thèse. Ce n’est pas un paragraphe marketing : ce sont des leviers que Stan peut défendre en comité.",memoSecB:"Conviction de Stan",memoSecBBody:"Stan écrit pourquoi la société entre — ou non — dans vos angles, avec les preuves qu’il a trouvées. Ce n’est pas un résumé du site web : c’est un avis d’investissement, dans vos mots.",memoSecC:"Le verdict",memoSecCBody:"À la fin du mémo, Stan pose l’un de ces quatre mots. C’est ce verdict que vous tranchez ensuite par oui ou par non.",memoPass:"PASS — écartée : ce n’est pas pour vous.",memoConsider:"CONSIDER — intéressante, des pièces manquent encore.",memoMonitor:"MONITOR — pas maintenant ; Stan vous alerte si ça bouge.",memoCall:"CALL PENDING — sa meilleure trouvaille : à vous de dire oui ou non.",kpiTitle:"Les seuils financiers et le P&L",kpiSub:"La thèse porte aussi le modèle financier. Stan s’en sert pour projeter un compte de résultat et calculer le ROI de l’opération. Tant que ces seuils ne sont pas franchis, il ne peut pas conclure « CALL ». Les modifier, c’est changer le verdict — pas seulement le texte.",kpiMode:"Mode",kpiRange:"Fourchette visée",kpiArch:"Archétype économique"},en:{hypTitle:"Our hypothesis about your strategy",hypSub:"The whole selection follows from it. If it is off, correct it below — the search is realigned and you get a corrected selection.",hypSubPour:"The whole selection follows from it.",profilsTitle:"Your acquisition angles",profilsSub:"The families of companies Stan tracks continuously — each angle unfolds.",lookFor:"What we look for",ruleOut:"What we rule out",gateTitle:"What it takes to be kept",gateSub:"Stan keeps a company only if it ticks every point. Otherwise he rules it out.",evalKept:"Stan kept this company because:",evalOut:"Stan ruled this company out because:",evalKeptNeutral:"Kept because:",evalOutNeutral:"Ruled out because:",enginesTitle:"Sourcing engines",enginesToggle:"Show all / hide all",enginesSub:"Every morning Stan does not scrape the web at large. He runs the engines your thesis wired, each with its query and settings. Unfold an engine to see what it does, and the current parameters.",enginesQuery:"Current settings",enginesFound:t=>t<=0?"On standby in this window.":`${t} compan${t>1?"ies":"y"} found recently.`,memoTitle:"What the thesis builds: the tailored memo",memoSub:"When a company clears the screen, Stan does not write a generic brief. He composes an investment memo locked to this thesis — your angles, your hurdles, your acquirer. This is, A to Z, what it produces. Read it before asking for an edit.",memoSecTitle:"Memo sections",memoSecA:"Synergies",memoSecABody:"The memo sizes what the target brings to your group: cross-sell, costs, distribution, geography — on the horizon set in the thesis. Not a marketing paragraph: levers Stan can defend in committee.",memoSecB:"Stan’s conviction",memoSecBBody:"Stan writes why the company fits — or does not — your angles, with the evidence he found. Not a website summary: an investment view, in y
70our words.",memoSecC:"The verdict",memoSecCBody:"At the end of the memo Stan puts one of these four words. That is the verdict you then answer with yes or no.",memoPass:"PASS — ruled out: this is not for you.",memoConsider:"CONSIDER — interesting, pieces are still missing.",memoMonitor:"MONITOR — not now; Stan alerts you if it moves.",memoCall:"CALL PENDING — his best find: yours to say yes or no.",kpiTitle:"Financial hurdles and the P&L",kpiSub:"The thesis also carries the financial model. Stan uses it to project a P&L and compute the ROI of the deal. Until these hurdles are cleared he cannot conclude “CALL”. Changing them changes the verdict — not just the copy.",kpiMode:"Mode",kpiRange:"Target range",kpiArch:"Economic archetype"}};function cd({gate:t,lang:n}){return t.length===1&&!t[0].k?e.jsx("p",{className:"pp-th-gate1",children:Ks(t[0].t,n)}):e.jsx("ol",{className:"pp-th-gate",children:t.map(r=>e.jsxs("li",{children:[r.k&&e.jsx("b",{children:r.k}),e.jsx("span",{children:Ks(r.t,n)})]},r.k||r.t))})}function F6({text:t,kept:n=!0,lang:r="fr",neutral:i=!1}){const s=qi[r]||qi.fr,a=tb(t);if(!t.trim())return null;const o=a.filter(c=>c.k&&c.t);return e.jsxs("div",{className:"pp-th pp-th-eval"+(n?"":" out"),children:[e.jsx("style",{children:Po}),e.jsx("p",{className:"pp-th-eval-h",children:i?n?s.evalKeptNeutral:s.evalOutNeutral:n?s.evalKept:s.evalOut}),o.length>=1?e.jsx("ol",{className:"pp-th-gate",children:o.map(c=>e.jsxs("li",{children:[c.k&&e.jsx("b",{children:c.k}),e.jsx("span",{children:Ks(c.t,r)})]},c.k))}):e.jsx("p",{className:"pp-th-gate1",children:Ks(t,r)})]})}function O6({criteria:t,lang:n="fr",layout:r="stack"}){const i=qi[n]||qi.fr,s=Lx(t==null?void 0:t.gate);return s.length?r==="tiles"?e.jsxs("div",{className:"pp-th pp-th-tiles",children:[e.jsx("style",{children:Po}),e.jsxs("div",{className:"pp-th-tiles-h",children:[e.jsx("h4",{className:"pp-th-h",children:i.gateTitle}),e.jsx("p",{className:"pp-th-note",children:i.gateSub})]}),e.jsx("ol",{className:"pp-th-tiles-row",children:s.map(a=>e.jsxs("li",{children:[a.k&&e.jsx("b",{children:a.k}),e.jsx("span",{children:Ks(a.t,n)})]},a.k||a.t))})]}):e.jsxs("div",{className:"pp-th pp-th-side",children:[e.jsx("style",{children:Po}),e.jsx("h4",{className:"pp-th-h",children:i.gateTitle}),e.jsx("p",{className:"pp-th-note",children:i.gateSub}),e.jsx(cd,{gate:s,lang:n})]}):null}function ll({criteria:t,lang:n="fr",variant:r="default",hideGate:i=!1,openFirst:s=!0,exclusive:a=!1,section:o="all",engines:c,memo:l,onEditFinancial:d}){var w,S,E;const p=qi[n]||qi.fr,u=t||{},g=o==="all"||o==="hyp",f=o==="all"||o==="angles",L=i||o!=="all"?[]:Lx(u.gate),v=r==="pour"?p.hypSubPour:p.hypSub,y=o==="all"&&r!=="pour"||o==="engines",h=o==="all"&&r!=="pour"||o==="memo",b=n==="en",x=l||vx({financial_model_config:t.financial||{mode:t.mode}},!b),A=(x==null?void 0:x.modelKind)==="VC"?b?"VC: revenue growth, cash needs and runway; investment, ownership and dilution through exit determine the fund’s MOIC, IRR and capital gain. Compare returns with your hurdles in each scenario.":"VC : croissance du chiffre d’affaires, besoins de trésorerie et autonomie ; ticket, participation et dilution jusqu’à la sortie déterminent le MOIC, le TRI et la plus-value du fonds. Les rendements sont comparés à vos seuils dans chaque scénario.":(x==null?void 0:x.modelKind)==="LBO"?b?"LBO: operating P&L, cash flow, debt service and deleveraging; entry and exit valuations determine equity MOIC and IRR. Debt capacity and downside scenarios are assessed separately.":"LBO : P&L opérationnel, cash-flow, service de la dette et désendettement ; les valorisations d’entrée et de sortie déterminent le MOIC et le TRI des fonds propres. La capacité d’endettement et les scénarios défavorables sont examinés séparément.":(x==null?void 0:x.modelKind)==="MA"?b?"Strategic acquisition: standalone P&L, then revenue and cost synergies, capture risk and integration costs. Total ROI, MOIC, IRR, payback and maximum acquisition price use the target’s cash flows plus net synergies.":"Acquisition stratégique : P&L de la cible seule, puis synergies de revenus et de coûts, risque de réalisation et coûts d’intégration. ROI total, MOIC, TRI, délai de retour et prix maximal d’acquisition utilisent les cash-flows de la cible et les synergies nettes.":b?"The financial method follows the saved thesis mode.":"La méthode financière suit le mode enregistré dans la thèse.";return e.jsxs("div",{className:"pp-th",children:[e.jsx("style",{children:Po}),g&&u.lead&&e.jsxs("section",{children:[e.jsx("h4",{className:"pp-th-h",children:p.hypTitle}),e.jsx("p",{className:"pp-th-lead",children:u.lead.replace(/\s+([:;!?»])/g," $1")}),!!((w=u.points)!=null&&w.length)&&e.jsx("ul",{className:"pp-th-pts",children:u.points.map(j=>e.jsx("li",{children:j},j))}),e.jsx("p",{className:"pp-th-note",children:v})]}),f&&!!((S=u.angles)!=null&&S.length)&&e.jsxs("section",{children:[e.jsx("h4",{className:"pp-th-h",children:p.profilsTitle}),e.jsx("p",{className:"pp-th-note",children:u.method||p.profilsSub}),u.angles.map((j,O)=>{var k,_;return e.jsxs("details",{className:"pp-th-prof",open:s&&O===0,name:a?"pp-th-angles":void 0,children:[e.jsx("summary",{children:j.title}),j.why&&e.jsx("p",{className:"pp-th-why",children:j.why}),e.jsxs("div",{className:"pp-th-lo",children:[!!((k=j.look)!=null&&k.length)&&e.jsxs("div",{children:[e.jsx("em",{children:p.lookFor}),e.jsx("ul",{children:j.look.map(N=>e.jsx("li",{children:N},N))})]}),!!((_=j.out)!=null&&_.length)&&e.jsxs("div",{className:"pp-th-ko",children:[e.jsx("em",{children:p.ruleOut}),e.jsx("ul",{children:j.out.map(N=>e.jsx("li",{children:N},N))})]})]})]},j.title)})]}),!!L.length&&(r==="pour"?e.jsxs("details",{className:"pp-th-gatebox",children:[e.jsxs("summary",{children:[e.jsx("span",{className:"pp-th-h",children:p.gateTitle}),e.jsx("span",{className:"pp-th-note",children:p.gateSub})]}),e.jsx(cd,{gate:L,lang:n})]}):e.jsxs("section",{children:[e.jsx("h4",{className:"pp-th-h",children:p.gateTitle}),e.jsx("p",{className:"pp-th-note",children:p.gateSub}),e.jsx(cd,{gate:L,lang:n})]})),y&&e.jsxs("section",{children:[e.jsx("h4",{className:"pp-th-h",children:p.enginesTitle}),e.jsx("p",{className:"pp-th-note",children:p.enginesSub}),!!(c!=null&&c.length)&&e.jsxs("details",{className:"pp-th-engbox",children:[e.jsxs("summary",{children:[p.enginesToggle," · ",c.length]}),c.map(j=>{const O=[...j.chips||[],...j.more||[]],k=Y2(j.key,b)||(b?"Engine wired for your thesis.":"Moteur branché pour votre thèse.");return e.jsxs("details",{className:"pp-th-prof",name:a?"pp-th-engines":void 0,children:[e.jsx("summary",{children:H2(j.key)}),e.jsx("p",{className:"pp-th-why",children:k}),e.jsx("p",{className:"pp-th-note",children:p.enginesFound(j.sourced||0)}),!!O.length&&e.jsxs("div",{className:"pp-th-engq",children:[e.jsx("em",{children:p.enginesQuery}),e.jsx("ul",{className:"pp-th-chips",children:O.map(_=>e.jsx("li",{children:_},_))}),j.note&&e.jsx("p",{className:"pp-th-note",children:j.note})]})]},j.key)})]})]}),h&&e.jsxs("section",{children:[e.jsx("h4",{className:"pp-th-h",children:p.memoTitle}),e.jsx("p",{className:"pp-th-note",children:p.memoSub}),e.jsxs("details",{className:"pp-th-prof",open:s&&o!=="memo",children:[e.jsx("summary",{children:p.memoSecTitle}
70),e.jsxs("ol",{className:"pp-th-gate pp-th-memosecs",children:[e.jsxs("li",{children:[e.jsx("b",{children:"A"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[(x==null?void 0:x.modelKind)==="VC"?b?"Investment case":"Thèse d’investissement":(x==null?void 0:x.modelKind)==="LBO"?"LBO":p.memoSecA,"."]})," ",(x==null?void 0:x.modelKind)==="MA"||!(x!=null&&x.modelKind)?p.memoSecABody:A]})]}),e.jsxs("li",{children:[e.jsx("b",{children:"B"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[p.memoSecB,"."]})," ",p.memoSecBBody]})]}),e.jsxs("li",{children:[e.jsx("b",{children:"C"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[p.memoSecC,"."]})," ",p.memoSecCBody,e.jsx("p",{className:"pp-th-v pass",children:p.memoPass}),e.jsx("p",{className:"pp-th-v consider",children:p.memoConsider}),e.jsx("p",{className:"pp-th-v monitor",children:p.memoMonitor}),e.jsx("p",{className:"pp-th-v call",children:p.memoCall})]})]})]})]}),e.jsxs("details",{className:"pp-th-prof",children:[e.jsx("summary",{children:p.kpiTitle}),e.jsx("p",{className:"pp-th-why",children:A}),e.jsx("p",{className:"pp-th-note",children:b?"Both flash and detailed memos use these saved settings. The P&L separates sourced facts, estimates and scenarios. Financial thresholds inform the investment verdict; they do not replace the qualitative analysis.":"Les mémos éclair et détaillés utilisent ces mêmes réglages. Le P&L distingue faits sourcés, estimations et scénarios. Les seuils financiers éclairent le verdict d’investissement ; ils ne remplacent pas l’analyse qualitative."}),x!=null&&x.mode||x!=null&&x.range||x!=null&&x.archetype||x!=null&&x.hurdles&&x.hurdles.length?e.jsxs("ol",{className:"pp-th-gate",children:[x.mode&&e.jsxs("li",{children:[e.jsx("b",{children:"1"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[p.kpiMode,"."]})," ",x.mode]})]}),x.range&&e.jsxs("li",{children:[e.jsx("b",{children:"2"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[p.kpiRange,"."]})," ",x.range]})]}),x.archetype&&e.jsxs("li",{children:[e.jsx("b",{children:"3"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[p.kpiArch,"."]})," ",x.archetype]})]}),!!x.horizon&&e.jsxs("li",{children:[e.jsx("b",{children:"4"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[b?"Synergy horizon":"Horizon des synergies","."]})," ",x.horizon," ",b?"years":"ans"]})]}),(x.hurdles||[]).map((j,O)=>e.jsxs("li",{children:[e.jsx("b",{children:String.fromCharCode(65+O)}),e.jsxs("span",{children:[e.jsxs("strong",{children:[j.k,"."]})," ",j.t]})]},j.k))]}):e.jsx("p",{className:"pp-th-note",children:b?"Financial settings unavailable. No threshold is assumed.":"Paramètres financiers indisponibles. Aucun seuil n’est supposé."}),e.jsx("p",{className:"pp-th-note",children:b?"IRR: annualised return. MOIC: proceeds / invested capital. ROI: net gain / investment. Missing hurdles are not invented.":"TRI : rendement annualisé. MOIC : montants reçus / capital investi. ROI : gain net / investissement. Un seuil absent n’est pas inventé."}),!((E=x==null?void 0:x.hurdles)!=null&&E.length)&&e.jsx("p",{className:"pp-th-note",children:b?"No explicit financial hurdle is available in the saved thesis.":"Aucun seuil financier explicite n’est disponible dans la thèse enregistrée."}),d&&e.jsx("button",{type:"button",onClick:d,children:b?"Adjust my financial settings":"Ajuster mes paramètres financiers"})]})]})]})}const Po=`
71.pp-th { font-size: 12.5px; line-height: 1.5; color: #16233A; }
72.pp-th section { margin-bottom: 18px; }
73.pp-th section:last-child { margin-bottom: 4px; }
74.pp-th-h {
75  margin: 0 0 7px; font-size:12px; font-weight:600; color: #0E7F3F;
76}
77.pp-th-lead { margin: 0 0 8px; font-size: 12.5px; font-weight: 400; color: #0F1D33; }
78.pp-th-pts { margin: 0 0 8px; padding-left: 1.25em; font-size: 12.5px; list-style: disc; list-style-position: outside; }
79.pp-th-pts li { margin-bottom: 4px; font-size: 12.5px; display: list-item; }
80.pp-th-note { margin: 0 0 10px; font-size: 12.5px; color: #7a8694; }
81.pp-th-prof {
82  border: 1px solid #e4ebf3; border-radius: 8px;
83  padding: 9px 12px; margin-bottom: 7px; background: #fbfdfc;
84}
85.pp-th-prof > summary {
86  cursor: pointer; font-weight: 600; color: #0F1D33; font-size: 13.5px;
87  list-style: none;
88}
89.pp-th-prof > summary::-webkit-details-marker { display: none; }
90.pp-th-prof > summary::before { content: '▸ '; color: #12A150; font-weight: 700; }
91.pp-th-prof[open] > summary::before { content: '▾ '; }
92.pp-th-why { margin: 7px 0 8px; font-size: 12.5px; color: #4B5E78; }
93.pp-th-lo { display: grid; gap: 10px; }
94@media (min-width: 520px) { .pp-th-lo { grid-template-columns: 1fr 1fr; } }
95.pp-th-lo em {
96  display: block; margin-bottom: 3px; font-style: normal;
97  font-size:12px; font-weight:600; color: #12A150;
98}
99.pp-th-ko em { color: #C0353A; }
100.pp-th-lo ul { margin: 0; padding-left: 1.2em; font-size: 12.5px; list-style: disc; }
101.pp-th-lo li { margin-bottom: 3px; display: list-item; }
102.pp-th-gate1 {
103  margin: 0; padding: 11px 13px; border-radius: 8px;
104  background: #F9FBFD; border: 1px solid #dcece2; font-size: 13px;
105}
106.pp-th-gate { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
107.pp-th-gate li {
108  margin: 0; padding: 11px 13px; border-radius: 8px;
109  background: #F9FBFD; border: 1px solid #dcece2; font-size: 13px;
110  display: flex; gap: 10px; align-items: flex-start; line-height: 1.5;
111}
112.pp-th-gate b {
113  flex: none; width: 22px; height: 22px; margin: 1px 0 0; margin-right: 0;
114  border-radius: 6px; background: #0E7F3F; color: #fff;
115  font-size: 11px; display: inline-flex; align-items: center; justify-content: center;
116}
117.pp-th-gate span { flex: 1; min-width: 0;
117 overflow-wrap: anywhere; word-break: break-word; white-space: pre-line; }
118.pp-th-eval { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; box-sizing: border-box; }
119.pp-th-eval-h { margin: 0 0 10px; font-size: 13px; font-weight: 700; color: #0E8A44; }
120.pp-th-eval.out .pp-th-eval-h { color: #9B1C1C; }
121.pp-th-eval.out .pp-th-gate b { background: #C0353A; }
122.pp-th-eval.out .pp-th-gate li { background: #FDF6F6; border-color: #F0D0D0; }
123.pp-th-gatebox { margin: 10px 0 0; padding: 10px 0 0; border: 0; border-top: 1px solid #E3E8F0; border-radius: 0; background: transparent; }
124.pp-th-gatebox > summary { cursor: pointer; list-style: none; }
125.pp-th-gatebox > summary::-webkit-details-marker { display: none; }
126.pp-th-gatebox > summary .pp-th-h { display: inline; margin: 0; font-size: 12.5px; font-weight: 600; color: #4B5E78; }
127.pp-th-gatebox > summary .pp-th-h::before { content: '▸ '; color: #7A8694; font-weight: 700; }
128.pp-th-gatebox[open] > summary .pp-th-h::before { content: '▾ '; }
129.pp-th-gatebox > summary .pp-th-note { display: inline; margin: 0 0 0 6px; font-size: 12px; }
130.pp-th-gatebox[open] .pp-th-gate, .pp-th-gatebox[open] .pp-th-gate1 { margin-top: 10px; }
131.pp-th-side .pp-th-h { margin-bottom: 4px; }
132.pp-th-side .pp-th-note { margin-bottom: 10px; font-size: 12px; line-height: 1.4; }
133.pp-th-side .pp-th-gate { gap: 7px; }
134.pp-th-side .pp-th-gate li { padding: 9px 10px; font-size: 12px; line-height: 1.4; }
135.pp-th-tiles-h {
136  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0 0 10px;
137}
138.pp-th-tiles-h .pp-th-h { margin: 0; }
139.pp-th-tiles-h .pp-th-note { margin: 0; font-size: 12px; }
140.pp-th-tiles-row {
141  margin: 0; padding: 0; list-style: none;
142  display: grid; grid-template-columns: repeat(4, minmax(0, 250px));
143  gap: 8px; justify-content: start;
144}
145.pp-th-tiles-row li {
146  margin: 0; padding: 10px 12px; border-radius: 10px;
147  background: #F9FBFD; border: 1px solid #dcece2;
148  font-size: 12px; line-height: 1.4;
149  display: flex; flex-direction: row; align-items: flex-start; gap: 8px; min-width: 0;
150}
151.pp-th-tiles-row b {
152  flex: none; width: 22px; height: 22px; border-radius: 6px;
153  background: #0E7F3F; color: #fff; font-size: 11px;
154  display: inline-flex; align-items: center; justify-content: center;
155}
156.pp-th-tiles-row span { min-width: 0; flex: 1; color: #16233A; }
157@media (max-width: 1100px) { .pp-th-tiles-row { grid-template-columns: repeat(2, minmax(0, 280px)); } }
158@media (max-width: 640px) { .pp-th-tiles-row { grid-template-columns: 1fr; } }
159.pp-th-anames { margin: 0; padding-left: 17px; }
160.pp-th-anames li { margin-bottom: 4px; text-transform: capitalize; }
161.pp-th-engq { margin: 4px 0 2px; }
162.pp-th-engq em {
163  display: block; margin-bottom: 6px; font-style: normal;
164  font-size: 12px; font-weight: 600; color: #12A150;
165}
166.pp-th-chips { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
167.pp-th-chips li {
168  margin: 0; padding: 4px 8px; border-radius: 6px; background: #F1F7F3;
169  border: 1px solid #dcece2; font-size: 12px; color: #16233A;
170}
171.pp-th-engbox { margin: 0; padding: 0; border: 0; background: transparent; }
172.pp-th-engbox > summary {
173  cursor: pointer; list-style: none; font-size: 12.5px; font-weight: 650;
174  color: #0E8A44; margin: 0 0 10px;
175}
176.pp-th-engbox > summary::-webkit-details-marker { display: none; }
177.pp-th-engbox > summary::before { content: '▾ '; color: #12A150; font-weight: 700; }
178.pp-th-engbox:not([open]) > summary::before { content: '▸ '; }
179.pp-th-memosecs { margin-top: 12px; }
180.pp-th-v {
181  display: block; margin: 10px 0 0; padding: 10px 12px; border-radius: 8px;
182  font-size: 12.5px; line-height: 1.45;
183}
184.pp-th-v.pass { background: #FDF2F2; color: #9B1C1C; border: 1px solid #F0D0D0; }
185.pp-th-v.consider { background: #FFF8EB; color: #92400E; border: 1px solid #FDE68A; }
186.pp-th-v.monitor { background: #EFF6FF; color: #1E3A8A; border: 1px solid #BFDBFE; }
187.pp-th-v.call { background: #E7F6EE; color: #0E8A44; border: 1px solid #BFE6CF; }
188`,nb="https://calendar.app.google/yL2nSRV974Jqaybd8",rb="https://calendar.google.com/calendar/appointments/schedules/AcZssZ1YUAtpAxybMmS3aOYz53A_-h4b8ZcgVuyjy_BA5o42CGVrnZrhoPTS9DMx4LJtMUdEGN0hPlc9?gv=true",ib="+33 6 83 10 72 86",sb="tel:+33683107286",Eh="[email protected]",ab={fr:{title:"Échanger avec Alexandre",sub:"votre Corporate Developer · 30 minutes",about:t=>`À propos de ${t}`,note:"Choisissez un créneau ci-dessous, ou joignez Alexandre directement au ",or:" ou par email à ",open:"Ouvrir le calendrier dans un nouvel onglet →",booked:"✓ C’est réservé",close:"Fermer"},en:{title:"Talk with Alexandre",sub:"your Corporate Developer · 30 minutes",about:t=>`About ${t}`,note:"Pick a slot below, or reach Alexandre directly at ",or:" or by email at ",open:"Open the calendar in a new tab →",booked:"✓ I’ve booked it",close:"Close"}},ob=`
189.pp-cal-ov{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;
190  padding:20px;background:rgba(15,29,51,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
191.pp-cal{display:flex;flex-direction:column;width:min(760px,100%);max-height:92dvh;overflow:hidden;
192  background:#fff;border-radius:16px;box-shadow:0 30px 90px rgba(15,29,51,.35);color:#16233A;
193  font-family:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
194.pp-cal-h{display:flex;align-items:flex-start;gap:12px;padding:18px 22px 14px;border-bottom:1px solid #E3E8F0}
195.pp-cal-no{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;
196  background:#12A150;color:#fff;font-size:15px}
197.pp-cal-h h2{margin:0;font-size:20px;line-height:1.25;font-weight:700;letter-spacing:-.01em;color:#0F1D33}
198.pp-cal-h p{margin:3px 0 0;font-size:13.5px;color:#4B5E78}
199.pp-cal-x{margin-left:auto;padding:2px 6px;border:0;background:none;font-size:22px;line-height:1;color:#8FA0B8;cursor:pointer}
200.pp-cal-b{padding:14px 22px 20px;overflow:auto}
201.pp-cal-n{margin:0 0 12px;font-size:13px;line-height:1.5;color:#4B5E78}
202.pp-cal-n a{color:#0F1D33;font-weight:700;text-decoration:none}
203.pp-cal iframe{display:block;width:100%;min-height:640px;border:0;border-radius:12px;background:#fff}
204.pp-cal-f{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin:12px 0 0;font-size:13px}
205.pp-cal-f a{color:#0E7F3F;font-weight:600;text-decoration:none}
206.pp-cal-ok{padding:9px 16px;border:0;border-radius:10px;background:#12A150;color:#fff;font:inherit;font-weight:700;cursor:pointer}
207@media (max-width:560px){.pp-cal-ov{padding:0}.pp-cal{max-height:100dvh;height:100dvh;border-radius:0}
208  .pp-cal-b{padding:12px 14px 16px}.pp-cal iframe{min-height:560px}}
209`;function Pi({onClose:t,onBooked:n,subject:r}){const{lang:i}=ae(),s=ab[i==="en"?"en":"fr"];return m.useEffect(()=>{const a=c=>{c.key==="Escape"&&t()};window.addEventListener("keydown",a);const o=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",a),document.body.style.overflow=o}},[t]),typeof document>"u"?null:Vn.createPortal(e.jsxs("div",{className:"pp-cal-ov",onClick:a=>{a.target===a.currentTarget&&t()},children:[e.jsx("style",{children:ob}),e.jsxs("div",{className:"pp-cal",role:"dialog","aria-modal":"true","aria-label":s.title,children:[e.jsxs("div",{className:"pp-cal-h",children:[e.jsx("span",{className:"pp-cal-no","aria-hidden":"true",children:"📅"}),e.jsxs("div",{children:[e.jsx("h2",{children:s.title}),e.jsx("p",{children:r?`${s.about(r)} · ${s.sub}`:s.sub})]}),e.jsx("button",{type:"button",className:"pp-cal-x","aria-label":s.close,onClick:t,children:"×"})]}),e.jsxs("div",{className:"pp-cal-b",children:[e.jsxs("p",{className:"pp-cal-n",children:[s.note,e.jsx("a",{href:sb,children:ib}),s.or,e.jsx("a",{href:`mailto:${Eh}`,children:Eh})]}),e.jsx("iframe",{title:s.title,src:rb,loading:"lazy"}),e.jsxs("div",{className:"pp-cal-f",children:[e.jsx("a",{href:nb,target:"_blank",rel:"noopener noreferrer",children:s.open}),n&&e.jsx("button",{type:"button",className:"pp-cal-ok",onClick:n,children:s.booked})]})]})]})]}),document.body)}const Tr={pitch_url:"",linkedin:"",product_url:"",pricing_url:"",team_url:""},dd="pp:evalx:";function tn(t){return t?!!(t.pitch_url||t.linkedin||t.product_url||t.pricing_url||t.team_url):!1}function Ep(t){if(!t)return{};const n={},r=(t.pitch_url||"").trim();r&&(n.pitch_url=r,n.pitch_deck_url=r);const i=(t.linkedin||"").trim();return i&&(n.linkedin=i),["product_url","pricing_url","team_url"].forEach(s=>{const a=(t[s]||"").trim();a&&(n[s]=a)}),n}function fs(t,n){const r=(t||"").trim().toLowerCase();if(r)try{tn(n)?localStorage.setItem(dd+r,JSON.stringify(n)):localStorage.removeItem(dd+r)}catch{}}function Dr(t){const n=(t||"").trim().toLowerCase();if(!n)return{...Tr};try{const r=localStorage.getItem(dd+n);if(!r)return{...Tr};const i=JSON.parse(r);return{pitch_url:String(i.pitch_url||""),linkedin:String(i.linkedin||""),product_url:String(i.product_url||""),pricing_url:String(i.pricing_url||""),team_url:String(i.team_url||"")}}catch{return{...Tr}}}function Nr(t,n){const r=n||{};return{pitch_url:(t.pitch_url||r.pitch_url||"").trim(),linkedin:(t.linkedin||r.linkedin||"").trim(),product_url:(t.product_url||r.product_url||"").trim(),pricing_url:(t.pricing_url||r.pricing_url||"").trim(),team_url:(t.team_url||r.team_url||"").trim()}}function M6(t){return Nr(Dr(t.name||""),{...Tr,linkedin:(t.contactLinkedin||"").trim()})}const lb=new Set(["b","strong","i","em","u","br","p","ul","ol","li","h4","h5"]),Ma=t=>t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");function cb(t){const n=(t||"").trim();return n?/^https?:\/\//i.test(n)?n:/^[a-z][a-z0-9+.-]*:/i.test(n)?"":`https://${n.replace(/^\/+/,"")}`:""}function bx(t){const n=cb(t);if(!n)return"";try{return new URL(n).hostname.replace(/^www\./,"")}catch{return""}}function R6(t,n){const r=bx(n),i=(t||"").trim();return i&&r?`${i} — ${r}`:r}function P6(t){const n=String(t||"");if(!n)return"";let r="",i=0;for(;i<n.length;){const s=n.indexOf("<",i);if(s<0){r+=Ma(n.slice(i));break}r+=Ma(n.slice(i,s));const a=n.indexOf(">",s);if(a<0){r+=Ma(n.slice(s));break}const o=n.slice(s+1,a).trim(),c=/^(\/?)([a-zA-Z0-9]+)/.exec(o),l=c?c[2].toLowerCase():"";c&&lb.has(l)?r+=`<${c[1]}${l}>`:r+=Ma(n.slice(s,a+1)),i=a+1}return r}const db=new Set(["script","noscript","style","link","iframe","object","embed","form","input","select","textarea","button","meta","base","dialog","svg","math","template","video","audio","source"]),Nh={"*":new Set(["class","style","title","colspan","rowspan"]),img:new Set(["src","alt","width","height"]),a:new Set(["href"]),button:new Set(["type","disabled"]),pre:new Set(["class","style"])};function pb(t){return t.tagName.toLowerCase()!=="button"?!1:t.hasAttribute("data-ap-ch")||t.hasAttribute("data-ap-day")?!0:!!t.closest("[data-ct-card], [data-ap-msg], [data-ch]")}function yx(t){var r;const n=Array.from(t.children);for(const i of n){const s=i.tagName.toLowerCase();if(db.has(s)&&!pb(i)){i.remove();continue}for(const o of Array.from(i.attributes)){const c=o.name.toLowerCase();(!(c.startsWith("data-")||Nh["*"].has(c)||((r=Nh[s])==null?void 0:r.has(c)))||c.startsWith("on"))&&i.removeAttribute(o.name)}const a=i.getAttribute("style")||"";
209if(a&&/position\s*:\s*(fixed|sticky)/i.test(a))i.removeAttribute("style");else if(a){const o=a.split(";").filter(c=>c.trim()&&!/^\s*(font-size|font-family|line-height|font)\s*:/i.test(c)).join(";");o!==a&&(o?i.setAttribute("style",o):i.removeAttribute("style"))}if(s==="a"){const o=(i.getAttribute("href")||"").trim();/^(https?:|mailto:)/i.test(o)?(i.setAttribute("target","_blank"),i.setAttribute("rel","noopener noreferrer")):i.removeAttribute("href")}if(s==="img"){const o=(i.getAttribute("src")||"").trim();if(!/^https?:/i.test(o)){i.remove();continue}i.setAttribute("loading","lazy")}yx(i)}}function I6(t,n){const r=t.cloneNode(!0);return yx(r),r.querySelectorAll("[id]").forEach(i=>i.removeAttribute("id")),r.removeAttribute("id"),n!=null&&n.outer?r.outerHTML:r.innerHTML}const jx={fr:{tog:"Pitch deck ou LinkedIn du dirigeant — facultatif",togRow:"Ajouter des infos",togOn:"Moins d’infos",hint:"Rien n’est obligatoire. Les champs déjà trouvés sont préremplis — LinkedIn, produit, tarifs, équipe peuvent améliorer l’analyse.",pitch:"Pitch deck (PDF ou URL)",pitchPh:"https://…/deck.pdf",up:"Importer un PDF",upping:"Import…",upOk:"PDF importé",upErr:"PDF uniquement, 25 Mo max.",li:"LinkedIn du dirigeant",liPh:"https://linkedin.com/in/…",more:"Pages produit, tarifs, équipe",moreOn:"Moins de pages",product:"Produit",pricing:"Tarifs",team:"Équipe",pagePh:"https://…",popT:"Deck, LinkedIn, pages — facultatif",filled:"Informations complémentaires déjà renseignées : deck, LinkedIn ou pages du site."},en:{tog:"Pitch deck or CEO LinkedIn — optional",togRow:"Add details",togOn:"Less info",hint:"Nothing required. Fields we already found are prefilled — LinkedIn, product, pricing and team pages can improve the analysis.",pitch:"Pitch deck (PDF or URL)",pitchPh:"https://…/deck.pdf",up:"Upload a PDF",upping:"Uploading…",upOk:"PDF uploaded",upErr:"PDF only, 25 MB max.",li:"CEO LinkedIn",liPh:"https://linkedin.com/in/…",more:"Product, pricing, team pages",moreOn:"Fewer pages",product:"Product",pricing:"Pricing",team:"Team",pagePh:"https://…",popT:"Deck, LinkedIn, pages — optional",filled:"Additional information already filled in: deck, LinkedIn or website pages."}};function Np({lang:t,variant:n="bar",storeKey:r,value:i,onChange:s,seed:a,memoUrl:o,website:c}){const l=jx[t],d=n==="pop",[p,u]=m.useState(()=>Nr(i||(r?Dr(r):{...Tr}),a)),g=i||p,[f,L]=m.useState(()=>d||tn(g)),[v,y]=m.useState(()=>!!(g.product_url||g.pricing_url||g.team_url)),[h,b]=m.useState(!1),[x,A]=m.useState(""),[w,S]=m.useState(""),E=m.useRef(null),j=m.useRef(r||"");m.useEffect(()=>{if(i||!r||r===j.current)return;const N=Nr(Dr(r),a);
209u(I=>tn(N)?N:tn(I)?(fs(r,I),I):N),tn(N)&&L(!0),(N.product_url||N.pricing_url||N.team_url)&&y(!0),j.current=r},[r,i,a]),m.useEffect(()=>{i||!a||!tn(a)||(u(N=>{const I=Nr(N,a);return I.linkedin===N.linkedin&&I.product_url===N.product_url&&I.pricing_url===N.pricing_url&&I.team_url===N.team_url&&I.pitch_url===N.pitch_url?N:(r&&tn(I)&&fs(r,I),I)}),(a.product_url||a.pricing_url||a.team_url)&&y(!0))},[a,r,i]),m.useEffect(()=>{if(i||!o)return;let N=!0;return Vr(async()=>{const{loadMemoDoc:I,pageUrlsFromMemo:ce}=await import("./memoContent-7h4qbRFv.js").then(K=>K.d);return{loadMemoDoc:I,pageUrlsFromMemo:ce}},[]).then(({loadMemoDoc:I,pageUrlsFromMemo:ce})=>{if(N)return I(o).then(K=>{if(!N||!K)return;const pe=ce(K,bx(c||""));!pe.product_url&&!pe.pricing_url&&!pe.team_url||(u(ee=>{const P=Nr(ee,pe);return r&&tn(P)&&fs(r,P),P}),y(!0))})}),()=>{N=!1}},[o,c,r,i]);const O=N=>{i||u(N),s==null||s(N),r&&fs(r,N)},k=N=>O({...g,...N}),_=async N=>{if(N){b(!0),S(""),A("");try{const I=await C2(N);k({pitch_url:I}),A(l.upOk)}catch{S(l.upErr)}finally{b(!1)}}};return e.jsxs("div",{className:`xtra xtra-${n}`+(f||d?" on":"")+(tn(g)?" filled":""),onClick:N=>N.stopPropagation(),onKeyDown:N=>N.stopPropagation(),children:[!d&&e.jsxs("button",{type:"button",className:"xtra-tog","aria-expanded":f,onClick:()=>L(N=>!N),children:[f?l.togOn:n==="row"?l.togRow:l.tog,e.jsx("i",{"aria-hidden":"true",children:f?"▴":"▾"})]}),(f||d)&&e.jsxs("div",{className:"xtra-box",children:[e.jsx("p",{className:"xtra-hint",children:l.hint}),e.jsxs("label",{className:"xtra-lbl",children:[l.pitch,e.jsxs("span",{className:"xtra-pitch",children:[e.jsx("input",{type:"url",inputMode:"url",autoComplete:"off",spellCheck:!1,placeholder:l.pitchPh,value:g.pitch_url,onChange:N=>{A(""),k({pitch_url:N.target.value})}}),e.jsx("button",{type:"button",className:"xtra-up",disabled:h,onClick:()=>{var N;return(N=E.current)==null?void 0:N.click()},children:h?l.upping:l.up}),e.jsx("input",{ref:E,type:"file",accept:"application/pdf,.pdf",hidden:!0,onChange:N=>{var I;_((I=N.target.files)==null?void 0:I[0]),N.target.value=""}})]}),x&&e.jsx("span",{className:"xtra-ok",children:x}),w&&e.jsx("span",{className:"xtra-err",role:"alert",children:w})]}),e.jsxs("label",{className:"xtra-lbl",children:[l.li,e.jsx("input",{type:"url",inputMode:"url",autoComplete:"off",spellCheck:!1,placeholder:l.liPh,value:g.linkedin,onChange:N=>k({linkedin:N.target.value})})]}),e.jsx("button",{type:"button",className:"xtra-more",onClick:()=>y(N=>!N),children:v?l.moreOn:l.more}),v&&e.jsxs("div",{className:"xtra-pages",children:[e.jsxs("label",{className:"xtra-lbl",children:[l.product,e.jsx("input",{type:"url",placeholder:l.pagePh,value:g.product_url,onChange:N=>k({product_url:N.target.value})})]}),e.jsxs("label",{className:"xtra-lbl",children:[l.pricing,e.jsx("input",{type:"url",placeholder:l.pagePh,value:g.pricing_url,onChange:N=>k({pricing_url:N.target.value})})]}),e.jsxs("label",{className:"xtra-lbl",children:[l.team,e.jsx("input",{type:"url",placeholder:l.pagePh,value:g.team_url,onChange:N=>k({team_url:N.target.value})})]})]})]}),e.jsx("style",{children:wx})]})}const es=12;function ub(){if(typeof window>"u"||typeof document>"u")return 0;const t=window.innerHeight;let n=0;return document.querySelectorAll(".atl2 .lockbar.unlock-bar").forEach(r=>{const i=r.getBoundingClientRect();i.height>0&&i.top<t&&i.bottom>=t-2&&(n=Math.max(n,t-i.top))}),Math.round(n)}function Ra(t=460){if(typeof window>"u")return{top:24,left:12,width:400,maxHeight:640};const n=window.innerWidth,r=window.innerHeight,i=Math.max(0,Math.min(420,n-es*2)),s=Math.max(es*2,r-ub()),a=Math.max(180,s-es*2),o=Math.min(Math.max(180,t),a);return{top:Math.max(es,Math.round((s-o)/2)),left:Math.max(es,Math.round((n-i)/2)),width:i,maxHeight:a}}function D6({lang:t,storeKey:n,className:r,title:i,disabled:s,confirmLabel:a,style:o,onConfirm:c,onLock:l,children:d,startOpen:p=!1,seed:u,memoUrl:g,website:f}){const L=jx[t],v=m.useRef(null),[y,h]=m.useState(!1),[b,x]=m.useState(()=>Ra()),[A,w]=m.useState(()=>tn(Nr(Dr(n),u)));m.useEffect(()=>{hb()},[]),m.useEffect(()=>{p&&(x(Ra()),h(!0))},[p]),m.useEffect(()=>{y||w(tn(Nr(Dr(n),u)))},[y,n,u]),m.useEffect(()=>{if(!y)return;const j=O=>{O.key==="Escape"&&h(!1)};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[y]),m.useLayoutEffect(()=>{if(!y||!v.current)return;const j=v.current,O=()=>{const _=Math.max(j.scrollHeight,j.getBoundingClientRect().height),N=Ra(_||460);x(I=>I.top===N.top&&I.left===N.left&&I.width===N.width&&I.maxHeight===N.maxHeight?I:N)};O(),window.addEventListener("resize",O);const k=typeof ResizeObserver<"u"?new ResizeObserver(O):null;return k==null||k.observe(j),()=>{window.removeEventListener("resize",O),k==null||k.disconnect()}},[y]);const S=j=>{if(j.stopPropagation(),!s){if(l){l();return}if(!(n||"").trim()){c();return}x(Ra()),h(!0)}},E=()=>{h(!1),c()};return e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",className:r,style:o,disabled:s,title:[i,A?L.filled:""].filter(
209Boolean).join(" · ")||void 0,onClick:S,children:[d,A&&e.jsx("i",{className:"xtra-ask-pip",role:"img","aria-label":L.filled,title:L.filled})]}),y&&Vn.createPortal(e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"xtra-ask-veil",onClick:()=>h(!1)}),e.jsxs("form",{ref:v,className:"xtra-ask-pop",role:"dialog","aria-label":L.popT,"aria-modal":"true",style:{top:b.top,left:b.left,width:b.width,maxHeight:b.maxHeight},onClick:j=>j.stopPropagation(),onSubmit:j=>{j.preventDefault(),E()},children:[e.jsxs("div",{className:"xtra-ask-hd",children:[e.jsx("b",{children:L.popT}),e.jsx("button",{type:"button",className:"xtra-ask-x","aria-label":"×",onClick:()=>h(!1),children:"×"})]}),e.jsx(Np,{lang:t,variant:"pop",storeKey:n,seed:u,memoUrl:g,website:f}),e.jsx("button",{type:"submit",className:"xtra-ask-go"+(/\bmemobtn\b/.test(r||"")?" memo":""),children:a})]})]}),document.body)]})}function hb(){if(typeof document>"u"||document.getElementById("pp-xtra-css"))return;const t=document.createElement("style");t.id="pp-xtra-css",t.textContent=wx,document.head.appendChild(t)}const wx=`
210.xtra{margin-top:8px;font:inherit;text-align:left}
211.xtra-tog{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;
212  border:0;background:none;font:inherit;font-size:12.5px;font-weight:600;
213  color:#5B6B82;cursor:pointer;text-align:left}
214.xtra-tog:hover{color:#0E7F3F}
215.xtra.filled .xtra-tog{color:#0E7F3F}
216.xtra-tog i{font-style:normal;font-size:10px;opacity:.7}
217.xtra-box{margin-top:8px;padding:10px 12px;border:1px dashed #D5DEE8;
218  border-radius:10px;background:#F8FAFC;display:flex;flex-direction:column;gap:8px}
219.xtra-hint{margin:0;font-size:11.5px;line-height:1.4;color:#7A8694;font-weight:400}
220.xtra-lbl{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:#0F1D33}
221.xtra-lbl input{font:inherit;font-size:13px;font-weight:400;padding:8px 10px;
222  border:1px solid #E3E8F0;border-radius:7px;color:#0F1D33;background:#fff;
223  width:100%;box-sizing:border-box}
224.xtra-lbl input:focus{outline:none;border-color:#12A150}
225.xtra-pitch{display:flex;gap:6px;align-items:stretch}
226.xtra-pitch input{flex:1;min-width:0}
227.xtra-up{flex:none;font:inherit;font-size:11.5px;font-weight:650;padding:0 10px;
228  border:1px solid #D5DEE8;border-radius:7px;background:#fff;color:#0F1D33;cursor:pointer;white-space:nowrap}
229.xtra-up:hover:not(:disabled){border-color:#12A150;color:#0E7F3F}
230.xtra-up:disabled{opacity:.55;cursor:default}
231.xtra-ok{font-size:11px;font-weight:600;color:#0E7F3F}
232.xtra-err{font-size:11px;font-weight:600;color:#C0353A}
233.xtra-more{align-self:flex-start;margin:0;padding:0;border:0;background:none;
234  font:inherit;font-size:11.5px;font-weight:600;color:#5B6B82;cursor:pointer}
235.xtra-more:hover{color:#0E7F3F}
236.xtra-pages{display:grid;grid-template-columns:1fr;gap:8px}
237@media (min-width:640px){.xtra-pages{grid-template-columns:1fr 1fr 1fr}}
238.xtra-hero{max-width:600px;margin:10px auto 0;text-align:center}
239.xtra-hero .xtra-tog{justify-content:center;font-weight:500}
240.xtra-hero .xtra-box{text-align:left}
241.xtra-form{margin-top:2px}
242.xtra-form .xtra-box{background:#fff;border-style:solid;border-color:#E3E8F0}
243.xtra-bar{margin:8px 0 0}
244.xtra-row{margin:4px 0 8px}
245.xtra-row .xtra-box{padding:8px 10px}
246.xtra-action{margin-top:6px;width:100%}
247.xtra-action .xtra-tog{font-size:11.5px;font-weight:600;width:100%;justify-content:center}
248.xtra-action .xtra-box{padding:8px}
249.xtra-pop{margin:0}
250.xtra-pop .xtra-box{margin:0;padding:0;border:0;background:transparent;border-radius:0}
251.xtra-ask-pip{display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;
252  background:#12A150;vertical-align:middle}
253.xtra-ask-veil{position:fixed;inset:0;z-index:240;background:rgba(15,29,51,.10)}
254.xtra-ask-pop{position:fixed;z-index:241;box-sizing:border-box;margin:0;
255  background:#fff;border:1px solid #D5DEE8;border-radius:12px;
256  box-shadow:0 12px 40px rgba(15,29,51,.16);padding:12px 14px 14px;
257  display:flex;flex-direction:column;gap:10px;text-align:left;
258  overflow-y:auto;overscroll-behavior:contain}
259.xtra-ask-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
260.xtra-ask-hd b{font:inherit;font-size:13px;font-weight:700;color:#0F1D33}
261.xtra-ask-x{margin:0;padding:0 2px;border:0;background:none;font-size:18px;line-height:1;
262  color:#7A8694;cursor:pointer}
263.xtra-ask-x:hover{color:#0F1D33}
264.xtra-ask-go{margin:2px 0 0;padding:10px 14px;border:0;border-radius:8px;
265  background:#12A150;color:#fff;font:inherit;font-size:13px;font-weight:700;
266  cursor:pointer;width:100%;box-sizing:border-box}
267.xtra-ask-go:hover{background:#0E8A44}
268.xtra-ask-go.memo{background:#0F1D33}
269.xtra-ask-go.memo:hover{background:#1B2F4E}
270.home3 .xtra-hero .xtra-tog{color:#5B6B82}
271`,mb=365*24*60*60*1e3;function kx(t){const n=t||"";return/Gmail|GoogleApp|GSA\/|FBAN|FBAV|Instagram|LinkedInApp|Line\/|TwitterAndroid|Twitter for|Outlook-iOS|MSAuthHost|MicroMessenger|; wv\b|WebView/i.test(n)?!0:/iPhone|iPad|iPod/i.test(n)&&!/Safari/i.test(n)}function Ax(t,n){const r=Number(t||0);return r?n-r<mb:!0}const qr={FR:{fr:"France",en:"France"},DE:{fr:"Allemagne",en:"Germany"},GB:{fr:"Royaume-Uni",en:"United Kingdom"},US:{fr:"États-Unis",en:"United States"}
271,CA:{fr:"Canada",en:"Canada"},MX:{fr:"Mexique",en:"Mexico"},BR:{fr:"Brésil",en:"Brazil"},AR:{fr:"Argentine",en:"Argentina"},CL:{fr:"Chili",en:"Chile"},CO:{fr:"Colombie",en:"Colombia"},PE:{fr:"Pérou",en:"Peru"},UY:{fr:"Uruguay",en:"Uruguay"},ES:{fr:"Espagne",en:"Spain"},PT:{fr:"Portugal",en:"Portugal"},IT:{fr:"Italie",en:"Italy"},CH:{fr:"Suisse",en:"Switzerland"},AT:{fr:"Autriche",en:"Austria"},BE:{fr:"Belgique",en:"Belgium"},NL:{fr:"Pays-Bas",en:"Netherlands"},LU:{fr:"Luxembourg",en:"Luxembourg"},IE:{fr:"Irlande",en:"Ireland"},IS:{fr:"Islande",en:"Iceland"},DK:{fr:"Danemark",en:"Denmark"},SE:{fr:"Suède",en:"Sweden"},NO:{fr:"Norvège",en:"Norway"},FI:{fr:"Finlande",en:"Finland"},PL:{fr:"Pologne",en:"Poland"},CZ:{fr:"Tchéquie",en:"Czechia"},SK:{fr:"Slovaquie",en:"Slovakia"},HU:{fr:"Hongrie",en:"Hungary"},RO:{fr:"Roumanie",en:"Romania"},BG:{fr:"Bulgarie",en:"Bulgaria"},GR:{fr:"Grèce",en:"Greece"},HR:{fr:"Croatie",en:"Croatia"},SI:{fr:"Slovénie",en:"Slovenia"},RS:{fr:"Serbie",en:"Serbia"},BA:{fr:"Bosnie-Herzégovine",en:"Bosnia and Herzegovina"},AL:{fr:"Albanie",en:"Albania"},MK:{fr:"Macédoine du Nord",en:"North Macedonia"},ME:{fr:"Monténégro",en:"Montenegro"},UA:{fr:"Ukraine",en:"Ukraine"},BY:{fr:"Biélorussie",en:"Belarus"},MD:{fr:"Moldavie",en:"Moldova"},RU:{fr:"Russie",en:"Russia"},TR:{fr:"Turquie",en:"Türkiye"},CY:{fr:"Chypre",en:"Cyprus"},MT:{fr:"Malte",en:"Malta"},EE:{fr:"Estonie",en:"Estonia"},LV:{fr:"Lettonie",en:"Latvia"},LT:{fr:"Lituanie",en:"Lithuania"},IL:{fr:"Israël",en:"Israel"},AE:{fr:"Émirats arabes unis",en:"United Arab Emirates"},SA:{fr:"Arabie saoudite",en:"Saudi Arabia"},QA:{fr:"Qatar",en:"Qatar"},KW:{fr:"Koweït",en:"Kuwait"},BH:{fr:"Bahreïn",en:"Bahrain"},OM:{fr:"Oman",en:"Oman"},JO:{fr:"Jordanie",en:"Jordan"},LB:{fr:"Liban",en:"Lebanon"},EG:{fr:"Égypte",en:"Egypt"},MA:{fr:"Maroc",en:"Morocco"},DZ:{fr:"Algérie",en:"Algeria"},TN:{fr:"Tunisie",en:"Tunisia"},NG:{fr:"Nigéria",en:"Nigeria"},KE:{fr:"Kenya",en:"Kenya"},ZA:{fr:"Afrique du Sud",en:"South Africa"},GH:{fr:"Ghana",en:"Ghana"},SN:{fr:"Sénégal",en:"Senegal"},CI:{fr:"Côte d'Ivoire",en:"Ivory Coast"},ET:{fr:"Éthiopie",en:"Ethiopia"},TZ:{fr:"Tanzanie",en:"Tanzania"},UG:{fr:"Ouganda",en:"Uganda"},RW:{fr:"Rwanda",en:"Rwanda"},MU:{fr:"Maurice",en:"Mauritius"},IN:{fr:"Inde",en:"India"},PK:{fr:"Pakistan",en:"Pakistan"},BD:{fr:"Bangladesh",en:"Bangladesh"},LK:{fr:"Sri Lanka",en:"Sri Lanka"},CN:{fr:"Chine",en:"China"},JP:{fr:"Japon",en:"Japan"},KR:{fr:"Corée du Sud",en:"South Korea"},TW:{fr:"Taïwan",en:"Taiwan"},HK:{fr:"Hong Kong",en:"Hong Kong"},SG:{fr:"Singapour",en:"Singapore"},MY:{fr:"Malaisie",en:"Malaysia"},TH:{fr:"Thaïlande",en:"Thailand"},VN:{fr:"Viêt Nam",en:"Vietnam"},PH:{fr:"Philippines",en:"Philippines"},ID:{fr:"Indonésie",en:"Indonesia"},KH:{fr:"Cambodge",en:"Cambodia"},AU:{fr:"Australie",en:"Australia"},NZ:{fr:"Nouvelle-Zélande",en:"New Zealand"},EU:{fr:"Europe (non précisé)",en:"Europe (unspecified)"}},z6={FR:[2.4,46.6],DE:[10.3,51.1],GB:[-1.5,52.8],US:[-98.5,39.5],CA:[-105,56],MX:[-102.5,23.8],BR:[-52,-10.5],AR:[-64,-34.5],CL:[-71,-35.5],CO:[-73.5,4.5],PE:[-75.5,-10],UY:[-56,-32.8],ES:[-3.7,40.3],PT:[-8.1,39.7],IT:[12.6,42.6],CH:[8.2,46.8],AT:[14.2,47.6],BE:[4.6,50.6],NL:[5.4,52.2],LU:[6.1,49.8],IE:[-8,53.2],IS:[-18.6,64.9],DK:[9.3,56.1],SE:[15.5,60.2],NO:[9,61.5],FI:[26,62.9],PL:[19.3,52.1],CZ:[15.4,49.8],SK:[19.5,48.7],HU:[19.4,47.2],RO:[25,45.9],BG:[25.3,42.7],GR:[22.5,39.3],HR:[15.9,45.4],SI:[14.8,46.1],RS:[20.8,44.2],BA:[17.8,44.2],AL:[20.1,41.1],MK:[21.7,41.6],ME:[19.3,42.7],UA:[31.2,49],BY:[27.9,53.5],MD:[28.5,47.2],RU:[60,57],TR:[35.2,39],CY:[33.2,35.1],MT:[14.4,35.9],EE:[25.8,58.7],LV:[24.9,56.9],LT:[24,55.3],IL:[34.9,31.4],AE:[54.3,23.9],SA:[45,24],QA:[51.2,25.3],KW:[47.6,29.3],BH:[50.55,26.05],OM:[56,21],JO:[36.8,31.2],LB:[35.85,33.9],EG:[29.8,26.6],MA:[-6.5,32],DZ:[2.6,28],TN:[9.5,34.1],NG:[8,9.6],KE:[37.8,.5],ZA:[24.7,-29],GH:[-1.2,7.9],SN:[-14.5,14.4],CI:[-5.6,7.5],ET:[39.6,8.6],TZ:[34.8,-6.4],UG:[32.4,1.3],RW:[29.9,-2],MU:[57.55,-20.3],IN:[78.7,22.4],PK:[69.4,29.9],BD:[90.3,23.8],LK:[80.7,7.9],CN:[104,35],JP:[138.5,36.6],KR:[127.8,36.4],TW:[121,23.7],HK:[114.15,22.3],SG:[103.82,1.35],MY:[102,4.2],TH:[101,15.2],VN:[106.3,16.6],PH:[122.6,12.9],ID:[113,-2.5],KH:[104.9,12.5],AU:[134.5,-25.7],NZ:[172.8,-41.5],EU:[8,50.5]},Io={};(function(){for(const n of Object.keys(qr))n!=="EU"&&(Io[qr[n].en.toLowerCase()]=n);Object.assign(Io,{"united states of america":"US","bosnia and herz.":"BA",macedonia:"MK","
271north macedonia":"MK","czech republic":"CZ",czechia:"CZ",turkey:"TR",türkiye:"TR","côte d'ivoire":"CI","ivory coast":"CI","united republic of tanzania":"TZ",tanzania:"TZ",vietnam:"VN","viet nam":"VN","republic of korea":"KR","south korea":"KR","w. sahara":null,"western sahara":null,"falkland is.":null,"fr. s. antarctic lands":null,somaliland:null,"n. cyprus":null,antarctica:null,greenland:null,kosovo:null})})();function B6(t){const n=(t||"").toLowerCase();return Object.prototype.hasOwnProperty.call(Io,n)?Io[n]:null}const Nn={};(function(){const n=i=>i.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim();for(const i of Object.keys(qr))Nn[n(qr[i].fr)]=i,Nn[n(qr[i].en)]=i;const r={usa:"US","etats-unis":"US","etats unis":"US","united states":"US",us:"US",america:"US",uk:"GB","royaume uni":"GB",angleterre:"GB",england:"GB","grande-bretagne":"GB","great britain":"GB",britain:"GB",scotland:"GB",deutschland:"DE","the netherlands":"NL",holland:"NL","pays bas":"NL","republique tcheque":"CZ",tchequie:"CZ","czech republic":"CZ","coree du sud":"KR",korea:"KR","south korea":"KR","viet nam":"VN","hong-kong":"HK",emirats:"AE","emirats arabes unis":"AE",uae:"AE",dubai:"AE","arabie saoudite":"SA","saudi arabia":"SA","afrique du sud":"ZA","south africa":"ZA","cote d'ivoire":"CI","ivory coast":"CI",turquie:"TR",turkiye:"TR",turkey:"TR",brasil:"BR",europe:"EU",eu:"EU","union europeenne":"EU","new-zealand":"NZ","nouvelle zelande":"NZ"};for(const i of Object.keys(r))Nn[n(i)]=r[i]})();function Kt(t){const n=(t||"").trim();if(!n||n==="?"||n.toLowerCase()==="int")return null;if(/^[A-Za-z]{2}$/.test(n)){const a=n.toUpperCase();return a==="UK"?"GB":a==="EU"?"EU":qr[a]?a:null}const r=a=>a.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim(),i=r(n);if(Nn[i])return Nn[i];const s=n.split("(")[0].split("/")[0].trim();if(s&&s!==n){if(/^[A-Za-z]{2}$/.test(s))return Kt(s);const a=r(s);if(Nn[a])return Nn[a]}if(n.includes(",")){const a=n.split(",").map(o=>o.trim()).filter(Boolean);for(let o=a.length-1;o>=0;o--){const c=a[o];if(/^\d[\d\s-]*$/.test(c))continue;const l=c.match(/^([A-Za-z]{2})(?:[-\s]\S+)?$/);if(l){const p=Kt(l[1]);if(p)return p}const d=r(c);if(Nn[d])return Nn[d]}}return null}function Dn(t,n){if(!t)return n==="fr"?"Non localisée":"Unlocated";const r=qr[t];return r?r[n]:t}function cl(t){if(!t||t.length!==2)return"🌐";const n=127462;return String.fromCodePoint(n+t.charCodeAt(0)-65)+String.fromCodePoint(n+t.charCodeAt(1)-65)}const pd={similar:{fr:"Similarité",en:"Similarity",emoji:"🧬",glyph:"star4"},media:{fr:"Actualité & web",en:"News & web",emoji:"📰",glyph:"dotcircle"},funding:{fr:"Financement",en:"Funding",emoji:"💰",glyph:"tri"},jobs:{fr:"Recrutement",en:"Hiring",emoji:"💼",glyph:"dotsquare"},registre:{fr:"Registres officiels",en:"Official registries",emoji:"🏛️",glyph:"tridown"},manuel:{fr:"Sur-mesure",en:"Custom",emoji:"✍️",glyph:"ring"},ma:{fr:"Opération M&A",en:"M&A deal",emoji:"🤝",glyph:"diamond"},memo:{fr:"Analysée par Proplace",en:"Analysed by Proplace",emoji:"📗",glyph:"fillsquare"},note:{fr:"Note de recherche",en:"Research note",emoji:"📚",glyph:"hollowsquare"},nomination:{fr:"Nominations",en:"Appointments",emoji:"👔",glyph:"dotcircle"}},ua={media:{family:"media",fr:"Actualités",en:"News",descFr:"La presse et les signaux du jour autour des opérations de vos secteurs.",descEn:"Today's press and signals around the deals in your sectors."},tribunes:{family:"media",fr:"Analyses & tribunes",en:"Analysis & op-eds",emoji:"📝",descFr:"Essais, how-to, notes de marché — pas un signal société du jour.",descEn:"Essays, how-tos, market notes — not a company signal of the day."},listes:{family:"media",fr:"Listes & classements",en:"Lists & rankings",emoji:"📋",descFr:"Palmarès, « N startups to watch », hotspots.",descEn:"Rankings, “N startups to watch”, hotspots."},evenements:{family:"media",fr:"Événements",en:"Events",emoji:"🎟️",descFr:"Salons, sommets, pitchs — VivaTech, Disrupt, et les autres.",descEn:"Trade shows, summits, pitches — VivaTech, Disrupt, and the rest."},partenariats:{family:"media",fr:"Partenariats & contrats",en:"Partnerships & contracts",emoji:"🔗",descFr:"Alliances, contrats signés, sélections — un signal commercial.",descEn:"Alliances, signed contracts, selections — a commercial signal."},produits:{family:"media",fr:"Produits & lancements",en:"Products & launches",emoji:"📦",descFr:"Lancements, nouvelles offres, mises sur le marché.",descEn:"Launches, new offers, go-to-market."},regul:{family:"media",fr:"Réglementaire & litiges",en:"Regulation & disputes",emoji:"⚖️",descFr:"Licences, agréments, procès, enquêtes.",descEn:"Licenses, approvals, lawsuits, probes."},marche:{family:"media",fr:"Bourse & marchés",en:"Markets & listings",emoji:"📈",descFr:"IPO, cotations, émissions de dette.",descEn:"IPOs, listings, debt issues."},edito:{family:"media",fr:"Edito du jour",en:"Today's editorial",descFr:"L'analyse inbound du jour — l'article indexé, aussi publié sur LinkedIn.",descEn:"Today's inbound analysis — the indexed article, also posted on LinkedIn."},nominations:{family:"nomination",fr:"Nominations",en:"Appointments",descFr:"Les prises de poste et mouvements de dirigeants du jour.",descEn:"Today's executive appointments and leadership moves."},recrutements:{family:"jobs",fr:"Recrutements",en:"Hirings",descFr:"Les sociétés qui recrutent — une stratég
271ie qui se trahit dans les offres.",descEn:"Companies hiring — strategy betrayed by job postings."},exa_similar:{family:"similar",fr:"Exa Similar",en:"Exa Similar",descFr:"Part d'une société que vous aimez et trouve toutes celles qui lui ressemblent sur le web.",descEn:"Starts from a company you like and finds every lookalike on the web."},websets:{family:"similar",fr:"Exa Websets",en:"Exa Websets",descFr:"Construit des listes de sociétés sur mesure à partir d'une simple description.",descEn:"Builds bespoke company lists from a plain-language description."},parallel:{family:"similar",fr:"Parallel",en:"Parallel",descFr:"Cherche chaque matin d'autres sociétés qui collent à votre thèse, en plus des moteurs déjà en place.",descEn:"Each morning, finds more companies that fit your thesis, on top of the engines already running."},exa_semantic:{family:"similar",fr:"Exa Semantic",en:"Exa Semantic",descFr:"Recherche sémantique sur tout le web : décrivez ce que vous cherchez en langage naturel.",descEn:"Semantic search across the web: describe what you want in natural language."},hunter:{family:"similar",fr:"Hunter",en:"Hunter",descFr:"Retrouve les coordonnées professionnelles des sociétés pour identifier les bons interlocuteurs.",descEn:"Finds company contact details to identify the right people to reach."},backfill:{family:"similar",fr:"Backfill",en:"Backfill",descFr:"Repasse sur les périodes passées pour rattraper les sociétés passées entre les mailles du filet.",descEn:"Sweeps past periods to catch companies that slipped through the net."},rss:{family:"media",fr:"RSS",en:"RSS",descFr:"Lit chaque matin des centaines de médias et flux spécialisés de votre secteur.",descEn:"Reads hundreds of sector media and feeds every morning."},editorial:{family:"media",fr:"Éditorial (médias experts)",en:"Editorial (expert media)",descFr:"Suit les médias experts et lettres spécialisées pour repérer les sociétés dont on commence à parler.",descEn:"Tracks expert media and specialist newsletters for companies starting to make noise."},daily_news:{family:"media",fr:"Veille du jour",en:"Daily watch",descFr:"Articles, vidéos et podcasts récents retenus pour votre thèse.",descEn:"Recent articles, videos and podcasts curated for your thesis."},google_news:{family:"media",fr:"Google News",en:"Google News",descFr:"Balaie l'actualité mondiale en continu (levées, lancements, nominations).",descEn:"Sweeps world news continuously (raises, launches, appointments)."},google_alerts:{family:"media",fr:"Google Alerts",en:"Google Alerts",descFr:"Surveille des mots-clés précis sur tout le web et remonte chaque société correspondante.",descEn:"Watches precise keywords across the web and surfaces each matching company."},linkedin_posts:{family:"media",fr:"LinkedIn Posts",en:"LinkedIn Posts",descFr:"Analyse les publications LinkedIn pour repérer les annonces intéressantes.",descEn:"Reads LinkedIn posts to spot interesting announcements."},hackernews:{family:"media",fr:"Hacker News",en:"Hacker News",descFr:"Scrute le forum de référence des fondateurs tech pour repérer les projets qui émergent.",descEn:"Watches the reference founders forum for emerging projects."},github:{family:"media",fr:"GitHub",en:"GitHub",descFr:"Détecte les sociétés tech par l'activité de leurs développeurs — signal très en amont.",descEn:"Detects tech companies from developer activity — a very early signal."},fundraising:{family:"funding",fr:"Fundraising",en:"Fundraising",descFr:"Repère les sociétés qui viennent de lever — le moment précis où elles accélèrent.",descEn:"Spots companies that just raised — the exact moment they accelerate."},crunchbase_search:{family:"funding",fr:"Crunchbase",en:"Crunchbase",descFr:"Interroge la base mondiale des startups et de leurs financements par profil.",descEn:"Queries the global startup & funding database by profile."},linkedin_jobs:{family:"jobs",fr:"LinkedIn Jobs",en:"LinkedIn Jobs",descFr:"Lit les offres d'emploi : une société qui recrute massivement trahit sa stratégie.",descEn:"Reads job postings: heavy hiring betrays strategy and growth."},departs:{family:"jobs",fr:"Départs concurrents",en:"Competitor departures",descFr:"Détecte les départs de talents des concurrents — souvent une société en création.",descEn:"Detects talent leaving competitors — often a new company in the making."},pappers_fr:{family:"registre",fr:"Pappers FR",en:"Pappers FR",descFr:"Interroge les registres officiels français (SIRENE, c
271odes NAF) en temps réel.",descEn:"Queries official French registries (SIRENE, NAF codes) in real time."},bodacc:{family:"registre",fr:"BODACC",en:"BODACC",descFr:"Bulletin officiel : liquidations, ventes & cessions de fonds, cessations.",descEn:"Official bulletin: liquidations, business sales, closures."},local:{family:"registre",fr:"Moteur local (Maps + BODACC)",en:"Local engine (Maps + BODACC)",descFr:"Trouve les commerces de proximité de votre métier, ville par ville.",descEn:"Finds local businesses in your trade, city by city."},manual:{family:"manuel",fr:"Saisie manuelle",en:"Manual entry",descFr:"Les sociétés que vous ajoutez vous-même, évaluées comme les autres.",descEn:"Companies you add yourself, evaluated like the rest."},make:{family:"manuel",fr:"Autres (Make sur-mesure)",en:"Other (custom Make)",descFr:"Moteurs branchés spécialement pour votre thèse.",descEn:"Engines wired specifically for your thesis."},note:{family:"note",fr:"Note de recherche",en:"Research note",descFr:"Les sociétés à évaluer identifiées dans les notes de recherche Proplace.",descEn:"Companies to evaluate identified in Proplace research notes."},unknown:{family:"manuel",fr:"Moteur interne Stan",en:"Stan internal engine",descFr:"Détectée par le pipeline interne de Stan — la source précise n'a pas été journalisée.",descEn:"Detected by Stan’s internal pipeline — the precise source was not logged."},ma:{family:"ma",fr:"Opérations M&A",en:"M&A deals",descFr:"Les opérations M&A détectées chaque matin dans la presse de vos secteurs.",descEn:"M&A deals detected every morning in the trade press for your sectors."},memo:{family:"memo",fr:"Mémo public Proplace",en:"Proplace public memo",descFr:"Les sociétés déjà analysées en profondeur par Proplace (/analysis).",descEn:"Companies already analysed in depth by Proplace (/analysis)."}},gb={bot:{fr:"Bot",en:"Bot"}};function Ii(t){const n=(t||"").toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g,"").trim().replace(/[\s-]+/g,"_");return ua[n]?n:n.startsWith("note")?"note":n==="hn"?"hackernews":n==="competitor_exodus"||n==="alumni"?"departs":n==="manual_paste"?"manual":n==="find_similar_qualified"?"exa_similar":n.includes("crunchbase")?"crunchbase_search":n.includes("similar")?"exa_similar":n.includes("parallel")?"parallel":n.includes("webset")?"websets":n.includes("semantic")?"exa_semantic":n.includes("linkedin_job")?"linkedin_jobs":n.includes("linkedin_post")?"linkedin_posts":n.includes("pappers")?"pappers_fr":n.includes("hacker")?"hackernews":n.includes("alert")?"google_alerts":n.includes("news")?"google_news":n.includes("editorial")||n.includes("edito")?"editorial":n.includes("fundrais")?"fundraising":n.includes("presse")||n.includes("veille")?"rss":n.includes("semantique")||n.includes("semantic")?"exa_semantic":n.includes("chass")||n.includes("similaire")?"exa_similar":n.includes("registre")||n.includes("sirene")?"pappers_fr":n.includes("recrut")||n.includes("emploi")?"linkedin_jobs":n.includes("levee")||n.includes("financement")?"fundraising":n.includes("job")?"linkedin_jobs":n.includes("depart")?"departs":n.includes("bodacc")?"bodacc":n.includes("manual")||n.includes("manuel")?"manual":n.includes("make")||n.includes("autre")?"make":n||"manual"}function Js(t){const n=ua[Ii(t)];return n?n.family:"manuel"}function ud(t,n){const r=Ii(t),i=gb[r];if(i)return i[n];const s=ua[r];return s?n==="fr"?s.fr:s.en:(t||"").replace(/_/g," ")}function Do(t,n){const r=ua[Ii(t)];return r?n==="fr"?r.descFr:r.descEn:""}function fb(t,n){return n==="fr"?pd[t].fr:pd[t].en}function zr(t){const n=ua[Ii(t)];return n!=null&&n.emoji?n.emoji:pd[Js(t)].emoji}const xb=["similar","media","funding","jobs","nomination","registre","manuel","ma","memo","note"],Sx=["partenariats","produits","regul","marche","evenements","listes","tribunes","media"],Lb={partenariats:{fr:"Partenariats & contrats",en:"Partnerships & contracts",emoji:"🔗"},produits:{fr:"Produits & lancements",en:"Products & launches",emoji:"📦"},regul:{fr:"Réglementaire & litiges",en:"Regulation & disputes",emoji:"⚖️"},marche:{fr:"Bourse & marchés",en:"Markets & listings",emoji:"📈"},evenements:{fr:"Événements",en:"Events",emoji:"🎟️"},listes:{fr:"Listes & classements",en:"Lists & rankings",emoji:"📋"},tribunes:{fr:"Analyses & tribunes",en:"Analysis & op-eds",emoji:"📝"},media:{fr:"Actualités",en:"News",emoji:"📰"}},jr={evenements:/\b(disrupt|viva\s?tech|vivatech|summit|conf[ée]rence|salon\b|pitch\s+marathon|
271side\s+event|exhibit\s+table|founder(?:'s)?\s+summit|webinar|colloque)\b/i,listes:/\b(\d+\s+(?:startup|scale-?ups?|companies|soci[eé]t[eé]s|hotspots?)|to\s+watch|hotspots?|classement|palmar[eè]s|\btop\s+\d+|funding rounds you need|every .{0,40} that has raised)\b/i,regul:/\b(licence|license|agr[ée]ment|autorisation|accr[ée]ditation|homologation|certification|r[ée]glementation|lawsuit|legal dispute|sued|investigation|enqu[eê]te|proc[eè]s|amende|fined|approves?\s+[€$£]|eu approves)\b/i,marche:/\b(ipo\b|cotation|listing|listed|bourse|covered bond|bond issue|introduit en bourse|spac\b)\b/i,partenariats:/\b(partnership|partenaire|partenariat|s['’]allie|allies with|signs? (?:with|a deal)|selected by|collabore|collaboration|joint venture|s['’]associe)\b/i,produits:/\b(lance|lancement|d[eé]voile|unveils?|launches?|releases?|nouvelle offre|new product|rolls out|met sur le march[eé])\b/i,tribunes:/\b(how to|pourquoi|comment\b|what .{0,40} (?:can|should) teach|le[cç]on|market (?:size|share|analysis|report)|inside the|why .{0,40} (?:is|are|matters)|the rise of|should europe|can europe)\b/i};function Ex(t){const n=`${t.headline_fr||""} ${t.headline||""} ${t.title||""}`;if(jr.evenements.test(n))return"evenements";if(jr.listes.test(n))return"listes";if(jr.regul.test(n))return"regul";if(jr.marche.test(n))return"marche";if(jr.partenariats.test(n))return"partenariats";if(jr.produits.test(n))return"produits";if(jr.tribunes.test(n))return"tribunes";const r=(t.company_name||t.name||"").trim();return!r||r.length<2?"tribunes":"media"}function vb(t,n){const r=Lb[t];return r.emoji+" "+(n==="en"?r.en:r.fr)}function U6(t){return!!t&&Sx.includes(t)}const bb=/([A-ZÀ-Ý][\w.&'’\-]{1,40}(?:\s+(?:et|&)\s+[A-ZÀ-Ý][\w.&'’\-]{1,40})?(?:\s+[A-ZÀ-Ý][\w.&'’\-]{1,40}){0,3})\s+(?:acquiert|rachète|s['’]apprête|reprend|prend le contrôle|buys|acquires)/i,yb=/^[A-Z]{2,}(?:\s*[·:,—–-]\s*)+/,jb=new Set(["paris","france","europe","london","berlin","madrid","rome"]);function Ch(t){const n=(t||"").replace(yb,"").trim(),r=bb.exec(n);if(!r)return"";const i=(r[1]||"").trim();return i&&!jb.has(i.toLowerCase())?i:""}function _h(t,n="fr"){return n.toLowerCase().startsWith("en")?t?`What ${t} could buy next`:"What they could buy next":t?`Ce que ${t} pourrait acheter après`:"Ce qu’ils pourraient acheter après"}function Th(t){var r,i;const n=(s,a)=>{let o=s;for(let c=0;c<a&&o;c++)if(o=o.previousElementSibling,o&&/^H[1-6]$/.test(o.tagName))return Ch(o.textContent||"");return""};return n(t,16)||n(t.closest("aside, .pros-inline"),24)||Ch(((i=(r=t.closest(".ed-decrypt, .ed-decrypt-solo"))==null?void 0:r.querySelector("h4, h3, h2"))==null?void 0:i.textContent)||"")}const qh=/coup d['’]après|the next move/i;function Nx(t,n="fr"){t.querySelectorAll(".pros-il").forEach(r=>{qh.test(r.textContent||"")&&(r.textContent=`🔮 ${_h(Th(r),n)}`)}),t.querySelectorAll(".aa-pros").forEach(r=>{const i=r.innerHTML||"";if(!qh.test(i))return;const s=_h(Th(r),n);r.innerHTML=i.replace(/🔮\s*(?:Le coup d['’]après|The next move)\s*:/i,`🔮 ${s} :`)})}const wb=()=>{try{return!!new URL(window.location.href).searchParams.get("preview")}catch{return!1}},kb=t=>t.slice().sort().join("�"),Xl=t=>{try{return new Date().toLocaleDateString(t)}catch{return""}};function hd(t){try{return JSON.parse(localStorage.getItem(t)||"null")}catch{return null}}function xs(t,n){if(!wb())try{localStorage.setItem(t,JSON.stringify(n))}catch{}}function V6(t,n,r,i){const s="cbv:"+t,a="cbvv:"+t,o=Array.from(new Set(n.map(p=>p.trim()).filter(Boolean))),c=hd(s),l=hd(a)||{},d={firstVisit:!(c&&c.n&&c.n.length),added:[],gone:[],changed:[],lastDate:c&&c.d||Xl(i),fp:""};if(c&&c.n&&c.n.length){d.added=o.filter(u=>c.n.indexOf(u)<0),d.gone=c.n.filter(u=>o.indexOf(u)<0),d.fp=kb(d.added);const p=typeof c.seen=="string"?c.seen:"";d.added.length&&p===d.fp&&(d.added=[])}for(const p of Object.keys(l)){const u=r[p];u&&l[p]&&u!==l[p]&&d.changed.push({name:p,before:l[p],after:u})}return d.firstVisit?(xs(s,{n:o,d:Xl(i),seen:""}),xs(a,r)):!d.added.length&&!d.changed.length&&(xs(s,{n:o,d:Xl(i),seen:c&&c.seen||""}),xs(a,r)),d}function fn(t,n){const r=hd("ppmap:"+t);return r??n}function ft(t,n){xs("ppmap:"+t,n)}const $s="ppmap:cockpit-session";function Fh(){const t=fn("token","");if(!/^[A-Za-z0-9]{16}$/.test(t)||!Ax(fn("tokenAt",0),Date.now()))return null;const n=fn("tokenFund",null);return!n||n.token!==t||!n.fund?null:{token:t,fund:n.fund}}function Ab(t,n){if(!t||!n)return;const r=fn("tokenFund",null);if(!(r&&r.token===t&&r.fund===n)){ft("tokenFund",{token:t,fund:n});try{window.dispatchEvent(new CustomEvent($s))}catch{}}}function Sb(){ft("token",""),ft("tokenAt",0),ft("memberReady",!1),ft("tokenFund",null)}function Eb(t){const[n,r]=m.useState(()=>Fh());return m.useEffect(()=>{const i=()=>r(Fh());return i(),window.addEventListener($s,i),window.addEventListener("storage",i
271),()=>{window.removeEventListener($s,i),window.removeEventListener("storage",i)}},[t]),n}function Oh(){let t="";try{const r=new URLSearchParams(window.location.search);t=r.get("cb")||r.get("token")||""}catch{return null}if(!/^[A-Za-z0-9]{16}$/.test(t))return null;const n=fn("tokenFund",null);return!n||n.token!==t||!n.fund?null:{token:t,fund:n.fund}}function Nb(){const[t,n]=m.useState(()=>Oh());return m.useEffect(()=>{const r=()=>n(Oh());return r(),window.addEventListener($s,r),()=>window.removeEventListener($s,r)},[]),t}function ec(t,n=""){let r=(n||"").trim();if(!r)try{r=new URLSearchParams(window.location.search).get("email")||""}catch{r=""}return`/cibles/${t}/`+(r?`?email=${encodeURIComponent(r)}`:"")}function Cb(t,n){const r=i=>(i||"").toLowerCase().replace(/[^a-z0-9]+/g,"");return!!r(t)&&r(t)===r(n)}const we="https://alexandre-79537--proplace-chat-proxy-fastapi-app.modal.run",bn=()=>typeof location<"u"&&location.hostname.endsWith("proplace.co")?"":"https://proplace.co",xn=()=>{const t=new Date,n=r=>String(r).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`};let Pa=null;function gr(){return Pa||(Pa=fetch(bn()+"/actualites/operations/feed.json",{cache:"no-cache"}).then(t=>t.ok?t.json():null).catch(()=>(Pa=null,null))),Pa}function md(t){return(t||"").replace(/&#x27;|&#39;|&apos;/gi,"'").replace(/&quot;/gi,'"').replace(/&amp;/gi,"&").replace(/\s+/g," ").trim().toLowerCase()}function _b(t,n){const r=(t||"").replace(/\s+/g," ").trim();if(!r||/^https?:\/\/\S+$/i.test(r)||/^(FR|EN|ES|DE|IT|PT|NL|AR|EU|UK|US|GB|INT)$/i.test(r)||/^[€$£]?\s*\d[\d\s.,]*\s*(M€|Md€|k€|m€)?\s*·\s*[A-Z]{2}$/i.test(r))return!0;const i=md(n||""),s=md(r);return!i||!s?!1:s===i?!0:s.length>=40&&(i.startsWith(s)||s.startsWith(i))}function Cx(t){var r;const n=(((r=t.querySelector("h4"))==null?void 0:r.textContent)||"").replace(/\s+/g," ").trim();for(const i of Array.from(t.querySelectorAll("p")))i.classList.contains("art-srcline")||i.closest(".art-srcline")||_b(i.textContent||"",n)&&i.remove()}function Tb(t){const n=new Set;t.querySelectorAll(".ed-decrypt, .ed-decrypt-solo").forEach(r=>{var s;const i=md(((s=r.querySelector("h4"))==null?void 0:s.textContent)||"");i&&(n.has(i)?r.remove():n.add(i))})}const tc=new Map;function _x(t){const n=(t||"").slice(0,10);if(!tc.has(n)){const r=s=>fetch(bn()+s,{cache:"no-cache"}).then(a=>a.ok?a.json():null).catch(()=>null),i=(n?r(`/actualites/operations/edition-${n}.json`):Promise.resolve(null)).then(s=>s||r("/actualites/operations/edition.json").then(a=>a&&(!n||(a.date||"").slice(0,10)===n)?a:null));tc.set(n,i)}return tc.get(n)}let gd=null;function ei(t,n,r=""){if(!/^\d{4}-\d{2}-\d{2}$/.test(t||"")){gd=null;return}gd={day:t,doc:n,...r.trim()?{sector:r.trim()}:{}}}function H6(){return gd}let Ia=null;function Tx(){return Ia||(Ia=fetch(bn()+"/actualites/today.json",{cache:"no-cache"}).then(t=>t.ok?t.json():null).catch(()=>(Ia=null,null))),Ia}function Y6(t){if(!t||typeof DOMParser>"u")return t||"";try{const r=new DOMParser().parseFromString(`<div id="nl">${t}</div>`,"text/html").getElementById("nl");return r?(r.querySelectorAll("script,iframe,object,embed,form,input,button").forEach(i=>{i.matches("button.tb-eval")||i.remove()}),r.querySelectorAll("*").forEach(i=>{if([...i.attributes].forEach(s=>{const a=s.name.toLowerCase(),o=s.value,c=a==="class"||a==="style"||a==="alt"||a==="width"||a==="height"||a==="type"||a.startsWith("data-"),l=(a==="href"||a==="src")&&(/^https?:\/\//i.test(o)||o.startsWith("/")||o.startsWith("data:image/"));!c&&!l&&i.removeAttribute(s.name)}),i.tagName==="A"&&i.getAttribute("href")){const s=i.getAttribute("href")||"";/^https?:\/\//i.test(s)&&(i.setAttribute("target","_blank"),i.setAttribute("rel","nofollow noopener"))}}),(r.innerHTML||"").trim()):t}catch{return t}}const Da=new Map;function za(t,n){const r=(t||"").replace(/^https?:\/\/[^/]+/,"").split("?")[0];if(!r||!/^\d{4}-\d{2}-\d{2}$/.test(n))return Promise.resolve(null);const i=Xs(),s=n+" "+r+" "+i;return Da.has(s)||Da.set(s,fetch(bn()+r,{cache:"no-cache"}).then(a=>a.ok?a.text():"").then(a=>
271a?qb(a,n,r):null).catch(()=>(Da.delete(s),null))),Da.get(s)}function Xs(){return typeof document>"u"?"fr":(document.documentElement.getAttribute("data-pplang")||document.documentElement.lang||"").toLowerCase().startsWith("en")?"en":"fr"}function qx(t,n){const r=n==="en"?".i18n-fr":".i18n-en",i=n==="en"?".i18n-en":".i18n-fr";t.querySelectorAll(r).forEach(s=>s.remove()),t.querySelectorAll(i).forEach(s=>{const a=s.parentNode;if(!a){s.remove();return}for(;s.firstChild;)a.insertBefore(s.firstChild,s);a.removeChild(s)})}function qb(t,n,r){var l,d,p;if(typeof DOMParser>"u")return null;let i;try{i=new DOMParser().parseFromString(t,"text/html")}catch{return null}const s=i.querySelector("article.ppart, article.mk-edito");if(!s)return null;qx(s,Xs()),s.querySelectorAll("section.pp-ck, iframe, .pager, a.back, .nlcta, .cta-box, .mk-nl, nav, header, footer, .pp-days, .pp-live").forEach(u=>u.remove()),s.querySelectorAll("details").forEach(u=>{u.open=!0});const a=(((l=s.querySelector("h1"))==null?void 0:l.textContent)||"").replace(/\s+/g," ").trim(),o=(((d=s.querySelector(".mk-lead, .art-lead, .lead"))==null?void 0:d.textContent)||((p=s.querySelector("h1 + p:not(.pubdate)"))==null?void 0:p.textContent)||"").replace(/\s+/g," ").trim();s.classList.contains("mk-edito")&&s.querySelectorAll("h1, .pubdate").forEach(u=>u.remove());const c=s.innerHTML.trim();return c?{date:n,url:r,title_fr:a,lead_fr:o,html_fr:c,html_en:"",toc_fr:""}:null}const Fb=/^(french\s*tech(\s*\d+)?|south\s*summit(\s*\d+)?|vivatech(\s*\d+)?|web\s*summit(\s*\d+)?|ces\s*\d*|mwc\s*\d*|maddyness|les\s*echos|usine\s*nouvelle|sifted|techcrunch|programme|candidatures?|tendances?|newsletter|lbo|mbo|obo|ipo|m&a|vc|pe)$/i,Ob=new Set(["a","an","the","le","la","les","l","un","une","de","des","du","d","of","and","et","for","pour","in","en","new","nouvelle","nouveau","top","best","startup","startups","start","up","scaleup","scaleups","scale","company","companies","entreprise","entreprises","société","societe","sociétés","firm","firms","group","groupe","holding","holdings","partners","partner","capital","ventures","venture","fund","funds","fonds","investor","investors","investisseur","investisseurs","investment","investments","bank","banque","lab","labs","solution","solutions","service","services","platform","plateforme","software","logiciel","digital","numérique","tech","technology","technologies","global","international","industries","industry","network","networks","funding","financement","round","roundup","seed","pre","series","série","serie","raise","levée","levee","acquisition","acquisitions","deal","deals","ipo","m","news","report","fintech","insurtech","healthtech","medtech","biotech","proptech","legaltech","edtech","foodtech","agritech","cleantech","climate","climatetech","ai","ia","saas","logistics","logistique","health","santé","sante","insurance","assurance","energy","énergie","mobility","mobilité","retail","food","travel","crypto","blockchain","cyber","cybersecurity","security","data","cloud","robotics","space","defense","défense","payments","payment","african","africaine","africain","european","européenne","européen","europe","french","français","française","francaise","british","uk","us","usa","american","américaine","américain","german","allemande","allemand","italian","italienne","italien","spanish","espagnole","espagnol","swiss","suisse","belgian","belge","dutch","nordic","asian","indian","chinese","japanese","canadian","australian","latam","latin","middle","east","eastern","west","western","north","northern","south","southern","emerging","local","regional"]);function Mh(t){const n=(t||"").toLowerCase().replace(/[’']/g," ").split(/[\s\-/,&+().:;]+/).filter(Boolean);return!n.length||n.every(r=>Ob.has(r))}function Mb(t,n){const r=(t||"").trim();if(!r||!n||!Mh(r))return r;const i=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(`((?:[A-ZÀ-Ý0-9][\\w&.'’-]*\\s+){1,3})${i}\\b`).exec(n);if(!s)return r;const a=(s[1]+r).replace(/\s+/g," ").trim();return Mh(a)?r:a}function dl(t){const n=(t||"").trim();return!(n.length<2||n.length>
27160||Fb.test(n)||/\b(summit|forum|salon|conférence|conference|awards?)\b/i.test(n))}let Ba=null;function Cp(){return Ba||(Ba=fetch(bn()+"/actualites/operations/manifest.json",{cache:"no-cache"}).then(t=>t.ok?t.json():[]).then(t=>Array.isArray(t)?t:[]).catch(()=>(Ba=null,[]))),Ba}function Fx(t){const n=(t||"").trim();return n.length<2||!dl(n)?"":n.toLowerCase()}const Rb=new Set(["dans","pour","avec","sans","sous","entre","vers","chez","cette","ces","leur","leurs","elle","elles","nous","vous","tout","tous","toute","toutes","plus","moins","tres","bien","fait","faire","quand","comme","mais","donc","ainsi","alors","apres","avant","depuis","encore","aussi","deux","trois","quatre","cinq","sont","être","etre","avoir","the","and","with","from","that","this","what","when","their","have","been","will","pourquoi","comment","startup","startups","societe","societes","entreprise","entreprises","jour","annee","2026","millions","milliards"]);function Rh(t){const n=new Set;for(const r of(t||"").toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g,"").split(/[^a-z0-9]+/))r.length>=4&&!Rb.has(r)&&n.add(r);return n}function Pb(t,n,r,i){const s=(r||"").trim().toLowerCase();if(s.length>=3){for(let l=0;l<t.length;l++)if(!n.has(l)&&t[l].t.includes(s))return l;for(let l=0;l<t.length;l++){const d=(t[l].html||"").toLowerCase();if(!n.has(l)&&d.includes(s))return l}}const a=Rh(i||"");if(!a.size)return-1;let o=-1,c=0;for(let l=0;l<t.length;l++){if(n.has(l))continue;let d=0;for(const p of Rh(t[l].t))a.has(p)&&(d+=p.length>=8?2:1);d>c&&(c=d,o=l)}return c>=2?o:-1}function Ib(t){const n=(t==null?void 0:t.html_fr)||"";if(!n||typeof DOMParser>"u")return[];const r=[];try{const i=new DOMParser().parseFromString(n,"text/html");let s=Array.from(i.querySelectorAll(".ed-decrypt, .ed-decrypt-solo"));if(!s.length){const a=[];i.querySelectorAll("h4").forEach(o=>{const c=i.createElement("div");let l=o;for(;l&&(l===o||l.tagName!=="H4");){const d=l.nextElementSibling;if(c.appendChild(l.cloneNode(!0)),l=d,l&&l.tagName==="H4")break}a.push(c)}),s=a}for(const a of s){Nx(a,Xs());const o=a.querySelector("h4"),c=((o==null?void 0:o.textContent)||"").replace(/\s+/g," ").trim().toLowerCase();if(!c||(a.querySelectorAll("script, style, iframe, object, embed, .opcard").forEach(d=>d.remove()),a.querySelectorAll("*").forEach(d=>{const p=d.tagName==="A"?d.getAttribute("href"):null;for(const u of Array.from(d.attributes))d.removeAttribute(u.name);p&&/^https?:\/\//i.test(p)&&(d.setAttribute("href",p),d.setAttribute("target","_blank"),d.setAttribute("rel","nofollow noopener"))}),Cx(a),r.some(d=>d.t===c)))continue;const l=(a.innerHTML||"").trim();l&&r.push({t:c,html:l})}}catch{}return r}function G6(t){const n=(t==null?void 0:t.html_fr)||"";if(!n||typeof DOMParser>"u")return"";try{const i=new DOMParser().parseFromString(n,"text/html").body;return qx(i,Xs()),i.querySelectorAll("script, style, iframe, object, embed, nav, header, footer").forEach(s=>s.remove()),i.querySelectorAll(".ed-ecartes").forEach(s=>s.remove()),i.querySelectorAll("*").forEach(s=>{const a=s.tagName==="A"?s.getAttribute("href"):null,o=s.tagName==="IMG"?s.getAttribute("src"):null,c=s.tagName==="IMG"?s.getAttribute("alt"):null,l=s.getAttribute("class"),d=s.getAttribute("id"),p=[];for(const u of Array.from(s.attributes))u.name.startsWith("data-")&&p.push([u.name,u.value]),s.removeAttribute(u.name);l&&s.setAttribute("class",l),d&&s.setAttribute("id",d),p.forEach(([u,g])=>s.setAttribute(u,g)),a&&(/^https?:\/\//i.test(a)||a.startsWith("/"))&&(s.setAttribute("href",a),/^https?:\/\//i.test(a)&&(s.setAttribute("target","_blank"),s.setAttribute("rel","nofollow noopener"))),o&&(/^https?:\/\//i.test(o)||o.startsWith("/")||o.startsWith("data:image/"))&&(s.setAttribute("src",o),s.setAttribute("alt",c||""))}),i.querySelectorAll(".ed-decrypt, .ed-decrypt-solo").forEach(s=>{Cx(s)}),Tb(i),Nx(i,Xs()),(i.innerHTML||"").trim()}catch{return""}}let Ua=null;function Db(){return Ua||(Ua=fetch(bn()+"/analysis/manifest.json",{cache:"no-cache"}).then(t=>t.ok?t.json():null).then(t=>{if(!t)return null;if(Array.isArray(t))return t;const n=t.items||t.memos||t.entries;return Array.isArray(n)?n:null}).catch(()=>(Ua=null,null))),Ua}let Va=null;function _p(){return Va||(Va=fetch(bn()+"/research/manifest.json",{cache:"no-cache"}).then(t=>t.ok?t.json():null).then(t=>
271Array.isArray(t)?t:null).catch(()=>(Va=null,null))),Va}function Ox(t,n){const r=(n==="en"&&t.en&&t.en.title||t.title||"").trim();return r?{id:"n:"+(t.slug||r.toLowerCase().slice(0,40)),kind:"memo",memoType:"note",name:r.length>60?r.slice(0,57)+"…":r,cc:Kt((t.country_iso2||"").toUpperCase()),countryLabel:t.country_iso2||"",sector:t.industry||"",date:(t.published||"").slice(0,10),url:t.url||(t.slug?`/research/${t.slug}/`:""),tagline:(n==="en"&&t.en&&t.en.summary||t.summary||"").slice(0,220),website:t.mindmap||"",engine:"note",isToday:(t.published||"").slice(0,10)===xn()}:null}const zb=2500,Bb=9*60*1e3;function Ub(t){return/(youtube\.com\/|youtu\.be\/)/i.test(t||"")?"youtube":"url"}async function Vb(t,n){const r=await fetch(`${we}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),i=await r.json().catch(()=>({}));if(!r.ok||i.status==="error"||!i.job_id)throw new Error(i.message||`HTTP ${r.status}`);const s=Date.now();for(;;){if(await new Promise(c=>{setTimeout(c,zb)}),Date.now()-s>Bb)throw new Error("timeout");const a=await fetch(`${we}/research/status/${encodeURIComponent(i.job_id)}`).catch(()=>null);if(!a)continue;const o=await a.json().catch(()=>null);if(!(!o||o.status==="running"))return o}}async function W6(t){const n=(t.url||"").trim(),r=(t.text||"").trim();try{return await Vb("/research/ingest",{kind:n?Ub(n):"text",raw:r,source_url:n||(t.sourceUrl||"").trim(),email:t.email||"",cb_token:t.cbToken||""})}catch(i){return{status:"error",message:i instanceof Error?i.message:String(i)}}}async function Tp(t,n,r){try{const s=await(await fetch(`${we}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)})).json().catch(()=>null);return s||r}catch{return r}}async function Q6(t,n={}){const r={...t};r.email=n.email||"",r.cb_token=n.cbToken||"";const i=await Tp("/research/save",r,{ok:!1,error:"réseau"});return!i||i.ok===!1?{ok:!1,error:(i==null?void 0:i.error)||"enregistrement refusé"}:{ok:!0,id:i.id,summary:i.summary}}async function Z6(t={}){const n=await Tp("/research/searches",{email:t.email||"",cb_token:t.cbToken||""},{});return Array.isArray(n==null?void 0:n.searches)?n.searches:[]}async function K6(t){const n=await Tp("/research/search-get",{id:t},{});return n!=null&&n.ok&&n.search?n.search:null}function Hb(){try{const t=new URL(window.location.href).searchParams,n=(t.get("cb")||t.get("token")||"").trim();if(n==="off")return"";if(/^[A-Za-z0-9]{16}$/.test(n))return n}catch{}return fn("token","")}function ha(){let t="";const n=typeof navigator<"u"&&kx(navigator.userAgent||""),r=typeof window>"u"||window.parent===window;try{const s=new URL(window.location.href).searchParams,a=(s.get("cb")||s.get("token")||"").trim(),o=s.get("embed")==="1";if(a==="off")o||(ft("token",""),ft("tokenAt",0),ft("memberReady",!1));else if(/^[A-Za-z0-9]{16}$/.test(a)){t=a;const c=fn("token","");!n&&!(o&&!r&&!!c&&c!==a)&&(ft("token",a),ft("tokenAt",Date.now()))}}catch{}if(!t){const s=fn("token",""),a=fn("tokenAt",0);s&&!Ax(a,Date.now())?(ft("token",""),ft("tokenAt",0)):s&&(t=s,n||ft("tokenAt",Date.now()))}if(!n)try{A2()}catch{}const i=Ge();return t?{mode:"client",token:t,fundType:i==null?void 0:i.fund_type,email:i==null?void 0:i.email}:i&&i.fund_type?{mode:rn(i.fund_type)?"free":"client",fundType:i.fund_type,email:i.email}:{mode:"anon"}}function Mx(t){const n=t||"";return!!(/(r[eè]gles?\s+(?:de\s+)?l['’]?acquisitions?|strat[eé]gie\s+d['’]acquisition|l['’]acquisition\s+en\s+\d{4}|red[eé]finit.{0,48}acquisition|comment\s+l['’]ia\b|\bseo\b.{0,120}\bgeo\b|\bgeo\b.{0,120}\bseo\b)/i.test(n)||/:\s*comment\b/i.test(n)&&!/\b(acquiert|acquires?|acquired|rachete|rachat de|merger|buyout)\b/i.test(n))}function qp(t){var l;if(typeof t=="string"||t==null){const d=(t||"").toLowerCase();return d==="ma"||d.startsWith("acq")||d.includes("fusion")?"ma":d==="vcpe"||d.includes("lev")||d.includes("fund")?"levee":"other"}const n=`${t.headline_fr||""} ${t.headline||""} ${t.title||""}`;if(Mx(n))return"other";if(/\b(?:sells?|sold|sale of|divests?|disposed of)\b.{0,80}\b(?:stake|share|shares|interest|asset|assets|business|pipeline|unit)\b/i.test(n))return"ma";const i=(t.rubrique||"").toLowerCase();if(i==="ma")return"ma";if(i==="levees")return"levee";if(i==="nominations"||i==="recrutements")return"other";const s=/\b(acquires?|acquired|acquisition|to acquire|buyout|merger|merges?|takeover|rach[eè]te|rachat|acquiert|m&a|in talks for .{0,48}sale)\b/i.test(n),a=/\b(l[eè]ve|lev[ée]e de fonds|raises?|raised|bags?|secures?|funding rounds?|funding deals?|series [a-e]|s[ée]rie [a-d]|seed|pre-seed|tour de table|first close)\b/i.test(n);if(i==="actualites"||i==="actualités"||!i){if(s&&!a)return"ma";if(a&&!s)return"levee";if(s&&a)return"ma"}const o=(((l=t.card)==null?void 0:l.kind)||"").toLowerCase();if(o==="rachat"||o==="en_cours"||o==="ma")return"ma";if(o==="levee_une"||o==="levee")return"levee";if(o==="recrutement"||o==="nomination")return"other";const c=String(t.item_kind||t.deal_type||"").toLowerCase();return["hiring","recrutement","jobs","nomination","appointment"].includes(c)?"other":c==="ma"||c.startsWith("acq")||c.includes("fusion")?"ma":c==="vcpe"||c.includes("lev")||c.includes("fund")?"levee":s?"ma":a?"levee":"other"}function Yb(t){const n=qp(t);return n==="ma"?"ma":n==="levee"?"fundraising":Gb(t)}function Gb(t){var s;const n=(t.rubrique||"").toLowerCase();if(n==="nominations")return"nominations";if(n==="recrutements")return"recrutements";const r=(((s=t.card)==null?void 0:s.kind)||"").toLowerCase();if(r==="nomination")return"nominations";if(r==="recrutement")return"recrutements";const i=`${t.headline_fr||""} ${t.headline||""} ${t.title||""}`;return/\b(nomination|nomm[eé]e?\b|appoint(?:s|ed|ment)?|named\s+(?:as\s+)?(?:ceo|cfo|cto|coo|vp|president|directeur)|devient\s+(?:ceo|directeur|présidente?|dg)\b)/i.test(i)?"nominations":/\b(recrute(?:nt|ra|r)?\b|embauche(?:nt|ra|r)?\b|is\s+hiring|hires\s+\d+|ouvre\s+\d+\s+postes?)/i.test(i)&&!/\b(licenci|layoff|plan\s+social)/i.test(i)?"recrutements":Ex({headline:t.headline,headline_fr:t.headline_fr,title:t.title,company_name:t.company_name})}const ma=t=>t.trim().toLowerCase();function fd(t,n){var f;const r=((n==="fr"?t.headline_fr:t.headline)||t.headline||t.title||"").trim(),i=Mb((t.company_name||"").trim(),`${t.headline||""} ${t.headline_fr||""}`),s=dl(i)?i:"",a=s||r||(t.title||"").trim();if(!a)return null;const o=(t.country||"").trim(),c=Kt(o&&o!=="?"?o:"Europe")||Kt(o),l=`${t.headline_fr||""} ${t.headline||""} ${t.title||""} ${a}`,d=Mx(l),p=d?"other":qp(t),u=(((f=t.card)==null?void 0:f.kind)||"").toLowerCase(),g=d&&["rachat","en_cours","ma","levee","levee_une"].includes(u)?void 0:t.card;return{id:"op:"+(t.op_id||ma(a)),kind:"op",name:a,cc:c||"",countryLabel:o&&o!=="?"?o:"Europe",sector:t.product_category_above||"",acquirer:(t.acquirer_name||"").trim()||void 0,stage:t.company_
271stage||"",date:(t._pool_date||t.published||"").slice(0,10),url:t.url||"",website:(t.website||"").trim()||void 0,domain:(t.domain||"").trim()||void 0,dealKind:p,rubrique:d?"actualites":(t.rubrique||"").toLowerCase()||void 0,engine:Yb(t),amountEur:t.amount_eur||0,headline:(n==="fr"?t.headline_fr:t.headline)||t.headline||t.title||"",match:t._match||void 0,card:g,noCo:!s||d?!0:void 0,isToday:(t._pool_date||"").slice(0,10)===xn()}}function Wb(t){const n=(t.name||"").trim();if(!n)return null;const r=typeof t.score=="string"?parseFloat(t.score):t.score;return{id:"m:"+(t.slug||ma(n)),kind:"memo",name:n,cc:Kt(t.country),countryLabel:t.country||"",sector:t.sector||t.industry||"",stage:t.stage||"",date:(t.published||"").slice(0,10),url:t.url||(t.slug?`/analysis/${t.slug}/`:""),tagline:t.tagline||"",score:isFinite(r)?r:void 0,memoType:t.memo_type||"",engine:"memo",isToday:(t.published||"").slice(0,10)===xn()}}function Qb(t){const n=(t||"").trim();if(!n)return"";const r=new Set(["unavailable","n/a","na","none","null","unknown","-","?"]);return n.split(/\s+/).every(s=>r.has(s.toLowerCase()))?"":n}const ts=/^(who we are|qui sommes[-\s]?nous|about us|about|à propos|a propos|our story|notre histoire|home|accueil|welcome|bienvenue|contact us|nous contacter|contact|our team|notre équipe|notre equipe|the company|our solutions?|nos solutions?|administrators?|l['’]entreprise)$/i,Zb=/\b(partner to|earn revenue|overview|funding news|recently funded|funding tracker|seed funding|funding alerts|who we are|qui sommes|student insurance partnership|health insurance excess|details and choice)\b/i,ns=/^(?:(?:and|et|&|\+|of|de|des|du|la|le|les|for|pour|your|votre|health|santé|sante|protection|insurance|insurances|assurance|assurances|prévoyance|prevoyance|brokerage|broker|courtage|courtier|solutions?|services?|consulting|conseil|advisory|software|platform|plateforme|group|groupe|international|internationale|global|official|site|officiel|expat|expatriés?|expatriates?|benefits?|employee|mutuelle|risk|risques?|management|wealth|finance|financial|life|vie|home|accueil|travel|voyage|care|medical|médical|student|students?|partnerships?|details?|choice|excess)\s*)+$/i,Ph=t=>(t||"").toLowerCase().replace(/[&+]/g,"and").replace(/[^a-z0-9]+/g,""),Kb={studcorp:"STUDCORP"},Jb=["linkedin.com","facebook.com","instagram.com","twitter.com","x.com","wikipedia.org","medium.com","substack.com","youtube.com","google.com","crunchbase.com","bloomberg.com","reuters.com"],$b=new Set(["ac","co","com","edu","gov","net","org"]);function Xb(t){const n=(t||"").toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(!n.length)return{label:"",domain:""};let r=n.length>=2?n.length-2:0;return n.length>=3&&n[n.length-1].length===2&&$b.has(n[n.length-2])&&(r=n.length-3),{label:n[r],domain:n.slice(r).join(".")}}function ey(t,n=""){const r=(t||"").replace(/\s+/g," ").trim(),i=(n||"").replace(/^https?:\/\//i,"").replace(/^www\./i,"").split(/[/?#]/)[0].toLowerCase().replace(/:\d+$/,""),{label:s,domain:a}=Xb(i),o=Jb.some(f=>i===f||i.endsWith(`.${f}`)),c=s.replace(/-/g," "),l=!o&&s.length>=2?Kb[s]||c[0].toUpperCase()+c.slice(1):"",d=/\/(?:lamal-or-cmu|cmu-or-lamal)(?:[/?#]|$)/i.test(n||"");if((/^llm$/i.test(r)||/^cmu\s+ou\s+lamal(?:\b|\s*[:|—–-])/i.test(r))&&(i==="comparea.ch"||i.endsWith(".comparea.ch"))&&d)return"CMU ou LAMal";if(l.toLowerCase()==="comparea"&&/\b(?:lamal|assurance|health insurance).*(?:frontalier|frontier worker)/i.test(r))return l;const p=r.split(/\s*(?:\||–|—)\s*|\s+-\s+|:\s+/).map(f=>f.trim()).filter(Boolean);if(p.length>=2){const f=o?"":Ph(s.replace(/-/g," "));if(f.length>=3){const S=p.find(E=>{const j=Ph(E);return!!j&&(j===f||j.startsWith(f)||j.length>=4&&f.startsWith(j))});if(S&&!ts.test(S)){const E=S.toLowerCase().replace(/^www\./,"").replace(/\.$/,"");return E===i||E===a?l:S}}const L=p.filter(S=>ts.test(S)),v=p.filter(S=>!ts.test(S));if(L.length&&v.length===1&&v[0].split(/\s+/).length<=5)return v[0];const y=p[p.length-1],h=p.slice(0,-1).join(" "),b=/\b(you|we|our|are|is|est|êtes|etes|sommes|votre|your)\b/i.test(h),x=h.split(/\s+/).filter(S=>/[\p{L}\p{N}]/u.test(S)).length;if(y.split(/\s+/).length<=3&&y.length<=32&&/^[A-ZÀ-Ý]/.test(y)&&!ns.test(y)&&(b||x>=4))return y;const w=p[0];if(ns.test(y)&&!ns.test(w)&&!ts.test(w)&&w.split(/\s+/).length<=6||!ns.test(w)&&!ts.test(w)&&w.split(/\s+/).length<=5&&(y.split(/\s+/).length>=4||y.length>=36))return w}const u=r.split(/\s+/).length>=7||Zb.test(r)||ns.test(r),g=/\/(?:articles?|blog|news|posts?|press(?:-release)?|stories?|insights?|reports?|features?)(?:\/|$)/i.test(n||"");return u&&l&&!g?l:r}function ty(t){const n=c=>(c||"").toLowerCase().replace(/[^a-z0-9]/g,""),r=c=>{if(c.kind!=="target")return"";let l=(c.domain||"").toLowerCase();if(!l)try{l=new URL(c.website||"").hostname.toLowerCase()}catch{l=""}l=l.replace(/^www\./,"");const d=n(l.split(".")[0]||"");return d.length<3?"":n((c.id||"").replace(/^t:/,"")+" "+(c.name||"")).includes(d)?l:""},i=c=>{try{return["","/"].includes(new URL(c.website||"").pathname)}catch{return!1}},s=(c,l)=>{const d=g=>[g.memoUrl?1:0,g.ceoStatus?1:0,i(g)?1:0,typeof g.score=="number"?g.score:-1],p=d(c),u=d(l);for(let g=0;g<p.length;g++)if(p[g]!==u[g])return p[g]>u[g];return String(c.modifiedAt||c.date||"")>String(l.modifiedAt||l.date||"")},a=new Map,o=[];for(const c of t){const l=r(c);if(!l){o.push(c);continue}const d=a.get(l);if(d===void 0){a.set(l,o.length),o.push(c);continue}s(c,o[d])&&(o[d]=c)}return o}function ny(t,n=0){const r=(t.company||"").trim(),i=ey(r,String(t.website||t.domain||t.url||""));return i?{order:n,id:"t:"+ma(r||i),kind:"target",name:i,cc:Kt(t.country),countryLabel:t.country||"",sector:t.sector||"",market:t.market||"",tags:Array.isArray(t.tags)?t.tags.filter(s=>typeof s=="string"):[],provQuery:t.prov_query||"",provUrl:t.prov_url||"",angleId:t.angle_id||"",gateAngleId:t.gate_angle_id||"",stage:t.stage||"",date:(t.detected||"").slice(0,10),verdict:t.verdict||t.status||"",cribleStatus:typeof t.status=="string"?t.status:"",verdictDate:(t.verdict_date||"").slice(0,10),modifiedAt:String(t.modified_at||""),ceoStatus:t.ceo_status||"",score:typeof t.score=="number"?t.score:void 0,engine:t.engine?Ii(t.engine):"",memoUrl:t.memo_url||"",tagline:t.tagline||"",website:t.website||"",reasoning:t.reasoning||"",ceoNote:t.ceo_note||"",summary:t.summary||"",convictionScore:typeof t.conviction_score=="number"?t.conviction_score:void 0,angle:t.angle||"",engagement:typeof t.engagement=="number"?t.engagement:void 0,airtableId:t.airtable_id||"",dealId:t.deal_id||"",checkId:t.check_i
271d||"",city:t.city||"",address:String(t.address||"").trim()||void 0,lat:typeof t.lat=="number"&&Number.isFinite(t.lat)?t.lat:void 0,lon:typeof t.lon=="number"&&Number.isFinite(t.lon)?t.lon:void 0,geoSrc:String(t.geo_src||"")||void 0,sourcedAt:String(t.sourced_at||"")||void 0,checkedAt:String(t.checked_at||"")||void 0,provSeed:String(t.prov_seed||"")||void 0,provOrigin:String(t.prov_origin||"")||void 0,provDay:String(t.prov_day||"")||void 0,provMotive:String(t.prov_motive||"")||void 0,hot:t.hot&&typeof t.hot=="object"?t.hot:null,memoPdfUrl:t.memo_pdf_url||"",contactName:Qb(t.contact_name||[t.first_name,t.last_name].filter(Boolean).join(" ")),contactEmail:t.email||"",contactPhone:String(t.phone||"").trim()||void 0,contactLinkedin:t.linkedin||"",linkedinCompany:t.linkedin_company||"",domain:t.domain||"",memoType:t.memo_type||"",isToday:(t.detected||"").slice(0,10)===xn()}:null}function Ih(t){return(t||"").toLowerCase().replace(/[^a-z0-9]/g,"")}const Rx="2LceiQMTJvjZjFMx";async function Fp(){try{const r=await fetch(bn()+"/actualites/operations/signaux.json",{cache:"no-cache"});if(r.ok){const i=await r.json(),s=i&&i.signaux||[];if(Array.isArray(s)&&s.length){const a=new Set,o=[];for(const c of s){const l=String(c&&c.company||"").trim();if(!l)continue;const d=ma(l);a.has(d)||(a.add(d),o.push({id:"sig:"+d,kind:"target",pub:!0,name:l,cc:Kt(String(c.country||"")),countryLabel:String(c.country||""),sector:String(c.sector||""),stage:String(c.stage||""),date:String(c.detected||c.hot&&c.hot.date||"").slice(0,10),engine:"",hot:c.hot&&typeof c.hot=="object"?c.hot:null}))}if(o.length)return o}}}catch{}const t=await Op(Rx);if(!t)return[];const n=new Set;return t.targets.filter(r=>{const i=r.name.trim().toLowerCase();return n.has(i)?!1:(n.add(i),!0)}).map(r=>({...r,pub:!0}))}async function Px(t,n){const r=t.filter(a=>a.memoType==="note"&&a.url),i=[],s=new Set;for(let a=0;a<r.length;a+=8){const o=r.slice(a,a+8),c=await Promise.all(o.map(l=>fetch(bn()+l.url.replace(/\/?$/,"/")+"card.json").then(d=>d.ok?d.json():null).catch(()=>null)));o.forEach((l,d)=>{const p=c[d];if(!p)return;const u=n==="en"&&p.en||p.fr||p,g=u.prospective&&u.prospective.companies_to_evaluate||[];for(const f of Array.isArray(g)?g:[]){const L=(typeof f=="string"?f:f&&(f.name||f.company)||"").trim();if(!L)continue;const v=ma(L);if(s.has(v))continue;s.add(v);const y={id:"nl:"+v,kind:"target",pub:!0,name:L,cc:typeof f=="object"&&f&&Kt(String(f.country||""))||l.cc,countryLabel:typeof f=="object"&&f&&String(f.country||"")||l.countryLabel||"",sector:typeof f=="object"&&f&&String(f.sector||f.industry||"")||l.sector||"",stage:typeof f=="object"&&f&&String(f.stage||"")||"",date:l.date,engine:"note",website:typeof f=="object"&&f&&String(f.website||f.url||"")||"",reasoning:typeof f=="object"&&f&&String(f.reason||f.why||"")||"",noteTitle:l.name,noteUrl:l.url,verdict:"",ceoStatus:"",memoUrl:"",isToday:l.isToday};i.push(y)}})}return i}async function Op(t,n=""){try{const r=await fetch(`${we}/cibles/list.json?token=${encodeURIComponent(t)}${n?`&tab=${encodeURIComponent(n)}`:""}`);if(!r.ok)return null;const i=await r.json(),s=i.leads||i.items||[];return t!==Rx&&Ab(t,String(i.fund||"")),{fund:String(i.fund||""),marketEstimate:typeof i.market_estimate=="number"&&i.market_estimate>0?i.market_estimate:void 0,criteria:i.criteria&&typeof i.criteria=="object"?i.criteria:void 0,stats:i.stats&&typeof i.stats=="object"?i.stats:void 0,generatedAt:String(i.generated_at||""),targets:(()=>{const a=new Set,o=[];return s.forEach((c,l)=>{const d=ny(c,l);!d||a.has(d.id)||(a.add(d.id),o.push(d))}),ty(o)})()}}catch{return null}}async function ry(t){try{const n=await fetch(`${we}/cibles/memo-runs?token=${encodeURIComponent(t)}`);if(!n.ok)return null;const r=await n.json();return{runs:r.runs||[],now:typeof r.now=="number"?r.now:Date.now()/1e3}}catch{return null}}async function J6(t){const n=await ry(t);return n?n.runs:[]}async function $6(t,n,r){try{const i=new URLSearchParams({token:t,company:n});r&&i.set("check_id",r);const s=await fetch(`${we}/cibles/dossier-full?${i.toString()}`);if(!s.ok)return null;const a=await s.json();return!a||a.ok!==!0?null:{reasoning:String(a.reasoning||""),cribleStatus:String(a.crible_status||""),score:typeof a.score=="number"?a.score:null,summaryHtml:String(a.summary_html||""),convictionScore:typeof a.conviction_score=="number"?a.conviction_score:null,verdict:String(a.verdict||"")}}catch{return null}}async function X6(t,n,r){try{return(await fetch(`${we}/cibles/memo-run-action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,company:n,action:r})})).ok}catch{return!1}}async function ew(t,n){try{const r=await fetch(`${we}
271/cibles/dispatch-rate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,per_day:n})});if(!r.ok)return null;const i=await r.json();return typeof i.per_day=="number"?i.per_day:n}catch{return null}}async function iy(t,n){try{const i=await(await fetch(`${we}/cibles/set-status`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})})).json().catch(()=>({}));return{ok:!!i.ok,error:i.error,skipped:!!i.skipped}}catch{return{ok:!1,error:"network"}}}async function sy(){try{const t=await fetch(bn()+"/actualites/operations/world.json",{cache:"no-cache"});return t.ok?await t.json():null}catch{return null}}async function tw(t,n){try{const r=await fetch(`${we}/cibles/similar`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,target:n,who:"worldmap"})});if(!r.ok)return null;const i=await r.json();return{ok:!!i.ok,verdict:i.verdict,results:Array.isArray(i.results)?i.results:[]}}catch{return null}}async function nw(t,n,r,i=6){try{const s=await fetch(`${we}/cibles/prospect`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,mode:n,query:r.slice(0,600),limit:i})});if(!s.ok)return null;const a=await s.json();return{ok:!!a.ok,verdict:a.verdict,found:a.found,results:Array.isArray(a.results)?a.results:[]}}catch{return null}}async function Ix(t,n,r="",i){try{const s=i&&Object.keys(i).length?i:Ep(Dr(n)),a=await fetch(`${we}/cibles/evaluate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,q:n.slice(0,200),who:r,...s})}),o=await a.json().catch(()=>({}));return o.company&&Object.keys(s).length&&fs(o.company,{pitch_url:s.pitch_url||s.pitch_deck_url||"",linkedin:s.linkedin||"",product_url:s.product_url||"",pricing_url:s.pricing_url||"",team_url:s.team_url||""}),a.ok?o:{ok:!1,verdict:"unresolved",reason:o.detail||`HTTP ${a.status}`}}catch(s){return{ok:!1,verdict:"unresolved",reason:String(s)}}}async function rw(t){try{const n=await fetch(`${we}/cibles/reactions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t})});if(!n.ok)return null;const r=await n.json().catch(()=>({})),s=[...Array.isArray(r.reactions)?r.reactions:[]].filter(a=>a.kind==="thesis_fit"&&["yes","partial","no"].includes(a.target||"")).sort((a,o)=>String(o.ts||"").localeCompare(String(a.ts||"")))[0];return s?{fit:s.target,note:String(s.message||""),ts:String(s.ts||"")}:null}catch{return null}}async function iw(t){const n=new Map;try{const r=await fetch(`${we}/cibles/reactions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t})});if(!r.ok)return n;const i=await r.json().catch(()=>({}));[...Array.isArray(i.reactions)?i.reactions:[]].sort((a,o)=>(a.ts||0)-(o.ts||0)).forEach(a=>{const o=(a.target||"").trim().toLowerCase();o&&(a.kind==="yes"||a.kind==="no")&&n.set(o,a.kind)})}catch{}return n}async function sw(t){const n=new Map;try{const r=await fetch(`${we}/cibles/approach-map`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t})});if(!r.ok)return n;const i=await r.json().catch(()=>({})),s=i.map||i.approaches||{};Object.entries(s).forEach(([a,o])=>{!a||!o||typeof o!="object"||n.set(a.trim().toLowerCase(),{stage:String(o.stage||"todo"),stamps:o.stamps&&typeof o.stamps=="object"?o.stamps:{}})})}catch{}return n}async function aw(t,n){try{const i=await(await fetch(`${we}/cibles/deal-stage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})})).json().catch(()=>({}));return{ok:!!i.ok,stale:!!i.stale}}catch{return{ok:!1}}}const ay=new Set(["analysis_request","fast_request","detailed_request","detailed_regen"]);function oy(t){var i;const n={};try{const s=t??(typeof window<"u"?window.location.search:""),a=new URLSearchParams(s||""),o=String(a.get("credit_cap")||"").trim(),c=String(a.get("credit_exp")||"").trim();o&&c&&(n.credit_cap=o,n.credit_exp=c)}catch{}const r=String(((i=Ge())==null?void 0:i.member_session)||"").trim();return r&&(n.session=r),n}
271async function ly(t,n,r,i="",s="",a="",o=""){try{const c=await fetch(`${we}/cibles/react`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,kind:n,target:r,message:i,sector:s,who:a,via:"worldmap",...o?{check_id:o}:{},...ay.has(n)?{...Ep(Dr(r)),...oy()}:{}})}),l=await c.json().catch(()=>({})),d=l.detail&&typeof l.detail=="object"?l.detail:null,p=l.balance||(d==null?void 0:d.balance);return{ok:c.ok&&l.ok!==!1,status:c.status,triggered:typeof l.triggered=="boolean"?l.triggered:void 0,dedup:!!l.dedup,error:String(l.error||(d==null?void 0:d.error)||""),message:String(l.message||(d==null?void 0:d.message)||""),cost:typeof l.cost=="number"?l.cost:typeof(d==null?void 0:d.cost)=="number"?d.cost:void 0,balance:p||null}}catch{return{ok:!1,status:0,error:"network_error"}}}async function ow(t){try{const n=await fetch(`${we}/cibles/public-favoris?token=${encodeURIComponent(t)}`);if(!n.ok)return[];const r=await n.json();return Array.isArray(r.favoris)?r.favoris:[]}catch{return[]}}async function lw(t,n,r){try{return(await fetch(`${we}/cibles/fav-sync`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,op:n,remove:r})})).ok}catch{return!1}}async function cw(t,n,r="email"){try{return await(await fetch(`${we}/cibles/prepare-approach`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,company:n,channel:r})})).json().catch(()=>null)}catch{return null}}function cy(t,n){var l;if(Array.isArray(t.pool_order)||typeof t.per_day=="number")return t;const r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=d=>String(d||"").replace(new RegExp(`\\s+for\\s+${r}\\s*$`,"i"),"").trim(),s=t.full_pool||[],a=t.scheduled||[],o=((l=a.find(d=>d.day_offset===1))==null?void 0:l.memos)||[],c=Number(t.memos_per_day);return{per_day:Number.isFinite(c)?Math.max(0,Math.min(10,c)):void 0,tomorrow:o.slice(0,10).map(d=>({name:i(d.company),score:d.score})),analyzed_today:(t.dispatched_today||[]).slice(0,20).map(d=>({name:i(d.company),state:String(d.state||""),age_min:d.age_min,memo_type:String(d.memo_type||""),memo_url:String(d.memo_url||"")})),pool_order:s.slice(0,120).map(d=>i(d.company)),pool_meta:s.slice(0,120).map(d=>({name:i(d.company),score:d.score,rawName:String(d.company_raw||""),checkId:String(d.check_id||""),website:String(d.website||""),excerpt:String(d.reasoning_excerpt||"").slice(0,200),fresh:!!d.fresh})),scheduled:a.map(d=>({date:String(d.date||""),day_offset:Number(d.day_offset)||0,day_label:String(d.day_label||""),names:(d.memos||[]).map(p=>i(p.company))})),offre:t.offre||void 0,in_progress:(t.in_progress||[]).slice(0,20).map(d=>({name:i(d.company),state:String(d.state||d.last_step||""),age_min:Number(d.age_min)||0,memo_type:String(d.memo_type||"")})),done_count:(t.done_all||[]).length}}async function dw(t){try{const n=await fetch(`${we}/cibles/market-sizing?token=${encodeURIComponent(t)}`);if(!n.ok)return null;const r=await n.json();return r&&r.ok?r:null}catch{return null}}const dy=12e4,xd=new Map,Ha=new Map;function pw(t){const n=xd.get(t);return n?n.v:null}async function uw(t,n=!1){const r=xd.get(t);if(!n&&r&&Date.now()-r.t<dy)return r.v;if(!n){const s=Ha.get(t);if(s)return s}const i=(async()=>{try{const s=await fetch(`${we}/v3/memo-pipeline?fund=${encodeURIComponent(t)}`);if(!s.ok)return null;const a=await s.json();if(!a||typeof a!="object")return null;const o=cy(a,t);return xd.set(t,{t:Date.now(),v:o}),o}catch{return null}})();return Ha.set(t,i),i.finally(()=>{Ha.get(t)===i&&Ha.delete(t)}),i}async function tt(t,n){try{const r=await fetch(`${we}/cibles/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),i=await r.json().catch(()=>({}));return{status:r.status,j:i}}catch{return{status:0,j:{}}}}async function hw(t){const{status:n,j:r}=await tt("email-preview",{token:t});return n===429?{ok:!1,busy:!0}:{ok:!!r.ok,subject:String(r.subject||""),html:String(r.html||""),pending:typeof r.pending_count=="number"?r.pending_count:void 0}}async function mw(t){const{j:n}=await tt("email-test",{token:t});return{ok:!!n.ok,sentTo:String(n.sent_to||""),error:String(n.error||"")}}async function gw(t,n){try{const r=n?await fetch(`${we}/cibles/weekly-prefs`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})}):await fetch(`${we}/cibles/weekly-prefs?token=${encodeURIComponent(t)}`);if(!r.ok)return null;const i=await r.json();return i&&i.ok?i:null}catch{return null}}async function fw(t){const{status:n,j:r}=await tt("weekly-preview",{token:t});return n===429?{ok:!1,busy:!0}:{ok:!!r.ok,subject:String(r.subject||""),html:String(r.html||"")}}async function xw(t){const{j:n}=await tt("weekly-test",{token:t});return{ok:!!n.ok,sentTo:String(n.sent_to||""),error:String(n.error||"")}}async function Lw(t,n){try{const r=n?await fetch(`${we}/cibles/memo-alert-prefs`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})}):await fetch(`${we}/cibles/memo-alert-prefs?token=${encodeURIComponent(t)}`);if(!r.ok)return null;const i=await r.json();return i&&i.ok?i:null}catch{return null}}async function vw(t,n){const{status:r,j:i}=await tt("memo-alert-preview",{token:t,sections:n});return r===429?{ok:!1,busy:!0}:{ok:!!i.ok,subject:String(i.subject||""),html:String(i.html||"")}}async function bw(t,n){const{status:r,j:i}=await tt("memo-alert-test",{token:t,sections:n});return r===429?{ok:!1,error:"cooldown"}:{ok:!!i.ok,sentTo:String(i.sent_to||""),error:String(i.error||"")}}async function yw(t,n){try{const r=n?await fetch(`${we}/cibles/email-prefs`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})}):await fetch(`${we}/cibles/email-prefs?token=${encodeURIComponent(t)}`);return r.ok?await r.json():null}catch{return null}}async function jw(t,n){const r=(n||"").trim();if(r.length<19)return 0;const i=`${r.slice(0,19)}Z`,{j:s}=await tt("fresh-count",{token:t,since:i});return s&&s.ok&&typeof s.count=="number"?s.count:0}async function ww(t){const{j:n}=await tt("status-map",{token:t});return n&&n.ok&&Array.isArray(n.statuses)?n.statuses:[]}async function kw(t,n,r){const{status:i,j:s}=await tt(t,{token:n,lang:r});if(i===403)return{ok:!1,items:[],error:"unknown token"};const o=(Array.isArray(s.items)?s.items:[]).filter(c=>!!(c&&(c.url||c.title)));return{ok:!!s.ok||i===200,items:o,error:typeof s.error=="string"?s.error:void 0}}async function Aw(t){const n=(t||"").trim().toLowerCase();if(!n)return{ok:!1,found:!1};try{const i=await(await fetch(`${we}/sourcing/run-status?fund=${encodeURIComponent(n)}`)).json().catch(()=>null);return i&&typeof i=="object"?i:{ok:!1,found:!1}}catch{return{ok:!1,found:!1}}}async function Sw(t){try{const r=await(await fetch(`${we}/cibles/fund-engines?token=${encodeURIComponent(t)}`)).json().catch(()=>null);return r&&r.ok&&Array.isArray(r.engines)?r.engines:[]}catch{return[]}}async function Ew(t,n,r){const{j:i}=await tt("fund-engine-toggle",{token:t,engine:n,enabled:r});return{ok:!!(i!=null&&i.ok),fund_on:i==null?void 0:i.fund_on,error:typeof(i==null?void 0:i.error)=="str
271ing"?i.error:void 0}}async function Nw(t,n){try{const i=await(await fetch(`${we}/sourcing/run-fund`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fund_slug:n,bodacc_only:!0,token:t})})).json().catch(()=>({}));if(i&&(i.ok||i.status==="started"||i.status==="success"))return{ok:!0};const s=i&&(i.error||i.message||i.detail);return{ok:!1,error:typeof s=="string"?s:void 0}}catch{return{ok:!1}}}async function Cw(t){const{j:n}=await tt("avis-pattern",{token:t});return n&&n.ok?n:null}async function _w(t){const{j:n}=await tt("thesis-proposals",{token:t});if(!n||!n.ok)return null;const r=Array.isArray(n.proposals)?n.proposals:[];return{ok:!0,reason:typeof n.reason=="string"?n.reason:void 0,counts:n.counts&&typeof n.counts=="object"?n.counts:{},proposals:r.map(i=>{const s=i;return{section:String(s.section||""),title:String(s.title||""),why:String(s.why||""),evidence:Array.isArray(s.evidence)?s.evidence.map(String):[],instruction:String(s.instruction||"")}}).filter(i=>i.title&&i.instruction)}}async function Tw(t,n,r,i){const s={token:t,op:n};r.airtableId&&(s.airtable_id=r.airtableId),r.checkId&&(s.check_id=r.checkId),(i==null?void 0:i.text)!==void 0&&(s.text=i.text),i!=null&&i.entryId&&(s.entry_id=i.entryId);const{j:a}=await tt("notes",s),o=Array.isArray(a==null?void 0:a.entries)?a.entries:[];return{ok:!!(a!=null&&a.ok),entries:o.map(c=>{const l=c;return{id:String(l.id||""),date:String(l.date||""),text:String(l.text||"")}})}}async function qw(t){const{j:n}=await tt("autopush",{token:t});return n&&n.ok?n:null}async function Fw(t,n,r,i){const s={token:t,enabled:n};r&&(s.destination=r),i&&(s.campaign_id=i);const{j:a}=await tt("autopush",s);return a&&a.ok?a:null}async function Ow(t,n,r="webhook",i){const s={token:t,tab:n,destination:r,dry_run:!0};i&&(s.campaign_id=i);const{j:a}=await tt("bulk-push",s);return{ok:!!a.ok,eligible:typeof a.eligible=="number"?a.eligible:void 0,ready:typeof a.ready=="number"?a.ready:void 0,linkedinReady:typeof a.linkedin_ready=="number"?a.linkedin_ready:void 0,noContact:Array.isArray(a.no_contact)?a.no_contact:[]}}async function Mw(t,n,r="webhook",i,s){const a={token:t,tab:n,destination:r};i&&(a.campaign_id=i),s&&(a.idem_key=s);const{status:o,j:c}=await tt("bulk-push",a);if(!c.ok)return{ok:!1,error:String(c.error||(o?`HTTP ${o}`:"reseau"))};const l=d=>typeof c[d]=="number"?c[d]:void 0;return{ok:!0,replayed:c.replayed===!0,pending:c.pending===!0,pushed:l("pushed"),ready:l("ready"),eligible:l("eligible"),linkedinReady:l("linkedin_ready"),skippedNoEmail:l("skipped_no_email"),errors:Array.isArray(c.errors)?c.errors.map(String):[]}}async function Rw(t,n){const{j:r}=await tt("quick-analysis",{token:t,companies:n.slice(0,300)}),i=r.analyses||{},s={};return Object.entries(i).forEach(([a,o])=>{s[a]={ok:!!(o.blocs&&Object.keys(o.blocs).length),blocs:o.blocs,pages:o.pages,erreur:o.erreur,faitLe:o.fait_le}}),s}async function Pw(t,n,r){const{j:i}=await tt("quick-analysis",{token:t,company:n,website:r||""});return i.quota?{ok:!1,quota:!0}:{ok:!!i.ok&&!!(i.blocs&&Object.keys(i.blocs).length),blocs:i.blocs||{},pages:Array.isArray(i.pages)?i.pages:[],erreur:typeof i.erreur=="string"?i.erreur:"",faitLe:typeof i.fait_le=="string"?i.fait_le:void 0}}async function Iw(t,n={}){try{return await(await fetch(`${we}/cibles/webhook`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,...n})})).json().catch(()=>null)}catch{return null}}function Br(t,n){if(!t||t<=0)return"";const r=n==="fr"?"Md€":"bn€";if(t>=1e9){const i=(t/1e9).toFixed(1).replace(/\.0$/,"");return(n==="fr"?i.replace(".",","):i)+" "+r}return t>=1e6?Math.round(t/1e6)+" M€":t>=1e3?Math.round(t/1e3)+" k€":String(t)+" €"}function py(t){return t.toLowerCase().replace(/&/g,"and").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}let Dh=!1;function uy(){var n;if(Dh||typeof window>"u"||(Dh=!0,(n=window.customElements)!=null&&n.get("pp-run-story"))||document.querySelector("script[data-pp-run-story]"))return;const t=document.createElement("script");t.src=In()?"/standard-tutorial/assets/run-story.js":`${we}/sourcing/run-story.js`,t.defer=!0,t.setAttribute("data-pp-run-story","1"),document.head.appendChild(t)}function Dw(t,n,r="",i="fr"){const s=new URLSearchParams({token:t,company:n,lang:i});return r&&s.set("memo_type",r),`${we}/cibles/memo-story?${s.toString()}`}function Ld({token:t,session:n,src:r,since:i,heading:s,eyebrow:a,empty:o,compact:c,flat:l,autoplay:d,waiting:p,replay:u=!0,collapsible:g,open:f,maxh:L,maxhNarrow:v,onDone:y,onState:h,style:b,className:x}){const A=m.useRef(null);m.useEffect(()=>{uy()},[]),m.useEffect(()=>{const E=A.current;if(!E||!y)return;const j=O=>y(O.detail);return E.addEventListener("pp-run-done",j),()=>E.removeEventListener("pp-run-done",j)},[y]),m.useEffect(()=>{const E=A.current;if(!E||!h)return;const j=O=>h(O.detail);
271return E.addEventListener("pp-run-state",j),()=>E.removeEventListener("pp-run-state",j)},[h]);let w=r||"";if(!w){const E=t?`token=${encodeURIComponent(t)}`:n?`session=${encodeURIComponent(n)}`:"";if(!E)return null;w=`${we}/sourcing/run-story?${E}${i?`&since=${Math.floor(i)}`:""}`}const S={ref:A,src:w,theme:"light",style:b,className:x};return s&&(S.heading=s),a&&(S.eyebrow=a),o&&(S.empty=o),c&&(S.compact=""),l&&(S.flat=""),d&&(S.autoplay=""),p&&(S.waiting=""),u||(S.replay="off"),g&&(S.collapsible=""),f&&(S.open=""),L!==void 0&&(S.maxh=String(L)),v!==void 0&&(S["maxh-narrow"]=String(v)),m.createElement("pp-run-story",S)}const hy="https://alexandre-79537--airtable-bridge-fastapi-app.modal.run",my="tblEgYhLpdBdcpKrw";async function gy(t){var c;const n=encodeURIComponent(`LOWER({email_lead})="${t.toLowerCase().trim()}"`),r=`${hy}/at/main/${my}?filterByFormula=${n}&fields%5B%5D=fund_type`,i=await fetch(r);if(!i.ok)throw new Error(`Airtable ${i.status}`);const s=await i.json(),a=new Set,o=[];for(const l of s.records||[]){const d=(((c=l.fields)==null?void 0:c.fund_type)||"").trim();d&&!a.has(d)&&(a.add(d),o.push(d))}return o.sort((l,d)=>l.localeCompare(d,"fr",{sensitivity:"base"})),o}const Fn=[{fr:"Identification",en:"Identification",steps:[{fr:"Résolution du domaine et de l’entité",en:"Resolving the domain and the legal entity",whyFr:"On part de votre URL et on remonte à la société réelle.",whyEn:"We start from the URL and trace it back to the real company.",w:12},{fr:"Cartographie du site : produit, équipe, tarifs",en:"Mapping the site: product, team, pricing",whyFr:"Les quatre pages qui disent presque tout d’une société.",whyEn:"The four pages that say almost everything about a company.",w:18},{fr:"Dirigeant identifié, appartenance vérifiée",en:"Leadership identified, affiliation verified",whyFr:"Un homonyme ne passe pas : on exige la preuve du lien avec la société.",whyEn:"No namesakes get through: we require proof of the tie to the company.",w:20}]},{fr:"Collecte",en:"Field work",steps:[{fr:"Lecture intégrale des pages clés",en:"Reading the key pages in full",whyFr:"Le site est lu en entier, pas survolé.",whyEn:"The site gets read end to end, not skimmed.",w:30},{fr:"Dossier exécutif du dirigeant",en:"Executive dossier on the founder",whyFr:"Parcours, mandats, ce qu’il a déjà construit — et revendu.",whyEn:"Track record, mandates, what they already built — and sold.",w:25},{fr:"Levées de fonds et actualités récentes",en:"Funding rounds and recent news",whyFr:"Qui a mis de l’argent, quand, et à quelles conditions.",whyEn:"Who put money in, when, and on what terms.",w:20},{fr:"Historique de croissance externe",en:"External growth track record",whyFr:"Leurs acquisitions passées trahissent la prochaine.",whyEn:"Past acquisitions give away the next one.",w:20}]},{fr:"Analyse",en:"Analysis",steps:[{fr:"Proposition de valeur et cas d’usage",en:"Value proposition and use cases",whyFr:"Ce qu’ils vendent vraiment, et à qui.",whyEn:"What they actually sell, and to whom.",w:20},{fr:"Structure de marché et positionnement",en:"Market structure and positioning",whyFr:"Où ils se tiennent, et qui leur fait face.",whyEn:"Where they stand, and who stands against them.",w:25},{fr:"Forces, faiblesses, opportunités, menaces",en:"Strengths, weaknesses, opportunities, threats",whyFr:"Ce qui les protège, et ce qui les expose.",whyEn:"What protects them, and what leaves them exposed.",w:25},{fr:"Ce que vous savez faire, et ce qui vous manque",en:"What you do well, and what you lack",whyFr:"Vos angles morts deviennent des critères de recherche.",whyEn:"Your blind spots become search criteria.",w:25},{fr:"Tendance macro et fenêtre de tir",en:"Macro trend and window of opportunity",whyFr:"Pourquoi maintenant — et combien de temps ça reste vrai.",whyEn:"Why now — and how long that stays true.",w:20},{fr:"Carte mentale de la société",en:"Company mind map",whyFr:"Une page pour tout tenir en tête avant l’appel.",whyEn:"One page to hold it all in mind before the call.",w:25}]},{fr:"Votre stratégie",en:"Your strategy",steps:[{fr:"Ce qu’une acquisition viendrait combler",en:"What an acquisition would fill in",whyFr:"On cherche ce qui vous manque, pas ce qui vous ressemble.",whyEn:"We look for what you lack, not for what looks like you.",w:25},{fr:"Ce qu’une cible tirerait de vous",en:"What a target would gain from you",whyFr:"Vos équipes, vos contrats, votre réseau : ce que vous apportez.",whyEn:"Your teams, your contracts, your network: what you bring.",w:25},{fr:"Votre logique de synergies",en:"Your synergy logic",whyFr:"Pourquoi 1 + 1 ferait plus que 2, écrit noir sur blanc.",whyEn:"Why 1 + 1 would make more than 2, written down.",w:25},{fr:"Votre capacité et votre fenêtre",en:"Your capacity and your window",whyFr:"Quelle taille de cible vous est réellement accessible, et quand.",whyEn:"What size of target is actually within reach, and when.",w:20}]},{fr:"Vos angles",en:"Your angles",steps:[{fr:"Vos familles de cibles",en:"Your families of targets",whyFr:"Trois à six angles distincts. Toute la sélection en découlera.",whyEn:"Three to six distinct angles. The whole selection follows from them.",w:30},{fr:"Ce qui fera retenir une société",en:"What will get a company kept",whyFr:"Les signaux qui la font passer, angle par angle.",whyEn:"The signals that let it through, angle by angle.",w:25},{fr:"Ce qui la fera écarter",en:"What will get it ruled out",whyFr:"Écarter vaut mieux que retenir : c’est là que se gagne le tri.",whyEn:"Ruling out beats keeping: that is where the sorting is won.",w:25},{fr:"Votre crible",en:"Your screen",whyFr:"Les clauses qu’une société doit franchir pour arriver jusqu’à vous.",whyEn:"The clauses a company must clear to reach you.",w:20},{fr:"Vos moteurs de recherche",en:"Your search engines",whyFr:"Vos angles deviennent des requêtes concrètes, lancées en continu.",whyEn:"Your angles become concrete queries, run continuously.",w:20}]},{fr:"Publication",en:"Publication",steps:[{fr:"Publication du mémo",en:"Publishing the memo",whyFr:"Votre mémo prend son adresse définitive.",whyEn:"Your memo takes its permanent address.",w:15},{fr:"Vos angles, prêts à être relus",en:"Your angles, ready for review",whyFr:"Ils s’affichent ici même — vous les corrigez avant que la recherche ne parte.",whyEn:"They appear right here — you correct them before the search starts.",w:10}]}],Ht=Fn.flatMap((t,n)=>t.steps.map(r=>({...r,phase:n}))),fy=Fn[Fn.length-1].steps.length,Dx=Ht.length-fy,Ls=1080,xy=(()=>{const t=Ls/Ht.slice(0,Dx).reduce((r,i)=>r+i.w,0);let n=0;return Ht.map(r=>n+=r.w*t)})(),zo=Fn.map((t,n)=>{const r=Ht.findIndex(i=>i.phase===n);return{start:r,end:r+t.steps.length-1}}),zx={depart:0,recherche:1,site:1,dirigeant:2,lecture:3,parcours:4,actualites:6,produit:7,tarifs:7,marche:8,concurrents:8,macro:11,angles:17,redaction:20,sources:22,publication:23}
271,Ly={depart:"⚡",recherche:"🔎",site:"🌐",lecture:"📖",dirigeant:"👤",parcours:"💼",actualites:"📰",produit:"📦",tarifs:"💶",marche:"🗺️",concurrents:"♟️",macro:"📈",angles:"🎯",redaction:"✍️",sources:"🧾",publication:"✅"};function vy(t){const n=Math.max(0,Math.floor(t));return`${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}const by={en:{titleLogin:"Log in to Proplace",titleSignup:"Create your account",closeLabel:"Close",emailLabel:"Your work email",emailPlaceholder:"[email protected]",loggingIn:"Checking…",continue:"Continue →",noAccount:"No account? Sign up →",haveAccount:"Already a client? Log in →",noAccountFound:"No account with this email — create one below.",connectionError:t=>`Connection error · ${t}`,pickTitle:"Which account do you want to open?",pickHint:(t,n)=>`${t} accounts are linked to ${n}.`,pickLabel:"Account",pickSubmit:"Open →",back:"← Another email",signupTitle:"Create your account",signupSub:"Give your website: Stan analyses your company and derives your acquisition angles. You review them before the search starts.",website:"Your company website",websitePh:"domain.com",websiteHint:"YOURS, not a target’s: it is what Stan derives your criteria from.",company:"Company name (optional)",companyPh:"Acme SAS",create:"Create my account →",createFlow:"Generate my deal flow →",creating:"Creating…",theseTitle:"What we understood about you",theseWait:"Putting your strategy into words…",theseWaitSub:"The analysis is done. We are writing up your acquisition angles — a few seconds.",theseIntro:"Everything that follows is derived from this. Read it: the selection is only as good as this is.",theseOk:"This is right → start the target search",step1:"Check what Stan understood",step2:"Correct what is off",step3:"Start the search",optional:"optional",afterLaunch:"Stan screens your market and hands you your kept targets within 30 to 60 minutes.",srcTitle:"Stan is sourcing your market",srcSub:"Watch the engines work. Your preview page opens as soon as it is ready — you can also close this window, nothing stops.",srcHeading:"Your sourcing, live",srcPublishing:"Targets found — your page is being published…",srcOpen:"Open my preview page →",srcAccount:"Follow from my account",srcError:"This is taking longer than expected — our team is finishing your page. You can follow it from your account.",phoneNudge:"We need a number to hand you your targets — or book a meeting just below.",launching:"Starting…",phoneLabel:"Your phone number",phonePh:"+33 6 12 34 56 78",phoneHint:"So we can hand you your targets and tune your angles by voice.",talkTitle:"Rather talk it through?",talkText:"Alexandre, your Corporate Developer, tunes Stan with you, live.",talkCall:"📞 +33 6 83 10 72 86",talkMail:"✉️ [email protected]",rdvBtn:"📅 Book a meeting",rdvDone:"✓ Meeting booked — your memo is unlocked.",memoLocked:"🔒 Full memo unlocked as soon as we can reach you: a valid number, or a booked meeting.",fixTitle:"Anything to correct?",fixChips:[{k:"hyp",label:"The hypothesis",seed:"Your hypothesis is off: in fact, "},{k:"profils",label:"The profiles",seed:"Add a target profile: "},{k:"crible",label:"The screen",seed:"In the screen: "},{k:"angles",label:"The angles",seed:"About the angles: "}],fixPh:"Write it as you would say it to your team — Stan recalibrates on it.",fixSubmit:"Update Stan with this correction →",fixSending:"Stan is recalibrating your thesis…",fixApplied:"Correction applied — your thesis is up to date, on the left.",fixPhAnswer:"Answer Stan here — (a), (b), or your own words.",msgYou:"You",theseUpdated:"✓ Updated just now",verifyTitle:"Confirm your email",verifySub:t=>`We just sent a 6-digit code to ${t}. It expires in 10 minutes.`,verifyWhy:"Next we run a full analysis of your company and derive your acquisition angles. We check the address first, so we can actually hand you the result.",codeLabel:"6-digit code",verifySubmit:"Confirm and start →",verifying:"Checking…",resend:"I got nothing — resend the code",resendIn:t=>`Resend the code (${t}s)`,resendWait:t=>`The first code takes a few seconds — ${t}s to go.`,resendDone:"✓ New code sent. The previous one no longer works.",spamHint:"Still nothing? Check your spam folder: the subject line starts with the code itself.",spamHintFrom:t=>`Still nothing? Check your spam folder — the message comes from ${t}, and its subject line starts with the code itself.`,backToSignup:"← Change my email",progressTitle:"Your deal flow is being built",eta:"Allow 15 to 20 minutes, the time it takes to write your strategy. Your angles will appear on this screen, ready to be corrected before the search starts.",pastFacts:t=>`${t} fact${t>1?"s":""} established`,waitTitle:"Meanwhile",waitFacts:["Every morning, Stan will screen your market: each company kept or ruled out, with the reason written in plain words.","Your angles will become concrete queries, run continuously across your whole market.","You will c
271orrect Stan in plain language, any time. It recalibrates, and the next selection reflects it.","The first search takes 30 to 60 minutes. Your targets page then stays current, day after day.","Ruling out beats keeping: the value is not the list, it is the sorting."],stepCounter:(t,n)=>`Step ${t} of ${n}`,phaseSteps:t=>`${t} steps`,learnTitle:"What we just learned about you",staleHint:"The analysis is taking longer than expected — it keeps running in the background, this screen will catch up on its own.",deliverTitle:"What you get",delivers:["Your external growth strategy, written down","Your sourcing angles — your families of targets","What will get a company kept, and what will rule it out","The screen that decides kept / ruled out","The full memo on your company, and its sources"],done:"Your space is ready",doneSub:"Analysis complete. The memo is published and the email is on its way.",openAccount:"My account →",openFlow:"Open my deal flow →",error:"Something went wrong"},fr:{titleLogin:"Connexion à Proplace",titleSignup:"Créer votre compte",closeLabel:"Fermer",emailLabel:"Votre email professionnel",emailPlaceholder:"[email protected]",loggingIn:"Vérification…",continue:"Continuer →",noAccount:"Pas de compte ? Inscrivez-vous →",haveAccount:"Déjà client ? Se connecter →",noAccountFound:"Aucun compte avec cet email — créez-en un ci-dessous.",connectionError:t=>`Erreur de connexion · ${t}`,pickTitle:"Quel compte voulez-vous ouvrir ?",pickHint:(t,n)=>`${t} comptes sont rattachés à ${n}.`,pickLabel:"Compte",pickSubmit:"Ouvrir →",back:"← Un autre email",signupTitle:"Créons votre compte",signupSub:"Indiquez votre site : Stan analyse votre société et en déduit vos angles d’acquisition. Vous les relisez avant que la recherche ne démarre.",website:"Site web de votre entreprise",websitePh:"domaine.com",websiteHint:"Le VÔTRE, pas celui d’une cible : c’est de lui que Stan déduit vos critères.",company:"Nom de l’entreprise (facultatif)",companyPh:"Acme SAS",create:"Créer mon compte →",createFlow:"Générer mon deal flow →",creating:"Création…",theseTitle:"Ce que nous avons compris de vous",theseWait:"Nous mettons votre stratégie au propre…",theseWaitSub:"L’analyse est terminée. Nous rédigeons vos angles d’acquisition — quelques secondes.",theseIntro:"Tout ce qui suit en découle. Lisez-le : la sélection ne vaudra que ce que vaut ceci.",theseOk:"C’est juste → lancer la recherche de cibles",step1:"Vérifiez ce que Stan a compris",step2:"Corrigez ce qui est à côté",step3:"Lancez la recherche",optional:"facultatif",afterLaunch:"Stan passe votre marché au crible et vous remet vos cibles retenues sous 30 à 60 minutes.",srcTitle:"Stan source votre marché",srcSub:"Regardez les moteurs travailler. Votre page d’aperçu s’ouvre dès qu’elle est prête — vous pouvez aussi fermer cette fenêtre, rien ne s’arrête.",srcHeading:"Votre sourcing, en direct",srcPublishing:"Cibles trouvées — votre page se publie…",srcOpen:"Ouvrir ma page d’aperçu →",srcAccount:"Suivre depuis mon compte",srcError:"Cela prend plus de temps que prévu — notre équipe finalise votre page. Vous pouvez suivre depuis votre compte.",phoneNudge:"Il nous faut un numéro pour vous remettre vos cibles — ou prenez rendez-vous juste en dessous.",launching:"Lancement…",phoneLabel:"Votre téléphone",phonePh:"+33 6 12 34 56 78",phoneHint:"Pour vous remettre vos cibles et caler vos angles de vive voix.",talkTitle:"Vous préférez en parler ?",talkText:"Alexandre, votre Corporate Developer, règle Stan avec vous en direct.",talkCall:"📞 +33 6 83 10 72 86",talkMail:"✉️ [email protected]",rdvBtn:"📅 Prendre rendez-vous",rdvDone:"✓ Rendez-vous pris — votre mémo est débloqué.",memoLocked:"🔒 Mémo complet offert dès qu’on peut vous joindre : numéro valide, ou rendez-vous pris.",fixTitle:"Quelque chose à corriger ?",fixChips:[{k:"hyp",label:"L’hypothèse",seed:"Votre hypothèse est à côté : en réalité, "},{k:"profils",label:"Les profils",seed:"Ajoutez un profil de cibles : "},{k:"crible",label:"Le crible",seed:"Dans le crible : "},{k:"angles",label:"Les angles",seed:"Sur les angles : "}
271],fixPh:"Écrivez-le comme vous le diriez à votre équipe — Stan se recalibre dessus.",fixSubmit:"Mettre à jour Stan avec cette correction →",fixSending:"Stan recalibre votre thèse…",fixApplied:"Correction appliquée — votre thèse est à jour, à gauche.",fixPhAnswer:"Répondez à Stan ici — (a), (b), ou vos mots.",msgYou:"Vous",theseUpdated:"✓ Mise à jour à l’instant",verifyTitle:"Confirmez votre email",verifySub:t=>`Nous venons d’envoyer un code à 6 chiffres à ${t}. Il expire dans 10 minutes.`,verifyWhy:"Ensuite, on analyse votre société en entier et on en déduit vos angles d’acquisition. On vérifie l’adresse d’abord, pour être sûrs de pouvoir vous remettre le résultat.",codeLabel:"Code à 6 chiffres",verifySubmit:"Confirmer et lancer →",verifying:"Vérification…",resend:"Je n’ai rien reçu — renvoyer le code",resendIn:t=>`Renvoyer le code (${t} s)`,resendWait:t=>`Le premier code met quelques secondes — encore ${t} s.`,resendDone:"✓ Nouveau code envoyé. Le précédent ne marche plus.",spamHint:"Toujours rien ? Regardez vos indésirables : l’objet du message commence par le code lui-même.",spamHintFrom:t=>`Toujours rien ? Regardez vos indésirables — le message vient de ${t}, et son objet commence par le code lui-même.`,backToSignup:"← Corriger mon email",progressTitle:"Votre deal flow se construit",eta:"Comptez 15 à 20 minutes, le temps d’écrire votre stratégie. Vos angles s’afficheront sur cet écran, prêts à être corrigés avant de lancer la recherche.",pastFacts:t=>`${t} fait${t>1?"s":""} établi${t>1?"s":""}`,waitTitle:"Pendant ce temps",waitFacts:["Chaque matin, Stan passera votre marché au crible : chaque société sera retenue ou écartée, avec la raison écrite en clair.","Vos angles deviendront des requêtes concrètes, relancées en continu sur l’ensemble de votre marché.","Vous corrigerez Stan en langage naturel, à tout moment. Il se recalibre, et la sélection suivante en tient compte.","La première recherche prend 30 à 60 minutes. Votre page de cibles restera ensuite à jour, jour après jour.","Écarter vaut mieux que retenir : ce qui a de la valeur n’est pas la liste, c’est le tri."],stepCounter:(t,n)=>`Étape ${t} sur ${n}`,phaseSteps:t=>`${t} étapes`,learnTitle:"Ce qu’on vient d’apprendre sur vous",staleHint:"L’analyse prend plus de temps que prévu — elle continue en arrière-plan, cet écran se remettra à jour tout seul.",deliverTitle:"Ce que vous obtenez",delivers:["Votre stratégie de croissance externe, écrite","Vos angles de sourcing — vos familles de cibles","Ce qui fera retenir une société, et ce qui l’écartera","Le crible qui décidera retenu / écarté","Le mémo complet sur votre société, et ses sources"],done:"Votre espace est prêt",doneSub:"Analyse terminée. Le mémo est publié et l’email part vers vous.",openAccount:"Mon compte →",openFlow:"Ouvrir mon deal flow →",error:"Une erreur est survenue"}};function yy({notes:t,cleared:n,lang:r,pastLabel:i}){const[s,a]=m.useState({}),o=(u,g)=>a(f=>({...f,[u]:!(f[u]??g)})),c=Math.max(0,Fn.findIndex((u,g)=>n<=zo[g].end)),l=new Map;for(const u of t){let g=Math.min(zx[u.kind]??n,Ht.length-1);Ht[g].phase>c&&(g=Math.min(n,Ht.length-1)),l.set(g,[...l.get(g)||[],u])}const d=t.length?t[t.length-1].i:-1,p=u=>{var y,h;const g=!!(u.detail||(y=u.links)!=null&&y.length),f=u.i===d,L=`n${u.i}`,v=g&&(s[L]??f);return e.jsxs("div",{className:`pp-auth-fact${f?" fresh":""}`,children:[e.jsxs("button",{type:"button",className:"pp-auth-fhead",disabled:!g,onClick:()=>o(L,f),children:[e.jsx("span",{className:"pp-auth-lico","aria-hidden":!0,children:Ly[u.kind]??"✦"}),e.jsx("span",{className:"pp-auth-lfact",children:r==="fr"?u.fr:u.en||u.fr}),g&&e.jsx("span",{className:"pp-auth-lchev","aria-hidden":!0,children:v?"▾":"▸"})]}),v&&e.jsxs("div",{className:"pp-auth-lbody",children:[u.detail&&e.jsx("span",{className:"pp-auth-ldet",children:u.detail}),!!((h=u.links)!=null&&h.length)&&e.jsx("span",{className:"pp-auth-llinks",children:u.links.map(b=>e.jsx("a",{href:b.url,target:"_blank",rel:"noopener noreferrer",children:b.title||b.url},b.url))})]})]},u.i)};return e.jsxs("div",{className:"pp-auth-thread",children:[Fn.slice(0,c).map((u,g)=>{const f=Ht.reduce((y,h,b)=>h.phase===g?y.concat(l.get(b)||[]):y,[]);if(!f.length)return null;const L=`p${g}`,v=s[L]??!1;return e.jsxs("div",{className:"pp-auth-past",children:[e.jsxs("button",{type:"button",className:"pp-auth-fhead",onClick:()=>o(L,!1),children:[e.jsx("span",{className:"pp-auth-lico done","aria-hidden":!0,
271children:"✓"}),e.jsx("span",{className:"pp-auth-lfact",children:r==="fr"?u.fr:u.en}),e.jsx("span",{className:"pp-auth-pcount",children:i(f.length)}),e.jsx("span",{className:"pp-auth-lchev","aria-hidden":!0,children:v?"▾":"▸"})]}),v&&e.jsx("div",{className:"pp-auth-facts",children:f.map(p)})]},L)}),e.jsx("ul",{className:"pp-auth-substeps pp-auth-solo",children:Fn[c].steps.map((u,g)=>{const f=zo[c].start+g,L=f<n?"done":f===n?"now":"todo",v=l.get(f)||[];return e.jsxs("li",{className:L,children:[e.jsx("span",{className:"pp-auth-dot","aria-hidden":!0}),e.jsx("span",{className:"pp-auth-slabel",children:r==="fr"?u.fr:u.en}),L==="now"&&e.jsx("span",{className:"pp-auth-why",children:r==="fr"?u.whyFr:u.whyEn}),!!v.length&&e.jsx("div",{className:"pp-auth-facts",children:v.map(p)})]},u.en)})})]})}function Ur({onClose:t,initialCompany:n="",initialWebsite:r="",initialExtras:i,intent:s="login",notice:a="",onAuthenticated:o,fundForLogin:c="",preferredLoginFund:l="",loginOnly:d=!1}){var Gp;const{lang:p}=ae(),u=by[p],[g,f]=m.useState(s==="signup"&&!d?"signup":"email"),L=d&&!["email","pick","verify"].includes(g)?"email":g,[v,y]=m.useState((s==="login"||d)&&((Gp=Ge())==null?void 0:Gp.email)||""),[h,b]=m.useState(r),[x,A]=m.useState(n),[w,S]=m.useState(i||Tr),[E,j]=m.useState(""),[O,k]=m.useState(""),[_,N]=m.useState(0),[I,ce]=m.useState(""),[K,pe]=m.useState(!1),ee=m.useRef(null),[P,D]=m.useState(""),[M,re]=m.useState(null),[H,se]=m.useState(0),[ie,he]=m.useState(""),[Le,xe]=m.useState(null),[oe,z]=m.useState([]),[Y,B]=m.useState(!1),[X,te]=m.useState(!1),[Ae,Ze]=m.useState(!1),[Ke,st]=m.useState(!1),Ct=m.useRef(null),[T,C]=m.useState([]),[q,G]=m.useState(!1),[F,J]=m.useState(""),R=m.useRef(null),Q=m.useRef(0),ge=m.useRef(0),[Se,mt]=m.useState(""),[_t,Dt]=m.useState(""),[yn,be]=m.useState(""),[ve,Je]=m.useState(!1),[me,Re]=m.useState(!1),[jn,Ue]=m.useState(""),[zi,wn]=m.useState(null),[yr,Ne]=m.useState(""),[He,yt]=m.useState(""),[Jt,$t]=m.useState(4),[jt,dn]=m.useState(0),[Bi,zp]=m.useState(0),[ga,Bp]=m.useState(""),Hn=m.useRef(null),Kr=m.useRef(null),Yn=m.useRef(null),xl=m.useRef(null),Up=m.useRef(0);m.useEffect(()=>{const U=fe=>{fe.key==="Escape"&&!me&&L!=="running"&&t()};window.addEventListener("keydown",U);const $=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",U),document.body.style.overflow=$}},[t,me,L]),m.useEffect(()=>{const U=R.current;U&&(U.scrollTop=U.scrollHeight)},[T.length,ve]),m.useEffect(()=>()=>{Kr.current&&window.clearInterval(Kr.current),Hn.current&&window.clearInterval(Hn.current),Yn.current&&window.clearInterval(Yn.current),xl.current&&window.clearInterval(xl.current),ee.current&&window.clearInterval(ee.current)},[]);function Vp(U,$,fe=""){const ke=$.trim().toLowerCase();if(ur({email:ke,fund_type:U,ts:Date.now(),...fe?{member_session:fe}:{}}),fe&&o){o();return}if(rn(U)){window.location.href=lo(p);return}fetch(`${_e}/inbound/credits`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:ke})}).then(Fe=>Fe.json()).then(Fe=>{window.location.href=Ir(U,{open:kp(Fe==null?void 0:Fe.plan)})}).catch(()=>{window.location.href=Ir(U,{open:!1})})}async function Ll(U){const $=await Jl({email:v.trim(),lang:p,website_hp:E});he(U),k(""),ce($.sender||""),vl(),f("verify"),Re(!1)}async function C1(U){if(U.preventDefault(),!(!v.trim()||me||E)){Ue(""),Re(!0);try{const $=await gy(v);if(c){const ke=$e=>$e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),Fe=$.find($e=>ke($e)===ke(c));if(!Fe)throw new Error(p==="fr"?"Ce cockpit n’est pas rattaché à cet email. Utilisez l’adresse de son titulaire.":"This cockpit is not linked to this email. Use its owner’s address.");await Ll(Fe);return}if($.length===0){if(d)throw new Error(p==="fr"?"Aucun fonds n’est rattaché à cet email. Utilisez l’adresse de votre compte Proplace.":"No fund is linked to this email. Use your Proplace account address.");f("signup"),Re(!1);return}if($.length===1){await Ll($[0]);return}wn($);const fe=ke=>ke.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");Ne($.find(ke=>fe(ke)===fe(l))||$[0]),f("pick"),Re(!1)}catch($){Ue(u.connectionError($ instanceof Error?$.message:String($))),Re(!1)}}}async function _1(U){if(U.preventDefault(),!(!yr||me||E)){Re(!0),Ue("");try{await Ll(yr)}catch($){Ue($ instanceof Error?$.message:String($)),Re(!1)}}}const Jr=(()=>{const $=h.trim().replace(/^https?:\/\//i,"").replace(/^www\./i,"").split(/[/?#]/)[0].split(".")[0]||"";return $?$.charAt(0).toUpperCase()+$.slice(1):""})();function T1(){Up.current=Date.now(),$t(4),dn(0),zp(0),Hn.current&&window.clearInterval(Hn.current),Hn.current=window.setInterval(()=>
271{const U=(Date.now()-Up.current)/1e3;zp(U),$t(U<=Ls?4+86*(U/Ls):90+2*(1-Math.exp(-(U-Ls)/Ls)));let $=0;for(;$<Dx&&U>=xy[$];)$++;dn(Math.max(ge.current,Math.min($,ge.current+2)))},500)}async function q1(U){if(U.preventDefault(),!(d||!v.trim()||me||E)){Re(!0),Ue("");try{let $=h.trim();$&&!/^https?:\/\//i.test($)&&($="https://"+$);const fe=x.trim()||Jr;if($){const Fe=await Jl({email:v.trim(),lang:p,website_hp:E});he(""),k(""),ce(Fe.sender||""),vl(),f("verify"),Re(!1);return}const ke=await T2({email:v.trim(),company_name:fe||void 0,lang:p,website_hp:E});if(!ke.ok||!ke.fund_type)throw new Error(ke.error||ke.detail||"Signup failed");Vp(ke.fund_type,ke.email||v)}catch($){Ue($ instanceof Error?$.message:String($)),f(L==="running"?"error":"signup"),Re(!1)}}}async function F1(U){U.preventDefault();const $=_t.trim();if(!(!$||ve)&&!(!T.some(fe=>fe.who==="stan")&&$.length<6)){Je(!0),Ue(""),be(""),C(fe=>[...fe,{who:"you",text:$}]),Dt("");try{const fe=await xx(P,$);if(!fe.job_id){be(fe.reply||""),fe.reply&&C(Ie=>[...Ie,{who:"stan",text:fe.reply}]),Je(!1);return}const ke=fe.job_id,Fe=async()=>{const Ie=await Sp(ke);if(!Ie.done)return!1;const $r=Ie.clarification||Ie.reply||"";return be($r),$r&&C(Ui=>[...Ui,{who:"stan",text:$r}]),Ie.applied&&(C(Ui=>[...Ui,{who:"done",text:u.fixApplied}]),xe(null),G(!0),Hp(P,!0)),Je(!1),!0},$e=window.setInterval(async()=>{try{await Fe()&&window.clearInterval($e)}catch{}},6e3);xl.current=$e}catch(fe){Ue(fe instanceof Error?fe.message:String(fe)),Je(!1)}}}async function O1(){if(!(d||!P||me)){Re(!0),Ue("");try{await fx(P,p,Se),F&&v.trim()&&ur({email:v.trim().toLowerCase(),fund_type:F,ts:Date.now(),member_session:P}),se(Date.now()/1e3),f("sourcing"),Re(!1)}catch(U){Ue(U instanceof Error?U.message:String(U)),Re(!1)}}}m.useEffect(()=>{if(L!=="sourcing")return;const U=v.trim().toLowerCase();if(!U)return;let $=!0,fe;async function ke(){try{const $e=await(await fetch(`${_e}/inbound/onboard-status`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:U})})).json();if(!$)return;if(re($e),$e&&$e.status==="done"&&$e.page_url){fe=setTimeout(()=>{window.location.href=$e.page_url},4e3);return}if($e&&$e.status==="error")return}catch{}$&&(fe=setTimeout(ke,1e4))}return ke(),()=>{$=!1,clearTimeout(fe)}},[L,v]);function Hp(U,$=!1){Yn.current&&window.clearInterval(Yn.current);let fe=0;const ke=async()=>{try{const Fe=await gx(U,$||fe>0);if(Fe.state==="ready"&&Fe.criteria){if(!Fe.criteria.lead&&fe<6){fe+=1;return}Yn.current&&window.clearInterval(Yn.current),Yn.current=null,xe(Fe.criteria),Fe.fund_slug&&J(Fe.fund_slug)}}catch{}};ke(),Yn.current=window.setInterval(()=>void ke(),6e3)}async function M1(U){if(U.preventDefault(),!(d&&!ie||O.trim().length!==6||me)){Re(!0),Ue("");try{const $=await Cs({email:v.trim(),code:O.trim(),...ie?{fund_type:ie}:{}}),{session:fe}=$;if(ie){if(!fe||!$.fund_type)throw new Error("Verified login unavailable");Vp($.fund_type,$.email||v,fe);return}let ke=h.trim();ke&&!/^https?:\/\//i.test(ke)&&(ke="https://"+ke);const Fe=x.trim()||Jr,$e=Ep(w),Ie=await _2({company_name:Fe||Jr||ke,website:ke,email:v.trim(),lang:p,self_signup:!0,session:fe,pitch_deck_url:$e.pitch_deck_url||void 0,linkedin:$e.linkedin||void 0});if(!Ie.ok||!Ie.job_id)throw new Error(Ie.error||Ie.detail||"Launch failed");yt(Ie.fund_type||""),Bp(Ie.memo_url||""),D(Ie.session||""),Ie.email&&Ie.fund_type&&ur({email:Ie.email,fund_type:Ie.fund_type,ts:Date.now(),member_session:Ie.session||fe}),f("running"),T1();const $r=Ie.job_id,Ui=()=>{Kr.current&&window.clearInterval(Kr.current),Hn.current&&window.clearInterval(Hn.current),Kr.current=null,Hn.current=null},yl={on:!1},D1=async()=>{var Wp,Qp,Zp,Kp,Jp;if(!yl.on){yl.on=!0;try{const Vi=await z2($r,Q.current);if(B(!!Vi.stale),(Wp=Vi.notes)!=null&&Wp.length){Q.current=Math.max(Q.current,Vi.seq),z(Yi=>{const z1=new Set(Yi.map(jl=>jl.i)),Xp=Vi.notes.filter(jl=>!z1.has(jl.i));return Xp.length?[...Yi,...Xp].slice(-24):Yi});const $p=Math.max(...Vi.notes.map(Yi=>zx[Yi.kind]??0));ge.current=Math.max(ge.current,$p)}const Hi=await B2($r);Hi.done&&(Ui(),((Qp=Hi.result)==null?void 0:Qp.status)==="ok"||!!((Zp=Hi.result)!=null&&Zp.url)?(Bp(((Kp=Hi.result)==null?void 0:Kp.url)||Ie.memo_url||""),$t(100),dn(Ht.length),Ie.session?(f("these"),Hp(Ie.session)):f("done")):(Ue(((Jp=Hi.result)==null?void 0:Jp.error)||u.error),f("error")))}catch{}finally{yl.on=!1}}};Kr.current=window.setInterval(()=>void D1(),8e3),Re(!1)}catch($){Ue($ instanceof Error?$.message:String($)),Re(!1)}}}function vl(){ee.current&&window.clearInterval(ee.current),N(0),pe(!1);const U=Date.now();ee.current=window.setInterval(()=>{N(Math.floor((Date.now()-U)/1e3))},1e3)}async function R1(){if(!(me||_<30)){Re(!0),Ue("");try{const U=await Jl({email:v.trim(),lang:p,website_hp:E});k(""),ce(U.sender||I),vl(),pe(!0)}catch(U){Ue(U instanceof Error?U.message:String(U))}Re(!1)}}const Yp=(Se.match(/\d/g)||[]).length>=8,fa=L==="done"?Ht.length:jt,xa=h.trim().replace(/^https?:\/\//i,"").replace(/^www\./i,"").split(/[/?#]/)[0],bl=x.trim()||Jr||xa,P1=L==="pick"?u.pickTitle:L==="these"?u.theseTitle:L==="sourcing"?u.srcTitle:L==="verify"?u.verifyTitle:L==="signup"?u.signupTitle:L==="running"?u.progressTitle:L==="done"?u.done:u.titleLogin,I1=e.jsxs(e.Fragment,{children:[e.jsx("style",{children:jy}),e.jsx("div",{className:"pp-auth-overlay",onClick:!me&&L!=="running"?t:void 0,children:e.jsxs("div",{className:`pp-auth-modal${L==="running"||L==="done"||L==="these"||L==="sourcing"?" wide":""}${L==="running"?" flow":""}${L==="these"&&Le?" tflow":""}`,onClick:U=>U.stopPropagation(),role:"dialog","aria-modal":"true",children:[e.jsxs("div",{className:"pp-auth-head",children:[e.jsx("span",{className:"pp-auth-title",children:P1}),(L==="email"||L==="pick"||L==="signup"||L==="verify"||L==="these"||L==="sourcing"||L==="done"||L==="error")&&e.jsx("button",{type:"button",className:"pp-auth-close",onClick:t,disabled:me,"aria-label":u.closeLabel,children:"✕"})]}),!!a&&e.jsx("p",{className:"pp-auth-hint",role:"status",children:a}),L==="email"&&e.jsxs(e.Fragment,{children:[e.jsxs("form",{onSubmit:C1,className:"pp-auth-form",children:[e.jsx("input",{type:"text",name:"website_hp",value:E,onChange:U=>j(U.target.value),tabIndex:-1,autoComplete:"off",className:"pp-auth-hp","aria-hidden":!0}),e.jsx("input",{type:"email",required:!0,autoFocus:!0,placeholder:u.emailPlaceholder,value:v,onCh
271ange:U=>y(U.target.value),disabled:me,className:"pp-auth-input",autoComplete:"email"}),e.jsx("button",{type:"submit",disabled:me||!v.trim(),className:"pp-auth-submit",children:me?u.loggingIn:u.continue})]}),!d&&e.jsx("button",{type:"button",className:"pp-auth-link",disabled:me,onClick:()=>{f("signup"),Ue(""),wn(null)},children:u.noAccount})]}),L==="pick"&&zi&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"pp-auth-hint",children:u.pickHint(zi.length,v.trim().toLowerCase())}),e.jsxs("form",{onSubmit:_1,className:"pp-auth-form",children:[e.jsx("select",{autoFocus:!0,"aria-label":u.pickLabel,value:yr,onChange:U=>Ne(U.target.value),className:"pp-auth-input",children:zi.map(U=>e.jsx("option",{value:U,children:U},U))}),e.jsx("button",{type:"submit",disabled:!yr,className:"pp-auth-submit",children:u.pickSubmit})]}),e.jsx("button",{type:"button",className:"pp-auth-link",onClick:()=>{f("email"),wn(null),Ne("")},children:u.back})]}),L==="signup"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"pp-auth-hint",children:u.signupSub}),e.jsxs("form",{onSubmit:q1,className:"pp-auth-form",children:[e.jsx("input",{type:"text",name:"website_hp",value:E,onChange:U=>j(U.target.value),tabIndex:-1,autoComplete:"off",className:"pp-auth-hp","aria-hidden":!0}),e.jsxs("label",{className:"pp-auth-lbl",children:[u.emailLabel,e.jsx("input",{type:"email",required:!0,autoFocus:!v.trim(),placeholder:u.emailPlaceholder,value:v,onChange:U=>y(U.target.value),disabled:me,className:"pp-auth-input",autoComplete:"email"})]}),e.jsxs("label",{className:"pp-auth-lbl",children:[u.website,e.jsx("input",{required:!0,value:h,onChange:U=>b(U.target.value),placeholder:u.websitePh,disabled:me,className:"pp-auth-input",autoComplete:"url",autoFocus:!!v.trim()}),e.jsx("span",{className:"pp-auth-fieldhint",children:u.websiteHint})]}),e.jsxs("label",{className:"pp-auth-lbl",children:[u.company,e.jsx("input",{value:x,onChange:U=>A(U.target.value),placeholder:Jr||u.companyPh,disabled:me,className:"pp-auth-input",autoComplete:"organization"})]}),e.jsx(Np,{lang:p,variant:"form",value:w,onChange:S}),e.jsx("button",{type:"submit",disabled:me||!v.trim()||!h.trim(),className:"pp-auth-submit",children:me?u.creating:u.createFlow})]}),e.jsx("button",{type:"button",className:"pp-auth-link",disabled:me,onClick:()=>{f("email"),Ue("")},children:u.haveAccount})]}),L==="these"&&e.jsx("div",{className:"pp-auth-these",children:Le?e.jsxs("div",{className:"pp-auth-cols pp-auth-tcols",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"pp-auth-stepn",children:[e.jsx("b",{children:"1"}),u.step1]}),e.jsx("p",{className:"pp-auth-hint",children:u.theseIntro}),q&&e.jsx("p",{className:"pp-auth-updated",children:u.theseUpdated}),e.jsx("div",{className:`pp-auth-thebox${q?" updated":""}`,children:e.jsx(ll,{criteria:Le,lang:p})}),ga&&(Yp||Ae)?e.jsx("a",{className:"pp-auth-link pp-auth-memook",href:ga,target:"_blank",rel:"noopener noreferrer",children:p==="fr"?"Ouvrir le mémo complet de votre société →":"Open your company’s full memo →"}):e.jsx("p",{className:"pp-auth-memolock",children:u.memoLocked})]}),e.jsxs("div",{children:[e.jsxs("form",{className:"pp-auth-fix",onSubmit:F1,children:[e.jsxs("p",{className:"pp-auth-stepn",children:[e.jsx("b",{children:"2"}),u.step2,e.jsx("em",{children:u.optional})]}),e.jsx("div",{className:"pp-auth-chips",children:u.fixChips.map(U=>e.jsx("button",{type:"button",className:"pp-auth-chip",disabled:ve,onClick:()=>Dt($=>{const fe=$.trim(),ke=u.fixChips.map(Fe=>Fe.seed.trim());return!fe||ke.includes(fe)?U.seed:$.replace(/\s*$/,`
272`)+U.seed}),children:U.label},U.k))}),!!T.length&&e.jsxs("div",{className:"pp-auth-talklog",ref:R,children:[T.map((U,$)=>e.jsxs("p",{className:`pp-auth-msg ${U.who}`,children:[e.jsx("span",{className:"pp-auth-mwho",children:U.who==="you"?u.msgYou:U.who==="done"?"✓":"Stan"}),U.text]},`${$}-${U.text.slice(0,12)}`)),ve&&e.jsxs("p",{className:"pp-auth-msg stan pending",children:[e.jsx("span",{className:"pp-auth-mwho",children:"Stan"}),e.jsxs("span",{className:"pp-auth-dots",children:[e.jsx("i",{}),e.jsx("i",{}),e.jsx("i",{})]}),u.fixSending]})]}),e.jsx("textarea",{className:"pp-auth-input pp-auth-ta",rows:2,maxLength:12e3,placeholder:T.some(U=>U.who==="stan")?u.fixPhAnswer:u.fixPh,value:_t,onChange:U=>Dt(U.target.value),disabled:ve}),e.jsx("button",{type:"submit",className:"pp-auth-link",disabled:ve||!_t.trim(),children:ve?u.fixSending:u.fixSubmit})]}),e.jsxs("div",{className:"pp-auth-done pp-auth-go",children:[e.jsxs("p",{className:"pp-auth-stepn",children:[e.jsx("b",{children:"3"}),u.step3]}),e.jsxs("label",{className:"pp-auth-lbl",children:[u.phoneLabel,e.jsx("input",{ref:Ct,type:"tel",inputMode:"tel",autoComplete:"tel",placeholder:u.phonePh,value:Se,onChange:U=>{mt(U.target.value),st(!1)},disabled:me,className:`pp-auth-input${Ke?" nudge":""}`}),e.jsx("span",{className:"pp-auth-fieldhint",children:u.phoneHint})]}),e.jsx("button",{type:"button",className:"pp-auth-submit pp-auth-big",disabled:me||ve,onClick:()=>{var U;if(!Yp){st(!0),(U=Ct.current)==null||U.focus();return}O1()},children:me?u.launching:u.theseOk}),e.jsx("p",{className:`pp-auth-after${Ke?" warn":""}`,children:Ke?u.phoneNudge:u.afterLaunch}),e.jsxs("div",{className:"pp-auth-talk",children:[e.jsxs("p",{className:"pp-auth-talktxt",children:[e.jsx("b",{children:u.talkTitle})," ",u.talkText]}),e.jsxs("div",{className:"pp-auth-talkrow",children:[e.jsx("a",{className:"pp-auth-talkbtn",href:"tel:+33683107286",children:u.talkCall}),e.jsx("a",{className:"pp-auth-talkbtn",href:"mailto:[email protected]",children:u.talkMail}),e.jsx("button",{type:"button",className:"pp-auth-talkbtn rdv",onClick:()=>te(!0),children:u.rdvBtn})]}),Ae&&e.jsx("p",{className:"pp-auth-ok",children:u.rdvDone})]})]})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pp-auth-gbar",role:"progressbar","aria-valuenow":100,children:e.jsx("span",{className:"pp-auth-gfill live",style:{width:"100%"}})}),e.jsx("p",{className:"pp-auth-thewait",children:u.theseWait}),e.jsx("p",{className:"pp-auth-hint",children:u.theseWaitSub})]})}),L==="sourcing"&&e.jsxs("div",{className:"pp-auth-src",children:[e.jsx("p",{className:"pp-auth-hint",children:u.srcSub}),e.jsx(Ld,{session:P,compact:!0,waiting:!0,replay:!1,maxh:280,since:H||void 0,heading:u.srcHeading,empty:p==="en"?"Stan is reading your thesis — the engines start in a moment.":"Stan relit votre thèse — les moteurs démarrent dans un instant.",style:{display:"block",margin:"10px 0 12px"}}),(M==null?void 0:M.status)==="error"?e.jsx("p",{className:"pp-auth-hint",children:u.srcError}):(M==null?void 0:M.status)==="done"&&M.page_url?e.jsx("a",{className:"pp-auth-submit",href:M.page_url,children:u.srcOpen}):(M==null?void 0:M.step)==="publication"?e.jsx("p",{className:"pp-auth-hint",children:u.srcPublishing}):null,e.jsx("a",{className:"pp-auth-link",href:lo(p),children:u.srcAccount})]}),L==="verify"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"pp-auth-hint",children:u.verifySub(v.trim().toLowerCase())}),e.jsxs("form",{onSubmit:M1,className:"pp-auth-form",children:[e.jsxs("label",{className:"pp-auth-lbl",children:[u.codeLabel,e.jsx("input",{autoFocus:!0,inputMode:"numeric",autoComplete:"one-time-code",maxLength:6,placeholder:"000000",value:O,onChange:U=>k(U.target.value.replace(/\D/g,"").slice(0,6)),disabled:me,className:"pp-auth-input pp-auth-code"})]}),e.jsx("button",{type:"submit",disabled:me||O.length!==6,className:"pp-auth-submit",children:me?u.verifying:ie?p==="fr"?"Confirmer et ouvr
272ir mon cockpit →":"Confirm and open my cockpit →":u.verifySubmit})]}),K&&e.jsx("p",{className:"pp-auth-ok",children:u.resendDone}),_>=45&&e.jsx("p",{className:"pp-auth-spam",children:I?u.spamHintFrom(I):u.spamHint}),e.jsx("p",{className:"pp-auth-verifywhy",children:ie?p==="fr"?"Cette vérification autorise les analyses avec vos crédits. Aucun mémo n’est lancé et aucun crédit n’est consommé à la connexion.":"This verification authorizes analyses using your credits. Signing in does not launch a memo or use any credit.":u.verifyWhy}),e.jsx("button",{type:"button",className:"pp-auth-link",disabled:me||_<30,onClick:R1,title:_<30?u.resendWait(30-_):"",children:_<30?u.resendIn(30-_):u.resend}),e.jsx("button",{type:"button",className:"pp-auth-link",disabled:me,onClick:()=>{f(ie?"email":"signup"),he(""),Ue(""),k("")},children:u.backToSignup})]}),(L==="running"||L==="done")&&e.jsxs("div",{className:"pp-auth-progress",children:[bl&&e.jsxs("p",{className:"pp-auth-subject",children:[bl,xa&&xa.toLowerCase()!==bl.toLowerCase()&&e.jsxs("span",{className:"pp-auth-host",children:[" · ",xa]})]}),e.jsx("div",{className:"pp-auth-gbar",role:"progressbar","aria-valuenow":Math.round(Jt),children:e.jsx("span",{className:`pp-auth-gfill${L==="running"?" live":""}`,style:{width:`${Math.max(Jt,4)}%`}})}),e.jsxs("div",{className:"pp-auth-meter",children:[e.jsxs("span",{className:"pp-auth-pct",children:[Math.round(Jt),"%"]}),e.jsx("span",{className:"pp-auth-count",children:u.stepCounter(Math.min(fa+(L==="done"?0:1),Ht.length),Ht.length)}),e.jsx("span",{className:"pp-auth-clock",children:vy(Bi)})]}),L==="running"&&e.jsx("p",{className:"pp-auth-eta",children:u.eta}),e.jsx("ol",{className:"pp-auth-rail",children:Fn.map((U,$)=>{const{end:fe}=zo[$],ke=fa>fe?"done":Fn[$].steps.some((Fe,$e)=>zo[$].start+$e===fa)?"now":"todo";return e.jsxs("li",{className:`pp-auth-rseg ${ke}`,title:`${$+1}. ${p==="fr"?U.fr:U.en}`,children:[e.jsx("span",{className:"pp-auth-rbar","aria-hidden":!0}),e.jsx("span",{className:"pp-auth-rname",children:p==="fr"?U.fr:U.en})]},U.en)})}),e.jsx(yy,{notes:oe,cleared:fa,lang:p,pastLabel:u.pastFacts}),L==="running"&&e.jsxs("div",{className:"pp-auth-wait",children:[e.jsx("p",{className:"pp-auth-dtitle",children:u.waitTitle}),e.jsx("p",{className:"pp-auth-waittxt",children:u.waitFacts[Math.floor(Bi/14)%u.waitFacts.length]})]},Math.floor(Bi/14)),L==="running"&&Y&&e.jsx("p",{className:"pp-auth-spam",children:u.staleHint}),L==="done"&&e.jsxs("div",{className:"pp-auth-done",children:[e.jsx("p",{className:"pp-auth-hint",children:u.doneSub}),He&&!rn(He)&&e.jsx("a",{className:"pp-auth-submit",href:Tn(He),children:u.openFlow}),e.jsx("a",{className:"pp-auth-link",href:lo(p),children:u.openAccount}),ga&&e.jsx("a",{className:"pp-auth-link",href:ga,target:"_blank",rel:"noopener noreferrer",children:p==="fr"?"Ouvrir le mémo →":"Open memo →"})]})]}),L==="error"&&e.jsxs("div",{className:"pp-auth-errbox",children:[e.jsx("p",{className:"pp-auth-error",children:jn||u.error}),e.jsx("button",{type:"button",className:"pp-auth-submit",onClick:()=>{f("signup"),Ue("")},children:"←"})]}),jn&&(L==="email"||L==="signup"||L==="pick"||L==="verify"||L==="these")&&e.jsx("div",{className:"pp-auth-error",children:jn}),X&&e.jsx(Pi,{subject:x.trim()||Jr||void 0,onClose:()=>te(!1),onBooked:()=>{Ze(!0),te(!1)}})]})})]});return typeof document<"u"?Vn.createPortal(I1,document.body):null}const jy=`
273.pp-auth-overlay {
274  position: fixed; inset: 0;
275  background: rgba(11, 25, 41, 0.55);
276  z-index: 120;
277  display: flex; align-items: center; justify-content: center;
278  padding: 20px;
279}
280.pp-auth-modal {
281  background: #fff;
282  width: 100%; max-width: 440px;
283  max-height: min(92vh, 820px);
284  overflow: auto;
285  padding: 28px 24px 22px;
286  border-radius: 6px;
287  box-shadow: 0 20px 60px rgba(11, 25, 41, 0.25);
288  font-family: var(--pp-body);
289}
290/* Large sur grand écran : le déroulé et les faits vivent CÔTE À CÔTE, donc plus
291   aucun défilement interne. Sur téléphone la carte reste pleine largeur et les
292   deux blocs s'empilent — rien à sacrifier là-bas. */
293.pp-auth-modal.wide { max-width: 880px; }
294/* PENDANT L'ANALYSE, LA CARTE NE DÉFILE JAMAIS. Elle devient une colonne
295   souple : tout ce qui l'entoure garde sa taille, et SEUL le fil absorbe la
296   place restante. Plus de hauteur devinée en vh — la mesure s'adapte d'elle-même
297   à n'importe quel écran, et le fil ne défile que s'il n'y a vraiment plus de
298   place. */
299.pp-auth-modal.flow { display: flex; flex-direction: column; overflow: hidden; }
300.pp-auth-modal.flow .pp-auth-progress {
301  display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto;
302}
303.pp-auth-modal.flow .pp-auth-thread { max-height: none; flex: 1 1 auto; min-height: 0; }
304/* MÊME PRINCIPE SUR L'ÉCRAN DE LA THÈSE. Deux zones élastiques — la lecture à
305   gauche, le journal à droite — et tout le reste garde sa taille. Conséquence
306   voulue : le bouton « lancer la recherche » reste TOUJOURS visible, sur
307   n'importe quelle hauteur d'écran, sans que la carte défile jamais. */
308@media (min-width: 680px) {
309  /* Le plafond de 820 px bornait TOUT : sur un grand écran, le journal se
310     retrouvait à 33 px alors que la place existait. */
311  .pp-auth-modal.tflow {
312    display: flex; flex-direction: column; overflow: hidden;
313    max-height: min(94vh, 940px);
314  }
315  .pp-auth-modal.tflow .pp-auth-these { flex: 1 1 auto; min-height: 0; display: flex; }
316  /* align-items:start (hérité de .pp-auth-cols) dimensionnait les colonnes
317     sur leur contenu : rien ne pouvait rétrécir, et la carte débordait. */
318  .pp-auth-modal.tflow .pp-auth-tcols {
319    flex: 1 1 auto; min-height: 0; width: 100%;
320    align-items: stretch; grid-template-rows: minmax(0, 1fr);
321  }
322  .pp-auth-modal.tflow .pp-auth-tcols > div { display: flex; flex-direction: column; min-height: 0; }
323  .pp-auth-modal.tflow .pp-auth-thebox { flex: 1 1 auto; min-height: 0; max-height: none; }
324  .pp-auth-modal.tflow .pp-auth-fix {
325    display: flex; flex-direction: column; min-height: 0; overflow: hidden;
326  }
327  /* Un min-height non nul faisait DÉBORDER le journal par-dessus le bloc de
328     lancement sur un écran court (mesuré à 760 px). Il prend ce qui reste,
329     point — et défile chez lui quand il reste peu. */
330  .pp-auth-modal.tflow .pp-auth-talklog { flex: 1 1 auto; min-height: 0; max-height: none; }
331  /* Écran court : plutôt que d'écraser la conversation à zéro, on retire les
332     deux lignes qui se répètent ailleurs. Le journal garde de quoi montrer le
333     dernier échange, et le bouton reste visible. */
334  @media (max-height: 820px) {
335    .pp-auth-modal.tflow .pp-auth-after,
336    .pp-auth-modal.tflow .pp-auth-memolock { display: none; }
337    .pp-auth-modal.tflow .pp-auth-talklog { min-height: 72px; }
338  }
339}
340.pp-auth-cols { display: grid; grid-template-columns: 1fr; gap: 2px 20px; align-items: start; }
341@media (min-width: 680px) {
342  .pp-auth-cols { grid-template-columns: 11fr 9fr; }
343  /* Écran de la thèse : la lecture à gauche (plus large), l'action à droite. */
344  .pp-auth-tcols { grid-template-columns: 6fr 5fr; }
345  .pp-auth-tcols .pp-auth-thebox { max-height: 64vh; }
346}
347.pp-auth-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
348.pp-auth-title { font-size: 17px; font-weight: 600; color: #0F1D33; }
349.pp-auth-close { background: none; border: none; font-size: 16px; color: #4B5E78; cursor: pointer; padding: 4px 8px; }
350.pp-auth-close:hover { color: #0F1D33; }
351.pp-auth-close:disabled { opacity: .4; cursor: not-allowed; }
352.pp-auth-hint { margin: -4px 0 14px; font-size: 13px; line-height: 1.5; color: #4B5E78; }
353.pp-auth-form { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
354.pp-auth-lbl { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 600; color: #0F1D33; }
355.pp-auth-fieldhint { font-size: 11.5px; font-weight: 400; color: #7a8694; line-height: 1.4; }
356select.pp-auth-input { background: #fff; cursor: pointer; appearance: auto; }
357.pp-auth-input {
358  font-family: inherit; font-size: 14px; font-weight: 400;
359  padding: 11px 14px; border: 1px solid #E3E8F0; border-radius: 7px;
360  color: #0F1D33; outline: none; width: 100%; box-sizing: border-box;
361}
362.pp-auth-input:focus { border-color: #12A150; outline: 2px solid rgba(18,161,80,.25); }
363.pp-auth-submit {
364  display: inline-flex; align-items: center; justify-content: center;
365  font-family: inherit; font-size: 14px; font-weight: 700;
366  padding: 12px 16px; border: none; border-radius: 8px;
367  background: #0E7F3F; color: #fff; cursor: pointer; text-decoration: none;
368}
369.pp-auth-submit:hover:not(:disabled) { opacity: .92; color: #fff; }
370.pp-auth-submit:disabled { opacity: .5; cursor: not-allowed; }
371.pp-auth-link {
372  display: block; width: 100%; text-align: center;
373  font-family: inherit; font-size: 13px; font-weight: 500;
374  background: none; border: none; color: #0E7F3F;
375  padding: 8px 0; cursor: pointer; text-decoration: none;
376}
377.pp-auth-link:hover { text-decoration: underline; }
378.pp-auth-error {
379  margin-top: 12px; padding: 10px 12px; border-radius: 8px;
380  background: #FDECEC; color: #C0353A; font-size: 13px; line-height: 1.45;
381}
382.pp-auth-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }
383.pp-auth-thebox {
384  max-height: min(430px, 48vh); overflow-y: auto;
385  margin: 4px 0 14px; padding-right: 4px;
386  scrollbar-width: thin; scrollbar-color: #C9D6E6 transparent;
387  /* Ombre de défilement : sans elle la zone coupe net sur un mot et le lecteur
388     croit la thèse finie. Les deux caches sont en "local" (ils suivent le
389     contenu), les deux ombres en "scroll" (elles restent collées au cadre) —
390     l'ombre du bas disparaît donc VRAIMENT quand on atteint la fin, au lieu
391     d'estomper en permanence la dernière ligne comme le ferait un masque. */
392  background:
393    linear-gradient(#fff, rgba(255, 255, 255, 0)) 0 0 / 100% 18px no-repeat local,
394    linear-gradient(rgba(255, 255, 255, 0), #fff) 0 100% / 100% 18px no-repeat local,
395    radial-gradient(farthest-side at 50% 0, rgba(15, 31, 51, .13), transparent)
396      0 0 / 100% 11px no-repeat scroll,
397    radial-gradient(farthest-side at 50% 100%, rgba(15, 31, 51, .13), transparent)
398      0 100% / 100% 11px no-repeat scroll;
399}
400.pp-auth-thebox::-webkit-scrollbar { width: 6px; }
401.pp-auth-thebox::-webkit-scrollbar-thumb { background: #C9D6E6; border-radius: 999px; }
402.pp-auth-fix {
403  margin: 0 0 4px; padding: 12px 14px;
404  background: #fbfcfe; border: 1px solid #e4ebf3; border-radius: 8px;
405}
406.pp-auth-fixq { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: #0F1D33; }
407.pp-auth-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
408.pp-auth-chip {
409  font-family: inherit; font-size: 12px; font-weight: 500;
410  padding: 5px 10px; border-radius: 999px; cursor: pointer;
411  background: #fff; border: 1px solid #E3E8F0; color: #16233A;
412}
413.pp-auth-chip:hover:not(:disabled) { border-color: #12A150; color: #0E7F3F; }
414.pp-auth-chip:disabled { opacity: .5;
414 cursor: not-allowed; }
415.pp-auth-ta { font-family: inherit; line-height: 1.5; resize: vertical; min-height: 62px; }
416.pp-auth-reply {
417  margin: 9px 0 0; padding: 9px 11px; border-radius: 8px;
418  background: #F9FBFD; border: 1px solid #dcece2;
419  font-size: 12.5px; line-height: 1.5; color: #0E7F3F;
420}
421.pp-auth-thewait { margin: 14px 0 6px; font-size: 15px; font-weight: 600; color: #0F1D33; }
422.pp-auth-ok {
423  margin: 8px 0 0; padding: 8px 11px; border-radius: 8px;
424  background: #F9FBFD; border: 1px solid #dcece2;
425  font-size: 12.5px; line-height: 1.45; color: #0E7F3F;
426}
427.pp-auth-spam {
428  margin: 8px 0 0; padding: 9px 11px; border-radius: 8px;
429  background: #fffbeb; border: 1px solid #f3e2b8;
430  font-size: 12.5px; line-height: 1.5; color: #7a5b12;
431}
432.pp-auth-code {
433  font-size: 26px; font-weight: 700; text-align: center;
434  letter-spacing: .34em; text-indent: .34em;
435  font-variant-numeric: tabular-nums; padding: 13px 14px;
436}
437.pp-auth-why {
438  margin: 2px 0 6px; padding: 10px 12px;
439  background: #F9FBFD; border: 1px solid #dcece2; border-radius: 8px;
440  font-size: 12.5px; line-height: 1.5; color: #16233A;
441}
442.pp-auth-progress { margin-top: 4px; }
443.pp-auth-gbar {
444  position: relative; height: 14px; border-radius: 999px;
445  background: #eef2f6; border: 1px solid #C9D6E6; overflow: hidden;
446}
447.pp-auth-gfill {
448  display: block; height: 100%; border-radius: 999px;
449  background: linear-gradient(90deg, #12A150, #12A150);
450  transition: width .6s ease;
451}
452.pp-auth-gfill.live {
453  background-size: 200% 100%;
454  animation: ppAuthShimmer 1.4s linear infinite;
455}
456@keyframes ppAuthShimmer {
457  0% { background-position: 100% 0; }
458  100% { background-position: -100% 0; }
459}
460.pp-auth-subject {
461  margin: -2px 0 12px; font-size: 15px; font-weight: 700; color: #0F1D33;
462  overflow-wrap: anywhere;
463}
464.pp-auth-host { font-weight: 500; color: #7a8694; }
465.pp-auth-meter {
466  display: flex; align-items: baseline; justify-content: space-between;
467  gap: 10px; margin: 9px 0 14px;
468}
469.pp-auth-pct { font-size: 22px; font-weight: 700; color: #0F1D33; line-height: 1; }
470.pp-auth-count { flex: 1; text-align: center; font-size: 12px; font-weight: 600; color: #4B5E78; }
471.pp-auth-clock {
472  font-size: 12px; font-weight: 600; color: #7a8694;
473  font-variant-numeric: tabular-nums;
474}
475
476/* RAIL des 6 phases sur UNE ligne. L'accordéon d'origine coûtait ~400 px et
477   imposait un défilement interne ; ici tout tient sans scroll, y compris sur
478   téléphone où les libellés passent sous les segments. */
479.pp-auth-rail {
480  list-style: none; display: flex; gap: 5px; margin: 0 0 12px; padding: 0;
481}
482.pp-auth-rseg { flex: 1; min-width: 0; }
483.pp-auth-rbar {
484  display: block; height: 4px; border-radius: 999px; background: #e4ebf3;
485  transition: background .4s ease;
486}
487.pp-auth-rname {
488  display: block; margin-top: 5px; font-size: 10.5px; line-height: 1.25;
489  color: #9aa5b1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
490}
491.pp-auth-rseg.done .pp-auth-rbar { background: #12A150; }
492.pp-auth-rseg.done .pp-auth-rname { color: #12A150; }
493.pp-auth-rseg.now .pp-auth-rbar {
494  background: linear-gradient(90deg, #12A150, #12A150);
495  background-size: 200% 100%; animation: ppAuthShimmer 1.4s linear infinite;
496}
497.pp-auth-rseg.now .pp-auth-rname { color: #0F1D33; font-weight: 700; }
498/* Les étapes de la seule phase en cours : pas de cadre, pas de défilement. */
499.pp-auth-solo { margin-left: 2px; }
500.pp-auth-phase { border-top: 1px solid #eef2f6; }
501.pp-auth-phase:first-child { border-top: none; }
502.pp-auth-phead { display: flex; align-items: center; gap: 9px; padding: 9px 0; }
503.pp-auth-pmark {
504  flex: none; width: 19px; height: 19px; border-radius: 999px;
505  display: inline-flex; align-items: center; justify-content: center;
506  font-size: 10.5px; font-weight: 700;
507  background: #eef2f6; color: #9aa5b1; border: 1px solid #dde5ee;
508}
509.pp-auth-pname { font-size: 13.5px; font-weight: 600; color: #9aa5b1; }
510.pp-auth-pmeta { margin-left: auto; font-size: 11.5px; color: #b3bcc6; }
511.pp-auth-phase.done .pp-auth-pmark { background: #12A150; border-color: #12A150; color: #fff; }
512.pp-auth-phase.done .pp-auth-pname { color: #12A150; }
513.pp-auth-phase.now .pp-auth-pmark { background: #0F1D33; border-color: #0F1D33; color: #fff; }
514.pp-auth-phase.now .pp-auth-pname { color: #0F1D33; font-weight: 700; }
515
516.pp-auth-substeps {
517  list-style: none; margin: 0 0 10px; padding: 0 0 0 5px;
518  border-left: 2px solid #e4ebf3; margin-left: 9px;
519}
520.pp-auth-substeps li {
521  position: relative; padding: 5px 0 5px 20px;
522  font-size: 13px; line-height: 1.4; color: #b3bcc6;
523}
524.pp-auth-dot {
525  position: absolute; left: -1px; top: 10px;
526  width: 7px; height: 7px; border-radius: 999px;
527  background: #fff; border: 2px solid #dde5ee; box-sizing: border-box;
528}
529.pp-auth-substeps li.done { color: #4B5E78; }
530.pp-auth-substeps li.done .pp-auth-dot { background: #12A150; border-color: #12A150; }
531.pp-auth-substeps li.now { color: #0F1D33; font-weight: 600; }
532.pp-auth-substeps li.now .pp-auth-dot {
533  background: #12A150; border-color: #12A150;
534  box-shadow: 0 0 0 0 rgba(18,161,80, .55);
535  animation: ppAuthPulse 1.6s ease-out infinite;
536}
537@keyframes ppAuthPulse {
538  70% { box-shadow: 0 0 0 7px rgba(18,161,80, 0); }
539  100% { box-shadow: 0 0 0 0 rgba(18,161,80, 0); }
540}
541.pp-auth-slabel { display: block; }
542.pp-auth-why {
543  display: block; margin-top: 2px;
544  font-size: 12px; font-weight: 400; font-style: italic; color: #4B5E78;
545}
546
547.pp-auth-eta {
548  margin: -4px 0 12px; font-size: 12.5px; line-height: 1.5; color: #4B5E78;
549  font-style: italic;
550}
551/* LE FIL. Il ne défile pas : les faits sont repliés, et seul le déploiement
552   volontaire de plusieurs d'entre eux peut faire défiler CETTE zone — jamais
553   le popup. Rien ne peut déborder en largeur (anywhere + hidden) : une URL
554   sans espace faisait apparaître une barre horizontale. */
555.pp-auth-thread {
556  max-height: 52vh; overflow-y: auto; overflow-x: hidden;
557  overscroll-behavior: contain;
558  scrollbar-width: thin; scrollbar-color: #C9D6E6 transparent;
559}
560@media (max-width: 680px) { .pp-auth-thread { max-height: 42vh; } }
561.pp-auth-past { margin: 0 0 6px 9px; padding-left: 5px; }
562.pp-auth-pcount {
563  flex: none; font-size: 11.5px; color: #9aa5b1; font-weight: 500;
564}
565.pp-auth-past .pp-auth-lfact { color: #12A150; }
566.pp-auth-past .pp-auth-lico.done {
567  background: #eef7f1; border-color: #cfe8da; color: #12A150;
568  font-size: 12px; font-weight: 700; width: 22px; height: 22px;
569}
570/* Les faits d'une étape, en retrait sous elle. AUCUNE MARGE NÉGATIVE : elle
571   élargit l'élément lui-même et rouvrait 7 px de barre horizontale (mesuré).
572   Le surlignage du fait vivant tient donc dans son propre rembourrage, que
573   tous les faits partagent pour rester alignés. */
574.pp-auth-facts {
575  display: flex; flex-direction: column; gap: 4px;
576  margin: 6px 0 2px; min-width: 0;
577}
578.pp-auth-fact {
579  animation: ppAuthFactIn .45s ease both; min-width: 0;
580  padding: 4px 7px; border-radius: 8px;
581}
582.pp-auth-fact.fresh { background: #f0f9f3; box-shadow: inset 2px 0 0 #12A150; }
583/* La tête d'un fait ne s'étire PAS sur toute la largeur : sur une carte de
584   880 px, un chevron seul à l'autre bout de l'écran paraît détaché de son
585   titre. Nom, compte et chevron restent groupés. */
586.pp-auth-fhead {
587  display: flex; gap: 9px; align-items: center; width: auto; max-width: 100%;
588  min-width: 0; font-family: inherit; text-align: left; background: none;
589  border: 0; padding: 0; margin: 0; cursor: pointer; color: inherit;
590}
591.pp-auth-fhead:disabled { cursor: default; }
592.pp-auth-lchev { margin-left: 2px; flex: none; font-size: 11px; color: #9aa5b1; }
593@keyframes ppAuthFactIn { from { opacity: 0; transform: translateY(-4px); } }
594.pp-auth-lico {
595  flex: none; width: 26px; height: 26px; border-radius: 8px;
596  display: inline-flex; align-items: center; justify-content: center;
597  font-size: 13px; background: #fff; border: 1px solid #e0e8f2;
598}
599.pp-auth-lbody { display: block; min-width: 0; padding: 3px 0 2px 35px; }
600.pp-auth-lfact {
601  min-width: 0; font-size: 13px; font-weight: 600; color: #0F1D33; line-height: 1.4;
602  overflow-wrap: anywhere;
603}
604.pp-auth-ldet {
605  display: block; margin-top: 2px; font-size: 12px; line-height: 1.45; color: #4B5E78;
606  overflow-wrap: anywhere;
607}
608.pp-auth-llinks a { overflow-wrap: anywhere; }
609/* Le « pourquoi » du code de vérification : il lui faut de l'air. */
610.pp-auth-verifywhy {
611  margin: 18px 0 4px; font-size: 12.5px; line-height: 1.55; color: #4B5E78;
612}
613/* La carte « Pendant ce temps » : une phrase qui tourne, l'attente instruit. */
614.pp-auth-wait {
615  margin-top: 10px; padding: 10px 13px;
616  background: #F9FBFD; border: 1px solid #dcece2; border-radius: 10px;
617  animation: ppAuthFactIn .6s ease both;
618}
619.pp-auth-waittxt { margin: 0; font-size: 12.5px; line-height: 1.55; color: #16233A; }
620/* LES TROIS TEMPS. Sans eux, l'écran est un mur : le dirigeant ne sait pas ce
621   qu'on attend de lui ni où est la porte de sortie. */
622.pp-auth-stepn {
623  display: flex; align-items: center; gap: 8px; margin: 0 0 8px;
624  font-size: 13.5px; font-weight: 700; color: #0F1D33;
625}
626.pp-auth-stepn b {
627  flex: none; width: 21px; height: 21px; border-radius: 999px;
628  display: inline-flex; align-items: center; justify-content: center;
629  background: #0F1D33; color: #fff; font-size: 11.5px; font-weight: 700;
630}
631.pp-auth-stepn em {
632  font-style: normal; font-size: 11px; font-weight: 600; color: #7a8694;
633  background: #eef2f6; border-radius: 999px; padding: 2px 8px;
634}
635/* LE JOURNAL DE LA CORRECTION. Un clic doit toujours laisser une trace : sans
636   ça, l'écran paraît figé et le dirigeant reclique dans le vide. */
637.pp-auth-talklog {
638  display: flex; flex-direction: column; gap: 6px; margin: 8px 0 9px;
639  /* Une conversation défile CHEZ ELLE. Sans ce plafond, elle poussait la carte
640     entière au défilement (293 px mesurés) — ce qu'on s'interdit. */
641  max-height: 148px; overflow-y: auto; overflow-x: hidden;
642  scrollbar-width: thin; scrollbar-color: #C9D6E6 transparent;
643}
644.pp-auth-msg {
645  margin: 0; padding: 8px 10px; border-radius: 9px;
646  font-size: 12.5px; line-height: 1.5; overflow-wrap: anywhere;
647  animation: ppAuthFactIn .35s ease both;
648}
649.pp-auth-mwho {
650  display: block; font-size:12px; font-weight:600; margin-bottom: 3px;
651}
652.pp-auth-msg.you { background: #eef2f6; color: #0F1D33; }
653.pp-auth-msg.you .pp-auth-mwho { color: #7a8694; }
654.pp-auth-msg.stan { background: #F9FBFD; border: 1px solid #dcece2; color: #16233A; }
655.pp-auth-msg.stan .pp-auth-mwho { color: #0E7F3F; }
656.pp-auth-msg.done {
657  background: #f0f9f3; color: #0E7F3F; font-weight: 600;
658  box-shadow: inset 2px 0 0 #12A150;
659}
660.pp-auth-msg.done .pp-auth-mwho { display: none; }
661.pp-auth-dots { display: inline-flex; gap: 3px; margin-right: 6px; vertical-align: middle; }
662.pp-auth-dots i {
663  width: 4px; height: 4px; border-radius: 999px; background: #12A150;
664  animation: ppAuthDot 1.1s ease-in-out infinite;
665}
666.pp-auth-dots i:nth-child(2) { animation-delay: .18s; }
667.pp-auth-dots i:nth-child(3) { animation-delay: .36s; }
668@keyframes ppAuthDot { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
669/* La thèse vient de changer : on le voit, sinon la correction reste une
670   promesse invérifiable. */
671.pp-auth-updated {
672  margin: -6px 0 8px; font-size: 12px; font-weight: 700; color: #0E7F3F;
673  animation: ppAuthFactIn .4s ease both;
674}
675.pp-auth-thebox.updated { box-shadow: 0 0 0 2px rgba(18,161,80,.45); }
676/* Le bloc du lancement se détache : c'est là que tout se joue. */
677.pp-auth-go {
678  margin-top: 12px; padding: 13px; border-radius: 10px;
679  background: #F9FBFD; border: 1px solid #cfe8da;
680}
681.pp-auth-go .pp-auth-stepn b { background: #0E7F3F; }
682.pp-auth-submit.pp-auth-big {
683  font-size: 15px; font-weight: 700; padding: 15px 18px; margin-top: 4px;
684}
685.pp-auth-after {
686  margin: 8px 0 0; font-size: 11.5px; line-height: 1.5; color: #4B5E78; text-align: center;
687}
688.pp-auth-after.warn { color: #b3401f; font-weight: 600; }
689.pp-auth-input.nudge { border-color: #e07a54; box-shadow: 0 0 0 3px rgba(224,122,84,.14); }
690/* Le bloc « en parler » : l'alternative humaine, aussi nette que le bouton. */
691.pp-auth-talk {
692  margin: 12px 0 6px; padding: 11px 13px;
693  background: #fbfcfe; border: 1px solid #e4ebf3; border-radius: 10px;
694}
695.pp-auth-talktxt { margin: 0 0 8px; font-size: 12.5px; line-height: 1.5; color: #16233A; }
696.pp-auth-talktxt b { color: #0E7F3F; }
697.pp-auth-talkrow { display: flex; flex-wrap: wrap; gap: 7px; }
698.pp-auth-talkbtn {
699  font-family: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer;
700  padding: 7px 11px; border-radius: 8px; text-decoration: none;
701  background: #fff; border: 1px solid #E3E8F0; color: #0F1D33;
702}
703.pp-auth-talkbtn:hover { border-color: #12A150; color: #0E7F3F; }
704.pp-auth-talkbtn.rdv { background: #0E7F3F; border-color: #0E7F3F; color: #fff; }
705.pp-auth-talkbtn.rdv:hover { opacity: .92; color: #fff; }
706.pp-auth-memook { flex: none; margin-top: 8px; }
707.pp-auth-memolock {
708  flex: none;
709  margin: 8px 0 0; padding: 9px 11px; border-radius: 8px;
710  background: #f7f9fc; border: 1px dashed #c9d4e2;
711  font-size: 12px; line-height: 1.5; color: #4B5E78;
712}
713.pp-auth-llinks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 3px; }
714.pp-auth-llinks a {
715  font-size: 11.5px; color: #0E7F3F; text-decoration: none;
716  max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
717}
718.pp-auth-llinks a:hover { text-decoration: underline; }
719@media (prefers-reduced-motion: reduce) { .pp-auth-learn li { animation: none; } }
720.pp-auth-deliver {
721  margin: 14px 0 12px; padding: 12px 14px;
722  background: #F9FBFD; border: 1px solid #dcece2; border-radius: 8px;
723}
724.pp-auth-dtitle {
725  margin: 0 0 7px; font-size:12px; font-weight:600; color: #0E7F3F;
726}
727.pp-auth-deliver ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
728.pp-auth-deliver li { position: relative; padding-left: 16px; font-size: 12.5px; line-height: 1.45; color: #16233A; }
729.pp-auth-deliver li::before { content: '→'; position: absolute; left: 0; color: #12A150; font-weight: 700; }
730
731.pp-auth-done { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
732@media (max-width: 480px) {
733  .pp-auth-modal { padding: 22px 18px 18px; }
734  .pp-auth-phases { max-height: 34vh; }
735  .pp-auth-deliver { margin: 12px 0 10px; padding: 10px 12px; }
736}
737@media (prefers-reduced-motion: reduce) {
738  .pp-auth-gfill.live, .pp-auth-substeps li.now .pp-auth-dot { animation: none; }
739}
740.pp-auth-errbox { display: flex; flex-direction: column; gap: 12px; }
741`;function Qr({onClose:t,initialCompany:n="",initialWebsite:r="",initialExtras:i}){return e.jsx(Ur,{onClose:t,initialCompany:n,initialWebsite:r,initialExtras:i,intent:"signup"})}function ea({variant:t="light"}){const{lang:n,switchLang:r}=ae();
741return e.jsxs("span",{className:`pp-lang pp-lang-${t}`,role:"group","aria-label":"Language / Langue",children:[e.jsx("style",{children:wy}),e.jsx("button",{type:"button",className:n==="en"?"on":"","aria-pressed":n==="en",onClick:()=>r("en"),children:"EN"}),e.jsx("button",{type:"button",className:n==="fr"?"on":"","aria-pressed":n==="fr",onClick:()=>r("fr"),children:"FR"})]})}const wy=`
742.pp-lang{display:inline-flex;align-items:center;border-radius:22px;overflow:hidden;
743flex:0 0 auto;white-space:nowrap}
744.pp-lang button{font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;
745padding:5px 10px;background:none;border:none;cursor:pointer;line-height:1;transition:.15s}
746.pp-lang-light{border:1px solid #d9d9d3;background:#fff}
747.pp-lang-light button{color:#888}
748.pp-lang-light button:hover{color:#16233A}
749.pp-lang-light button.on{background:#0F1D33;color:#fff}
750.pp-lang-dark{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06)}
751.pp-lang-dark button{color:#9fb0c4}
752.pp-lang-dark button:hover{color:#fff}
753.pp-lang-dark button.on{background:#12A150;color:#06281a}
754`,ky={en:{connected:"Connected",settings:"Settings",logOut:"Log out"},fr:{connected:"Connecté",settings:"Paramètres",logOut:"Se déconnecter"}};function wi({fundType:t,variant:n="dropdown",className:r="",dealflowHref:i=""}){const{lang:s}=ae(),a=ky[s],o=hx(t),c=S2(t,s),l=lo(s),[d,p]=m.useState(()=>i||Tn(t));m.useEffect(()=>{var E;if(i){p(i);return}p(Tn(t));const w=(E=Ge())==null?void 0:E.email;if(!w)return;let S=!0;return fetch(`${_e}/inbound/credits`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:w})}).then(j=>j.json()).then(j=>{S&&p(kp(j==null?void 0:j.plan)?pa(t):Tn(t))}).catch(()=>{S&&p(Tn(t))}),()=>{S=!1}},[t,i]);const u=()=>{ux(),Sb(),f(!1),window.location.reload()},[g,f]=m.useState(!1),[L,v]=m.useState({top:0,left:0}),y=m.useRef(null),h=m.useRef(null),b=m.useRef(null),x=()=>{var k;const w=h.current;if(!w)return;const S=w.getBoundingClientRect(),E=((k=b.current)==null?void 0:k.offsetWidth)||200;let j=Math.min(S.right-E,window.innerWidth-E-8);j<8&&(j=8);const O=Math.min(S.bottom+8,window.innerHeight-180);v({top:Math.max(8,O),left:j})},A=()=>{if(g){f(!1);return}x(),f(!0)};return m.useEffect(()=>{if(!g)return;const w=requestAnimationFrame(()=>{requestAnimationFrame(x)}),S=k=>{var N,I;const _=k.target;(N=y.current)!=null&&N.contains(_)||(I=b.current)!=null&&I.contains(_)||f(!1)},E=k=>{k.key==="Escape"&&f(!1)},j=()=>f(!1),O=k=>{var N;const _=k.target;if((_==null?void 0:_.nodeType)===1&&((N=_.closest)!=null&&N.call(_,".pph, .pp-nav"))){x();return}f(!1)};return document.addEventListener("mousedown",S),document.addEventListener("keydown",E),window.addEventListener("resize",j),window.addEventListener("scroll",O,!0),()=>{cancelAnimationFrame(w),document.removeEventListener("mousedown",S),document.removeEventListener("keydown",E),window.removeEventListener("resize",j),window.removeEventListener("scroll",O,!0)}},[g]),n==="inline"?e.jsxs("span",{className:`pp-acct-inline ${r}`.trim(),children:[e.jsx("a",{href:d,children:c}),e.jsx("a",{href:l,children:a.settings}),e.jsx("button",{type:"button",className:"pp-acct-logout",onClick:u,children:a.logOut})]}):e.jsxs("div",{className:`pp-acct ${r}`.trim(),ref:y,children:[e.jsx("style",{children:zh}),e.jsxs("button",{ref:h,type:"button",className:"pp-nav-link pp-nav-cta pp-acct-btn","aria-haspopup":"true","aria-expanded":g,"aria-label":o||a.connected,onClick:A,children:[e.jsx("span",{className:"pp-acct-who",children:o||a.connected}),e.jsx("span",{className:`pp-acct-caret${g?" is-open":""}`,"aria-hidden":!0,children:"▾"})]}),g&&Vn.createPortal(e.jsxs(e.Fragment,{children:[e.jsx("style",{children:zh}),e.jsxs("div",{ref:b,className:"pp-acct-menu",role:"menu",style:{top:L.top,left:L.left},children:[e.jsx("a",{role:"menuitem",href:d,onClick:()=>f(!1),children:c}),e.jsx("a",{role:"menuitem",href:l,onClick:()=>f(!1),children:a.settings}),e.jsx("div",{className:"pp-acct-sep",role:"separator"}),e.jsx("button",{type:"button",role:"menuitem",className:"pp-acct-logout",onClick:u,children:a.logOut})]})]}),document.body)]})}const zh=`
755.pp-acct { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; white-space: nowrap; }
756.pp-acct-btn { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; white-space: nowrap; max-width: min(220px, 46vw); }
757.pp-acct-who { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
758.pp-acct-caret { font-size: 10px; line-height: 1; transition: transform .18s ease; }
759.pp-acct-caret.is-open { transform: rotate(180deg); }
760.pp-acct-menu {
761  position: fixed;
762  min-width: 200px;
763  background: #fff;
764  border: 1px solid #E3E8F0;
765  border-radius: 12px;
766  box-shadow: 0 16px 48px rgba(11, 25, 41, 0.14);
767  padding: 6px;
768  z-index: 10000;
769  display: flex;
770  flex-direction: column;
771}
772.pp-acct-menu a,
773.pp-acct-menu button {
774  display: block;
775  width: 100%;
776  text-align: left;
777  padding: 10px 14px;
778  border-radius: 8px;
779  font-family: var(--pp-body);
780  font-size: 13.5px;
781  font-weight: 550;
782  color: #0F1D33;
783  text-decoration: none;
784  white-space: nowrap;
785  background: none;
786  border: none;
787  cursor: pointer;
788}
789.pp-acct-menu a:hover,
790.pp-acct-menu button:hover { background: #eef9f2; color: #0E7F3F; }
791.pp-acct-sep {
792  height: 1px; background: #E3E8F0; margin: 4px 8px;
793}
794.pp-acct-menu .pp-acct-logout { color: #C0353A; font-weight: 600; }
795.pp-acct-menu .pp-acct-logout:hover { background: #FDECEC; color: #991b1b; }
796.pp-acct-inline { display: flex; flex-direction: column; gap: 8px; }
797.pp-acct-inline a, .pp-acct-inline button {
798  font: inherit; text-align: left; background: none; border: none;
799  color: inherit; cursor: pointer; padding: 0; text-decoration: none;
800}
801.pp-acct-inline .pp-acct-logout { color: #C0353A; }
802`,Ay={en:{items:[{id:"why",label:"Why Stan"},{id:"how",label:"How it works"},{id:"architecture",label:"Architecture"},{id:"founder",label:"Team"},{id:"security",label:"Security"},{id:"pricing",label:"Pricing"}],logIn:"Log in",sections:[{href:"/actualites/",label:"Live"},{href:"/actualites/operations/secteurs/",label:"Sector watch"}]},fr:{items:[{id:"why",label:"Pourquoi Stan"},{id:"how",label:"Comment ça marche"},{id:"architecture",label:"Architecture"},{id:"founder",label:"Équipe"},{id:"security",label:"Sécurité"},{id:"pricing",label:"Tarifs"}],logIn:"Se connecter",sections:[{href:"/actualites/",label:"Live"},{href:"/actualites/operations/secteurs/",label:"Veille sectorielle"}]}};function zn({minimal:t=!1,items:n}){const{lang:r,localizePath:i}=ae(),s=i("/"),a=typeof window<"u"&&(window.location.pathname===s||window.location.pathname===`${s}/`.replace("//","/"))?"#top":s,o=Ay[r],[c,l]=m.useState(!1),[d,p]=m.useState(!1),u=Ge();m.useEffect(()=>{typeof window>"u"||window.location.hash==="#login"&&!u&&(l(!0),history.replaceState(null,"",window.location.pathname+window.location.search))},[u]);const g=()=>{l(!0)};return m.useEffect(()=>{const f=document.querySelector(".pp-nav"),L=()=>{const y=Math.round((f==null?void 0:f.getBoundingClientRect().height)||60);document.documentElement.style.setProperty("--pp-gap",`${y}px`),document.body.style.paddingTop=`${y}px`};L();const v=f&&typeof ResizeObserver<"u"?new ResizeObserver(L):null;return f&&v&&v.observe(f),window.addEventListener("resize",L),()=>{v==null||v.disconnect(),window.removeEventListener("resize",L),document.body.style.paddingTop=""}},[]),e.jsxs(e.Fragment,{children:[e.jsx("style",{children:Sy}),e.jsx("nav",{className:`pp-nav pp-nav-${r}`,"aria-label":"Primary",children:e.jsxs("div",{className:`pp-nav-inner${t?" pp-nav-min":""}`,children:[e.jsx("a",{href:a,className:"pp-nav-brand","aria-label":"Proplace",children:e.jsx("img",{src:"/logo.png",alt:"Proplace"})}),!t&&e.jsx("nav",{className:"pp-nav-sections","aria-label":"Sections",children:o.sections.map(f=>e.jsx("a",{href:f.href,children:f.label},f.href))}),t?e.jsxs("span",{className:"pp-nav-min-r",children:[e.jsx(ea,{}),u?e.jsx(wi,{fundType:u.fund_type}):e.jsx("button",{type:"button",onClick:g,className:"pp-nav-link pp-nav-cta",children:o.logIn})]}):e.jsxs("div",{className:"pp-nav-end",children:[u?e.jsx(wi,{fundType:u.fund_type}):e.jsx("button",{type:"button",onClick:g,className:"pp-nav-link pp-nav-cta",children:o.logIn}),e.jsx(ea,{})]})]})}),c&&e.jsx(Ur,{onClose:()=>l(!1),onSignupClick:()=>{l(!1),p(!0)}}),d&&e.jsx(Qr,{onClose:()=>p(!1)})]})}const Sy=`
803.pp-nav {
804  position: fixed;
805  top: 0; left: 0; right: 0;
806  z-index: 60;
807  background: rgba(255, 255, 255, 0.72);
808  backdrop-filter: saturate(180%) blur(14px);
809  -webkit-backdrop-filter: saturate(180%) blur(14px);
810  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
811  height: 60px;
812  display: flex;
813  align-items: center;
814}
815.pp-nav-inner {
816  width: 100%;
817  max-width: 1200px;
818  margin: 0 auto;
819  padding: 0 32px;
820  display: flex;
821  align-items: center;
822  justify-content: space-between;
823  gap: 16px;
824  position: relative;
825}
826/* Tout ce qui est à droite de la marque : menu + bouton de langue + burger,
827   sur UNE seule ligne (le bouton EN|FR ne passe jamais à la ligne). */
828.pp-nav-end {
829  display: flex;
830  align-items: center;
831  gap: 14px;
832  min-width: 0;
833}
834.pp-nav-brand {
835  flex: 0 0 auto;
836  margin-right: 8px;
837  display: flex;
838  align-items: center;
839  text-decoration: none;
840}
841.pp-nav-brand img { height: 24px; width: auto; display: block; }
842/* Les surfaces éditoriales, collées à la marque (margin-right:auto pousse
843   le bloc compte tout à droite malgré le space-between du conteneur). */
844.pp-nav-sections {
845  display: flex;
846  align-items: center;
847  gap: 22px;
848  margin-right: auto;
849  padding-left: 20px;
850  position: relative;
851}
852.pp-nav-sections::before {
853  content: '';
854  position: absolute;
855  left: 0; top: 50%;
856  transform: translateY(-50%);
857  width: 1px; height: 16px;
858  background: rgba(15,29,51, .12);
859}
860.pp-nav-sections a {
861  position: relative;
862  font-family: var(--pp-body);
863  font-size: 13.5px;
864  font-weight: 500;
865  letter-spacing: .005em;
866  color: var(--sub);
867  text-decoration: none;
868  white-space: nowrap;
869  padding: 6px 0;
870  transition: color .2s ease;
871}
872.pp-nav-sections a::after {
873  content: '';
874  position: absolute;
875  left: 0; right: 0; bottom: 1px;
876  height: 1.5px;
877  border-radius: 2px;
878  background: #12A150;
879  transform: scaleX(0);
880  transform-origin: left center;
881  transition: transform .22s ease;
882}
883.pp-nav-sections a:hover { color: var(--ink); }
884.pp-nav-sections a:hover::after { transform: scaleX(1); }
885.pp-nav-list {
886  display: flex;
887  align-items: center;
888  flex-wrap: nowrap;
889  justify-content: flex-end;
890  gap: 16px;
891  list-style: none;
892  margin: 0;
893  padding: 0;
894  min-width: 0;
895}
896.pp-nav-list > li { flex: 0 0 auto; display: flex; align-items: center; }
897.pp-nav-link {
898  position: relative;
899  display: inline-block;
900  white-space: nowrap;
901  font-family: var(--pp-body);
902  font-size: 13px;
903  font-weight: 500;
904  letter-spacing: .01em;
905  color: var(--sub);
906  text-decoration: none;
907  background: none;
908  border: none;
909  padding: 6px 0;
910  cursor: pointer;
911  transition: color .2s ease;
912}
913.pp-nav-link::after {
914  content: '';
915  position: absolute;
916  left: 0; right: 0; bottom: 0;
917  height: 1px;
918  background: var(--green);
919  transform: scaleX(0);
920  transform-origin: center;
921  transition: transform .2s ease;
922}
923.pp-nav-link:hover { color: var(--ink); }
924.pp-nav-link:hover::after { transform: scaleX(1); }
925.pp-nav-link.is-active { color: var(--ink); }
926.pp-nav-link.is-active::after { transform: scaleX(1); }
927/* Un SEUL vert de marque dans la barre : celui du bouton « Découvrir mes cibles »
928   de la home (--brand #12A150), et non le vert clair historique #12A150. */
929.pp-nav-pipe { font-weight: 800; color: #0E8A44 !important; }
930.pp-nav-cta { background: #12A150; color: #fff; font-weight: 600;
931  padding: 8px 14px; border-radius: 9px; }
932.pp-nav-cta:hover { background: #0E8A44; color: #fff; }
933.pp-nav-cta::after { display: none; }
934/* News + Analysis = bloc SECTION distinct (segmented pill vert) — autre partie du site */
935.pp-nav-sect { display: inline-flex; align-items: center; border: 1px solid #cfe8da;
936  background: #eef9f2; border-radius: 22px; overflow: hidden; flex-shrink: 0; }
937.pp-nav-sect a { padding: 7px 15px; color: #2b7a52; font-weight: 600; font-size: 13px;
938  text-decoration: none; }
939.pp-nav-sect a + a { border-left: 1px solid #cfe8da; }
940.pp-nav-sect a:hover { background: var(--green, #12A150); color: #fff; }
941.pp-nav-inner.pp-nav-min { justify-content: flex-end; }
942.pp-nav-min-r { display: inline-flex; align-items: center; gap: 14px; }
943
944.pp-nav-burger {
945  display: none;
946  flex: 0 0 auto;
947  width: 28px;
948  height: 28px;
949  background: none;
950  border: none;
951  cursor: pointer;
952  padding: 0;
953  flex-direction: column;
954  justify-content: center;
955  gap: 6px;
956}
957.pp-nav-burger span {
958  display: block;
959  width: 22px;
960  height: 1.5px;
961  background: var(--ink);
962  margin: 0 auto;
963  transition: transform .25s ease, opacity .2s ease;
964}
965.pp-nav-burger.is-open span:first-child { transform: translateY(3.75px) rotate(45deg); }
966.pp-nav-burger.is-open span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
967
968.pp-nav-drawer {
969  position: fixed;
970  top: 60px; left: 0; right: 0; bottom: 0;
971  background: #ffffff;
972  z-index: 58;
973  opacity: 0;
974  pointer-events: none;
975  transition: opacity .25s ease;
976  display: flex;
977  align-items: flex-start;
978  justify-content: center;
979  padding-top: 48px;
980  overflow-y: auto;
981}
982.pp-nav-drawer.is-open { opacity: 1; pointer-events: auto; }
983.pp-nav-drawer ul {
984  list-style: none;
985  margin: 0;
986  padding: 0;
987  display: flex;
988  flex-direction: column;
989  gap: 32px;
990  align-items: center;
991}
992.pp-nav-drawer a,
993.pp-nav-drawer button {
994  font-family: var(--pp-body);
995  font-size: 22px;
996  font-weight: 400;
997  color: var(--ink);
998  text-decoration: none;
999  background: none;
1000  border: none;
1001  cursor: pointer;
1002}
1003.pp-nav-drawer .pp-nav-cta { color: var(--green); font-weight: 600; }
1004/* Menu « My account » déplié dans le tiroir mobile : 3 liens empilés, centrés,
1005   au même rythme vertical que les autres entrées du tiroir. */
1006.pp-nav-drawer-acct { display: flex; flex-direction: column; gap: 32px; align-items: center; }
1007.pp-nav-drawer-acct a { color: var(--green); font-weight: 600; }
1008/* « Déconnexion » (showLogout) : même rythme que les autres entrées, teinte sortie */
1009.pp-nav-drawer-acct button { color: var(--sub); font-weight: 500; }
1010/* Bouton de langue dans le menu mobile : agrandi pour être clairement tappable */
1011.pp-nav-drawer-lang .pp-lang button { font-size: 16px; padding: 9px 18px; }
1012
1013/* Resserre un peu sur les écrans intermédiaires */
1014@media (max-width: 1180px) {
1015  .pp-nav-list { gap: 12px; }
1016  .pp-nav-link { font-size: 12.5px; }
1017}
1018/* Le menu français est plus large → il se replie en burger plus tôt que l'anglais.
1019   Le bouton EN|FR, lui, reste TOUJOURS visible dans la barre (hors de la liste). */
1020@media (max-width: 1120px) {
1021  .pp-nav-fr .pp-nav-list { display: none; }
1022  .pp-nav-fr .pp-nav-burger { display: flex; }
1023}
1024@media (max-width: 880px) {
1025  .pp-nav-en .pp-nav-list { display: none; }
1026  .pp-nav-en .pp-nav-burger { display: flex; }
1027}
1028@media (max-width: 1100px) {
1029  .pp-nav-sections { gap: 14px; padding-left: 14px; }
1030  .pp-nav-sections a { font-size: 12.5px; }
1031}
1032/* Une ligne : Live + Veille glissent, Se connecter + EN|FR restent visibles. */
1033@media (max-width: 760px) {
1034  .pp-nav { height: 48px; overflow: hidden; }
1035  .pp-nav-inner { display: flex; flex-wrap: nowrap; padding: 0 12px; gap: 8px; }
1036  .pp-nav-brand { margin-right: 0; flex: none; }
1037  .pp-nav-brand img { height: 20px; }
1038  .pp-nav-end { flex: none; gap: 7px; margin-left: 0; }
1039  .pp-nav-sections { display: flex; flex: 1 1 auto; min-width: 0; gap: 14px;
1040    padding: 0 16px 0 10px; margin: 0; overflow-x: auto; overflow-y: hidden;
1041    -webkit-overflow-scrolling: touch; scrollbar-width: none;
1042    mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 18px), transparent);
1043    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 18px), transparent); }
1044  .pp-nav-sections::-webkit-scrollbar { display: none; }
1045  .pp-nav-sections::before { height: 12px; }
1046  .pp-nav-sections a { flex: 0 0 auto; font-size: 13px; padding: 6px 0; }
1047  .pp-nav-link { font-size: 12px; padding: 6px 0; white-space: nowrap; }
1048  .pp-nav-cta { padding: 6px 10px; font-size: 12px; }
1049  .pp-lang button { padding: 4px 8px; font-size: 11px; }
1050  .pp-nav-drawer { top: var(--pp-gap, 48px); }
1051}
1052`,Ey={en:{tagline:"Your AI Corporate Developer",news:"Live",marches:"Sector watch",home:"Home",newsletter:"Newsletter",insights:"Explore",account:"Account",logIn:"Log in",demo:"Cockpit demo"},fr:{tagline:"Votre AI Corporate Developer",news:"Live",marches:"Veille sectorielle",home:"Accueil",newsletter:"Newsletter",insights:"Explorer",account:"Compte",logIn:"Se connecter",demo:"Démo du cockpit"}};function Nt(){const{lang:t,localizePath:n}
1052=ae(),r=Ey[t],[i,s]=m.useState(!1),[a,o]=m.useState(!1),c=Ge();return e.jsxs("footer",{className:"ppf",children:[e.jsx("style",{children:Ny}),e.jsxs("div",{className:"ppf-in",children:[e.jsxs("div",{className:"ppf-brand",children:[e.jsx("a",{href:n("/"),"aria-label":"Proplace",children:e.jsx("img",{src:"/logo.png",alt:"Proplace"})}),e.jsx("p",{children:r.tagline})]}),e.jsxs("nav",{className:"ppf-nav",children:[e.jsx("a",{href:"/actualites/",children:r.news}),e.jsx("a",{href:"/actualites/operations/secteurs/",children:r.marches}),e.jsx(Ti,{to:t==="fr"?"/fr/newsletter":"/en/newsletter",children:r.newsletter}),e.jsx(Ti,{to:n("/demo"),children:r.demo}),c?e.jsx("a",{href:"/api/",target:"_blank",rel:"noopener",children:"API"}):null]}),e.jsx("div",{className:"ppf-acct",children:c?e.jsx(wi,{fundType:c.fund_type,variant:"inline"}):e.jsx("button",{type:"button",onClick:()=>s(!0),children:r.logIn})}),e.jsx("span",{className:"ppf-copy",children:"© 2026 Proplace"})]}),i&&e.jsx(Ur,{onClose:()=>s(!1),onSignupClick:()=>{s(!1),o(!0)}}),a&&e.jsx(Qr,{onClose:()=>o(!1)})]})}const Ny=`
1053.ppf{display:block;background:#0F1D33;color:#c7d0db;font-family:var(--pp-body);
1054margin-top:0;padding:0;border-top:none}
1055.ppf-in{max-width:1180px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;
1056justify-content:space-between;gap:16px 28px;flex-wrap:wrap}
1057.ppf-brand{display:flex;align-items:center;gap:12px;min-width:0}
1058.ppf-brand a{display:inline-block;flex:none}
1059.ppf-brand img{height:22px;display:block;filter:brightness(0) invert(1);opacity:.92}
1060.ppf-brand p{font-size:13px;color:#9fb0c4;margin:0;line-height:1.3;white-space:nowrap}
1061.ppf-nav,.ppf-acct{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px}
1062.ppf-nav a,.ppf-acct a,.ppf-acct button{font-size:13.5px;color:#c7d0db;text-decoration:none;
1063background:none;border:none;padding:0;cursor:pointer;font-family:inherit}
1064.ppf-nav a:hover,.ppf-acct a:hover,.ppf-acct button:hover{color:#fff}
1065.ppf .pp-acct-inline{flex-direction:row;gap:18px;align-items:center}
1066.ppf .pp-acct-inline a,.ppf .pp-acct-inline button{display:inline;margin:0}
1067.ppf-copy{font-size:12.5px;color:#7d93ab;margin-left:auto}
1068@media(max-width:760px){
1069 .ppf-in{padding:14px 18px;gap:12px}
1070 .ppf-brand p{display:none}
1071 .ppf-copy{margin-left:0;width:100%;text-align:center}
1072}
1073`,Bh="https://proplace.co";function ti(t,n,r){if(typeof document>"u")return;let i=document.head.querySelector(`meta[${t}="${n}"]`);i||(i=document.createElement("meta"),i.setAttribute(t,n),document.head.appendChild(i)),i.setAttribute("content",r)}function Ya(t,n,r){if(typeof document>"u")return;const i=r?`link[rel="${t}"][hreflang="${r}"]`:`link[rel="${t}"]:not([hreflang])`;let s=document.head.querySelector(i);s||(s=document.createElement("link"),s.setAttribute("rel",t),r&&s.setAttribute("hreflang",r),document.head.appendChild(s)),s.setAttribute("href",n)}function ht(t){const{lang:n}=ae(),r=Wr();m.useEffect(()=>{const i=t[n];if(!i)return;document.title=i.title,ti("name","description",i.description);const s=Ap(r.pathname),a=Bh+(s==="/newsletter"?"/en/newsletter":s),o=Bh+co(s,"fr"),c=n==="fr"?o:a;Ya("canonical",c),Ya("alternate",a,"en"),Ya("alternate",o,"fr"),Ya("alternate",a,"x-default"),ti("property","og:title",i.title),ti("property","og:description",i.description),ti("property","og:url",c),ti("property","og:locale",n==="fr"?"fr_FR":"en_US"),ti("property","og:locale:alternate",n==="fr"?"en_US":"fr_FR")},[n,r.pathname,t])}const Bx=m.createContext({openRdv:()=>{}}),pl=()=>m.useContext(Bx);function ul({children:t}){const[n,r]=m.useState(!1),[i,s]=m.useState(""),a=m.useCallback(c=>{if(c){s(c);try{const l=new URL(window.location.href);l.searchParams.set("site",c),window.history.replaceState(null,"",l)}catch{}}r(!0)},[]),o=m.useMemo(()=>({openRdv:a}),[a]);return e.jsxs(Bx.Provider,{value:o,children:[t,n&&e.jsx(Pi,{subject:i||void 0,onClose:()=>r(!1)})]})}const Cy=`
1074.home3{
1075  /* Les noms locaux restent (des centaines d'usages) ; les VALEURS viennent des
1076     jetons du site — src/styles/tokens.css. Une seule source. */
1077  --brand:var(--pp-green); --brand-d:var(--pp-green-h); --brand-l:var(--pp-green-bg);
1078  --red:var(--pp-red);
1079  --panel:var(--pp-bg); --panel2:var(--pp-bg-zone); --panel3:var(--pp-bg-page);
1080  --line:var(--pp-line); --line2:var(--pp-line-dash);
1081  --ink:var(--pp-ink); --muted:var(--pp-ink-2); --dim:var(--pp-ink-4);
1082  --p1:var(--pp-p1);
1082 --p2:var(--pp-p2); --p3:var(--pp-p3); --p4:var(--pp-p4);
1083  /* --mono ne designe plus un chasse-fixe : les chapeaux, rails et libelles qui
1084     s'en servaient etaient en 9,5-10px capitales espacees (README v3 : interdit). */
1085  --mono:var(--pp-body);
1086  --body:var(--pp-body);
1087  --surf:var(--pp-sh-card);
1088  --surf-h:var(--pp-sh-float);
1089  background:var(--panel);color:var(--ink);font-family:var(--body);font-size:16px;
1090  line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
1091}
1092.home3,.home3 *{box-sizing:border-box}
1093.home3 button,.home3 input{font-family:inherit}
1094
1095/* ── gabarit ─────────────────────────────────────────────────────────────── */
1096.home3 .h3-wrap{max-width:1120px;margin:0 auto;padding:0 32px}
1097.home3 .h3-wrap.nar{max-width:840px}
1098.home3 .h3s{padding:104px 0;border-top:1px solid var(--line)}
1099.home3 .h3s.tint{background:var(--panel2)}
1100.home3 .h3s.center{text-align:center}
1101.home3 .h3s[id]{scroll-margin-top:80px}
1102
1103/* ── typographie ─────────────────────────────────────────────────────────── */
1104.home3 .h3-h1{margin:0;font-size:clamp(33px,5vw,58px);line-height:1.04;
1105  letter-spacing:-.042em;font-weight:700;text-wrap:balance}
1106.home3 .h3-h2{margin:0;font-size:clamp(25px,3.2vw,39px);line-height:1.13;
1107  letter-spacing:-.036em;font-weight:700;text-wrap:balance}
1108.home3 .h3-h2 .soft{color:var(--muted);font-weight:600}
1109.home3 .h3-lead{margin:24px 0 0;font-size:clamp(16.5px,1.35vw,19px);line-height:1.66;
1110  color:var(--muted);text-wrap:pretty}
1111.home3 .h3-lead b{color:var(--ink);font-weight:600}
1112.home3 .h3-p{margin:0;font-size:15.5px;line-height:1.72;color:var(--muted)}
1113.home3 .h3-p b{color:var(--ink);font-weight:600}
1114.home3 .h3-eyeb{display:flex;align-items:center;gap:12px;margin:0 0 18px;
1115  font-family:var(--mono);font-size:12px;font-weight:500;color:var(--dim);font-variant-numeric:tabular-nums}
1116.home3 .h3-eyeb::before{content:"";display:block;width:22px;height:2px;
1117  background:var(--brand);border-radius:2px;flex:none}
1118/* Rythme éditorial : l'en-tête de CHAQUE section est centré (chapeau, titre,
1119   chapô) ; seuls les blocs de contenu — entonnoir, cartes, tarifs — reprennent
1120   l'alignement à gauche, qui est celui de la lecture. */
1121.home3 .h3s>.h3-wrap>.h3-eyeb{justify-content:center}
1122.home3 .h3s>.h3-wrap>.h3-h2{text-align:center;margin-left:auto;margin-right:auto}
1123.home3 .h3s>.h3-wrap>.h3-lead{text-align:center;margin-left:auto;margin-right:auto;
1124  max-width:70ch}
1125.home3 .h3-pull{margin:0;font-size:clamp(18px,1.75vw,23px);line-height:1.52;
1126  letter-spacing:-.022em;font-weight:500;color:var(--ink);text-wrap:balance}
1127
1128/* ── le champ d'adresse (Home2/SiteField, restylé ici) ───────────────────── */
1129.home3 .h3-field{margin:42px auto 0;max-width:600px}
1130.home3 .h3-fieldlbl{margin:0 0 13px;font-family:var(--mono);font-size:12px;color:var(--dim);font-weight:600;font-variant-numeric:tabular-nums}
1131.home3 .ur{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;justify-content:center}
1132.home3 .uf{display:flex;align-items:center;gap:11px;flex:1 1 260px;min-width:0;height:56px;
1133  padding:0 18px;border:1px solid rgba(15,29,51,.11);border-radius:14px;background:var(--panel);
1134  font-size:16px;box-shadow:0 1px 2px rgba(15,29,51,.04);transition:border-color .18s,box-shadow .18s}
1135.home3 .uf:focus-within{border-color:rgba(15,29,51,.30);box-shadow:0 0 0 4px rgba(15,29,51,.05)}
1136.home3 .uf input{flex:1;min-width:0;border:0;outline:none;background:none;
1137  font-size:16.5px;color:var(--ink);letter-spacing:-.01em}
1138.home3 .uf input::placeholder{color:var(--dim)}
1139.home3 .uf input.shake{animation:h3-shk .42s}
1140@keyframes h3-shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
1141.home3 .uf.uf-err{border-color:#E5484D;box-shadow:0 0 0 4px rgba(229,72,77,.10)}
1142.home3 .uf-err-msg{margin:10px 0 0;font-size:13px;color:#E5484D;font-weight:500}
1143.home3 .ub{flex:none;height:56px;padding:0 26px;border:0;border-radius:14px;
1144  background:var(--brand);color:#fff;font-size:15.5px;font-weight:700;cursor:pointer;
1145  white-space:nowrap;letter-spacing:-.01em;
1146  box-shadow:0 2px 4px rgba(18,161,80,.20), 0 14px 28px -16px rgba(18,161,80,.75);
1147  transition:background .18s,transform .18s,box-shadow .18s}
1148.home3 .ub::after{content:"→";margin-left:10px;display:inline-block}
1149.home3 .ub:hover{background:var(--brand-d);transform:translateY(-1px);
1150  box-shadow:0 2px 4px rgba(18,161,80,.22), 0 18px 34px -16px rgba(18,161,80,.8)}
1151.home3 .ub:active{transform:none}
1152.home3 .usug{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap;justify-content:center}
1153.home3 .usg{border:1px solid var(--line);background:var(--panel2);border-radius:99px;
1154  padding:5px 13px;font-size:12.5px;color:var(--muted);cursor:pointer;transition:border-color .16s,color .16s}
1155.home3 .usg:hover{border-color:var(--ink);color:var(--ink)}
1156
1157/* ── hero ────────────────────────────────────────────────────────────────── */
1158.home3 .h3-hero{padding:88px 0 78px;text-align:center;border-top:0}
1159.home3 .h3-hero .h3-h1{max-width:980px;margin:0 auto}
1160.home3 .h3-hero .h3-lead{max-width:66ch;margin:28px auto 0}
1161.home3 .h3-steps{display:grid;grid-template-columns:1fr 1fr;max-width:900px;
1162  margin:52px auto 0;text-align:left;border-top:1px solid var(--line)}
1163.home3 .h3-step{padding:26px 30px}
1164.home3 .h3-step+.h3-step{border-left:1px solid var(--line)}
1165.home3 .h3-step b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;
1166  border:1px solid var(--line2);color:var(--muted);font-family:var(--mono);font-size:11px;
1167  font-weight:600;margin-bottom:13px}
1168.home3 .h3-step p{margin:0;font-size:14.5px;line-height:1.66;color:var(--muted)}
1169.home3 .h3-angles{display:flex;align-items:center;justify-content:center;gap:9px;
1170  flex-wrap:wrap;margin-top:40px}
1171@media (max-width:520px){
1172.home3 .h3-angles{gap:6px;margin-top:30px}
1173.home3 .h3-angle{padding:0 12px;font-size:12px}
1174}
1175.home3 .h3-angle{display:inline-flex;align-items:center;height:28px;box-sizing:border-box;
1176  border:1px solid var(--line);border-radius:999px;padding:0 12px;
1177  font-size:12px;font-weight:600;white-space:nowrap;color:var(--ink);background:var(--panel2)}
1178
1179/* ── le tri : l'entonnoir ────────────────────────────────────────────────── */
1180.home3 .h3-funnel{margin:54px 0 0;display:flex;flex-direction:column;gap:12px}
1181.home3 .h3-fr{display:grid;grid-template-columns:104px minmax(0,1fr) minmax(0,1.02fr);
1182  gap:26px;align-items:center}
1183.home3 .h3-frail{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:right;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums}
1184.home3 .h3-fbar{display:flex;align-items:center;height:64px;border-radius:11px;padding:0 22px;
1185  font-size:clamp(20px,2.1vw,29px);font-weight:700;letter-spacing:-.04em;color:var(--ink);
1186  font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;min-width:136px}
1187.home3 .h3-fr:nth-child(1) .h3-fbar{background:var(--p1)}
1188.home3 .h3-fr:nth-child(2) .h3-fbar{background:var(--p2)}
1189.home3 .h3-fr:nth-child(3) .h3-fbar{background:var(--p3)}
1190.home3 .h3-fr:nth-child(4) .h3-fbar{background:var(--p4);color:#fff;
1191  box-shadow:0 10px 26px -14px rgba(18,161,80,.85)}
1192.home3 .h3-flabel{font-size:14.5px;line-height:1.58;color:var(--muted)}
1193.home3 .h3-fr:nth-child(4) .h3-flabel{color:var(--ink);font-weight:600}
1194.home3 .h3-fcover{display:grid;grid-template-columns:104px minmax(0,1fr) minmax(0,1.02fr);
1195  gap:26px;align-items:center;margin-top:10px;padding-top:24px;border-top:1px solid var(--line)}
1196.home3 .h3-fcval{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
1197.home3 .h3-fcval b{font-size:clamp(20px,2.1vw,29px);font-weight:700;letter-spacing:-.04em;
1198  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
1199.home3 .h3-fcval em{font-style:normal;font-size:15px;font-weight:600;color:var(--muted)}
1200.home3 .h3-tri-p{max-width:74ch;margin:34px auto 0;text-align:center}
1201/* Le taux de MATCH est un DETAIL de la phrase du dessus : plus petit, plus pale. */
1202.home3 .h3-tri-note{max-width:84ch;margin:9px auto 0;text-align:center;
1203  font-size:12.5px;line-height:1.6;color:var(--dim)}
1204/* Chapo des PLANS : 2 lignes (le chapo generique plafonne a 70ch). */
1205.home3 .h3s>.h3-wrap>.h3-plans-lead{max-width:86ch}
1206.home3 .h3-tri-pull{margin:36px auto 0;padding-top:36px;border-top:1px solid var(--line);
1207  max-width:60ch;text-align:center}
1208
1209/* ── la décision ─────────────────────────────────────────────────────────── */
1210.home3 .h3-dec{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
1211  gap:24px;margin-top:50px;align-items:stretch;text-align:left}
1212.home3 .h3-card{background:var(--panel);border:1px solid rgba(15,29,51,.08);
1213  border-radius:20px;padding:30px;box-shadow:var(--surf)}
1214.home3 .h3-yn{display:grid;grid-template-columns:1fr 1fr;gap:14px}
1215.home3 .h3-btn{display:flex;align-items:center;justify-content:center;gap:11px;
1216  border-radius:14px;padding:24px 10px;color:#fff;
1217  font-size:19px;font-weight:800;letter-spacing:.04em}
1218.home3 .h3-btn svg{flex:none;display:block}
1219.home3 .h3-btn.y{background:var(--brand);box-shadow:0 10px 24px -14px rgba(18,161,80,.9)}
1220.home3 .h3-btn.n{background:var(--red);box-shadow:0 10px 24px -14px rgba(229,72,77,.85)}
1221.home3 .h3-route{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
1222.home3 .h3-route span{font-size:12.5px;line-height:1.5;color:var(--muted);text-align:center}
1223.home3 .h3-route span::before{content:"↓";display:block;margin-bottom:7px;
1224  color:var(--line2);font-size:14px}
1225.home3 .h3-decnote{margin:26px 0 0;padding-top:24px;border-top:1px solid var(--line);
1226  font-size:14px;line-height:1.72;color:var(--muted)}
1227.home3 .h3-revh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
1228  padding-bottom:20px;border-bottom:1px solid var(--line)}
1229.home3 .h3-revk{font-family:var(--mono);font-size:12px;color:var(--brand-d);background:var(--brand-l);
1230  border-radius:99px;padding:6px 12px;font-weight:600;font-variant-numeric:tabular-nums}
1231.home3 .h3-revt{font-size:16px;font-weight:700;letter-spacing:-.022em}
1232/* La revue est une LISTE (plus de rails Stan/Nous/Vous) : puce verte, filets
1233   entre les points, dernier sans filet. */
1234.home3 .h3-revr{position:relative;margin:0;padding:14px 0 14px 20px;
1235  border-bottom:1px solid var(--line);font-size:13.8px;line-height:1.7;color:var(--muted)}
1236.home3 .h3-revr:last-child{border-bottom:0;padding-bottom:0}
1237.home3 .h3-revr::before{content:"";position:absolute;
1237left:2px;top:23px;
1238  width:6px;height:6px;border-radius:50%;background:var(--brand);opacity:.7}
1239
1240/* ── qui est Stan ────────────────────────────────────────────────────────── */
1241.home3 .h3-trip{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;
1242  margin:0 auto;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
1243.home3 .h3-trip span{padding:28px 16px;text-align:center;font-size:clamp(19px,2.2vw,27px);
1244  font-weight:700;letter-spacing:-.032em;line-height:1.15}
1245.home3 .h3-trip span+span{border-left:1px solid var(--line)}
1246.home3 .h3-stan-p{margin:34px auto 0;max-width:62ch}
1247.home3 .h3-logoswrap{margin:52px auto 0;max-width:780px}
1248.home3 .h3-logoslbl{margin:0 0 20px;font-family:var(--mono);font-size:12px;color:var(--dim);font-weight:600;font-variant-numeric:tabular-nums}
1249/* mix-blend-mode:multiply — trust-logos.png porte des fonds BLANCS opaques
1250   (Ardian, Mirakl) qui se verraient comme des rectangles sur la section teintée. */
1251.home3 .h3-logos{display:block;width:100%;height:auto;opacity:.88;mix-blend-mode:multiply}
1252.home3 .h3-stan-pull{margin:52px auto 0;max-width:44ch}
1253.home3 .h3-closing{margin:22px auto 0;max-width:64ch;font-size:clamp(16px,1.4vw,18.5px);
1254  line-height:1.65;color:var(--muted);text-wrap:pretty}
1255.home3 .h3-closing b{color:var(--ink);font-weight:600}
1256
1257/* ── les plans : raffinements de la grille partagée .prc2 ────────────────── */
1258/* La grille est un bloc de LECTURE : elle reste alignée à gauche même quand
1259   l'en-tête de section est centré. */
1260.home3 .prc2{text-align:left}
1261.home3 .prc2 .prices{gap:20px;margin-top:40px;align-items:stretch}
1262.home3 .prc2 .price{display:flex;flex-direction:column;padding:30px;border-radius:20px;
1263  border:1px solid rgba(15,29,51,.08);box-shadow:var(--surf);
1264  transition:box-shadow .22s ease,transform .22s ease}
1265.home3 .prc2 .price:hover{transform:translateY(-3px);box-shadow:var(--surf-h)}
1266.home3 .prc2 .price.hi{border-color:rgba(18,161,80,.38);
1267  box-shadow:0 0 0 4px rgba(18,161,80,.07), var(--surf)}
1268.home3 .prc2 .price.hi:hover{box-shadow:0 0 0 4px rgba(18,161,80,.07), var(--surf-h)}
1269.home3 .prc2 .price .badge{top:-12px;padding:4px 13px;font-size:12px;font-weight:600}
1270.home3 .prc2 .price .p{font-size:clamp(28px,2.6vw,34px);letter-spacing:-.04em;margin:10px 0 4px}
1271.home3 .prc2 .price ul{flex:1 1 auto;margin-bottom:22px}
1272.home3 .prc2 .price li{font-size:13.5px;line-height:1.6;margin-bottom:11px}
1273.home3 .prc2 .price button{border-radius:12px;padding:14px;font-size:14px;
1274  transition:opacity .18s,transform .18s}
1275.home3 .prc2 .price button:hover{opacity:.9;transform:translateY(-1px)}
1276/* Les trois listes de puces démarrent à la MÊME hauteur : en-tête et jauge
1277   calés (l'Essai n'a ni mentions fines ni note de cadence). */
1278.home3 .prc2 .phead{min-height:184px}
1279.home3 .prc2 .q2{border-radius:10px;padding:14px 16px;margin-bottom:20px;
1280  min-height:118px;display:flex;flex-direction:column;justify-content:center}
1281/* Les deux mentions sous la grille tiennent chacune sur UNE ligne au-dessus de
1282   1180 px (demande Antoine) ; en dessous elles se replient normalement. */
1283.home3 .prc2 .under{border:0;background:none;padding:0;margin:34px auto 0;
1284  max-width:none;text-align:center;font-size:12.5px;line-height:1.7}
1285.home3 .prc2 .under .ment{margin-top:7px;font-size:11.5px}
1286@media (min-width:1180px){
1287.home3 .prc2 .under,.home3 .prc2 .under .ment{white-space:nowrap}
1288}
1289
1290/* ── la reprise ──────────────────────────────────────────────────────────── */
1291.home3 .h3-reprise{padding:96px 0 108px}
1292.home3 .h3-repcard{background:linear-gradient(175deg,#0F1D33 0%,#0F1D33 100%);
1293  border-radius:28px;padding:clamp(46px,5vw,76px) clamp(26px,4vw,60px);text-align:center;
1294  box-shadow:0 30px 72px -44px rgba(15,29,51,.85)}
1295.home3 .h3-repcard .h3-h2{color:#fff;max-width:800px;margin:0 auto}
1296.home3 .h3-repcard .h3-lead{color:#A7B6CC;max-width:64ch;margin:26px auto 0}
1297.home3 .h3-repcard .h3-lead b{color:#fff}
1298.home3 .h3-repcard .uf{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.17);
1299  box-shadow:none}
1300.home3 .h3-repcard .uf:focus-within{border-color:rgba(255,255,255,.42);
1301  box-shadow:0 0 0 4px rgba(255,255,255,.07)}
1302.home3 .h3-repcard .uf input{color:#fff}
1303.home3 .h3-repcard .uf input::placeholder{color:rgba(255,255,255,.40)}
1304.home3 .h3-repcard .usg{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);
1305  color:#B8C6D6}
1306.home3 .h3-repcard .usg:hover{border-color:#fff;color:#fff}
1307
1308/* ── adaptations ─────────────────────────────────────────────────────────── */
1309@media (max-width:1000px){
1310.home3 .h3-dec{grid-template-columns:1fr}
1311.home3 .h3-fr,.home3 .h3-fcover{grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);gap:20px}
1312}
1313@media (max-width:820px){
1314.home3 .h3s{padding:66px 0}
1315.home3 .h3-hero{padding:58px 0 56px}
1316.home3 .h3-wrap{padding:0 22px}
1317.home3 .h3-hero .h3-h1{max-width:none}
1318.home3 .h3-steps{grid-template-columns:1fr;margin-top:42px}
1319.home3 .h3-step+.h3-step{border-left:0;border-top:1px solid var(--line)}
1320.home3 .h3-step{padding:22px 0}
1321.home3 .h3-fr,.home3 .h3-fcover{grid-template-columns:1fr;gap:9px}
1322.home3 .h3-fcover{margin-top:4px;padding-top:22px}
1323.home3 .h3-frail{text-align:left}
1324.home3 .h3-fbar{height:56px;padding:0 18px}
1325.home3 .h3-funnel{gap:22px}
1326.home3 .h3-trip{grid-template-columns:1fr}
1327.home3 .h3-trip span{padding:20px 12px}
1328.home3 .h3-trip span+span{border-left:0;border-top:1px solid var(--line)}
1329.home3 .h3-revr{grid-template-columns:1fr;gap:7px}
1330.home3 .h3-card{padding:24px}
1331.home3 .h3-reprise{padding:66px 0 76px}
1332.home3 .h3-repcard{border-radius:22px}
1333.home3 .ub{width:100%}
1334.home3 .prc2 .phead,.home3 .prc2 .q2{min-height:0}
1335}
1336@media (max-width:420px){
1337.home3 .h3-btn{font-size:17px;padding:20px 6px}
1338.home3 .h3-route span{font-size:11.5px}
1339}
1340/* ═════════════════════════════════════════════════════════════════════════
1341   RESTYLE v3 — dernier bloc, donc le dernier mot. Les couleurs viennent déjà
1342   des jetons ; ce qui reste, c'est la GÉOMÉTRIE de la maquette Accueil.html.
1343   ═════════════════════════════════════════════════════════════════════════ */
1344
1345/* Le champ « premium » du hero : une pilule blanche posée sur une ombre, un
1346   point vert à gauche, et le bouton arrondi COLLÉ dedans à droite. C'était un
1347   rectangle 14px avec un bouton détaché et un halo gris — la première chose
1348   que voit un visiteur, et la seule qui lui demande quelque chose. */
1349.home3 .ur{gap:0;background:var(--panel);border:1px solid var(--line);
1350  border-radius:var(--pp-r-pill);padding:6px 6px 6px 20px;
1351  box-shadow:var(--pp-sh-float);transition:border-color .18s,box-shadow .18s;
1352  flex-wrap:nowrap;align-items:center;max-width:600px;margin:0 auto}
1353.home3 .ur:hover,.home3 .ur:focus-within{border-color:var(--pp-green-soft);
1354  box-shadow:0 16px 40px rgba(18,161,80,.16)}
1355/* Le point vert de la maquette REMPLACE l'émoji globe que SiteField posait dans
1356   le champ : deux marques en tête de la même pilule, c'était une de trop — et
1357   l'émoji change de dessin d'un système à l'autre. L'émoji est retiré du
1358   composant (Home2/SiteField.tsx), le point est ici. */
1359.home3 .ur::before{content:"";width:8px;height:8px;border-radius:50%;
1360  background:var(--pp-green);flex:none;margin-right:11px}
1361.home3 .uf{border:0;box-shadow:none;background:transparent;height:auto;
1362  padding:0;border-radius:0;flex:1 1 auto;gap:0}
1363.home3 .uf:focus-within{border:0;box-shadow:none}
1364.home3 .uf.uf-err{border:0;box-shadow:none}
1365/* La pilule est blanche aussi dans la carte de clôture. L'ancien champ sombre
1366   imposait du blanc avec une spécificité supérieure : le texte saisi et le
1367   placeholder devenaient invisibles après le restyle de la pilule. */
1368.home3 .h3-repcard .uf{background:transparent;box-shadow:none}
1369.home3 .h3-repcard .uf:focus-within{background:transparent;box-shadow:none}
1370.home3 .h3-repcard .uf input{color:var(--ink);caret-color:var(--ink)}
1371.home3 .h3-repcard .uf input::placeholder{color:var(--dim);opacity:1}
1372.home3 .ur:has(.uf-err){border-color:var(--pp-red);
1373  box-shadow:0 0 0 4px rgba(229,72,77,.12)}
1374.home3 .ub{height:44px;padding:0 22px;border-radius:var(--pp-r-pill);
1375  box-shadow:var(--pp-sh-cta)}
1376.home3 .ub:hover{box-shadow:0 6px 16px rgba(18,161,80,.34)}
1377@media (max-width:520px){
1378  /* sous 520px la pilule ne peut plus tenir le bouton : il passe dessous, et
1379     la pilule redevient un champ simple. */
1380  .home3 .ur{flex-wrap:wrap;border-radius:var(--pp-r-l);padding:12px 14px;gap:10px}
1381  .home3 .ub{width:100%}
1382}
1383
1384/* Cartes : le handoff pose 14-16px pour une carte de contenu (on était à 20). */
1385.home3 .h3-card,.home3 .prc2 .price{border-radius:var(--pp-r-l)}
1386
1387/* Les rails de l'entonnoir : plus de rail monospace en capitales, un libellé
1388   aligné à droite comme dans la maquette. */
1389.home3 .h3-frail{font-size:12px;font-weight:600;color:var(--dim);
1390  text-align:right;line-height:1.4}
1391.home3 .h3-fbar{border-radius:9px}
1392
1393/* Le chapeau de section : « — Le tri », en vert, casse normale. C'était un
1394   filet de 22px suivi d'un mot en capitales espacées 10px monospace ; la
1395   maquette écrit le tiret DANS le texte, ce qui se lit du premier coup. */
1396.home3 .h3-eyeb{font-size:12px;font-weight:600;color:var(--pp-green);gap:6px}
1397.home3 .h3-eyeb::before{content:"—";width:auto;height:auto;background:none;
1398  border-radius:0;color:inherit;font-weight:600}
1399.home3 .h3s>.h3-wrap>.h3-eyeb{justify-content:center}
1400
1401/* La carte de clôture : le dégradé et le rayon de la maquette. */
1402.home3 .h3-repcard{background:linear-gradient(160deg,#101F36,#0B1626);
1403  border-radius:22px}
1404
1405/* ── la chaîne de valeur M&A (03/10) ─────────────────────────────────────────
1406   Bandeau Stan au-dessus des cinq briques, jusqu'au suivi de l'intégration ;
1407   acteurs barrés (Proplace peut s'y substituer) ou verts (Proplace les complète). */
1408.home3 .h3-ch-h2{white-space:normal}
1409@media (min-width:1000px){.home3 .h3s>.h3-wrap>.h3-ch-h2{white-space:nowrap;max-width:none;font-size:clamp(28px,2.6vw,34px)}}
1410.home3 .h3-ch-legend{display:flex;justify-content:center;gap:8px 18px;flex-wrap:wrap;margin:30px 0 22px;font-size:12.5px;color:var(--muted);font-weight:500}
1411.home3 .h3-ch-legend>span{display:inline-flex;align-items:center;gap:7px}
1412.home3 .h3-ch-cover{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:8px}
1413.home3 .h3-ch-band{grid-column:1 / -1;position:relative;height:38px}
1414.home3 .h3-ch-band::before{content:"";position:absolute;
1414left:0;right:0;top:50%;height:2px;background:var(--brand);border-radius:2px}
1415.home3 .h3-ch-band i{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:var(--brand);transform:translateY(-50%)}
1416.home3 .h3-ch-band i.l{left:0}.home3 .h3-ch-band i.r{right:0}
1417.home3 .h3-ch-band b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--pp-navy);color:#fff;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;white-space:nowrap;letter-spacing:-.01em}
1418.home3 .h3-ch{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
1419.home3 .h3-ch-brick{background:var(--panel);border:1px solid var(--pp-green-bd);border-radius:var(--pp-r-l);box-shadow:var(--surf);display:flex;flex-direction:column;min-width:0}
1420.home3 .h3-ch-brick.out{background:var(--panel2);border:1px dashed var(--line2);box-shadow:none}
1421.home3 .h3-ch-bh{padding:18px 18px 12px;border-bottom:1px solid var(--line)}
1422.home3 .h3-ch-num{font-size:12px;font-weight:600;color:var(--dim)}
1423.home3 .h3-ch-brick h3{margin:4px 0 0;font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
1424.home3 .h3-ch-obj{margin:6px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
1425.home3 .h3-ch-sec{padding:12px 18px;border-bottom:1px solid var(--line)}
1426.home3 .h3-ch-sec:last-child{border-bottom:0;padding-bottom:16px}
1427.home3 .h3-ch-lab{font-size:11.5px;font-weight:600;color:var(--dim);margin-bottom:6px}
1428.home3 .h3-ch-chips{display:flex;flex-wrap:wrap;gap:5px}
1429.home3 .h3-ch-chip{font-size:11.5px;font-weight:600;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:2px 8px;white-space:nowrap}
1430.home3 .h3-ch-chip.x{text-decoration:line-through;text-decoration-color:var(--pp-red-tx);text-decoration-thickness:1.5px;color:var(--dim)}
1431.home3 .h3-ch-chip.keep{border-color:var(--pp-green-bd);background:var(--brand-l);color:var(--pp-green-tx)}
1432.home3 .h3-ch-pb{font-size:12.5px;color:var(--muted);line-height:1.45;margin:0}
1433.home3 .h3-ch-role{font-size:13px;color:var(--ink);line-height:1.45;margin:0}
1434.home3 .h3-ch-role p{margin:0}
1435.home3 .h3-ch-role p+p{margin-top:9px}
1436.home3 .h3-ch-role b{font-weight:700}
1437.home3 .h3-ch-brick.out .h3-ch-role{color:var(--pp-ink-3)}
1438.home3 .h3-ch-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
1439.home3 .h3-ch-tag{font-size:11.5px;font-weight:700;border-radius:6px;padding:3px 8px;line-height:1.25}
1440.home3 .h3-ch-tag.r{background:var(--brand);color:#fff}
1441.home3 .h3-ch-tag.c{background:var(--brand-l);color:var(--pp-green-tx);border:1px solid var(--pp-green-bd)}
1442.home3 .h3-ch-tag.o{background:var(--panel2);color:var(--pp-ink-3);border:1px solid var(--line)}
1443.home3 .h3-ch-claim{margin:40px auto 0;text-align:center;font-size:clamp(17px,1.9vw,20px);font-weight:600;letter-spacing:-.015em;line-height:1.35;color:var(--ink);text-wrap:balance;max-width:52ch}
1444.home3 .h3-ch-claim::before{content:"";display:block;width:44px;height:3px;border-radius:2px;background:var(--brand);margin:0 auto 16px}
1445@media (min-width:1120px){.home3 .h3-ch-claim{white-space:nowrap;max-width:none}}
1446@media (max-width:980px){
1447.home3 .h3-ch-cover{display:none}
1448.home3 .h3-ch{grid-template-columns:repeat(2,minmax(0,1fr))}
1449.home3 .h3-ch-brick.out{grid-column:1 / -1}
1450}
1451@media (max-width:620px){
1452.home3 .h3-ch{grid-template-columns:1fr}
1453.home3 .h3-ch-legend{justify-content:flex-start}
1454}
1455
1456
1457@media (prefers-reduced-motion:reduce){
1458.home3 *{transition:none!important;animation:none!important}
1459}
1460`,_y={hero:{h1:"Nous trouvons les entreprises que vous devriez suivre, financer ou racheter.",leadA:"Stan est votre ",leadB:"AI Corporate Developer",leadC:". Chaque nuit, il passe en revue toutes les sociétés de votre marché, retient celles qui généreraient le plus de synergies avec vous, et écarte les autres en écrivant pourquoi. Vous recevez ",leadD:"5 à 10 décisions par mois",leadE:", chacune accompagnée d’un mémo d’investissement détaillé.",fieldLabel:"Commencez en indiquant votre site web",placeholder:"votresite.com",cta:"Découvrir mes cibles",steps:["Stan en déduit vos critères et vous rend vos dix premières cibles.","Vous les validez ensuite de vive voix avec un Corporate Developer humain : il comprend comment vous raisonnez, puis règle Stan afin qu’il raisonne comme vous."],angles:["Rachat","Prise de participation","Simple veille"]},tri:{eyeb:"Le tri",h2a:"Stan détecte, analyse et tri.",h2b:"Nous vérifions.",steps:[{rail
1460:"Votre marché",n:"~3 000",label:"sociétés pertinentes, et de nouvelles chaque jour",w:100},{rail:"Stan",n:"~245",label:"criblées chaque semaine, ~15 retenues",w:56},{rail:"Nous",n:"les 15",label:"analysées et tranchées, mémo à l’appui",w:34},{rail:"Vous",n:"~1 à 3",label:"à trancher chaque semaine, mémo détaillé à l’appui",w:20}],coverRail:"Couverture",coverValue:"~3 mois",coverLabel:"pour rattraper l’existant — ensuite, la surveillance ne s’arrête plus",pA:"Stan élimine ",pB:"94 % du travail",pC:" avant qu’il n’atteigne votre bureau. ",pD1:"Ce n’est pas une promesse : c’est notre taux de MATCH mesuré auprès de nos 10 premiers clients",pD2:" : 6 % des sociétés criblées sont retenues, et vous disposez d’un verdict et d’un mémo pour chacune.",pull:"Aucune base de données ne fait ça — elle vous donne une liste, elle ne vous dit jamais ce qu’elle a éliminé pour vous, ni ce qui va combler vos faiblesses et tirer parti de vos forces."},decision:{eyeb:"La décision",h2a:"Vous ne tranchez que sur les dossiers excellents.",h2b:"Et votre décision tient en deux boutons.",yes:"OUI",no:"NON",yesRoute:"part en « Validées » : lancer une due diligence",noRoute:"part en écartées",p:"Si vous ne tranchez pas, votre Corporate Developer regroupe les dossiers en attente et vous appelle le mardi ou le jeudi : il recueille votre avis et s’en sert pour améliorer Stan.",revueKicker:"Chaque lundi",revueTitle:"Vous recevez votre revue de deal flow, qui comprend :",rows:["toutes vos décisions OUI ou NON encore en attente ;","tous les dossiers étudiés par Stan et toutes ses décisions ;","toutes les annotations de votre Corporate Developer qui améliorent Stan ;","toutes vos décisions et annotations qui améliorent Stan ;","toute l’actualité de votre marché et de vos concurrents — levées de fonds, rachats, news."]},stan:{eyeb:"Qui est Stan",claim:["Stan travaille.","Nous vérifions.","Vous décidez."],p:"Stan est notre IA. Derrière lui, une équipe qui a déployé du capital en seed, venture, growth, LBO et M&A.",logosLbl:"Là où notre équipe a déployé du capital",logosAlt:"Partech, Ardian, Google, Mirakl, leboncoin",pull:"Ce jugement, appliqué à votre marché, toutes les nuits.",closingA:"Personne dans votre équipe ne peut couvrir tout votre marché",closingB:" — non par manque de compétence, mais par manque de bande passante."},plans:{eyeb:"Les plans",h2:"Une couverture totale. Une vitesse de traitement sur-mesure.",lead:"Stan source et évalue votre marché chaque jour dans toutes les offres. En Essai, vous lancez les analyses à la demande. En Standard et Entreprise, Stan analyse automatiquement vos cibles retenues, avec votre Corporate Developer."},reprise:{h2:"Nous trouvons les entreprises que vous devriez suivre, financer ou racheter.",pA:"Stan est votre AI Corporate Developer. Indiquez votre site : il en déduit vos critères et vous rend vos dix premières cibles. Vous les validez de vive voix avec un Corporate Developer humain, qui apprend à raisonner comme vous et paramètre Stan pour en faire ",pB:"votre avantage concurrentiel décisif",pC:".",placeholder:"votresite.com",cta:"Découvrir mes cibles"},chaine:{eyeb:"La chaîne de valeur M&A, de la stratégie à la signature",h2:"Un seul moteur pour sourcer, trier, approcher et auditer",legend:{x:"Proplace peut s’y substituer",keep:"Proplace le complète (connexion API, données, encadrement)",out:"Hors périmètre",actor:"Acteur"},cover:"Stan · votre corporate developer IA, de la thèse au suivi",brick:"Brique",today:"Aujourd’hui",problem:"Le problème",us:"Proplace",bricks:[{title:"Thèse & radars",obj:"Comprendre l’acquéreur, puis viser à trouver 100 % des cibles potentielles.",actors:[["Pitchbook","keep"],["Grata","keep"],["Crunchbase","keep"],["Dealroom","keep"],["Pappers","keep"],["Harmonic","keep"],["SourceScrub","keep"]],pb:"La donnée est inerte. Ces outils ignorent l’ADN et la stratégie de l’acquéreur.",role:"Nous analysons **votre** entreprise pour écrire votre **stratégie d’acquisition ou d’investissement**. Elle pilote **22 moteur
1460s de sourcing**, complétés par vos outils connectés par **API** : aucune cible ne passe à côté.",tags:[["c","Complète : stratégie d’acquisition / d’investissement"],["r","Se substitue : aux mois de ciblage manuel"]]},{title:"Sourcing IA & verdict",obj:"Filtrer le bruit, analyser, décider.",actors:[["Banques d’affaires","x"],["Boutiques M&A","x"],["Analystes internes","x"]],pb:"Lents, chers, biaisés. Ils couvrent 5 % du marché et apportent des deals déjà publics.",role:"Chaque nuit, Stan passe des milliers de sociétés au crible de votre thèse : **MATCH** ou **NO MATCH**, avec un **mémo éclair** justifié. Vous jugez, **Stan apprend** vos biais.",tags:[["r","Se substitue : aux mandats d’origination, aux équipes d’analystes mobilisées sur le tri"]]},{title:"Deal flow",obj:"Approcher les cibles validées et tenir le pipeline.",actors:[["Excel","x"],["Affinity","x"],["HubSpot","x"],["Salesforce","x"]],pb:"Le CRM est une coquille vide, chronophage à tenir à jour.",role:"Chaque dossier analysé arrive avec son **mémo** à la bonne étape de votre tunnel. Pour une cible validée, Stan **rédige l’approche** du dirigeant et **suit les relances**.",tags:[["r","Se substitue : aux CRM passifs"]]},{title:"Due diligence & closing",obj:"Préparer la DD, les accords et le closing.",actors:[["Avocats d’affaires","keep"],["Auditeurs Big 4","keep"],["Datasite","keep"]],pb:"Pièces, contrôles et réserves se dispersent entre les audits, la négociation et le comité.",role:"Stan rédige **NDA, LOI ou term sheet** depuis le dossier, selon votre profil : corporate, VC, growth ou LBO. Une **checklist** guide vos due diligences jusqu’au **closing** ; chaque décision garde ses preuves, vous et vos conseils validez.",tags:[["c","Complète : avocats, auditeurs et comité"],["r","Se substitue : au suivi dispersé des vérifications"]]},{title:"Intégration et suivi (PMI)",obj:"Réussir les 100 premiers jours et suivre l’investissement.",actors:[["BCG","keep"],["Bain","keep"],["Équipes internes","keep"]],pb:"Les engagements du deal se perdent au passage aux équipes opérationnelles.",role:"Stan transforme les engagements du deal en **plan 100 jours** : actions, responsables, échéances. Vos **reportings** (board, LP) s’ajoutent au mémo pour suivre l’écart avec la stratégie de départ.",tags:[["c","Complète : les équipes et conseils d’intégration"],["r","Se substitue : aux plans et reportings éparpillés"]]}],claim:"Toute l’intelligence de votre croissance externe tient sur un seul moteur, qui apprend de vos décisions."}},Ty={hero:{h1:"We find the companies you should track, fund or acquire.",leadA:"Stan is your ",leadB:"AI Corporate Developer",leadC:". Every night, he reviews every company on your market, keeps the ones that would create the most synergies with you, and discards the others — writing down why. You get ",leadD:"5 to 10 decisions a month",leadE:", each one backed by a detailed investment memo.",fieldLabel:"Start by giving us your website",placeholder:"yourcompany.com",cta:"See my targets",steps:["Stan derives your criteria and hands you your first ten targets.","You then validate them out loud with a human Corporate Developer: he understands how you reason, then tunes Stan so he reasons like you."],angles:["Acquisition","Minority stake","Simple watch"]},tri:{eyeb:"The sorting",h2a:"Stan detects, analyses and sorts.",h2b:"We verify.",steps:[{rail
1460:"Your market",n:"~3,000",label:"relevant companies, and new ones every day",w:100},{rail:"Stan",n:"~245",label:"screened every week, ~15 kept",w:56},{rail:"Us",n:"those 15",label:"analysed and decided on, with a memo",w:34},{rail:"You",n:"~1 to 3",label:"to decide on every week, with a detailed memo",w:20}],coverRail:"Coverage",coverValue:"~3 months",coverLabel:"to catch up on what exists — after that, the watch never stops",pA:"Stan eliminates ",pB:"94% of the work",pC:" before it reaches your desk. ",pD1:"That is not a promise: it is our MATCH rate measured across our first 10 clients",pD2:" — 6% of screened companies are kept, and you get a verdict and a memo for each of them.",pull:"No database does that — it gives you a list, it never tells you what it eliminated for you, nor what will fill your weaknesses and build on your strengths."},decision:{eyeb:"The decision",h2a:"You only decide on the excellent files.",h2b:"And your decision fits in two buttons.",yes:"YES",no:"NO",yesRoute:"goes to “Validated”: start due diligence",noRoute:"goes to discarded",p:"If you don’t decide, your Corporate Developer groups the pending files and calls you on Tuesday or Thursday: he collects your view and uses it to improve Stan.",revueKicker:"Every Monday",revueTitle:"You receive your deal flow review, which includes:",rows:["all your YES or NO decisions still pending;","every file studied by Stan and all of his decisions;","all your Corporate Developer’s annotations that improve Stan;","all your decisions and annotations that improve Stan;","all the news of your market and your competitors — fundraises, acquisitions, news."]},stan:{eyeb:"Who is Stan",claim:["Stan works.","We check.","You decide."],p:"Stan is our AI. Behind him, a team that has deployed capital in seed, venture, growth, LBO and M&A.",logosLbl:"Where our team has deployed capital",logosAlt:"Partech, Ardian, Google, Mirakl, leboncoin",pull:"That judgment, applied to your market, every single night.",closingA:"Nobody on your team can cover your entire market",closingB:" — not for lack of skill, but for lack of bandwidth."},plans:{eyeb:"The plans",h2:"Total coverage. A processing speed tailored to you.",lead:"Stan sources and evaluates your market every day in every plan. In Trial, you launch analyses on demand. In Standard and Enterprise, Stan automatically analyses retained targets, with your Corporate Developer."},reprise:{h2:"We find the companies you should track, fund or acquire.",pA:"Stan is your AI Corporate Developer. Give us your site: he derives your criteria and hands you your first ten targets. You validate them out loud with a human Corporate Developer, who learns to reason like you and tunes Stan into ",pB:"your decisive competitive edge",pC:".",placeholder:"yourcompany.com",cta:"See my targets"},chaine:{eyeb:"The M&A value chain, from strategy to signing",h2:"One engine to source, screen, approach and audit",legend:{x:"Proplace can replace it",keep:"Proplace complements it (API connection, data, oversight)",out:"Out of scope",actor:"Player"},cover:"Stan · your AI corporate developer, from thesis to follow-up",brick:"Block",today:"Today",problem:"The problem",us:"Proplace",bricks:[{title:"Thesis & radars",obj:"Understand the acquirer, then aim to find 100% of potential targets.",actors:[["Pitchbook","keep"],["Grata","keep"],["Crunchbase","keep"],["Dealroom","keep"],["Pappers","keep"],["Harmonic","keep"],["SourceScrub","keep"]],pb:"The data is inert. These tools ignore the acquirer’s DNA and strategy.",role:"We analyse **your** company to write your **acquisition or investment strategy**. It drives **22 sourcing engines**, plus your tools connected by **API**: no target slips through.",tags:[["c","Complements: your acquisition / investment strategy"],["r","Replaces: months of manual targeting"]]},{title:"AI sourcing & verdict",obj:"Filter the noise, analyse, decide.",actors:[["Investment banks","x"],["M&A boutiques","x"],["In-house analysts","x"]],pb:"Slow, expensive, biased. They cover 5% of the market and bring deals that are already public.",role:"Every night, Stan screens thous
1460ands of companies against your thesis: **MATCH** or **NO MATCH**, with a justified **instant memo**. You judge, **Stan learns** your biases.",tags:[["r","Replaces: origination mandates, analyst teams tied up in screening"]]},{title:"Deal flow",obj:"Approach validated targets and keep the pipeline moving.",actors:[["Excel","x"],["Affinity","x"],["HubSpot","x"],["Salesforce","x"]],pb:"The CRM is an empty shell, time-consuming to keep up to date.",role:"Every analysed file lands at the right stage of your funnel with its **memo**. For a validated target, Stan **drafts the outreach** to the CEO and **tracks follow-ups**.",tags:[["r","Replaces: passive CRMs"]]},{title:"Due diligence & closing",obj:"Prepare DD, agreements and closing.",actors:[["Corporate lawyers","keep"],["Big 4 auditors","keep"],["Datasite","keep"]],pb:"Documents, checks and outstanding conditions get scattered across audits, negotiations and committee reviews.",role:"Stan drafts the **NDA, LOI or term sheet** from the file, tailored to your profile: corporate, VC, growth or LBO. A **checklist** guides your due diligence to **closing**; every decision keeps its evidence, and you and your advisers approve.",tags:[["c","Complements: lawyers, auditors and the committee"],["r","Replaces: scattered tracking of checks"]]},{title:"Integration & follow-up (PMI)",obj:"Deliver the first 100 days and monitor the investment.",actors:[["BCG","keep"],["Bain","keep"],["In-house teams","keep"]],pb:"Deal commitments get lost in the handover to operating teams.",role:"Stan turns the deal’s commitments into a **100-day plan**: actions, owners, deadlines. Your **reporting** (board, LPs) is added to the memo to track gaps against the original strategy.",tags:[["c","Complements: 
1460integration teams and advisers"],["r","Replaces: scattered plans and reports"]]}],claim:"All the intelligence behind your external growth runs on a single engine that learns from your decisions."}},Zr={en:Ty,fr:_y},Uh=t=>t.trim().toLowerCase().replace(/^https?:\/\//,"").replace(/^www\./,"").replace(/\/.*$/,"").replace(/\s+/g,""),qy={fr:"Indiquez un site du type votresite.com",en:"Enter a site like yoursite.com"};function ta({placeholder:t,cta:n}){const{lang:r}=ae(),i=m.useRef(null),[s,a]=m.useState(""),[o,c]=m.useState([]),[l,d]=m.useState(!1),[p,u]=m.useState(!1),[g,f]=m.useState(!1),[L,v]=m.useState(""),[y,h]=m.useState(Tr),b=w=>{a(w),u(!1);const S=Uh(w);if(S.length<2||S.includes(".")){c([]);return}c([".fr",".com",".io"].map(E=>S+E))},x=w=>{var S;a(w),c([]),u(!1),(S=i.current)==null||S.focus()},A=()=>{var S;const w=Uh(s);if(!w||!w.includes(".")){(S=i.current)==null||S.focus(),d(!0),u(!0),window.setTimeout(()=>d(!1),450);return}v(w),u(!1);try{const E=new URL(window.location.href);E.searchParams.set("site",w),window.history.replaceState(null,"",E)}catch{}f(!0)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"ur",children:[e.jsx("span",{className:`uf${p?" uf-err":""}`,children:e.jsx("input",{ref:i,value:s,placeholder:t,autoComplete:"off",spellCheck:!1,className:l?"shake":void 0,"aria-invalid":p||void 0,onChange:w=>b(w.target.value),onKeyDown:w=>{w.key==="Enter"&&A()}})}),e.jsx("button",{type:"button",className:"ub",onClick:A,children:n})]}),p&&e.jsx("p",{className:"uf-err-msg",role:"alert",children:qy[r]}),e.jsx("div",{className:"usug",children:o.map(w=>e.jsx("button",{type:"button",className:"usg",onClick:()=>x(w),children:w},w))}),e.jsx(Np,{lang:r,variant:"hero",value:y,onChange:h}),g&&e.jsx(Qr,{onClose:()=>f(!1),initialWebsite:L,initialExtras:y})]})}const Ux="h3-start";function Fy(){const t=document.getElementById(Ux);if(!t)return;t.scrollIntoView({behavior:"smooth",block:"center"});const n=t.querySelector("input");window.setTimeout(()=>{try{n==null||n.focus({preventScroll:!0})}catch{}},420)}function Vx(){const{lang:t}=ae(),n=Zr[t].hero;return e.jsx("section",{className:"h3s h3-hero",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("h1",{className:"h3-h1",children:n.h1}),e.jsxs("p",{className:"h3-lead",children:[n.leadA,e.jsx("b",{children:n.leadB}),n.leadC,e.jsx("b",{children:n.leadD}),n.leadE]}),e.jsxs("div",{className:"h3-field",id:Ux,children:[e.jsx("div",{className:"h3-fieldlbl",children:n.fieldLabel}),e.jsx(ta,{placeholder:n.placeholder,cta:n.cta})]}),e.jsx("div",{className:"h3-steps",children:n.steps.map((r,i)=>e.jsxs("div",{className:"h3-step",children:[e.jsx("b",{children:i+1}),e.jsx("p",{children:r})]},r))}),e.jsx("div",{className:"h3-angles",children:n.angles.map(r=>e.jsx("span",{className:"h3-angle",children:r},r))}),e.jsxs("a",{className:"pp-tutorial-hero-link",href:"#tutoriel",children:[t==="fr"?"Voir le cockpit Standard en 10 étapes":"Explore the Standard cockpit in 10 chapters",e.jsx("span",{"aria-hidden":"true",children:" ↓"})]})]})})}function Hx(){const{lang:t}=ae(),n=Zr[t].tri;return e.jsx("section",{className:"h3s",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:n.eyeb}),e.jsxs("h2",{className:"h3-h2",children:[e.jsx("span",{className:"soft",children:n.h2a})," ",n.h2b]}),e.jsxs("div",{className:"h3-funnel",children:[n.steps.map(r=>e.jsxs("div",{className:"h3-fr",children:[e.jsx("div",{className:"h3-frail",children:r.rail}),e.jsx("div",{className:"h3-fbar",style:{width:`${r.w}%`},children:r.n}),e.jsx("div",{className:"h3-flabel",children:r.label})]},r.n)),e.jsxs("div",{className:"h3-fcover",children:[e.jsx("div",{className:"h3-frail",children:n.coverRail}),e.jsx("div",{className:"h3-fcval",children:e.jsx("b",{children:n.coverValue})}),e.jsx("div",{className:"h3-flabel",children:n.coverLabel})]})]}),e.jsxs("p",{className:"h3-p h3-tri-p",children:[n.pA,e.jsx("b",{children:n.pB}),n.pC]}),e.jsxs("p",{className:"h3-tri-note",children:[n.pD1,n.pD2]}),e.jsx("p",{className:"h3-pull h3-tri-pull",children:n.pull})]})})}const Yx={fill:"none",stroke:"currentColor",strokeWidth:3.2,strokeLinecap:"round",strokeLinejoin:"round"},Oy=()=>e.jsx("svg",{viewBox:"0 0 24 24",width:"19",height:"19","aria-hidden":"true",...Yx,children:e.jsx("path",{d:"M4 12.6 9.4 18 20 6.6"})}),My=()=>e.jsx("svg",{viewBox:"0 0 24 24",width:"19",height:"19","aria-hidden":"true",...Yx,children:e.jsx("path",{d:"M6.5 6.5 17.5 17.5M17.5 6.5 6.5 17.5"})});function Gx(){const{lang:t}=ae(),n=Zr[t].decision;return e.jsx("section",{className:"h3s",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:n.eyeb}),e.jsxs("h2",{className:"h3-h2",children:[e.jsx("span",{className:"soft",children:n.h2a})," ",n.h2b]}),e.jsxs("div",{className:"h3-dec",children:[e.jsxs("div",{className:"h3-card",children:[e.jsxs("div",{className:"h3-yn","aria-hidden":"true",children:[e.jsxs("div",{className:"h3-btn y",children:[e.jsx(Oy,{}),n.yes]}),e.jsxs("div",{className:"h3-btn n",children:[e.jsx(My,{}),n.no]})]}),e.jsxs("div",{className:"h3-route",children:[e.jsx("span",{children:n.yesRoute}),e.jsx("span",{children:n.noRoute})]}),e.jsx("p",{className:"h3-decnote",children:n.p}
1460)]}),e.jsxs("div",{className:"h3-card",children:[e.jsxs("div",{className:"h3-revh",children:[e.jsx("span",{className:"h3-revk",children:n.revueKicker}),e.jsx("span",{className:"h3-revt",children:n.revueTitle})]}),n.rows.map(r=>e.jsx("p",{className:"h3-revr",children:r},r))]})]})]})})}function Ry({text:t}){return e.jsx(e.Fragment,{children:t.split("**").map((n,r)=>r%2?e.jsx("b",{children:n},r):e.jsx(m.Fragment,{children:n},r))})}function Py(){const{lang:t}=ae(),n=Zr[t].chaine;return e.jsx("section",{className:"h3s","aria-labelledby":"h3-ch-title",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:n.eyeb}),e.jsx("h2",{className:"h3-h2 h3-ch-h2",id:"h3-ch-title",children:n.h2}),e.jsxs("div",{className:"h3-ch-legend",children:[e.jsxs("span",{children:[e.jsx("span",{className:"h3-ch-chip x",children:n.legend.actor}),n.legend.x]}),e.jsxs("span",{children:[e.jsx("span",{className:"h3-ch-chip keep",children:n.legend.actor}),n.legend.keep]}),n.bricks.some(r=>r.actors.some(([,i])=>i==="out"))&&e.jsxs("span",{children:[e.jsx("span",{className:"h3-ch-chip",children:n.legend.actor}),n.legend.out]})]}),e.jsx("div",{className:"h3-ch-cover","aria-hidden":"true",children:e.jsxs("div",{className:"h3-ch-band",children:[e.jsx("i",{className:"l"}),e.jsx("b",{children:n.cover}),e.jsx("i",{className:"r"})]})}),e.jsx("div",{className:"h3-ch",children:n.bricks.map((r,i)=>{const s=r.tags.every(([a])=>a==="o");return e.jsxs("article",{className:"h3-ch-brick"+(s?" out":""),children:[e.jsxs("div",{className:"h3-ch-bh",children:[e.jsxs("div",{className:"h3-ch-num",children:[n.brick," ",i+1]}),e.jsx("h3",{children:r.title}),e.jsx("p",{className:"h3-ch-obj",children:r.obj})]}),e.jsxs("div",{className:"h3-ch-sec",children:[e.jsx("div",{className:"h3-ch-lab",children:n.today}),e.jsx("div",{className:"h3-ch-chips",children:r.actors.map(([a,o])=>e.jsx("span",{className:"h3-ch-chip"+(o==="out"?"":" "+o),children:a},a))})]}),e.jsxs("div",{className:"h3-ch-sec",children:[e.jsx("div",{className:"h3-ch-lab",children:n.problem}),e.jsx("p",{className:"h3-ch-pb",children:r.pb})]}),e.jsxs("div",{className:"h3-ch-sec",children:[e.jsx("div",{className:"h3-ch-lab",children:n.us}),e.jsx("div",{className:"h3-ch-role",children:r.role.split(`
1461
1462`).map((a,o)=>e.jsx("p",{children:e.jsx(Ry,{text:a})},o))}),e.jsx("div",{className:"h3-ch-tags",children:r.tags.map(([a,o])=>e.jsx("span",{className:"h3-ch-tag "+a,children:o},o))})]})]},r.title)})}),e.jsx("p",{className:"h3-ch-claim",children:n.claim})]})})}function Wx(){const{lang:t}=ae(),n=Zr[t].stan;return e.jsx("section",{className:"h3s tint center",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:n.eyeb}),e.jsx("h2",{className:"h3-h2 h3-trip",children:n.claim.map(r=>e.jsx("span",{children:r},r))}),e.jsx("p",{className:"h3-lead h3-stan-p",children:n.p}),e.jsxs("div",{className:"h3-logoswrap",children:[e.jsx("div",{className:"h3-logoslbl",children:n.logosLbl}),e.jsx("img",{className:"h3-logos",src:"/trust-logos.png",alt:n.logosAlt,loading:"lazy"})]}),e.jsx("p",{className:"h3-pull h3-stan-pull",children:n.pull}),e.jsxs("p",{className:"h3-closing",children:[e.jsx("b",{children:n.closingA}),n.closingB]})]})})}const Iy={cards:[{name:"Essai",amount:"0 €",per:"Sans carte bancaire, sans engagement",gauge:{label:"ANALYSE DE STAN SUR LES CIBLES RETENUES",width:"8%",value:"à la demande"},li:[[{t:"Donnez votre site : Stan étudie toute votre présence en ligne, déduit vos critères et lance le sourcing"}],[{t:"Votre marché est criblé sur autant d’angles que Stan vous en suggère, pour un deal flow entièrement personnalisé"}],[{t:"Stan source et étudie chaque jour des centaines de sociétés afin de les retenir ou les écarter"}],[{t:"Vos premières cibles, "},{t:"retenues",k:"vok"},{t:" ou "},{t:"écartées",k:"vno"},{t:", avec une évaluation précise"}],[{t:"3 crédits offerts chaque jour pour lancer l’analyse d’une cible à la demande : mémo éclair, 1 crédit ; mémo détaillé, 3 crédits"}]],cta:"Découvrir mes cibles",action:"trial"},{name:"Standard",amount:"25 000 €",sYear:"/ an",per:"Facture annuelle, virement bancaire",fine:{pre:"Abonnement annuel — ",b:"25 000 € HT",l2:"virement sur facture Stripe (IBAN)",l3:"reconduction automatique chaque année · tarifs HT"},gauge:{label:"STAN ANALYSE TOUTES LES CIBLES RETENUES DANS UN DÉLAI MAXIMUM DE",width:"60%",value:"7 jours"},li:[[{t:"Tout l’Essai, plus :",k:"b"}],[{t:"Chaque jour, Stan analyse automatiquement une partie de vos cibles retenues et rend un verdict pour chacune"}],[{t:"Stan lance des mémos sur toutes celles retenues et donne son verdict argumenté sous 7 jours"}],[{t:"Votre Corporate Developer apprend votre raisonnement et règle Stan afin qu’il raisonne comme vous"}],[{t:"Votre Corporate Developer les vérifie et lance les mémos détaillés sur toutes les meilleures"}],[{t:"Vous tranchez OUI (lancer une due diligence) ou NON sur ces meilleures, mémo détaillé à l’appui"}],[{t:"Chaque OUI débloque une checklist de due diligence qui vous accompagne jusqu’au closing"}],[{t:"Chaque lundi, une revue de deal flow complète par email : les décisions à trancher qu’il nous manque, les décisions autonomes de Stan, les annotations de votre Corporate Developer, les améliorations de Stan, l’actualité qui répond à vos enjeux"}
1462]],cta:"Planifier votre appel stratégique",action:"rdv"},{name:"Entreprise",amount:"50 000 €",sYear:"/ an",per:"Facture annuelle, virement bancaire",fine:{pre:"Abonnement annuel — ",b:"50 000 € HT",l2:"virement sur facture Stripe (IBAN)",l3:"reconduction automatique chaque année · tarifs HT"},gauge:{label:"STAN ANALYSE TOUTES LES CIBLES RETENUES DANS UN DÉLAI MAXIMUM DE",width:"80%",value:"24 heures"},li:[[{t:"Tout le Standard, plus :",k:"b"}],[{t:"Stan lance des mémos sur toutes celles retenues et donne son verdict argumenté sous 24 heures"}],[{t:"Aide à l’intégration de Stan dans vos workflows : ajouter les cibles à votre CRM, évaluer vos dossiers actuels en masse"}],[{t:"Aide à la personnalisation parfaite : mémos, séquences d’approche aux CEO…"}],[{t:"Priorité de découverte : quand une société correspond à plusieurs de nos clients, vous la voyez en premier"}]],cta:"Planifier votre appel stratégique",action:"rdv"}],under:{ment:"Tarifs HT. Reconduction tacite à l’issue des 12 mois, résiliable avec 3 mois de préavis. Indexation annuelle applicable."}},Dy={cards:[{name:"Trial",amount:"0 €",per:"No credit card, no commitment",gauge:{label:"STAN’S ANALYSIS OF RETAINED TARGETS",width:"8%",value:"on demand"},li:[[{t:"Give your site: Stan studies your entire online presence, derives your criteria and starts the sourcing"}],[{t:"Your market screened on as many angles as Stan suggests, for a fully personalised deal flow"}],[{t:"Stan sources and studies hundreds of companies every day, to keep or discard them"}],[{t:"Your first targets, "},{t:"kept",k:"vok"},{t:" or "},{t:"discarded",k:"vno"},{t:", with a precise evaluation"}],[{t:"3 free credits every day to analyse a target on demand: instant memo, 1 credit; detailed memo, 3 credits"}]],cta:"See my targets",action:"trial"},{name:"Standard",amount:"25 000 €",sYear:"/ year",per:"Annual invoice, bank transfer",fine:{pre:"Yearly subscription — ",b:"€25,000 excl. VAT",l2:"wire transfer on a Stripe invoice (IBAN)",l3:"automatic renewal each year · prices excl. VAT"},gauge:{label:"STAN ANALYSES ALL RETAINED TARGETS WITHIN A MAXIMUM OF",width:"60%",value:"7 days"},li:[[{t:"Everything in Trial, plus:",k:"b"}],[{t:"Every day, Stan automatically analyses a portion of your retained targets and gives a verdict on each"}],[{t:"Stan writes a memo on every kept company and gives its reasoned verdict within 7 days"}],[{t:"Your Corporate Developer learns how you reason and tunes Stan to reason like you"}],[{t:"Your Corporate Developer checks them and launches the detailed memos on the very best ones"}],[{t:"You decide YES (start due diligence) or NO on those best ones, with a detailed memo"}],[{t:"Every YES unlocks a due diligence checklist to guide you through to closing"}],[{t:"Every Monday, a full deal flow review by email: the decisions we are still missing from you, Stan’s autonomous decisions, your Corporate Developer’s annotations, Stan’s improvements, and the news that speaks to your priorities"}]],cta:"Book your strategy call",action:"rdv"},{name:"Enterprise",amount:"50 000 €",sYear:"/ year",per:"Annual invoice, bank transfer",fine:{pre:"Yearly subscription — ",b:"€50,000 excl. VAT",l2:"wire transfer on a Stripe invoice (IBAN)",l3:"automatic renewal each year · prices excl. VAT"},gauge:{label:"STAN ANALYSES ALL RETAINED TARGETS WITHIN A MAXIMUM OF",width:"80%",value:"24 hours"},li:[[{t:"Everything in Standard, plus:",k:"b"}],[{t:"Stan writes a memo on every kept company and gives its reasoned verdict within 24 hours"}],[{t:"Help plugging Stan into your workflows: push targets to your CRM, evaluate your current files in bulk"}],[{t:"Help with perfect personalisation: memos, outreach sequences to CEOs…"}],[{t:"Discovery priority: when a company matches several of our clients, you see it first"}]],cta:"Book your strategy call",action:"rdv"}],under:{ment:"Prices excl. VAT. Tacit renewal at the end of the 12 months, cancellable with 3 months’ notice. Annual indexation applicable."}},zy={en:Dy,fr:Iy},By={standard:{year:"25 000 €"},enterprise:{year:"50 000 €"}};function Uy({seg:t}){return t.k==="b"?e.jsx("b",{children:t.t}):t.k?e.jsx("span",{className:t.k,children:t.t}):e.jsx(e.Fragment,{children:t.t})}function Vy(t){const n=t.toLowerCase();return n.includes("essai")||n.includes("trial")||n==="free"?"free":n.includes("standard")?"standard":n.includes("entreprise")||n.includes("enterprise")?"enterprise":null}function Vh({plan:t,busy:n,fr:r,sepa:i,onClick:s,onYearly:a}){const o=By[t],c=t==="standard"?"Standard":r?"Entreprise":"Enterprise",l=t==="standard"?"std":"ent";return e.jsxs("div",{className:"pay-wrap",children:[e.jsxs("button",{type:"button",className:`pay ${l}`,disabled:n,onClick:a||s,children:[e.jsx("em",{children:n?r?"Ouverture…":"Opening…":c}),e.jsx("span",{children:r?"Abonnement annuel · virement":"Yearly subscription · bank transfer"}),e.jsx("strong",{children:r?`Payer ${o.year} →`:`Pay ${o.year} →`})]}),e.jsx("p",{className:"sepa",children:r?"Facture annuelle Stripe, IBAN à créditer. Une nouvelle facture part automatiquement chaque année."
1462:"Yearly Stripe invoice with the IBAN to credit. A new invoice is issued automatically each year."})]})}function hl({context:t,onTrialCta:n,onRdvCta:r,copy:i,currentPlan:s,accountExtras:a}){const{lang:o}=ae(),c=o==="fr",l=(i??zy)[o],d=c?"Votre offre":"Your plan",p=c?"Échanger avec Alexandre":"Talk with Alexandre",u=c?"Carte bancaire ou prélèvement SEPA automatique.":"Card or automatic SEPA direct debit.";return e.jsxs("div",{className:"prc2","data-context":t,children:[e.jsx("style",{children:Hy}),e.jsx("div",{className:"prices",children:l.cards.map(g=>{const f=Vy(g.name),L=!!(s&&f&&s===f),v=t==="account"&&f==="standard"&&s!=="standard"&&s!=="enterprise"&&!!(a!=null&&a.onPay),y=t==="account"&&f==="enterprise"&&s!=="enterprise"&&!!(a!=null&&a.onPay),h=t==="account"&&!(a!=null&&a.hideRdv)&&(f==="standard"||f==="enterprise"),b=t==="account"&&f==="free"&&s==="free"&&(a==null?void 0:a.packs);return e.jsxs("div",{className:(g.hi||L?"price hi":"price")+(L?" current":""),children:[(L?d:g.badge)&&e.jsx("span",{className:"badge",children:L?d:g.badge}),e.jsxs("div",{className:"phead",children:[e.jsx("div",{className:"t",children:g.name}),e.jsxs("div",{className:"p",children:[g.amount,g.sYear?e.jsxs(e.Fragment,{children:[" ",e.jsx("s",{children:g.sYear})]}):null]}),e.jsx("div",{className:"per",children:g.per}),g.fine&&e.jsxs("div",{className:"fine",children:[g.fine.pre,e.jsx("b",{children:g.fine.b}),e.jsx("br",{}),g.fine.l2,e.jsx("br",{}),g.fine.l3]})]}),e.jsxs("div",{className:"q2",children:[e.jsx("span",{className:"q2l",children:g.gauge.label}),e.jsx("span",{className:"q2b",children:e.jsx("i",{style:{width:g.gauge.width}})}),e.jsx("b",{children:g.gauge.value}),g.gauge.note&&e.jsx("span",{className:"q2t",children:g.gauge.note})]}),e.jsx("ul",{children:g.li.map(x=>e.jsx("li",{children:x.map((A,w)=>e.jsx(Uy,{seg:A},w))},x.map(A=>A.t).join("")))}),t==="account"?e.jsxs("div",{className:"acct-cta",children:[b,v&&e.jsx(Vh,{plan:"standard",busy:!!(a!=null&&a.payBusy),fr:c,sepa:u,onClick:()=>{var x;return(x=a==null?void 0:a.onPay)==null?void 0:x.call(a,"standard")},onYearly:()=>{var x;return(x=a==null?void 0:a.onPay)==null?void 0:x.call(a,"standard","year")}}),y&&e.jsx(Vh,{plan:"enterprise",busy:!!(a!=null&&a.payBusy),fr:c,sepa:u,onClick:()=>{var x;return(x=a==null?void 0:a.onPay)==null?void 0:x.call(a,"enterprise")},onYearly:()=>{var x;return(x=a==null?void 0:a.onPay)==null?void 0:x.call(a,"enterprise","year")}}),h&&e.jsx("button",{type:"button",className:"rdv",onClick:r,children:p}),f==="free"&&(a==null?void 0:a.creditsLine)&&e.jsxs("p",{className:"cred-foot",children:[a.creditsLine,a.creditsSub?e.jsx("span",{children:a.creditsSub}):null]})]}):e.jsx("button",{onClick:g.action==="trial"?n:r,children:g.cta})]},g.name)})}),e.jsxs("div",{className:"under",children:[l.under.b&&e.jsx("b",{children:l.under.b}),l.under.rest,e.jsx("div",{className:"ment",children:l.under.ment})]})]})}const Hy=`
1463/* Autonomie hors .home2 (page Abonnement) : les variables du proto redéclarées
1464   sur .prc2 — mêmes valeurs que le scope .home2, donc sans effet quand la
1465   grille est montée dans la home. */
1466.prc2{
1467  --brand:var(--pp-green); --brand-d:var(--pp-green-h); --brand-l:var(--pp-green-bg); --red:var(--pp-red);
1468  --panel:var(--pp-bg); --panel2:var(--pp-bg-zone); --panel3:var(--pp-bg-page);
1469  --line:var(--pp-line); --line2:var(--pp-line-dash);
1470  --ink:var(--pp-ink); --muted:var(--pp-ink-2); --dim:var(--pp-ink-4);
1471  --r:10px; --rs:8px; --ra:var(--pp-r-s); --rb:var(--pp-r-l);
1472  --mono:var(--pp-body);
1473  --body:var(--pp-body);
1474  font-family:var(--body);line-height:1.45;color:var(--ink);
1475}
1476.prc2,.prc2 *{box-sizing:border-box}
1477.prc2 button{font-family:inherit}
1478/* ---- tokens du proto (l.92-104), re-préfixés .prc2, ordre source préservé ---- */
1479.prc2 .prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;margin-top:26px}
1480.prc2 .price{background:var(--panel);border:1px solid var(--line);border-radius:var(--rb);padding:22px}
1481.prc2 .price.hi{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
1482.prc2 .price .t{font-size:15px;font-weight:700}
1483.prc2 .price .p{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:6px 0 3px}
1484.prc2 .price .p s{text-decoration:none;font-size:12px;font-weight:600;color:var(--muted)}
1485.prc2 .price .d{font-size:13px;color:var(--muted);margin-bottom:14px}
1486.prc2 .price ul{list-style:none;margin:0 0 16px;padding:0}
1487.prc2 .price li{position:relative;padding-left:20px;font-size:13px;color:var(--muted);margin-bottom:8px;line-height:1.45}
1488.prc2 .price li::before{content:"✓";position:absolute;
1488left:0;color:var(--brand);font-weight:700}
1489.prc2 .price button{width:100%;border:0;border-radius:var(--ra);padding:12px;font-size:13.5px;font-weight:700;cursor:pointer;
1490  background:var(--ink);color:#fff}
1491.prc2 .price.hi button{background:var(--brand)}
1492/* ---- (l.128-138) ---- */
1493.prc2 .price{position:relative}
1494.prc2 .price .badge{position:absolute;top:-11px;left:22px;background:var(--brand);color:#fff;border-radius:99px;
1495  padding:3px 11px;font-size:10.5px;font-weight:700}
1496.prc2 .price .p s{text-decoration:none;font-size:13px;font-weight:600;color:var(--muted)}
1497.prc2 .price .per{font-size:12.5px;color:var(--muted);margin-bottom:8px}
1498.prc2 .price .fine{font-size:11.5px;color:var(--dim);line-height:1.6;border-left:2px solid var(--line);
1499  padding-left:10px;margin-bottom:12px}
1500.prc2 .price .fine b{color:var(--ink)}
1501.prc2 .under{margin-top:22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--rb);padding:16px 18px;font-size:13.5px;color:var(--muted)}
1502.prc2 .under b{color:var(--ink)}
1503.prc2 .under .ment{font-size:11.5px;color:var(--dim);margin-top:10px}
1504/* ---- (l.1471-1479) ---- */
1505.prc2 .prices{gap:20px;margin-top:30px}
1506.prc2 .price{padding:26px}
1507.prc2 .price .t{font-size:16px}
1508.prc2 .price .p{font-size:30px;margin:8px 0 3px}
1509.prc2 .price li{font-size:13.5px;margin-bottom:9px}
1510.prc2 .price .queue{background:var(--panel2);border-radius:var(--r);padding:10px 12px;font-size:12.5px;
1511  color:var(--muted);margin:12px 0 14px;border-left:3px solid var(--line2)}
1512.prc2 .price .queue b{color:var(--ink)}
1513.prc2 .price.hi .queue{border-left-color:var(--brand)}
1514/* ---- file d'attente, en jauge (l.1541-1546) ---- */
1515.prc2 .q2{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;margin-bottom:14px}
1516.prc2 .q2l{display:block;font-family:var(--mono);font-size:12px;color:var(--dim);margin-bottom:7px;font-weight:600;font-variant-numeric:tabular-nums}
1517.prc2 .q2b{display:block;height:6px;background:var(--panel3);border-radius:99px;overflow:hidden;margin-bottom:8px}
1518.prc2 .q2b i{display:block;height:100%;background:var(--brand);border-radius:99px}
1519.prc2 .q2 b{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
1520.prc2 .q2t{display:block;font-size:12px;color:var(--muted);margin-top:2px}
1521/* ---- verdicts en pastilles (l.1979-1982) ---- */
1522.prc2 .vok,.prc2 .vno{display:inline-block;font-size:10px;font-weight:700;border-radius:var(--rs);
1523  padding:2px 7px;white-space:nowrap;vertical-align:1px;line-height:1.3}
1524.prc2 .vok{background:var(--brand);color:#fff}
1525.prc2 .vno{background:var(--red);color:#fff}
1526.prc2 .acct-cta{display:flex;flex-direction:column;gap:10px}
1527.prc2 .pay-wrap{display:flex;flex-direction:column;gap:6px}
1528.prc2 .pay{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;
1529  border:0;border-radius:var(--ra);padding:14px 16px;cursor:pointer;text-align:left;color:#fff}
1530.prc2 .pay.std{background:#0F1D33}
1531.prc2 .pay.ent{background:#0E8A44}
1532.prc2 .pay.year{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important}
1533.prc2 .pay.year.std{border-color:#0F1D33!important}
1534.prc2 .pay.year.ent{border-color:#0E8A44!important}
1535.prc2 .pay.year strong{border-top-color:rgba(15,29,51,.16)}
1536.prc2 .pay:disabled{opacity:.55;cursor:progress}
1537.prc2 .pay em{font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
1538.prc2 .pay span{font-size:12.5px;opacity:.88;font-weight:500}
1539.prc2 .pay strong{display:block;margin-top:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.22);
1540  font-size:14.5px;font-weight:800}
1541.prc2 .sepa{margin:0;font-size:11.5px;color:var(--muted);line-height:1.45}
1542.prc2 .rdv{width:100%;border:1px solid var(--line)!important;border-radius:var(--ra);padding:11px 14px;
1543  font-size:13px;font-weight:650;cursor:pointer;background:#fff!important;color:var(--ink)!important;
1544  line-height:1.35}
1545.prc2 .rdv:hover{border-color:var(--brand)!important;background:#F3FBF6!important}
1546.prc2 .ppc-packs{margin:0}
1547.prc2 .ppc-h3{margin:0 0 6px;font-size:13.5px;font-weight:700;color:var(--ink)}
1548.prc2 .ppc-sub{margin:0 0 10px;font-size:12.5px;line-height:1.5;color:var(--muted)}
1549.prc2 .ppc-pack-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
1550.prc2 .ppc-pack{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;
1551  flex-direction:column;gap:4px;background:var(--panel2)}
1552.prc2 .ppc-pack strong{font-size:13px}
1553.prc2 .ppc-pack span{font-size:12.5px;color:var(--muted)}
1554.prc2 .ppc-pack-btn{margin-top:4px;border:0;border-radius:8px;padding:8px 10px;background:var(--ink);color:#fff;
1555  font-size:12.5px;font-weight:700;cursor:pointer}
1556.prc2 .ppc-pack-btn:hover{opacity:.9}
1557.prc2 .cred-foot{margin:8px 0 0;font-size:13px;font-weight:650;color:var(--ink);line-height:1.4;text-align:left}
1558.prc2 .cred-foot span{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--brand)}
1559`;function Qx(){const{lang:t}=ae(),{openRdv:n}=pl(),r=Zr[t].plans;return e.jsx("section",{className:"h3s center",id:"tarifs",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:r.eyeb}),e.jsx("h2",{className:"h3-h2",children:r.h2}),e.jsx("p",{className:"h3-lead h3-plans-lead",children:r.lead}),e.jsx(hl,{context:"home",onTrialCta:Fy,onRdvCta:()=>n()})]})})}function Zx(){const{lang:t}=ae(),n=Zr[t].reprise;return e.jsx("section",{className:"h3s h3-reprise",children:e.jsx("div",{className:"h3-wrap",children:e.jsxs("div",{className:"h3-repcard",children:[e.jsx("h2",{className:"h3-h2",children:n.h2}),e.jsxs("p",{className:"h3-lead",children:[n.pA,e.jsx("b",{children:n.pB}),n.pC]}),e.jsx("div",{className:"h3-field",children:e.jsx(ta,{placeholder:n.placeholder,cta:n.cta})})]})})})}const le=(t,n,r,i,s)=>({id:t,scene:n,target:r,fr:i,en:s}),Hh=[{id:"cockpit",fr:["Votre cockpit","L’aperçu privé, de A à Z","L’aperçu privé résume le fonctionnement du cockpit en six blocs : votre hypothèse, vos angles, le crible, les moteurs, le mémo sur mesure et votre Corporate Developer. La visite zone par zone vient ensuite."],en:["Your cockpit","The private preview, from A to Z","The private preview sums up how the cockpit works in six blocks: your hypothesis, your angles, the screen, the engines, the tailored memo and your Corporate Developer. The zone-by-zone tour follows."],steps:[le("preview-hypothesis","welcome","preview",["Notre hypothèse sur votre stratégie","Tout part de votre entreprise. Stan a étudié le site, les offres d’emploi et la presse d’Asteria, puis a écrit ce qu’il pense que vous cherchez : élargir vos services B2B récurrents, en France et en Europe. Si l’hypothèse est fausse, tout le reste l’est aussi : c’est le premier paragraphe à relire.","Ce paragraphe est l’hypothèse écrite pour Asteria. Suivant : vos angles d’acquisition."],["Our hypothesis about your strategy","Everything starts from your company. Stan studied Asteria’s website, job postings and press coverage, then wrote down what he believes you are looking for: broader recurring B2B services in France and Europe. If the hypothesis is wrong, so is everything else: it is the first paragraph to review.","This paragraph is the hypothesis written for Asteria. Next: your acquisition angles."]),le("preview-angles","criteria","preview",["Vos angles d’acquisition","La recherche est découpée en quatre familles de cibles : cybersécurité managée, infogérance, conformité, services numériques. Chaque angle dit pourquoi il compte pour Asteria, ce qu’on y cherche et ce qu’on écarte. Chacun devient des requêtes concrètes pour les moteurs.","Le premier angle est déplié. Suivant : ce qui fait retenir une société."],["Your acquisition angles","The search is split into four families of targets: managed cybersecurity, managed IT, compliance and digital services. Each angle states why it matters to Asteria, what to look for and what to rule out. Each becomes concrete queries for the engines.","The first angle is open. Next: what it takes to be kept."]),le("preview-criteria","criteria","preview",["Ce qui fait retenir une société","Le crible tient en quatre points, A, B, C et D : l’activité, l’angle, la géographie, le profil. Stan ne retient une société que si elle les coche tous ; sinon il l’écarte et écrit pourquoi. Vous retrouverez cette grille, remplie, dans l’évaluation de chaque dossier.","Ces quatre points décident de chaque société. Suivant : les moteurs de sourcing."],["What it takes to be kept","The screen fits in four points, A, B, C and D: business, angle, geography and profile. Stan keeps a company only if it ticks all four; otherwise he rules it out and writes why. You will find this grid, filled in, in every file’s evaluation.","These four points decide every company. Next: the sourcing engines."]),le("preview-engines","sourcing","preview",["Les moteurs de sourcing","Chaque matin, Stan n’interroge pas le web en vrac : il lance les moteurs branchés sur votre thèse, chacun avec ses propres requêtes. Les moteurs dépliés montrent ce qu’ils cherchent et combien de sociétés ils ont trouvées cette semaine.","Les premiers moteurs sont dépliés. Suivant : le mémo sur mesure."],["The sourcing engines","Every morning, Stan does not search the web at random: he runs the engines wired to your thesis, each with its own queries. The open engines show what they search for and how many companies they found this week.","The first engines are open. Next: the tailored memo."]),le("preview-memo","memo","preview",["Ce que la thèse fabrique : le mémo sur mesure","Quand une société passe le crible, Stan rédige un mémo d’investissement calé sur votre thèse, pas une fiche générique : vos angles, vos seuils financiers, vos synergies. Il se conclut par un verdict : CALL, CONSIDER, MONITOR ou PASS.","Les sections du mémo et ses quatre verdicts sont dépliés. Suivant : votre Corporate Developer."],["What the thesis produces: the tailored memo","When a company passes the screen, Stan writes an investment memo built on your thesis, not a generic profile: your angles, your financial thresholds, your synergies. It ends with a verdict: CALL, CONSIDER, MONITOR or PASS.","The memo sections and its four verdicts are open. Next: your Corporate Developer."]),le("preview-human","help","preview",["Un Corporate Developer joignable à tout moment","Derrière Stan, Alexandre, votre Corporate Developer humain, relit les meilleures cibles, cale vos critères de vive voix et répond à vos questions. Il est joignable par téléphone, par email ou sur rendez-vous, à chaque étape.","Ce bouton réserve un échange avec Alexandre. Suivant ouvre la partie 2 : la carte de votre marché."],["A Corporate Developer you can reach anytime","Behind Stan, Alexandre, your human Corporate Developer, reviews the best targets, sets your criteria with you and answers your questions. You can reach him by phone, by email or with a booked meeting, at every stage.","This button books a conversation with Alexandre. Next opens part 2: the map of your market."])]},{id:"map",fr:["La carte de votre marché","Tout votre marché, d’un coup d’œil","La carte rassemble les s
1559ociétés passées au crible pour votre thèse. Autour d’elle : la couverture du marché, le moteur de mémos, sa file de traitement et les filtres."],en:["The map of your market","Your whole market at a glance","The map gathers the companies screened for your thesis. Around it: market coverage, the memo engine, its processing queue and the filters."],steps:[le("map-zoom","targets","map",["La carte de vos cibles","Chaque point est une société passée au crible pour Asteria, placée à son siège. Ici, la carte zoome sur l’Europe ; les onglets de continents changent la zone et filtrent la liste en dessous. C’est ici que vous voyez d’un regard où sont vos cibles retenues, analysées et à trancher.","La carte zoome sur l’Europe. Suivant : la couverture du marché."],["The map of your targets","Each dot is a company screened for Asteria, placed at its headquarters. Here the map zooms on Europe; the continent tabs change the area and filter the list below. This is where you see at a glance where your kept, analysed and pending targets are.","The map zooms on Europe. Next: market coverage."]),le("coverage","sourcing","coverage",["La couverture du marché","Ce compteur dit combien de sociétés de votre marché Stan a déjà passées au crible, rapporté à la taille estimée du marché pertinent. Dessous : combien sont retenues et combien sont déjà analysées. Il mesure le travail accompli, pas le nombre de sociétés à vendre.","Toute la box est encadrée ; un clic ouvre le détail. Suivant : le calcul des sociétés pertinentes."],["Market coverage","This counter shows how many companies in your market Stan has already screened, against the estimated size of the relevant market. Below: how many are kept and how many are already analysed. It measures work done, not the number of companies for sale.","The whole box is framed; a click opens the details. Next: how relevant companies are counted."]),le("coverage-popup","sourcing","coverage",["Le détail de la couverture","Le popup justifie chaque chiffre : sociétés criblées, marché estimé, part couverte et rythme. « Comment ce chiffre est calculé » détaille le périmètre de votre thèse, chaque code d’activité par pays avec sa source officielle, et le total des sociétés pertinentes.","Ce lien déplie le calcul des sociétés pertinentes. Suivant : le moteur de mémos."],["Coverage details","The popup justifies every figure: companies screened, estimated market, share covered and pace. “How this figure is calculated” details your thesis perimeter, each activity code by country with its official source, and the total of relevant companies.","This link expands how relevant companies are counted. Next: the memo engine."]),le("memo-engine","queue","queue",["Le moteur de mémos","Il analyse vos sociétés retenues à un rythme que vous réglez, de 0 à 10 mémos par jour. En offre Entreprise, toutes les retenues sont analysées sous 24 heures ; en Standard, sous 7 jours. Votre offre et son délai s’affichent ici.","Toute la box du moteur est encadrée. Suivant : la file de traitement."],["The memo engine","It analyses your kept companies at a pace you set, from 0 to 10 memos a day. On the Enterprise plan, every kept company is analysed within 24 hours; on Standard, within 7 days. Your plan and its turnaround appear here.","The whole engine box is framed. Next: the processing queue."]),le("memo-queue","queue","queue",["La file de traitement","La file montre les mémos en cours, ceux prévus demain et ceux terminés aujourd’hui, avec l’échéance pour la vider. Le rythme se règle juste en dessous. Les dossiers analysés montent seuls dans le deal flow.","Ces boutons règlent le rythme d’analyse. Suivant : les filtres de la carte."],["The processing queue","The queue shows memos in progress, those planned for tomorrow and those finished today, with the date it will be cleared. The pace is set just below. Analysed files move up the deal flow on their own.","These buttons set the analysis pace. Next: the map filters."]),le("map-filters","targets","filters",["Les filtres","À droite de la carte, les filtres réduisent la vue aux sociétés qui vous intéressent : péri
1559ode, recherche, signal, secteur, pays, moteur, stade, verdict, angle, niveau de mémo. La carte et la liste suivent le même filtre.","Ces filtres pilotent la carte et la liste. Suivant : replier la carte."],["The filters","To the right of the map, filters narrow the view to the companies you care about: period, search, signal, sector, country, engine, stage, verdict, angle and memo level. The map and the list follow the same filter.","These filters drive the map and the list. Next: fold the map."]),le("fold-map","targets","filters",["Replier la carte","Quand vous travaillez dans la liste, repliez la carte pour gagner de la place ; un clic la redéplie. Vos filtres restent appliqués.","Ce bouton replie ou déplie la carte. Suivant ouvre la partie 3 : le sourcing."],["Fold the map","When you work in the list, fold the map to gain space; one click unfolds it. Your filters stay applied.","This button folds or unfolds the map. Next opens part 3: sourcing."])]},{id:"sourcing",fr:["Le sourcing","Chaque matin, tout ce qui se fait","Le deal flow s’alimente de trois façons : les analyses lancées sur vos sociétés retenues, vos ajouts en un clic et les moteurs qui tournent chaque matin."],en:["Sourcing","Every morning, everything that happens","The deal flow is fed three ways: analyses launched on your kept companies, your one-click additions and the engines that run every morning."],steps:[le("live-analyses","queue","live",["Les analyses en direct","Ce bandeau suit les mémos lancés sur les sociétés retenues : avancement, étape en cours, heure de fin estimée. Le ▶ à droite de la barre montre le mémo se fabriquer, phase par phase. Un mémo prêt s’ouvre d’ici.","Le ▶ montre le mémo se fabriquer. Suivant : évaluer une société en un clic."],["Live analyses","This band tracks memos launched on kept companies: progress, current stage, estimated finish time. The ▶ to the right of the bar shows the memo being built, phase by phase. A finished memo opens from here.","The ▶ shows the memo being built. Next: screen a company in one click."]),le("add-company","discovery","company-input",["Évaluer une société en un clic","Collez un nom ou un site : Stan retrouve le domaine, le pays et le secteur, puis passe la société au crible de votre thèse. Elle rejoint la liste, retenue ou écartée, avec la raison.","Toute la box est encadrée ; le champ est prêt. Suivant : évaluer en masse."],["Screen a company in one click","Paste a name or a website: Stan finds the domain, country and sector, then screens the company against your thesis. It joins the list, kept or ruled out, with the reason.","The whole box is framed; the field is ready. Next: screen in bulk."]),le("eval-tools","discovery","company-input",["Évaluer en masse","Sous la barre : évaluer plusieurs sociétés à la fois, extraire et évaluer les sociétés citées dans un article, retrouver vos recherches, et passer au crible tous les deals du jour ou toute la presse du jour.","Ces liens évaluent des listes entières. Suivant : vos moteurs de sourcing."],["Screen in bulk","Below the bar: screen several companies at once, extract and screen the companies named in an article, find your past searches, and screen all of today’s deals or today’s press.","These links screen whole lists. Next: your sourcing engines."]),le("engines","sourcing","engines",["Vos moteurs de sourcing","Chaque matin, tous les outils de sourcing branchés sur votre thèse tournent : recherche web, sociétés similaires, registres officiels, presse. Ils ont vocation à tout englober : une base de données ou un outil que vous utilisez déjà peut s’y ajouter. Chaque moteur affiche ses requêtes et ses résultats.","Toute la box dépliée : moteurs et film du matin. Suivant : le film du passage du matin."],["Your sourcing engines","Every morning, every sourcing tool wired to your thesis runs: web search, similar companies, official registers, press. They aim to cover everything: a database or tool you already use can be added. Each engine shows its queries and results.","The whole open box: engines and morning film. Next: the morning run, as a film."]),le("run-film","sourcing","engines",["Le film du passage du matin","Le film rejoue le passage, étape par étape : revue de presse, moteur
1559s lancés, sites vérifiés, doublons retirés, verdicts posés. Pendant un passage, il s’écrit en direct ; ensuite, il se rejoue à tout moment.","Ce bouton rejoue le film du matin. Suivant ouvre la partie 4 : le deal flow."],["The morning run, as a film","The film replays the run step by step: press review, engines launched, websites checked, duplicates removed, verdicts given. During a run it writes itself live; afterwards it can be replayed at any time.","This button replays the morning film. Next opens part 4: the deal flow."])]},{id:"dealflow",fr:["Le deal flow","Un pipeline qui se range tout seul","Sous la carte, la zone de deal flow management : chaque dossier avance d’étape en étape selon le crible, puis le verdict de Stan. À droite, l’édito du jour et la fiche du dossier."],en:["The deal flow","A pipeline that sorts itself","Below the map, the deal flow management zone: each file moves from stage to stage based on the screen, then Stan’s verdict. On the right, today’s brief and the file itself."],steps:[le("dealflow-kept","targets","pipeline",["Vos sociétés retenues","La zone de deal flow management rassemble tous vos dossiers. Retenues regroupe les sociétés qui ont passé le crible de votre thèse ; elles attendent leur mémo, lancé à la main ou automatiquement par la file.","Toute la liste est encadrée ; Retenues est mis en valeur. Suivant : donner votre avis d’un pouce."],["Your kept companies","The deal flow management zone gathers all your files. Kept groups the companies that passed your thesis screen; they wait for their memo, launched by hand or automatically by the queue.","The whole list is framed; Kept is highlighted. Next: give your view with a thumb."]),le("kept-thumbs","targets","pipeline",["Un pouce pour affiner Stan","Sur chaque ligne des Retenues, 👍 ou 👎 donne votre avis en un clic, sans ouvrir le dossier. Chaque avis est gardé au carnet de Stan : il s’en sert pour vous proposer des corrections de votre thèse, et votre Corporate Developer pour ajuster vos critères. Le cockpit vous demande ensuite pourquoi, en une ligne, si vous le souhaitez.","👍 sur la ligne de Novalis donne votre avis. Suivant : le carnet où Stan l’inscrit."],["A thumb to fine-tune Stan","On every Kept row, 👍 or 👎 gives your view in one click, without opening the file. Every view is kept in Stan’s logbook: he uses it to propose corrections to your thesis, and your Corporate Developer to adjust your criteria. The cockpit then asks why, in one line, if you wish.","👍 on Novalis’s row gives your view. Next: the logbook where Stan records it."]),le("thumbs-journal","targets","pipeline",["Le carnet de bord de Stan","Chaque pouce s’inscrit, daté, dans le carnet de bord de Stan, avec son pourquoi. Vos corrections de critères et les ajustements automatiques de la nuit y figurent aussi : vous voyez exactement ce qui fait évoluer votre sourcing.","Votre pouce sur Novalis est en tête du carnet. Suivant : les dossiers analysés."],["Stan’s logbook","Every thumb is logged, dated, in Stan’s logbook, with its reason. Your criteria corrections and the nightly adjustments are there too: you see exactly what shapes your sourcing.","Your thumb on Novalis tops the logbook. Next: analysed files."]),le("dealflow-analysed","targets","pipeline",["Analysées : l’étape d’après, automatiquement","Dès qu’un dossier retenu est analysé, à la main ou par la file d’attente, il monte seul dans Analysées. Selon le verdict de Stan, il continue vers À trancher ou part dans Écartées. Vous n’avez rien à déplacer.","Toute la liste est encadrée ; Analysées est mis en valeur. Suivant : l’édito du jour."],["Analysed: the next stage, automatically","As soon as a kept file is analysed, by hand or through the queue, it moves up to Analysed on its own. Depending on Stan’s verdict, it goes on to To decide or to Ruled out. You have nothing to move.","The whole list is framed; Analysed is highlighted. Next: today’s brief."]),le("edito","targets","brief",["L’édito du jour","Juste à droite, l’édito sélectionne chaque matin les levées de fonds et les opérations M&A qui comptent pour votre thèse, avec ce que chacune signifie pour Asteria : consolidateur à surveiller, comparable de valorisation, concurrent mieux financé.","L’édito du jour est ouvert. Suivant : l’évaluation d’un dossier retenu."],["Today’s brief","Just to the right, the brief picks each morning the fundraisings and M&A deals that matter to your thesis, with what each one means for Asteria: a consolidator to watch, a valuation comparable, a better-funded competitor.","Today’s brief is open. Next: a kept file’s evaluation."]),le("evaluation","company","evaluation",["L’évaluation A-B-C-D","Un clic sur Novalis, retenue, ouvre sa fiche. L’onglet Évaluation montre pourquoi Stan l’a gardée, point par point : A l’activité, B l’angle, C la géographie, D le profil, chacun avec les faits trouvés sur la société.","L’onglet Évaluation détaille les quatre points. Suivant ouvre la partie 5 : le verdict de Stan."],["The A-B-C-D evaluation","Clicking Novalis, a kept company, opens its file. The Evaluation tab shows why Stan kept it, point by point: A business, B angle, C geography, D profile, each with the facts found about the company.","The Evaluation tab details the four points. Next opens part 5: Stan’s verdict."])]},{id:"verdict",fr:["Le verdict de Stan","Le deal flow management autonome","Chaque mémo se conclut par un verdict, et le verdict range le dossier : À trancher pour un CALL, Écartées pour un PASS. Vous gardez la décision finale."],en:["
1559Stan’s verdict","Autonomous deal flow management","Every memo ends with a verdict, and the verdict files the dossier: To decide for a CALL, Ruled out for a PASS. You keep the final decision."],steps:[le("memo-verdict","memo","memo",["Le jugement de Stan : CALL","Le mémo éclair de Novalis est prêt. Dans l’onglet Mémo, Stan conclut : CALL recommande de rencontrer le dirigeant ; CONSIDER demande un complément ; MONITOR propose de surveiller, comme Orion qui reste dans Analysées ; PASS écarte. Novalis obtient CALL.","CALL est le jugement de Stan sur Novalis. Suivant : où part le dossier."],["Stan’s judgement: CALL","Novalis’s instant memo is ready. In the Memo tab, Stan concludes: CALL recommends meeting the founder; CONSIDER asks for more; MONITOR suggests watching, like Orion, which stays in Analysed; PASS rules out. Novalis gets CALL.","CALL is Stan’s judgement on Novalis. Next: where the file goes."]),le("to-decide","decision","pipeline",["Envoyé seul dans À trancher","Avec un CALL, Novalis n’est pas restée dans Analysées : elle est passée seule dans À trancher. C’est le deal flow management autonome : n’y arrive que ce qui mérite votre décision.","Toute la liste est encadrée ; À trancher accueille Novalis. Suivant : un dossier jugé PASS."],["Sent to To decide on its own","With a CALL, Novalis did not stay in Analysed: it moved to To decide on its own. This is autonomous deal flow management: only what deserves your decision lands there.","The whole list is framed; To decide now holds Novalis. Next: a file judged PASS."]),le("pass-verdict","decision","memo",["Un PASS part dans Écartées","Boréal Facility Démo a passé le crible, mais son mémo détaillé conclut PASS, preuves à l’appui : marge de 4 % en baisse, un client public à 58 % du chiffre d’affaires remis en concurrence en 2027, aucune synergie avec Asteria et un prix demandé de 8x l’EBITDA quand les comparables sont à 5x. Le dossier est rangé seul dans Écartées ; il reste repêchable.","PASS a envoyé Boréal dans Écartées ; son mémo s’ouvre ici. Suivant : votre décision sur Novalis."],["A PASS goes to Ruled out","Boréal Facility Démo passed the screen, but its detailed memo concludes PASS, with evidence: a declining 4% margin, one public customer at 58% of revenue re-tendered in 2027, no synergy with Asteria and an asking price of 8x EBITDA when comparables trade at 5x. The file is moved to Ruled out on its own; it can still be recovered.","PASS sent Boréal to Ruled out; its memo opens from here. Next: your decision on Novalis."]),le("yes-no","decision","decision",["Vous tranchez : OUI ou NON","Dans la liste, onglet À trancher, chaque ligne porte ses boutons ✓ Oui et ✗ Non. Le verdict de Stan éclaire, vous décidez : Oui fait passer Novalis en Validées pour lancer l’approche, Non la range dans Écartées. Aucun email n’est envoyé.","✓ Oui, sur la ligne de Novalis, poursuit le dossier. Suivant : donner le pourquoi."],["You decide: YES or NO","In the list, To decide tab, each row carries its ✓ Yes and ✗ No buttons. Stan’s verdict informs, you decide: Yes moves Novalis to Validated to start outreach, No moves it to Ruled out. No email is sent.","✓ Yes, on Novalis’s row, continues the file. Next: explain why."]),le("reason","decision","decision",["Donner le pourquoi : Stan apprend","Juste après le Oui, le cockpit demande pourquoi, en une ligne. Stan s’en sert pour affiner ses proch
1559ains verdicts, et votre Corporate Developer pour ajuster vos critères. Plus tard suffit aussi : la note reste modifiable dans la fiche.","Le motif fictif est déjà rempli ; Envoyer l’enregistre. Suivant ouvre la partie 6 : l’approche."],["Explain why: Stan learns","Right after the Yes, the cockpit asks why, in one line. Stan uses it to sharpen his next verdicts, and your Corporate Developer to adjust your criteria. Later works too: the note stays editable in the file.","The fictional reason is already filled in; Send saves it. Next opens part 6: outreach."])]},{id:"approach",fr:["L’approche","Le pipeline se tient seul","Une fois le dossier validé, la séquence d’approche est prête : vous gardez la main sur l’envoi, les statuts avancent."],en:["Outreach","The pipeline runs itself","Once the file is validated, the outreach sequence is ready: you control every send, statuses move forward."],steps:[le("contact-details","contact","contact-drafts",["Retrouver le bon interlocuteur","La fiche Contact rassemble le dirigeant et ses coordonnées lorsqu’elles sont disponibles. Les adresses de cette démo utilisent example.invalid.","Contact affiche l’interlocuteur et ses coordonnées. Suivant : quatre messages préparés."],["Find the right person","Contact collects the manager and available details. Demo addresses use example.invalid.","Contact shows the person and their details. Next: four prepared messages."]),le("sequence","contact","contact-drafts",["Quatre messages préparés","La séquence d’approche se décline en email ou LinkedIn, à J0, J2, J4 et J6. Elle propose un contact cohérent avec l’intérêt stratégique de la cible.","J0 affiche le premier message préparé. Suivant : vous gardez la main sur l’envoi."],["Four prepared messages","The outreach sequence supports email or LinkedIn at D0, D2, D4 and D6. It proposes contact aligned with the target’s strategic fit.","D0 displays the first prepared message. Next: you control sending."]),le("send-control","contact","contact-drafts",["Vous gardez la main sur l’envoi","Vous pouvez copier le texte ou ouvrir votre messagerie depuis cette fenêtre. Dans cette démonstration, les liens externes sont interceptés ; aucun message n’est envoyé.","Copier récupère le texte ; vous choisissez l’envoi. Suivant : contactée, réponse, rendez-vous."],["You control sending","You can copy the text or open your mail client from this window. External links are intercepted in this demonstration; no message is sent.","Copy retrieves the text; you control sending. Next: contacted, replied, meeting."]),le("follow-up","contact","contact-stage",["Contactée, réponse, rendez-vous","Les stades décrivent l’avancement après le OUI. Dans le cockpit, un dossier sans réponse depuis plusieurs jours peut vous signaler une relance.","RDV indique qu’un rendez-vous est prévu. Suivant ouvre la partie 7 : jusqu’à la signature."],["Contacted, replied, meeting","Stages describe progress after YES. In the cockpit, a file without a reply for several days can flag a follow-up.","Meeting shows a meeting is scheduled. Next opens part 7: through to signing."])]},{id:"closing",fr:["Jusqu’à la signature","Rien n’est oublié avant le SPA","Le dossier comité se modifie, s’enregistre et s’envoie ; un vrai mémo détaillé se lit partie par partie et son résumé arrive par email ; le Parcours réunit les actions, preuves et validations ; l’Historique retrace le travail jusqu’au closing et aux 100 premiers jours."],en:["Through to signing","Nothing is missed before the SPA","The committee file can be edited, saved and sent; a real detailed memo is read part by part and its summary arrives by email; Journey brings together actions, evidence and approvals; History records the work through closing and the first 100 days."],steps:[le("committee-dossier","committee","committee",["Le dossier comité, à votre main","Le bouton Dossier comité ouvre le mémo sous forme de document : vous modifiez le texte, ajoutez une note, retirez une section, puis exportez un PDF à envoyer à qui vous voulez, comité, associé ou banquier.","Cette barre modifie le dossier et exporte le PDF. Suivant : la page du mémo."],["The committee file, your way","The Committee file button opens the memo as a document: edit the text, add a note, remove a section, then export a PDF to send to anyone you like, a committee, a partner or a banker.","This bar edits the file and exports the PDF. Next: the memo page."]),le("save-dossier","committee","committee",["Le dossier s’enregistre","Le bouton 💾 Enregistrer sauvegarde le dossier comité, et « Enregistré à … ✓ » le confirme. Il s’enregistre aussi à chaque modification : vous le retrouvez tel quel à la prochaine ouverture, et « Rétablir l’original » repart du mémo de Stan.","Une note vient d’être ajoutée puis enregistrée. Suivant : un vrai mémo détaillé, partie par partie."],["The file saves","The 💾 Save button saves the committee file, and “Saved at … ✓” confirms it. It also saves on every edit: you find it as you left it next time, and “Restore the original” goes back to Stan’s memo.","A note was just added, then saved. Next: a real detailed memo, part by part."]),le("open-full-memo","memo","memo",["Un vrai mémo détaillé : le marché","Pour que vous voyiez exactement ce que vous recevrez, la démo ouvre ici un vrai mémo détaillé, rédigé par Stan le 2 octobre 2026 pour un client Proplace, un groupe de courtage en assurance santé dont le nom est masqué. La cible : Aitona, courtier digital en assurance internationale. À gauche, le menu donne accès à chaque partie. Le marché d’abord : dimensionnement, chaîne de valeur et ses acteurs, marché et concurrence sourcés, carte concurrentielle, quadrant M&A et scénarios stratég
1559iques.","Ces entrées couvrent le marché. Suivant : la société."],["A real detailed memo: the market","So that you see exactly what you will receive, the demo opens a real detailed memo here, written by Stan on 2 October 2026 for a Proplace client, a health-insurance brokerage group whose name is hidden. The target: Aitona, a digital international-insurance broker. The memo is in French, as delivered. On the left, the menu opens every part. The market first: sizing, the value chain and its players, sourced market and competition, the competitive map, the M&A quadrant and strategic scenarios.","These entries cover the market. Next: the company."]),le("memo-company","memo","memo",["La société, en sept entrées","Proposition de valeur, produit, modèle d’affaires, équipe, synthèse, SWOT et plan d’action. La carte mentale résume ce que fait Aitona ; chaque fait renvoie à sa source, et ce qui n’est pas documenté est dit comme tel.","Ces sept entrées décrivent la société. Suivant : les synergies avec le client."],["The company, in seven entries","Value proposition, product, business model, team, summary, SWOT and action plan. The mind map sums up what Aitona does; every fact links to its source, and what is not documented is stated as such.","These seven entries describe the company. Next: the synergies with the client."]),le("memo-synergies","memo","memo",["Les synergies avec le client","Où le rapprochement crée de la valeur pour ce client : les leviers classés, leur logique et ce qu’il faut vérifier, puis la séquence d’approche déjà rédigée au nom de son dirigeant, prête à copier.","Cette entrée porte les synergies et l’approche. Suivant : le verdict."],["The synergies with the client","Where the combination creates value for this client: ranked levers, their logic and what to check, then the outreach sequence already written in its CEO’s name, ready to copy.","This entry carries the synergies and outreach. Next: the verdict."]),le("memo-finance","memo","memo",["Le verdict : CONSIDER, et pourquoi","La conviction de Stan conclut CONSIDER : la logique stratégique tient, mais Aitona, trois personnes, n’a publié aucun compte. Les prévisions suivent le référentiel du métier ; la valorisation, elle, n’est pas inventée : le mémo dit qu’elle n’est pas calculable et quelles pièces obtenir pour la débloquer.","Ces entrées portent le verdict. Suivant : le résumé reçu par email."],["The verdict: CONSIDER, and why","Stan’s conviction concludes CONSIDER: the strategic logic holds, but Aitona, a team of three, has published no accounts. Forecasts follow the industry benchmarks; the valuation is not invented: the memo says it cannot be computed and which documents would unlock it.","These entries carry the verdict. Next: the summary received by email."]),le("memo-email","alerts","alert-form",["Le mémo terminé arrive par email","Dès qu’un mémo est terminé, vous recevez son résumé par email : le verdict de Stan et ses raisons, la synthèse de la société, le SWOT, le plan d’action et le lien vers le mémo complet. Voici l’aperçu réel de l’email envoyé le 4 octobre 2026 à ce même client, à la fin du mémo éclair de Riviera Expat. Vous choisissez les rubriques et l’adresse de réception.","Cet aperçu est l’email réellement envoyé, client masqué. Suivant : le parcours jusqu’au closing."],["The finished memo arrives by email","As soon as a memo is finished, you receive its summary by email: Stan’s verdict and his reasons, the company summary, the SWOT, the action plan and the link to the full memo. This is the real preview of the email sent on 4 October 2026 to the same client, at the end of Riviera Expat’s instant memo. You choose the sections and the delivery address.","This preview is the email actually sent, client name hidden. Next: the path to closing."]),le("dd-checks","diligence","diligence",["Votre route vers le closing","Le Parcours se joue comme une quête : un objectif, le closing, et sept jalons de la qualification à la signature. Chaque étape se coche avec ses preuves ; celles qui restent à faire sont grisées mais consultables, et la prochaine est mise en avant. Le plan 100 jours et le reporting forment une seconde séquence, après le closing. Novalis et Asteria sont entièrement fictifs.","Repérez la prochaine étape et les jalons à franchir. Suivant : lancer les vérifications d’une étape."],["Your road to closing","The Journey plays like a quest: one objective, closing, and seven milestones from qualification to signing. Each step is checked off with its evidence; open steps stay greyed out but viewable, and the next one is highlighted. The 100-day plan and reporting form a second sequence, after closing. Novalis and Asteria are fictional.","Find the next step and the milestones ahead. Next: run the checks for a step."]),le("stan-chat","memo","memo",["Votre NDA, prêt à relire","Lancez la génération : le film montre la lecture des identités, la préparation des clauses et la production des documents. Ouvrez ensuite le NDA entièrement renseigné pour Novalis et Asteria, sa demande de pièces et le message personnalisé. Chaque document se télécharge en PDF ou en version modifiable. Les proch
1559aines étapes vous font tester d’autres livrables de Stan. Tout ce dossier est fictif et gratuit.","Générez le NDA, regardez le film et ouvrez son PDF. Suivant : détecter un écart dans les comptes."],["Your NDA, ready for review","Start generation: the film shows identity review, clause preparation and document production. Then open the NDA completed for Novalis and Asteria, the document request and the personalised message. Every document can be downloaded as a PDF or editable version. The next steps let you try more Stan work products. This entire deal is fictional and free.","Generate the NDA, watch the film and open its PDF. Next: find a discrepancy in the accounts."]),le("stan-finance","memo","memo",["Stan retrouve les 500 € manquants","Lancez le rapprochement. Stan reprend les contrats, les factures et les encaissements fictifs de septembre : 15 000 € facturés, 14 500 € encaissés. Le film montre les contrôles ; le tableau identifie CL002 et son écart de 500 €. Ouvrez le rapprochement et la demande d’explication préparée. Ce contrôle porte sur les pièces fournies ; il ne certifie pas l’authenticité d’un relevé bancaire.","Rapprochez les comptes, puis ouvrez le tableau et la demande d’explication. Suivant : la LOI."],["Stan finds the missing €500","Run reconciliation. Stan reuses the fictional September contracts, invoices and receipts: €15,000 invoiced and €14,500 received. Watch the checks, then inspect CL002 and its €500 discrepancy in the table. Open the reconciliation and the prepared clarification request. The check covers the supplied records; it does not authenticate a bank statement.","Reconcile the accounts, then open the table and the clarification request. Next: the LOI."]),le("stan-loi","memo","memo",["Une LOI qui reprend les réserves du dossier","Lancez la préparation des conditions. Stan reprend le modèle Asteria : valeur d’entreprise indicative de 4,5 M€, trésorerie nette de 0,6 M€ et prix des titres de 5,1 M€ avant ajustements. La lettre reprend l’écart de 500 €, la cap table attendue et les références clients dans ses réserves de DD. Ouvrez la LOI et les points de négociation. En mode VC, cette même action prépare un term sheet ; les engagements restent à relire et à valider.","Préparez les conditions, puis ouvrez la LOI et ses réserves. Suivant : le dossier comité."],["An LOI that carries the deal’s open issues","Prepare the terms. Stan reuses the Asteria model: indicative enterprise value of €4.5m, €0.6m net cash and €5.1m equity price before adjustments. The letter includes the €500 discrepancy, missing cap table and customer references in its DD conditions. Open the LOI and negotiation points. In VC mode, this action prepares a term sheet; commitments still require review and approval.","Prepare the terms, then open the LOI and its conditions. Next: the committee dossier."]),le("stan-committee","memo","memo",["Cinq pages pour décider en comité","Stan réutilise le mémo, le modèle et les risques déjà documentés pour préparer la synthèse : décision proposée, thèse, économie du deal, risques et conditions. Lancez la production, lisez le document puis ouvrez « PDF · synthèse 5 pages ». Les réserves restent visibles : produire un dossier ne signifie pas que le comité a décidé.","Produisez le dossier, puis ouvrez « PDF · synthèse 5 pages ». Suivant : le rapport de due diligence."],["Five pages for a committee decision","Stan reuses the memo, model and documented risks to prepare the summary: proposed decision, thesis, deal economics, risks and conditions. Run production, read the document and open “PDF · synthèse 5 pages”. The open conditions remain visible: producing a dossier does not mean the committee has decided.","Produce the dossier, then open “PDF · synthèse 5 pages”. Next: the due diligence report."]),le("stan-dd-report","memo","memo",["Un rapport de DD relié aux preuves","Lancez la consolidation. Stan rassemble les contrôles du dossier, le registre de risques et les conditions de la LOI. Ouvrez le rapport pour retrouver l’écart CL002, les documents manquants, les responsables et les points encore ouverts. Les sources se consultent dans « Analyse et sources utilisées ». Exportez le PDF ; les contrôles incomplets restent explicitement à traiter.","Produisez le rapport, ouvrez ses sources puis exportez le PDF. Suivant : les conditions de closing."],["A DD report linked to evidence","Run consolidation. Stan brings together the deal’s checks, risk register and LOI conditions. Open the report to find the CL002 discrepancy, missing documents, owners and unresolved 
1559issues. Inspect evidence in “Analyse et sources utilisées”, then export the PDF. Incomplete checks stay explicitly open.","Produce the report, inspect its sources and export the PDF. Next: closing conditions."]),le("ask-stan","memo","memo",["Préparer, vérifier, puis valider","Un texte généré ne vaut ni signature ni décision. Stan prépare les travaux et expose les preuves manquantes : accords, autorisations, conditions levées et règlements. Les validations vous appartiennent. Même bloquée, chaque étape reste consultable ; vous pouvez déjà préparer la suite et le plan 100 jours.","Ouvrez les conditions et consultez les pièces attendues. Suivant : le plan 100 jours."],["Prepare, check, then approve","Generated text is neither a signature nor a decision. Stan prepares the work and exposes missing evidence: agreements, approvals, fulfilled conditions and payments. You retain approval. Every step can be viewed even when blocked, so you can prepare the next steps and the 100-day plan.","Inspect the conditions and missing evidence. Next: the 100-day plan."]),le("stan-100days","memo","memo",["Les engagements deviennent un plan 100 jours","Lancez la production du plan. Stan reprend les engagements de la fondatrice et les risques résiduels, puis prépare les actions à J30, J60 et J100 : rapprochement des revenus, références, droits IP, organisation et intégration. Ouvrez le plan et attribuez les responsables avec votre équipe. Le suivi et le prochain board réutiliseront ce travail ; aucun closing n’est simulé comme acquis.","Produisez le plan, puis ouvrez ses actions et échéances. Suivant : revoir tout le travail dans l’historique."],["Turn commitments into a 100-day plan","Generate the plan. Stan reuses the founder’s commitments and remaining risks to prepare actions for days 30, 60 and 100: revenue reconciliation, references, IP rights, organisation and integration. Open the plan and assign owners with your team. Monitoring and the next board reuse this work; no completed closing is assumed.","Produce the plan, then open its actions and deadlines. Next: replay the work in history."]),le("save-memo","memo","memo",["L’historique complet du dossier","Retrouvez les NDA, rapprochement, LOI, comité, DD et plan 100 jours que vous venez de préparer, avec leur date et leur auteur. Ouvrez une ligne pour revoir ses opérations, puis exportez le dossier et les preuves. Seules les actions que vous avez lancées apparaissent comme réalisées. Les traces techniques détaillées durent sept jours ; les pièces utiles et décisions restent pendant la vie du dossier.","Ouvrez une ligne ou son replay. Suivant : clôturer le suivi fictif."],["The complete deal history","Find evidence, checks, results and decisions with dates and authors. Replay a memo or analysis, then export the dossier and evidence for the committee. Detailed technical traces last seven days; useful evidence and decisions remain throughout the active deal.","Open an event or its replay. Next: close the fictional tracker."]),le("signature","contact","contact-stage",["Clôturer le suivi","Une fois les vérifications et conditions de closing traitées avec les parties et vos conseils, le stade Signée reflète l’aboutissement. Proplace n’effectue pas une signature juridique par ce clic.","Signée clôture le suivi fictif. Suivant ouvre la partie 8 : au quotidien."],["Close the tracker","Once checks and closing conditions are handled with the parties and advisers, Signed records the outcome. This click does not execute a legal signature.","Signed closes the fictional tracker. Next opens part 8: day to day."])]},{id:"routine",fr:["Au quotidien","La continuité fait la valeur","Un seul moteur, qui apprend de vos décisions et revient vers vous chaque matin : l’email du jour et la revue du lundi."],en:["Day to day","Continuity is the value","One engine that learns from your decisions and comes back to you every morning: the daily email and the Monday review."],steps:[le("daily-email","alerts","alert-form",["Votre email quotidien","Chaque matin, le brief rassemble vos dossiers à trancher avec l’analyse de Stan et vos boutons OUI / NON, vos nouvelles retenues avec leurs pouces, et ce qui bouge sur votre marché. Voici l’aperçu réel du brief d’un client Proplace, rendu par le même moteur que le vôtre ; seul son nom est masqué. Vous réglez jours, heure et rubriques.","Cet aperçu est le vrai brief du jour. Suivant : votre revue du lundi."],["Your daily email","Every morning, the brief gathers your files to decide with Stan’s analysis and your YES / NO buttons, your new kept companies with their thumbs, and what is moving in y
1559our market. This is the real preview of a Proplace client’s brief, rendered by the same engine as yours; only its name is hidden. You set days, time and sections.","This preview is the real brief of the day. Next: your Monday review."]),le("monday-review","weekly","weekly",["Votre revue du lundi","Le bilan réunit décisions attendues, décisions de Stan, annotations du Corporate Developer, améliorations des critères et actualité utile. Le jour et l’heure sont réglables. L’aperçu est le vrai bilan de la semaine du même client, nom masqué.","Hebdomadaire affiche le vrai bilan de la semaine. Suivant : exporter votre sélection."],["Your Monday review","The review collects pending decisions, Stan’s decisions, Corporate Developer notes, improved criteria and useful news. Day and time are configurable. The preview is the same client’s real weekly review, name hidden.","Weekly shows the real weekly review. Next: export your selection."]),le("export-selection","exports","export",["Exporter votre sélection","
1559L’onglet affiché est votre sélection : aucune case à cocher. Téléchargez-la en CSV, filtres compris, imprimez-la, ouvrez-la dans Excel, ou collez une formule dans votre tableur pour qu’elle s’y mette à jour toute seule. Chaque ligne porte le verdict, l’angle, le mémo et le contact.","Télécharger exporte la vue affichée, filtres compris. Suivant : connecter cette page à vos outils."],["Export your selection","The visible tab is your selection: no checkboxes. Download it as CSV, filters included, print it, open it in Excel, or paste a formula into your spreadsheet so it updates by itself. Every row carries the verdict, the angle, the memo and the contact.","Download exports the visible view, filters included. Next: connect this page to your tools."]),le("connect-tools","connections","connect",["Connecter cette page à vos outils","Vos décisions partent d’elles-mêmes là où vous travaillez : votre CRM (HubSpot, Pipedrive, Salesforce, via Make, Zapier ou n8n), une campagne Instantly, un script, ou votre assistant IA via MCP. Trois étapes, une seule fois : où envoyer, le lien de votre outil, et quand envoyer — une cible validée, un stade franchi, une approche prête.","Choisissez la destination de vos décisions. Suivant : rechercher et actualiser."],["Connect this page to your tools","Your decisions go by themselves where you work: your CRM (HubSpot, Pipedrive, Salesforce, via Make, Zapier or n8n), an Instantly campaign, a script, or your AI assistant through MCP. Three steps, once: where to send, your tool’s link, and when to send — a validated target, a stage reached, an approach ready.","Pick where your decisions go. Next: search and update."]),le("source-refresh","sourcing","sourcing",["Rechercher et actualiser","Les moteurs tournent déjà chaque matin. Le bouton 🔄 permet une relance manuelle par jour et par fonds : une confirmation, puis le film de la recherche, du crible et de la publication de votre page. Ici, toutes ces étapes sont simulées pour Asteria.","Cliquez sur Lancer pour suivre la recherche fictive. Suivant : revenir aux prochaines décisions."],["Search and update","The engines already run every morning. The 🔄 button allows one manual relaunch per day per fund: a confirmation, then the film of the search, screening and publication of your page. Here, all these steps are simulated for Asteria.","Click Start to follow the fictional search. Next: return to the next decisions."]),le("repeat-routine","help","help",["Revenir aux prochaines décisions","Chaque matin, de nouveaux dossiers arrivent dans À trancher : ici Atlas et Kepler, analysés cette nuit et jugés CALL. Un clic sur ✓ Oui ou ✗ Non, depuis la liste ou depuis l’email du matin, et le dossier avance tout seul. Le guide reste accessible pour refaire une partie.","✓ Oui ou ✗ Non sur chaque ligne : à vous de trancher. Vous pouvez maintenant explorer ou refaire une partie."],["Return to the next decisions","Every morning, new files arrive in To decide: here Atlas and Kepler, analysed overnight and judged CALL. One click on ✓ Yes or ✗ No, from the list or from the morning email, and the file moves on by itself. The guide remains available to revisit a part.","✓ Yes or ✗ No on each row: your call. You can now explore or revisit a part."])]}],Yy={fr:Hh.map(t=>({id:t.id,label:t.fr[0],title:t.fr[1],summary:t.fr[2],steps:t.steps.map(n=>({id:n.id,scene:n.scene,target:n.target,title:n.fr[0],body:n.fr[1],instruction:n.fr[2]}))})),en:Hh.map(t=>({id:t.id,label:t.en[0],title:t.en[1],summary:t.en[2],steps:t.steps.map(n=>({id:n.id,scene:n.scene,target:n.target,title:n.en[0],body:n.en[1],instruction:n.en[2]}))}))};function Gy(){const{lang:t,localizePath:n}=ae(),r=t==="fr",i=Yy[t],s=i.reduce((a,o)=>a+o.steps.length,0);return e.jsx("section",{className:"h3s pp-tutorial-section",id:"tutoriel","aria-labelledby":"pp-tutorial-title",children:e.jsxs("div",{className:"h3-wrap",children:[e.jsx("div",{className:"h3-eyeb",children:r?"Votre c
1559ockpit Standard · en situation":"Your Standard cockpit · in action"}),e.jsx("h2",{className:"h3-h2",id:"pp-tutorial-title",children:r?"Suivez une cible de sa découverte à la signature":"Follow one target from discovery to signing"}),e.jsx("p",{className:"h3-lead",children:r?"Entrez dans le cockpit d’Asteria, un groupe de services B2B fictif, et faites vous-même chaque geste.":"Enter the cockpit of Asteria, a fictional B2B services group, and try every action yourself."}),e.jsxs(Ti,{className:"pp-tutorial-cta",to:n("/demo"),children:[e.jsx("span",{className:"pp-tutorial-cta-play","aria-hidden":"true"}),e.jsxs("span",{className:"pp-tutorial-cta-text",children:[e.jsx("b",{children:r?"Lancer la démo":"Start the demo"}),e.jsx("small",{children:r?`${i.length} actes · ${s} étapes · sans compte`:`${i.length} acts · ${s} steps · no account needed`})]}),e.jsx("span",{className:"pp-tutorial-cta-arrow","aria-hidden":"true",children:"→"})]})]})})}function Kx(){const[t,n]=m.useState(null);return ht({en:{title:"Proplace — We find the companies you should track, fund or acquire",description:"Stan, your AI Corporate Developer, reviews every company on your market each night, keeps the ones with the most synergies and writes down why he discarded the rest. You get 5 to 10 decisions a month, each with a detailed investment memo."},fr:{title:"Proplace — Nous trouvons les entreprises que vous devriez suivre, financer ou racheter",description:"Stan, votre AI Corporate Developer, passe en revue chaque nuit toutes les sociétés de votre marché, retient celles qui génèrent le plus de synergies et écrit pourquoi il écarte les autres. Vous recevez 5 à 10 décisions par mois, chacune avec un mémo d’investissement détaillé."}}),m.useEffect(()=>{try{ha()}catch{}},[]),m.useEffect(()=>{if(typeof window>"u"||window.location.hash!=="#decouvrir")return;const r=(new URLSearchParams(window.location.search).get("site")||"").trim();history.replaceState(null,"",window.location.pathname+window.location.search),n({site:r})},[]),e.jsxs(ul,{children:[e.jsx("style",{children:Cy}),e.jsx(zn,{}),e.jsxs("main",{className:"home3",children:[e.jsx(Vx,{}),e.jsx(Hx,{}),e.jsx(Gx,{}),e.jsx(Py,{}),e.jsx(Gy,{}),e.jsx(Wx,{}),e.jsx(Qx,{}),e.jsx(Zx,{})]}),e.jsx(Nt,{}),t&&e.jsx(Qr,{onClose:()=>n(null),initialWebsite:t.site})]})}function Wy(){const{lang:t}=ae(),n=t==="fr",[r,i]=m.useState(""),[s,a]=m.useState([]),o=()=>a([]),c=p=>{i(p);const u=p.trim().toLowerCase();if(u.length<2||/^\S+\.\S{2,}$/.test(u)){a([]);return}const g=u.replace(/[^a-z0-9-]/g,"");if(g.length<2){a([]);return}a(["com","fr","io","eu"].map(f=>({url:`https://${g}.${f}`})))},l=p=>{i(p.replace(/^https?:\/\//i,"")),o()},d=()=>{var u;const p=r.trim();try{if(/^\S+\.\S{2,}$/.test(p)){const g=/^https?:\/\//i.test(p)?p:"https://"+p;localStorage.setItem("ppmap:acquirerSite",g.slice(0,200));const f=g.replace(/^https?:\/\//i,"").replace(/^www\./i,"").split(/[/?#]/)[0].split(".")[0];localStorage.setItem("ppmap:acquirer",f?f.charAt(0).toUpperCase()+f.slice(1):"")}else p&&(localStorage.setItem("ppmap:acquirer",p.slice(0,120)),localStorage.removeItem("ppmap:acquirerSite"))}catch{}window.dispatchEvent(new CustomEvent("ppmap:open-gate")),(u=document.getElementById("demo"))==null||u.scrollIntoView({behavior:"smooth",block:"start"})};return e.jsxs("section",{className:"ph",children:[e.jsx("style",{children:Qy}),e.jsx("h1",{className:"ph-h1",children:n?"Nous trouvons vos prochaines cibles à acquérir.":"We find your next acquisition targets."}),e.jsx("p",{className:"ph-stan",children:n?e.jsxs(e.Fragment,{children:["Avec ",e.jsx("b",{children:"Stan"}),", notre AI Corporate Developer."]}):e.jsxs(e.Fragment,{children:["With ",e.jsx("b",{children:"Stan"}),", our AI Corporate Developer."]})}),e.jsxs("div",{className:"ph-row",children:[e.jsxs("div",{className:"ph-inwrap",children:[e.jsx("input",{value:r,maxLength:300,placeholder:n?"Le site web de votre entreprise (l’acquéreur) — ex : cerfrance.fr":"Your company website (the acquirer) — e.g. cerfrance.fr",onChange:p=>c(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(o(),d()),p.key==="Escape"&&o()},onBlur:()=>window.setTimeout(o,200)}),s.length>0&&e.jsxs("div",{className:"ph-sugs",children:[e.jsx("p",{className:"ph-sugs-h",children:n?"Votre site, c’est lequel ?":"Which one is your site?"}),s.map(p=>{const u=p.url.replace(/^https?:\/\//i,"").replace(/\/$/,"").split("/")[0];return e.jsxs("button",{type:"button",onMouseDown:g=>{g.preventDefault(),l(p.url)},children:[e.jsx("img",{src:`https://www.google.com/s2/favicons?domain=${encodeURIComponent(u)}&sz=64`,alt:"",loading:"lazy"}),e.jsx("span",{className:"ph-sug-t",children:e.jsx("b",{children:u.slice(0,42)})}),e.jsx("i",{children:"↵"})]},p.url)})]})]}),e.jsx("button",{type:"button",onClick:d,children:n?"Voir un aperçu de deal flow →":"See a deal flow preview →"})]}),e.jsxs("div",{className:"ph-how",children:[e.jsx("p",{children:n?e.jsx(e.Fragment,{children:"Stan étudie votre activité, en déduit vos critères d’acquisition et construit votre deal flow : il retient ✅ ou écarte ❌ chaque cible en justifiant sa décision (onglet Retenues), puis rédige pour les meilleures un mémo chiffrant les synergies (onglet Analysées)."}):e.jsx(e.Fragment,{children:"Stan studies your business, derives your acquisition criteria and builds your deal flow: it keeps ✅ or discards ❌ every target with its reasoning (Kept tab), then writes for the best ones a memo quantifying the synergies (Analysed tab)."})}),e.jsx("p",{children:n?e.jsxs(e.Fragment,{children:["Tous les lundis, nous vous présentons les meilleures, que ",e.jsx("b",{children:"vous tranchez"})," par oui ou non (onglet À trancher). Vos oui passent en Validées — et améliorent Stan."]}):e.jsxs(e.Fragment,{children:["Every Monday, we present you the best ones, and ",e.jsx("b",{children:"you decide"})," yes or no (To decide tab). Your yeses move to Validated — and make Stan better."]})}),e.jsx("p",{children:n?e.jsx(e.Fragment,{children:"Résultat : une veille M&A qui couvre l’intégralité de votre marché en quelques mois — à l’affût de toute nouvelle opportunité dès qu’elle émerge, en temps réel."}):e.jsx(e.Fragment,{children:"The result: M&A coverage of your entire market within a few months — catching every new opportunity the moment it emerges, in real time."})}),e.jsx("p",{className:"ph-motto",children:n?"Stan travaille. Nous vérifions. Vous décidez.":"Stan works. We verify. You decide."})]}),e.jsxs("div",{className:"ph-logos",children:[e.jsx("img",{src:"/trust-logos.png",alt:"Références",loading:"lazy"}),e.jsx("p",{children:n?"Notre équipe a déployé du capital à tous les stades d’investissement (Seed, Venture, Growth, LBO, M&A) pour des grands comptes, des startups de premier plan et des fonds d’investissement de référence.":"Our team has deployed capital across every investment stage (Seed, Venture, Growth, LBO, M&A) for large corporates, leading startups and reference investment funds."})]})]})}const Qy=`
1560.ph{max-width:960px;margin:0 auto;padding:64px 24px 34px;text-align:center}
1561.ph-h1{font-size:clamp(34px,5.2vw,54px);font-weight:800;line-height:1.08;margin:0 0 10px;letter-spacing:-.03em}
1562.ph-h1 em{font-style:normal;color:var(--green-dk,#12A150)}
1563.ph-stan{font-size:16px;font-weight:700;color:var(--sub,#444);margin:0 0 22px}
1564.ph-stan b{color:var(--green-dk,#12A150)}
1565.ph-how{max-width:780px;margin:26px auto 0;text-align:center;display:grid;gap:12px}
1566.ph-how p{font-size:14.5px;line-height:1.7;color:var(--sub,#444);margin:0}
1567.ph-how b{color:var(--ink,#16233A)}
1568.ph-motto{font-weight:800;color:var(--ink,#16233A);text-align:center;font-size:15px}
1569.ph-row{display:flex;gap:10px;max-width:760px;margin:0 auto}
1570.ph-inwrap{position:relative;flex:1;display:flex}
1571.ph-inwrap input{width:100%}
1572.ph-row input{flex:1;border:2px solid var(--ink,#16233A);background:#F4F4F1;padding:15px 16px;font-size:15px;font-family:inherit;border-radius:12px}
1573.ph-sugs{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line,#E3E8F0);border-radius:14px;box-shadow:0 24px 60px rgba(10,10,10,.18);overflow:hidden;z-index:30;text-align:left;padding:6px}
1574.ph-sugs-h{margin:4px 10px 6px;font-size:12px;font-weight:600;
1574color:var(--mid,#999)}
1575.ph-sugs button{display:flex;align-items:center;gap:11px;width:100%;border:none;background:none;padding:9px 10px;cursor:pointer;font-family:inherit;text-align:left;border-radius:10px}
1576.ph-sugs button:hover{background:#F1F1EE}
1577.ph-sugs button img{width:22px;height:22px;border-radius:6px;flex:0 0 auto;background:#f1f1ee}
1578.ph-sug-t{display:flex;flex-direction:column;gap:1px;min-width:0}
1579.ph-sugs b{font-size:13.5px;color:var(--ink,#16233A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
1580.ph-sug-t span{font-size:11.5px;color:var(--mid,#888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
1581.ph-sugs button i{margin-left:auto;font-style:normal;font-size:12px;color:var(--mid,#bbb);opacity:0;transition:opacity .12s}
1582.ph-sugs button:hover i{opacity:1;color:var(--green-dk,#12A150)}
1583.ph-logos{margin:30px auto 0;max-width:880px}
1584.ph-logos img{max-width:480px;width:100%;height:auto;opacity:.45;filter:grayscale(1);display:block;margin:0 auto}
1585.ph-logos p{font-style:italic;font-size:12px;line-height:1.6;color:var(--mid,#999);margin:12px auto 0;max-width:860px}
1586.ph-row input:focus{outline:none;border-color:var(--green,#12A150);background:#fff}
1587.ph-row button{border:none;background:var(--green,#12A150);color:#fff;font-size:15px;font-weight:800;padding:0 22px;cursor:pointer;font-family:inherit;border-radius:12px;white-space:nowrap}
1588.ph-row button:hover{background:var(--green-dk,#0E7F3F)}
1589.ph-hint{font-size:13px;line-height:1.7;color:var(--mid,#777);margin:12px 0 0}
1590.ph-proof{font-size:13px;font-weight:700;color:var(--ink,#16233A);margin:34px 0 0}
1591@media(max-width:700px){.ph{padding-top:40px}.ph-row{flex-direction:column}.ph-row button{padding:14px}}
1592`,Zy={live:"LIVE",liveQuiet:t=>`Aucun signal ouvert en ${t} — élargissez à un autre continent.`,goalSourced:t=>`<b>${t}</b> sociétés ont été sourcées ce matin par nos moteurs.`,goalTreat:"▶ Les traiter",goalContinue:t=>`▶ Continuer (${t})`,goalDone:(t,n)=>`<b>${t}</b> sur ${n} traitées.`,goalCleared:'<span class="ok">✓ Pile du matin vidée</span> — rien de nouveau jusqu’à demain.',goalTodo:t=>`<b>${t}</b> sociétés repérées que Stan n’a pas encore évaluées — terminez le travail.`,goalExtra:t=>`+ ${t} hors pile`,showMap:"Déplier la carte ↓",hideMap:"Replier la carte ↑",period:"Période de détection",dates:["Aujourd’hui","7 derniers jours","30 derniers jours","Depuis toujours"],statusCap:"Statut chez Stan",statusAll:"Tout",statusTodo:"En file",statusKeep:"✅ Retenues",statusPending:"📞 À trancher",statusDrop:"❌ Écartées",refine:"Affiner",fSignal:"🎯 Signal actif",fSector:"Secteur",fMarket:"Marché",fCountry:"Pays",fEngine:"Moteur",fStage:"Stade",fDay:t=>`📅 ${t}`,fDayOff:"Voir tout",clear:t=>`Effacer (${t})`,clearTitle:(t,n)=>`Revenir à la vue complète — ${t} sociétés en ${n}`,alertBtn:"🔔 Alerte email",alertCreate:"🔔 Créer l’alerte",alertReady:"Vos critères sont prêts ? Recevez-les chaque matin par email.",fpNone:"Tout décocher",fpClose:"Fermer ✕",fpSigTitle:"Signal actif — fenêtre de 7 jours",fpSigAll:"<b>Tout signal encore ouvert</b>",evalPh:"Collez une URL ou un nom de société — ou cliquez « Évaluer » sur une ligne",evalWaiting:"En attente",evalUrl:"🔗 URL détectée",evalName:"🏢 Nom détecté",evalGo:"⚡ Évaluer",evalMulti:"+ Évaluer plusieurs à la fois",evalList:"⚡ Évaluer la liste",bulkPh:`Une société par ligne (max 15)
1593pennylane.com
1594Tiime
1595dougs.fr`,bulkCount:t=>`${t} / 15 lignes`,kept:"Retenue",dropped:"Écartée",pending:"À trancher",quota:t=>`Quota du jour atteint — ${t} évaluations non lancées. Le quota se recharge demain.`,why:"Pourquoi :",seeSpace:t=>`→ Voir dans vos ${t}`,session:(t,n)=>`Cette session · <b class="k">${t}</b> retenues &nbsp;·&nbsp; <b class="d">${n}</b> écartées`,seeMySpace:"Voir dans mon espace →",toSend:"à envoyer à l’IA",keptByStan:"retenues par Stan",droppedByStan:"écartées par Stan",pendingByStan:"à trancher",pileCtx:(t,n)=>`Pile du matin · tous continents · ${t} sourcées`+(n?` · ${n} déjà évaluée${n>1?"s":""}`:""),listCtx:(t,n,r)=>`${t.toUpperCase()} · ${n}`+(r?` · ${r} déjà évaluée${r>1?"s":""}
1595`:""),wins:["AUJOURD'HUI","7 DERNIERS JOURS","30 DERNIERS JOURS","TOUTES PÉRIODES"],groupBy:"Grouper par",gEngine:"Moteur",gNone:"Rien",exitPile:"✕ quitter la pile",chain:"⏩ Enchaîner",chainN:t=>`⏩ Enchaîner les ${t}`,sigStrip:t=>`🎯 <span>${t}</span> cibles avec un signal fort exploitable`,sigStripSub:"leur contexte vient de bouger — fenêtre de tir ouverte",sigStripGo:"Ne voir que celles-là",colCountry:"Pays",colName:"Société & description",colAmount:"Montant",colStage:"Stade",colSignal:"Signal",more:(t,n)=>`Afficher ${t} de plus`,acqSee:t=>`Voir ce que rachète ${t}`,acqOn:t=>`Rachats de ${t}`,acqClear:"Tous les acheteurs",moreMeta:(t,n)=>`${t} / ${n}`,void:"Aucune société dans ce périmètre",voidStatus:"Aucune société dans cet état",allDone:"Périmètre traité",allDoneSub:"Tout est parti à l’IA. Élargissez la période ou les critères.",pileDone:"Pile du matin vidée",pileDoneSub:"Tout est parti à l’IA. Revenez demain.",detected:(t,n)=>`Détectée ${t} · ${n}`,today:"AUJOURD'HUI",daysAgo:t=>t===0?"AUJOURD'HUI":t<=30?`IL Y A ${t} J`:`Il y a ${Math.round(t/30)} mois`,desc:"Description",how:"Comment elle a été repérée",memo:"Mémo Proplace · sans évaluation",verdictCap:"Verdict",noSignal:"aucun signal dans sa fenêtre",signaledOn:t=>`signalé le ${t}`,win7:t=>`fenêtre ${t}`,lastDay:"Dernier jour",daysLeft:t=>`${t} jours`,seeSource:"voir la source ↗",source:t=>`source : ${t}`,evalArrow:"⚡ Évaluer →",launchEval:"⚡ Lancer l’évaluation",skip:"⏭ Passer",closeBtn:"Fermer",chainDone:"Série terminée",chainDoneSub:t=>`${t} sociétés envoyées à l’IA d’affilée.`,finished:"Terminé",registered:t=>`Verdict — enregistré dans vos ${t}`,alertTitle:"Recevoir ces critères chaque matin",amRows:{continent:"CONTINENT",since:"DÉTECTÉE DEPUIS",signal:"SIGNAL",engines:"MOTEURS",sectors:"SECTEURS",countries:"PAYS",stages:"STADES"},amAllEngines:"<em>Tous les moteurs</em>",amAllSectors:"<em>Tous les secteurs</em>",amAllCountries:"<em>Tous les pays du continent</em>",amAllStages:"<em>Tous les stades</em>",amAnySignal:"<em>Avec ou sans signal actif</em>",amOnlyOpen:"Uniquement les signaux <b>encore dans leur fenêtre</b> de 7 jours",amSince:["Aujourd’hui","Les 7 derniers jours","Les 30 derniers jours","Depuis toujours"],amMail:"[email protected]",amActivate:"🔔 Activer",amNote:(t,n)=>
1595`Chaque matin à 7 h, vous recevrez les nouvelles sociétés de vos <b>secteurs</b> et <b>pays</b> sélectionnés. Aujourd’hui, ce périmètre contient <b>${t}</b> sociétés, dont <b>${n}</b> avec un signal encore ouvert.`,amHonest:"L’alerte couvre vos secteurs et vos pays. Les autres critères (moteur, stade, signal) affinent l’écran, pas l’email.",amUrgency:"Un signal ne vit que <b>7 jours</b> : une levée repérée un lundi n’est plus une actualité le lundi suivant. L’email quotidien est le seul moyen de ne pas laisser une fenêtre se refermer.",amOk:"Alerte activée",amOkSub:t=>`Premier envoi demain à 7 h sur <b>${t}</b>.<br>Modifiable ou résiliable en un clic depuis l’email.`,spaceTitle:"Votre espace — cibles évaluées",spEmpty:"Rien dans cet onglet pour l’instant.",spNote:"Ces cibles sont enregistrées dans votre espace Proplace, onglets <b>Retenues</b> et <b>Écartées</b>, avec leur score et la raison du verdict.",score:t=>`${t}/100`,callHint:"Stan demande votre avis — tranchez :",callKeep:"✓ Retenir",callDrop:"✗ Écarter",analyse:"⚡ Analyser (mémo)",analyseSent:"Analyse demandée — le mémo arrive dans votre deal flow.",notLocated:"non localisées",loading:"Chargement du sourcing…",loadError:"Impossible de charger le sourcing — réessayez.",retry:"Réessayer",evaluating:(t,n,r)=>`${t}/${n} · ${r}`,demoUrl:"proplace.co/cibles/",demoUrlB:"votre-entreprise"},Ky={live:"LIVE",liveQuiet:t=>`No open signal in ${t} — try another continent.`,goalSourced:t=>`<b>${t}</b> companies were sourced this morning by our engines.`,goalTreat:"▶ Process them",goalContinue:t=>`▶ Continue (${t})`,goalDone:(t,n)=>`<b>${t}</b> of ${n} processed.`,goalCleared:'<span class="ok">✓ Morning pile cleared</span> — nothing new until tomorrow.',goalTodo:t=>`<b>${t}</b> companies spotted that Stan hasn’t evaluated yet — finish the job.`,goalExtra:t=>`+ ${t} outside the pile`,showMap:"Show map ↓",hideMap:"Fold map ↑",period:"Detection period",dates:["Today","Last 7 days","Last 30 days","All time"],statusCap:"Status with Stan",statusAll:"All",statusTodo:"Queued",statusKeep:"✅ Kept",statusPending:"📞 To decide",statusDrop:"❌ Discarded",refine:"Refine",fSignal:"🎯 Active signal",fSector:"Sector",fMarket:"Market",fCountry:"Country",fEngine:"Engine",fStage:"Stage",fDay:t=>`📅 ${t}`,fDayOff:"See everything",clear:t=>`Clear (${t})`,clearTitle:(t,n)=>`Back to the full view — ${t} companies in ${n}`,alertBtn:"🔔 Email alert",alertCreate:"🔔 Create the alert",alertReady:"Criteria ready? Get them every morning by email.",fpNone:"Uncheck all",fpClose:"Close ✕",fpSigTitle:"Active signal — 7-day window",fpSigAll:"<b>Any signal still open</b>",evalPh:"Paste a URL or a company name — or click “Evaluate” on a row",evalWaiting:"Waiting",evalUrl:"🔗 URL detected",evalName:"🏢 Name detected",evalGo:"⚡ Evaluate",evalMulti:"+ Evaluate several at once",evalList:"⚡ Evaluate the list",bulkPh:`One company per line (max 15)
1596pennylane.com
1597Tiime
1598dougs.fr`,bulkCount:t=>`${t} / 15 lines`,kept:"Kept",dropped:"Discarded",pending:"To decide",quota:t=>`Daily quota reached — ${t} evaluations not started. It resets tomorrow.`,why:"Why:",seeSpace:t=>`→ See in your ${t}`,session:(t,n)=>`This session · <b class="k">${t}</b> kept &nbsp;·&nbsp; <b class="d">${n}</b> discarded`,seeMySpace:"See my space →",toSend:"to send to the AI",keptByStan:"kept by Stan",droppedByStan:"discarded by Stan",pendingByStan:"to decide",pileCtx:(t,n)=>`Morning pile · all continents · ${t} sourced`+(n?` · ${n} already evaluated`:""),listCtx:(t,n,r)=>`${t.toUpperCase()} · ${n}`+(r?` · ${r} already evaluated`:""),wins:["TODAY","LAST 7 DAYS","LAST 30 DAYS","ALL TIME"],groupBy:"Group by",gEngine:"Engine",gNone:"None",exitPile:"✕ leave the pile",chain:"⏩ Chain",chainN:t=>`⏩ Chain all ${t}`,sigStrip:t=>`🎯 <span>${t}</span> targets with a strong actionable signal`,sigStripSub:"their context just moved — firing window open",sigStripGo:"Show only those",colCountry:"Country",colName:"Company & description",colAmount:"Amount",colStage:"Stage",colSignal:"Signal",more:(t,
1598n)=>`Show ${t} more`,acqSee:t=>`See what ${t} is buying`,acqOn:t=>`${t}'s acquisitions`,acqClear:"All buyers",moreMeta:(t,n)=>`${t} / ${n}`,void:"No company in this scope",voidStatus:"No company in this state",allDone:"Scope processed",allDoneSub:"Everything went to the AI. Widen the period or the criteria.",pileDone:"Morning pile cleared",pileDoneSub:"Everything went to the AI. Come back tomorrow.",detected:(t,n)=>`Detected ${t} · ${n}`,today:"Today",daysAgo:t=>t===0?"TODAY":t<=30?`${t} d ago`:`${Math.round(t/30)} mo ago`,desc:"Description",how:"How it was spotted",memo:"Proplace memo · no evaluation",verdictCap:"Verdict",noSignal:"no signal in its window",signaledOn:t=>`signalled on ${t}`,win7:t=>`window ${t}`,lastDay:"Last day",daysLeft:t=>`${t} days`,seeSource:"see the source ↗",source:t=>`source: ${t}`,evalArrow:"⚡ Evaluate →",launchEval:"⚡ Run the evaluation",skip:"⏭ Skip",closeBtn:"Close",chainDone:"Streak finished",chainDoneSub:t=>`${t} companies sent to the AI in a row.`,finished:"Done",registered:t=>`Verdict — saved in your ${t}`,alertTitle:"Get these criteria every morning",amRows:{continent:"CONTINENT",since:"DETECTED SINCE",signal:"SIGNAL",engines:"ENGINES",sectors:"SECTORS",countries:"COUNTRIES",stages:"STAGES"},amAllEngines:"<em>All engines</em>",amAllSectors:"<em>All sectors</em>",amAllCountries:"<em>All countries of the continent</em>",amAllStages:"<em>All stages</em>",amAnySignal:"<em>With or without an active signal</em>",amOnlyOpen:"Only signals <b>still inside</b> their 7-day window",amSince:["Today","Last 7 days","Last 30 days","All time"],amMail:"[email protected]",amActivate:"🔔 Activate",amNote:(t,n)=>`Every morning at 7am, you’ll get the new companies of your selected <b>sectors</b> and <b>countries</b>. Today this scope holds <b>${t}</b> companies, <b>${n}</b> with a still-open signal.`,amHonest:"The alert covers your sectors and countries. The other criteria (engine, stage, signal) refine the screen, not the email.",amUrgency:"A signal only lives <b>7 days</b>: a raise spotted on Monday is old news the next Monday. The daily email is the only way not to miss a closing window.",amOk:"Alert activated",amOkSub:t=>`First send tomorrow at 7am to <b>${t}</b>.<br>Editable or cancellable in one click from the email.`,spaceTitle:"Your space — evaluated targets",spEmpty:"Nothing in this tab yet.",spNote:"These targets are saved in your Proplace space, <b>Kept</b> and <b>Discarded</b> tabs, with their score and the verdict reason.",score:t=>`${t}/100`,callHint:"Stan asks for your call — decide:",callKeep:"✓ Keep",callDrop:"✗ Discard",analyse:"⚡ Analyse (memo)",analyseSent:"Analysis requested — the memo will land in your deal flow.",notLocated:"not located",loading:"Loading the sourcing…",loadError:"Could not load the sourcing — try again.",retry:"Retry",evaluating:(t,n,r)=>`${t}/${n} · ${r}`,demoUrl:"proplace.co/cibles/",demoUrlB:"your-company"},Jy={fr:Zy,en:Ky},$y=`
1599.atl{
1600  --brand:#16A34A; --brand-d:#12833C; --brand-l:#DCFCE7;
1601  --blue:#2563EB; --bolt:#F59E0B; --red:#DC2626;
1602  --panel:#FFFFFF; --panel2:#F8FAFC; --panel3:#F1F5F9;
1603  --line:#E2E8F0; --line2:#CBD5E1;
1604  --ink:#0F172A; --muted:#64748B; --dim:#94A3B8;
1605  --sea:#E4EDF3; --land:#FFFFFF; --landline:#B2C2D0; --empty:#F1F5F9; --emptyline:#DCE4EB;
1606  --rail:240px;
1607  --r:5px;        /* blocs et boutons de filtre */
1608  --rs:3px;       /* compteurs et étiquettes */
1609  --ra:8px;       /* boutons d'action */
1610  --rb:12px;      /* fenêtres modales */
1611  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
1612  --body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
1613}
1614.atl, .atl *{box-sizing:border-box}
1615.atl{height:100%;margin:0;overflow:hidden}
1616.atl{background:var(--panel2);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
1617.atl button, .atl input, .atl textarea{font-family:inherit}
1618.atl, .atl *{scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
1619.atl ::-webkit-scrollbar{width:11px;height:11px}
1620.atl ::-webkit-scrollbar-track{background:transparent}
1621.atl ::-webkit-scrollbar-thumb{background:var(--line2);border-radius:6px;border:3px solid var(--panel);background-clip:padding-box}
1622.atl ::-webkit-scrollbar-thumb:hover{background:var(--muted);border-width:2px}
1623.atl .app{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
1624.atl /* ---- bandeau live ---- */
1625.ticker{flex:none;display:flex;height:46px;background:#0B1220;color:#fff;border-bottom:1px solid #1E293B}
1626.atl .ticker .lbl{flex:none;display:flex;align-items:center;gap:9px;padding:0 17px;background:var(--red);
1627  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;font-weight:700;
1628  box-shadow:1px 0 0 rgba(255,255,255,.16)}
1629.atl .ticker .lbl .cnt{font-size:10px;letter-spacing:0;font-weight:700;background:rgba(255,255,255,.24);
1630  border-radius:var(--rs);padding:1px 7px;min-width:22px;text-align:center}
1631.atl .tk.quiet{color:#7E97B2;font-size:12.5px;cursor:default;border:0}
1632.atl .ticker .lbl i{width:7px;height:7px;border-radius:50%;background:#fff;animation:atl-blink 1.6s infinite}
1633@keyframes atl-blink{0%,100%{opacity:1}50%{opacity:.2}}
1634.atl .ticker .win{flex:1;min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent)}
1635.atl .ticker .run{display:flex;width:max-content;animation:atl-roll 140s linear infinite}
1636.atl .ticker:hover .run{animation-play-state:paused}
1637@keyframes atl-roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
1638.atl .tk{display:flex;align-items:center;gap:11px;flex:none;padding:0 20px;height:46px;background:none;border:0;
1639  border-right:1px solid #22334A;white-space:nowrap;cursor:pointer;transition:background .12s}
1640.atl .tk:hover{background:#16233A}
1641.atl .tk .sig{flex:none}
1642.atl .tk .sigwin{margin:0;font-size:10.5px;color:#9FB6CA}
1643.atl .tk .sigwin .gg i{background:rgba(255,255,255,.18)}
1644.atl .tk .sigwin .gg i.on{background:#9FB6CA}
1645.atl .tk .sigwin.hot{color:#FCA5A5;font-weight:600}
1646.atl .tk .sigwin.hot .gg i.on{background:#FCA5A5}
1647.atl .tk .sigwin a{display:none}
1648.atl .tk .tkfl{width:21px;height:16px;object-fit:cover;border-radius:var(--rs);flex:none;
1649  box-shadow:0 0 0 1px rgba(255,255,255,.22)}
1650.atl .tk .who{display:flex;align-items:center;gap:7px;flex:none}
1651.atl .tk .co{font-weight:700;font-size:15px;color:#fff;letter-spacing:-.015em}
1652.atl .tk .what{font-size:12.5px;color:#AFC2D3}
1653.atl .tk .am{font-family:var(--mono);font-size:13px;color:#fff;font-weight:600;
1654  background:rgba(255,255,255,.09);border-radius:var(--rs);padding:3px 8px}
1655.atl .tk .mt{font-size:11px;color:#B7C9D8;border:1px solid rgba(255,255,255,.2);border-radius:var(--rs);
1656  padding:2px 8px;letter-spacing:.01em}
1657.atl .tk .tkgo{font-size:13px;color:#4A6379;transition:color .12s,transform .12s}
1658.atl .tk:hover .tkgo{color:#fff;transform:translateX(3px)}
1659.atl .tk.spent{opacity:.32}
1660.atl .tk.spent .co{color:#94A3B8}
1661.atl .tk .ty.sig{background:#F9A8D4}
1662.atl /* ---- barre du matin ---- */
1663.goal{flex:none;display:flex;align-items:center;gap:9px 14px;padding:8px 14px;background:var(--panel);
1664  border-bottom:1px solid var(--line);flex-wrap:wrap}
1665.atl .gtxt{font-size:15px;font-weight:500;color:var(--ink)}
1666.atl .gtxt b{font-weight:700;font-size:17px}
1667.atl .gtxt .ok{color:var(--brand-d);font-weight:700}
1668.atl .gtxt a{color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
1669.atl .gtxt a:hover{color:var(--ink)}
1670.atl .pbar{flex:1;min-width:90px;max-width:200px;height:6px;background:var(--panel3);border-radius:99px;overflow:hidden}
1671.atl .pbar i{display:block;height:100%;width:0;background:var(--brand);border-radius:99px;transition:width .45s cubic-bezier(.22,1,.36,1)}
1672.atl .pilebtn{background:var(--ink);color:#fff;border:0;border-radius:var(--ra);padding:9px 16px;font-size:13px;
1673  font-weight:700;cursor:pointer;white-space:nowrap;flex:none}
1674.atl .pilebtn:hover{background:#000}
1675.atl .pilebtn[hidden]{display:none}
1676.atl .gxtra{font-size:12.5px;color:var(--muted)}
1677.atl .gspace{flex:1}
1678.atl /* ---- continents ---- */
1679.conts{flex:none;display:flex;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto}
1680.atl .cbtn{display:flex;align-items:center;gap:7px;background:none;border:0;border-bottom:2.5px solid transparent;
1681  padding:6px 14px;cursor:pointer;font-size:12.5px;color:var(--muted);white-space:nowrap}
1682.atl .cbtn:hover{background:var(--panel2);color:var(--ink)}
1683.atl .cbtn[aria-selected="true"]{color:var(--ink);font-weight:700;border-bottom-color:var(--ink)}
1684.atl .cbtn .n{font-family:var(--mono);font-size:9.5px;background:var(--panel3);border-radius:var(--rs);padding:1px 7px;color:var(--muted)}
1685.atl .cbtn.hint{background:var(--brand-l);color:var(--brand-d);font-weight:700}
1686.atl .cbtn.hint .n{background:var(--brand);color:#fff}
1687.atl .cbtn[aria-selected="true"] .n{background:var(--ink);color:#fff}
1688.atl .conts .side{margin-left:auto;display:flex;align-items:center;flex:none}
1689.atl .conts .side button{background:none;border:0;border-left:1px solid var(--line);padding:0 14px;height:100%;
1690  font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--muted);cursor:pointer}
1691.atl .conts .side button:hover{color:var(--ink)}
1692.atl /* ---- carte ---- */
1693.mapzone{flex:1;min-width:0;position:relative;background:var(--sea);overflow:hidden}
1694.atl .mapzone svg{width:100%;height:100%;display:block}
1695.atl .ct path{fill:var(--land);stroke:var(--landline);stroke-width:.55;transition:fill .12s}
1696.atl .ct.empty path{fill:var(--empty);stroke:var(--emptyline)}
1697.atl .ct:hover path{fill:#F0F7FC}
1698.atl g.co{cursor:pointer;transition:opacity .16s}
1699.atl g.co circle.h{fill:#000;fill-opacity:0;pointer-events:all}
1700.atl /* zone de clic, .atl invisible */
1701g.co circle.v{pointer-events:none;stroke:#fff;stroke-opacity:.92}
1702.atl g.co.off{opacity:.05;pointer-events:none}
1703.atl g.co.done circle.v{fill-opacity:.32;stroke-opacity:.4}
1704.atl g.co:hover circle.v{stroke:var(--ink);stroke-opacity:1}
1705.atl .ring{pointer-events:none;opacity:0}
1706.atl .ring.on{opacity:1}
1707.atl .hov{position:absolute;pointer-events:none;opacity:0;z-index:6;background:var(--ink);color:#fff;padding:5px 9px;
1708  border-radius:var(--r);font-family:var(--mono);font-size:10px;white-space:nowrap;transform:translate(-50%,-165%)}
1709.atl .hov.on{opacity:1}
1710.atl .legend{position:absolute;left:10px;bottom:9px;display:flex;align-items:center;gap:11px;z-index:4;opacity:.4;
1711  transition:opacity .15s;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;color:var(--ink)}
1712.atl .legend:hover{opacity:1}
1713.atl .legend span{display:flex;align-items:center;gap:5px}
1714.atl .legend i{width:7px;height:7px;border-radius:50%;background:var(--c)}
1715.atl .legend b{font-weight:600}
1716.atl /* ---- scène : carte + rail de filtres à droite ---- */
1717.fzone{position:relative;flex:none;z-index:25;display:flex;flex-direction:column}
1718.atl .stage{display:flex;height:30vh;min-height:316px;max-height:38vh;
1719  border-bottom:1px solid var(--line);transition:height .2s}
1720.atl .stage.folded{height:auto;min-height:0}
1721.atl .stage.folded .mapzone{display:none}
1722.atl .frail{width:var(--rail);flex:none;background:var(--panel);border-left:1px solid var(--line);
1723  display:flex;flex-direction:column;gap:0;padding:11px 10px;overflow-y:auto;overflow-x:hidden}
1724.atl .stage.folded .frail{width:auto;flex:1;border-left:0;flex-direction:row;flex-wrap:wrap;
1725  align-items:center;overflow:visible;padding:9px 12px;gap:7px}
1726.atl /* tout revient sur une seule ligne : on neutralise les marges de la mise en colonne */
1727.stage.folded .frail .cap{margin:0 1px 0 0;line-height:1;align-self:center}
1728.atl .stage.folded .frail .cap+*{margin-bottom:0}
1729.atl .stage.folded .frail .statusf{margin-bottom:0;flex-direction:row}
1730.atl .stage.folded .frail .dates, .atl .stage.folded .frail .fgrid{align-self:center}
1731.atl .stage.folded .frail .sep2{width:1px;height:20px;background:var(--line);flex:none;margin:0 3px}
1732.atl .frail .cap{font-family:var(--mono);font-size:7.5px;letter-spacing:.16em;color:var(--dim);
1733  padding:0 1px;line-height:1.4;margin-bottom:7px}
1734.atl .frail .cap+*{margin-bottom:15px}
1735.atl .frail .fgrid{margin-bottom:0}
1736.atl /* étiquette de signal */
1737/* ===== étiquette de signal : une seule apparence, .atl partout ===== */
1738.sig{display:inline-flex;align-items:center;gap:6px;background:var(--red);color:#fff;border-radius:var(--rs);
1739  padding:3px 9px;font-size:11px;font-weight:600;white-space:nowrap;line-height:1.5;letter-spacing:.01em;
1740  font-family:var(--body);border:0}
1741.atl .sig-lg{font-size:12.5px;padding:5px 12px;gap:7px}
1742.atl .sig-o{background:transparent;color:var(--red);box-shadow:inset 0 0 0 1px #F0B4B4}
1743.atl .sig-o:hover{box-shadow:inset 0 0 0 1px var(--red)}
1744.atl .sigwin{display:flex;align-items:center;gap:7px;margin-top:4px;font-style:normal;
1745  font-family:var(--body);font-size:10.5px;color:var(--muted);line-height:1}
1746.atl .sigwin .gg{display:flex;gap:2px;flex:none}
1747.atl .sigwin .gg i{width:5px;height:3px;border-radius:1px;background:var(--line2)}
1748.atl .sigwin .gg i.on{background:var(--muted)}
1749.atl .sigwin .lb{white-space:nowrap}
1750.atl .sigwin a{color:var(--dim);text-decoration:none;font-size:11px;line-height:1}
1751.atl .sigwin a:hover{color:var(--ink)}
1752.atl .sigwin.hot{color:var(--red);font-weight:600}
1753.atl .sigwin.hot .gg i.on{background:var(--red)}
1754.atl .sigwin a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor;opacity:.7}
1755.atl .sigwin a:hover{opacity:1}
1756.atl /* bandeau de tête : les signaux exploitables */
1757.sigstrip{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#FEF2F2;
1758  border-bottom:1px solid #FCD9D9;flex-wrap:wrap}
1759.atl .sigstrip .t{font-size:13.5px;font-weight:700;color:#B91C1C}
1760.atl .sigstrip .s{font-size:12.5px;color:#9F5A5A}
1761.atl .sigstrip button{margin-left:auto;background:var(--red);color:#fff;border:0;border-radius:var(--ra);
1762  padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
1763.atl .sigstrip button:hover{filter:brightness(1.1)}
1764.atl .sigstrip[hidden]{display:none}
1765.atl /* bouton de filtre signal dans le rail */
1766/* le filtre de signal a la couleur du signal, .atl mais le comportement d'une facette */
1767.fbtn.fsig{border-color:#F0B4B4;
1767color:var(--red);grid-column:1 / -1}
1768.atl .fbtn.fsig:hover{border-color:var(--red)}
1769.atl .fbtn.fsig .cv{color:#E9A0A0}
1770.atl .fbtn.fsig .n{background:var(--red)}
1771.atl .fbtn.fsig[aria-expanded="true"]{background:var(--red);border-color:var(--red);color:#fff}
1772.atl .fbtn.fsig[aria-expanded="true"] .n{background:#fff;color:var(--red)}
1773.atl .opt .sig{pointer-events:none}
1774.atl .statusf{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}
1775.atl .statusf[hidden]{display:none}
1776.atl .statusf button{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);
1777  border-radius:var(--r);padding:0 10px;height:28px;font-size:11.5px;color:var(--muted);cursor:pointer;text-align:left}
1778.atl .statusf button:hover{border-color:var(--line2);color:var(--ink)}
1779.atl .statusf button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
1780.atl .statusf button b{margin-left:auto;font-family:var(--mono);font-size:9px;font-weight:700;
1781  background:var(--panel3);color:var(--muted);border-radius:var(--rs);padding:1px 6px}
1782.atl .statusf button[aria-pressed="true"] b{background:rgba(255,255,255,.22);color:#fff}
1783.atl .statusf{gap:5px}
1784.atl .stage.folded .statusf{flex-direction:row}
1785.atl .stage.folded .sigtypes{display:none}
1786.atl .dates{display:flex;flex-direction:column;flex:none;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
1787.atl .dates button{display:flex;align-items:center;gap:9px;width:100%;height:28px;padding:0 10px;background:var(--panel);
1788  border:0;border-bottom:1px solid var(--line);cursor:pointer;font-family:var(--body);font-size:11.5px;
1789  font-weight:600;color:var(--muted);text-align:left}
1790.atl .dates button:last-child{border-bottom:0}
1791.atl .dates button:hover{background:var(--panel2);color:var(--ink)}
1792.atl .dates button .rd{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--line2);flex:none;position:relative}
1793.atl .dates button[aria-pressed="true"]{background:var(--ink);color:#fff}
1794.atl .dates button[aria-pressed="true"] .rd{border-color:#fff}
1795.atl .dates button[aria-pressed="true"] .rd::after{content:"";position:absolute;inset:2px;border-radius:50%;background:#fff}
1796.atl .dates button .dn{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--muted);font-weight:700;
1797  background:var(--panel3);border-radius:var(--rs);padding:1px 6px}
1798.atl .dates button[aria-pressed="true"] .dn{background:rgba(255,255,255,.22);color:#fff}
1799.atl .stage.folded .dates{flex-direction:row;align-items:center;gap:0;border-radius:var(--r)}
1800.atl .stage.folded .dates .dbh{display:none}
1801.atl .stage.folded .dates button{width:auto;height:28px;padding:0 11px;border-bottom:0;
1802  border-right:1px solid var(--line);white-space:nowrap;font-size:11.5px}
1803.atl .stage.folded .dates button:last-child{border-right:0}
1804.atl .frow{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
1805.atl .frow .alertbtn{flex:1 1 84px}
1806.atl .frow .resetbtn{flex:0 0 auto}
1807.atl .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
1808.atl .stage.folded .fgrid{display:flex;gap:4px}
1809.atl .stage.folded .fbtn.fsig{grid-column:auto}
1810.atl .fbtn{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);
1811  border-radius:var(--r);padding:0 10px;height:28px;cursor:pointer;font-family:var(--body);font-size:11.5px;
1812  font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-align:left}
1813.atl .fbtn:hover{border-color:var(--line2);color:var(--ink)}
1814.atl .fbtn .sp{flex:1}
1815.atl .fbtn .cv{font-size:8px;color:var(--dim);transition:transform .14s}
1816.atl .fbtn .n{background:var(--ink);color:#fff;border-radius:var(--rs);padding:1px 6px;
1817  font-family:var(--mono);font-size:9px;font-weight:700}
1818.atl .fbtn .n[hidden]{display:none}
1819.atl .fbtn[aria-expanded="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
1820.atl .fbtn[aria-expanded="true"] .cv{color:#fff;transform:rotate(-90deg)}
1821.atl .fbtn[aria-expanded="true"] .n{background:#fff;color:var(--ink)}
1822.atl .alertbtn{background:var(--brand);color:#fff;border:0;border-radius:var(--ra);height:30px;padding:0 10px;font-size:11.5px;
1823  font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;
1824  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
1825.atl .alertbtn:hover{background:var(--brand-d)}
1826.atl .resetbtn{display:none;align-items:center;gap:5px;background:var(--panel);border:1px dashed var(--line2);
1827  border-radius:var(--ra);
1827height:30px;padding:0 10px;font-family:var(--body);font-size:11.5px;font-weight:600;
1828  color:var(--muted);cursor:pointer;white-space:nowrap}
1829.atl .resetbtn.on{display:flex}
1830.atl .resetbtn:hover{border-style:solid;border-color:var(--ink);color:var(--ink)}
1831.atl .resetbtn .rot{display:inline-block;font-size:12px}
1832.atl .resetbtn.spin .rot{animation:atl-spin .5s ease}
1833@keyframes atl-spin{from{transform:rotate(0)}to{transform:rotate(-360deg)}}
1834.atl .frail .grow{flex:1}
1835.atl .stage.folded .frail .grow{display:none}
1836.atl /* ---- panneau déroulant multi-colonnes ---- */
1837.fpanel{position:absolute;right:var(--rail);top:0;width:min(640px,calc(100% - var(--rail) - 10px));
1838  background:var(--panel);border-left:1px solid var(--line2);border-right:1px solid var(--line2);
1839  border-bottom:1px solid var(--line2);box-shadow:-16px 6px 34px rgba(15,23,42,.16);
1840  display:none;flex-direction:column;max-height:min(52vh,430px);z-index:30}
1841.atl .fpanel.on{display:flex}
1842.atl /* carte repliée : le rail est horizontal, .atl le panneau redevient un déroulé pleine largeur */
1843.stage.folded ~ .fpanel{right:0;left:0;top:100%;width:auto;border-left:0;border-right:0;
1844  box-shadow:0 20px 36px rgba(15,23,42,.16)}
1845.atl .fpanel .ph{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--panel2)}
1846.atl .fpanel .ph b{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em}
1847.atl .fpanel .ph .sp{flex:1}
1848.atl .fpanel .ph button{background:none;border:0;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--muted);cursor:pointer;padding:3px 6px}
1849.atl .fpanel .ph button:hover{color:var(--ink)}
1850.atl .fcols{flex:1;min-height:0;overflow:auto;padding:10px 14px;columns:3;column-gap:16px}
1851.atl .fcols.two{columns:2}
1852.atl .opt{width:100%;display:flex;align-items:center;gap:8px;padding:5px 6px;background:none;border:0;cursor:pointer;
1853  text-align:left;font-size:12px;color:var(--muted);border-radius:var(--r);break-inside:avoid}
1854.atl .opt:hover{background:var(--panel2);color:var(--ink)}
1855.atl .opt .bx{width:12px;height:12px;border:1.5px solid var(--line2);border-radius:var(--rs);flex:none;position:relative}
1856.atl .opt[aria-pressed="true"] .bx{background:var(--brand);border-color:var(--brand)}
1857.atl .opt[aria-pressed="true"] .bx::after{content:"";position:absolute;left:2.8px;top:.4px;width:3.6px;height:6.4px;
1858  border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(42deg)}
1859.atl .opt[aria-pressed="true"]{color:var(--ink);font-weight:600}
1860.atl .opt .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
1861.atl .opt .n{font-family:var(--mono);font-size:9px;color:var(--dim)}
1862.atl .fpanel .pf{border-top:1px solid var(--line);padding:10px 14px;background:var(--panel2);display:flex;align-items:center;gap:10px}
1863.atl .fpanel .pf .t{font-size:12px;color:var(--muted);flex:1}
1864.atl /* ---- numéro de méthode ---- */
1865.no{width:21px;height:21px;border-radius:50%;background:var(--ink);color:#fff;display:inline-grid;place-items:center;
1866  font-family:var(--mono);font-size:11px;font-weight:700;flex:none}
1867.atl .no.g{background:var(--brand)}
1868.atl /* ---- à la demande ---- */
1869.demand{flex:none;background:var(--panel2);border-top:1px solid var(--line);
1870  border-bottom:1px solid var(--line);padding:13px 14px}
1871.atl .drow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
1872.atl .dfield{flex:1;min-width:230px;position:relative;display:flex;align-items:center}
1873.atl .dfield input{width:100%;height:46px;background:var(--panel);border:1px solid var(--line2);
1874  border-radius:var(--ra);padding:0 100px 0 15px;font-size:15px;outline:none;transition:.14s;
1875  box-shadow:0 1px 2px rgba(15,23,42,.05)}
1876.atl .dfield input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(22,163,74,.15)}
1877.atl .dfield.pulse input{animation:atl-pulse .7s ease}
1878@keyframes atl-pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}100%{box-shadow:0 0 0 12px rgba(22,163,74,0)}}
1879.atl .detect{position:absolute;right:13px;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;background:var(--panel3);
1880  color:var(--muted);border-radius:var(--rs);padding:3px 8px;pointer-events:none}
1881.atl .detect.url{background:var(--brand-l);color:var(--brand-d)}
1882.atl .evalbtn{position:relative;overflow:hidden;background:var(--brand);color:#fff;border:0;border-radius:var(--ra);
1883  height:46px;padding:0 24px;font-size:15px;font-weight:700;box-shadow:0 1px 2px rgba(15,23,42,.08);cursor:pointer;flex:none;display:flex;align-items:center;gap:8px}
1884.atl .evalbtn:hover{background:var(--brand-d)}
1885.atl .evalbtn[disabled]{opacity:.6;cursor:default}
1886.atl .evalbtn .fill{position:absolute;
1886left:0;top:0;bottom:0;width:0;background:rgba(255,255,255,.28)}
1887.atl .evalbtn.loading .fill{width:100%;transition:width 1.15s linear}
1888.atl .dmulti{background:none;border:0;font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px;flex:none}
1889.atl .dmulti:hover{color:var(--brand-d)}
1890.atl .bulk{display:none;margin-top:10px;gap:9px;align-items:flex-start}
1891.atl .bulk.on{display:flex}
1892.atl .bulk textarea{flex:1;min-height:118px;overflow:hidden;border:1.5px solid var(--line2);border-radius:var(--ra);
1893  padding:11px 13px;font-size:13.5px;line-height:1.7;resize:none;outline:none;font-family:var(--mono)}
1894.atl .bulk textarea:focus{border-color:var(--brand)}
1895.atl .bulk .side{display:flex;flex-direction:column;gap:6px;flex:none;width:180px}
1896.atl .bulk .hint{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;color:var(--dim);text-align:center}
1897.atl /* bande de résultat sous le champ */
1898.result{display:none;margin-top:10px;border-radius:var(--r);border:1.5px solid var(--c);background:var(--bgc);
1899  padding:11px 14px;align-items:center;gap:14px;flex-wrap:wrap;animation:atl-pop .22s ease}
1900.atl .result.on{display:flex}
1901@keyframes atl-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
1902.atl .result .vv{display:flex;align-items:center;gap:8px;flex:none}
1903.atl .result .vp{font-family:var(--mono);font-size:10px;letter-spacing:.14em;font-weight:700;color:#fff;
1904  background:var(--c);border-radius:var(--rs);padding:5px 10px}
1905.atl .result .vs{font-family:var(--mono);font-size:17px;font-weight:700;color:var(--c)}
1906.atl .result .vs s{text-decoration:none;font-size:10px;color:var(--muted)}
1907.atl .result .rn{font-weight:700;font-size:14px}
1908.atl .result .rr{flex:1;min-width:180px;font-size:12.5px;color:var(--muted)}
1909.atl .result .rr b{color:var(--ink);font-weight:600}
1910.atl .result .go{background:var(--c);color:#fff;border:0;border-radius:var(--ra);padding:8px 13px;font-size:11.5px;
1911  font-weight:700;cursor:pointer;white-space:nowrap}
1912.atl .tally{display:flex;align-items:center;gap:10px;margin-top:9px;font-family:var(--mono);font-size:9.5px;
1913  letter-spacing:.08em;color:var(--dim);flex-wrap:wrap}
1914.atl .tally b{color:var(--ink);font-weight:700;font-size:12px}
1915.atl .tally .k{color:var(--brand-d)}
1916.atl .tally .d{color:var(--red)}
1917.atl .tally a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
1918.atl .tally a:hover{color:var(--ink)}
1919.atl /* modale critères */
1920.mcard .fgrp{margin-bottom:14px}
1921.atl .mcard .fgrp label{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px}
1922.atl .mcard .fgrp input{width:100%;border:1.5px solid var(--line2);border-radius:var(--ra);padding:11px 13px;font-size:14px;outline:none}
1923.atl .mcard .fgrp input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
1924.atl .mcard .fgrp .h{font-size:11.5px;color:var(--muted);margin-top:4px}
1925.atl .mcard .lead{font-size:13.5px;line-height:1.55;color:var(--ink);margin:0 0 16px}
1926.atl .mcard .lead b{font-weight:700}
1927.atl .mcard .ctx{background:var(--panel3);border-left:3px solid var(--brand);padding:10px 13px;border-radius:0 5px 5px 0;
1928  font-size:12.5px;margin-bottom:14px}
1929.atl .mcard .opt-more{background:none;border:0;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline;
1930  text-underline-offset:3px;padding:0;margin-bottom:14px}
1931.atl .mcard .note{font-size:12px;color:var(--muted);margin:0 0 14px}
1932.atl .mcard .cta{width:100%;justify-content:center;padding:14px;font-size:14.5px}
1933.atl /* ---- sources ---- */
1934.groupbar{display:flex;align-items:center;gap:4px;margin-left:auto;flex:none}
1935.atl .groupbar .gl{font-family:var(--mono);font-size:7.5px;letter-spacing:.16em;color:var(--dim);margin-right:3px}
1936.atl .groupbar button{font-size:11.5px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
1937  padding:5px 11px;cursor:pointer;color:var(--muted)}
1938.atl .groupbar button:hover{border-color:var(--line2);color:var(--ink)}
1939.atl .groupbar button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
1940.atl .groupbar[hidden]{display:none}
1941.atl .subh{padding:9px 14px 7px;border-bottom:1px solid var(--line);background:#FBFDFE}
1942.atl .subh b{display:block;font-size:12.5px;font-weight:700}
1943.atl .subh span{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--dim)}
1944.atl /* ---- liste ---- */
1945.listhead{flex:none;display:flex;align-items:baseline;gap:9px;padding:7px 14px;background:var(--panel2);
1946  border-bottom:1px solid var(--line);overflow:hidden}
1947.atl .listhead .main{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;flex:none}
1948.atl .listhead .main b{font-size:17px;font-weight:700;letter-spacing:-.01em}
1949.atl .listhead .dot{color:var(--line2);flex:none}
1950.atl .listhead .ctx{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--dim);
1951  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
1952.atl .listhead .chain{align-self:center;flex:none;margin-left:9px}
1953.atl .exitpile{background:none;border:1px solid var(--line2);border-radius:var(--r);padding:5px 10px;
1954  font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--muted);cursor:pointer;align-self:center}
1955.atl .exitpile:hover{border-color:var(--red);color:var(--red)}
1956.atl .exitpile[hidden]{display:none}
1957.atl /* aperçu de l'espace */
1958.sp-tabs{display:flex;gap:6px;margin-bottom:14px}
1959.atl .sp-tab{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:var(--ra);padding:8px 13px;
1960  font-size:12.5px;font-weight:600;background:var(--panel);cursor:pointer}
1961.atl .sp-tab[aria-selected="true"]{background:var(--c);border-color:var(--c);color:#fff}
1962.atl .sp-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
1963.atl .sp-row:last-child{border-bottom:0}
1964.atl .sp-row .sc{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--c);flex:none;width:34px}
1965.atl .sp-row .nm{font-weight:700;font-size:13.5px}
1966.atl .sp-row .rr{font-size:12px;color:var(--muted);margin-top:2px}
1967.atl .sp-empty{padding:26px;text-align:center;font-size:13px;color:var(--muted)}
1968.atl .chain{margin-left:auto;background:var(--ink);color:#fff;border:0;border-radius:var(--ra);padding:8px 16px;font-size:12.5px;
1969  font-weight:700;cursor:pointer;display:flex;align-items:center;gap:7px}
1970.atl .chain:hover{background:#000}
1971.atl .chain .b{color:var(--brand)}
1972.atl .list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--panel)}
1973.atl .row>*{min-width:0}
1974.atl .grp-h{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--panel3);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}
1975.atl .grp-h .ic{width:24px;height:24px;border-radius:var(--r);background:var(--ink);color:#fff;display:grid;place-items:center;font-size:12px}
1976.atl .grp-h .t{font-weight:700;font-size:13px}
1977.atl .grp-h .s{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted)}
1978.atl .grp-h .go{margin-left:auto;background:var(--panel);border:1px solid var(--line2);border-radius:var(--ra);padding:6px 12px;
1979  font-size:11.5px;font-weight:600;cursor:pointer}
1980.atl .grp-h .go:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
1981.atl .row, .atl .cols{display:grid;
1982  grid-template-columns:11px 30px minmax(280px,1fr) 92px 86px 178px 108px;
1983  gap:12px;align-items:center;padding:6px 14px}
1984.atl /* le nom et sa description sur la même ligne, .atl rien entre les deux */
1985.nd{min-width:0;display:flex;align-items:baseline;gap:9px}
1986.atl .nd .rnm{font-weight:700;font-size:13.5px;flex:none;max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1987.atl .nd .rds{font-size:12.5px;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1988.atl .c-amt{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink);text-align:right}
1989.atl .c-amt.none{color:var(--dim);font-weight:400}
1990.atl .c-flag{display:flex;align-items:center;justify-content:center}
1991.atl .c-flag img{width:24px;height:18px;object-fit:cover;border-radius:var(--rs);box-shadow:0 0 0 1px rgba(15,23,42,.12)}
1992.atl .c-flag .em{font-size:16px}
1993.atl .row{border-bottom:1px solid var(--line);cursor:pointer}
1994.atl /* en-tête de colonnes, .atl triable */
1995.cols{flex:none;padding:0 14px;background:var(--panel2);border-bottom:1px solid var(--line);align-items:stretch}
1996.atl .cols>*{display:flex;align-items:center;font-family:var(--mono);font-size:8px;letter-spacing:.14em;
1997  color:var(--dim);background:none;border:0;padding:5px 0;text-align:left;min-width:0}
1998.atl .cols button{cursor:pointer;gap:4px}
1999.atl .cols button:hover{color:var(--ink)}
2000.atl .cols button .ar{opacity:0;font-size:9px}
2001.atl .cols button[aria-sort]:not([aria-sort="none"]){color:var(--ink);font-weight:700}
2002.atl .cols button[aria-sort]:not([aria-sort="none"]) .ar{opacity:1}
2003.atl /* drapeau */
2004.c-flag{display:flex;align-items:center;gap:5px;min-width:0}
2005.atl .c-flag .fl{font-size:15px;line-height:1}
2006.atl .c-flag .cc{font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;color:var(--dim)}
2007.atl .c-stade{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--muted);
2008  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2009.atl /* reste à afficher dans un groupe */
2010.moregrp{width:100%;padding:11px 14px;background:var(--panel2);border:0;border-bottom:1px solid var(--line);
2011  font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;color:var(--muted);cursor:pointer;text-align:left}
2012.atl .moregrp:hover{color:var(--ink);background:var(--panel3)}
2013.atl .c-sig{min-width:0;display:flex;flex-direction:column;gap:0;align-items:flex-start}
2014.atl .c-sig .mo{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--muted);
2015  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
2016.atl .c-sig .win{display:block;font-style:normal;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;color:var(--dim);margin-top:4px}
2017.atl .c-sig .sig{max-width:100%;overflow:hidden}
2018.atl .row:hover, .atl .row.on{background:#F6FBF8}
2019.atl .row.on{box-shadow:inset 3px 0 0 var(--brand)}
2020.atl .pt{width:11px;height:11px;border-radius:50%;background:var(--c)}
2021.atl .rnm{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2022.atl .rds{font-size:12px;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
2023.atl .rc{font-family:var(--mono);font-size:9.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2024.atl .rc em{display:block;font-style:normal;color:var(--dim);font-size:8.5px;margin-top:2px}
2025.atl .rev{position:relative;overflow:hidden;background:var(--brand);color:#fff;border:0;border-radius:var(--ra);padding:8px 6px;
2026  font-size:11.5px;font-weight:700;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center;gap:5px}
2027.atl .rev:hover{background:var(--brand-d)}
2028.atl .rev .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(255,255,255,.3)}
2029.atl .rev.loading .fill{width:100%;transition:width 1.15s linear}
2030.atl .verdict{display:flex;align-items:center;justify-content:center;gap:5px;border-radius:var(--r);padding:7px 6px;
2031  font-family:var(--mono);font-size:9px;letter-spacing:.08em;font-weight:700;border:1px solid var(--c);color:var(--c);background:var(--panel)}
2032.atl .verdict b{font-family:var(--body);font-size:11px}
2033.atl .artic{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--line)}
2034.atl .artic .kind{font-family:var(--mono);font-size:8px;letter-spacing:.12em;border-radius:var(--rs);padding:3px 7px;flex:none;
2035  background:var(--panel3);color:var(--muted);font-weight:600}
2036.atl .artic .kind.new{background:var(--brand);color:#fff}
2037.atl .artic .body{flex:1;min-width:0}
2038.atl .artic .ti{font-weight:600;font-size:13.5px;line-height:1.35;margin-bottom:3px}
2039.atl .artic .me{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--dim)}
2040.atl .artic .acts{display:flex;gap:6px;flex:none;flex-wrap:wrap;justify-content:flex-end}
2041.atl .abtn{background:var(--panel);border:1px solid var(--line2);border-radius:var(--ra);padding:7px 12px;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap}
2042.atl .abtn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
2043.atl .abtn.p{background:var(--brand);border-color:var(--brand);color:#fff}
2044.atl .abtn.p:hover{background:var(--brand-d)}
2045.atl .void{padding:48px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--dim)}
2046.atl .fin{padding:34px 20px;text-align:center}
2047.atl .fin .em{font-size:30px}
2048.atl .fin .t{font-weight:700;font-size:16px;margin:8px 0 4px}
2049.atl .fin .s{font-size:13px;color:var(--muted)}
2050.atl /* ---- popup / modales ---- */
2051.pop{position:fixed;width:322px;z-index:60;opacity:0;pointer-events:none;background:var(--panel);border:1px solid var(--line2);
2052  border-radius:var(--r);box-shadow:0 18px 48px rgba(15,23,42,.24);transition:opacity .11s}
2053.atl .pop.on{opacity:1;pointer-events:auto}
2054.atl .pop .ph{padding:13px 15px 10px;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:flex-start}
2055.atl .pop .ph h3{margin:0;font-size:17px;font-weight:700;flex:1;letter-spacing:-.01em}
2056.atl .pop .ph .id{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--dim);margin-top:3px;font-weight:400}
2057.atl .pop .x{background:none;border:0;font-size:19px;color:var(--dim);cursor:pointer;line-height:1}
2058.atl .pop .pb{padding:12px 15px;max-height:min(38vh,320px);overflow:auto}
2059.atl .tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:11px}
2060.atl .tags span{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;border:1px solid var(--line);color:var(--muted);padding:4px 7px;border-radius:var(--rs)}
2061.atl .tags span.hi{background:var(--panel3);color:var(--ink);font-weight:600}
2062.atl .fld{margin-bottom:12px}
2063.atl .fld:last-child{margin-bottom:0}
2064.atl .fld .l{font-family:var(--mono);font-size:8px;letter-spacing:.18em;color:var(--dim);display:block;margin-bottom:5px}
2065.atl .fld p{margin:0;font-size:12.5px;line-height:1.5}
2066.atl .fld .memo{font-size:12px;color:var(--muted);border-left:2px solid var(--line);padding-left:10px}
2067.atl .pop .pf{padding:11px 15px;border-top:1px solid var(--line);background:var(--panel2)}
2068.atl .modal{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.55);
2068display:none;align-items:center;justify-content:center;padding:20px}
2069.atl .modal.on{display:flex}
2070.atl .mcard{background:var(--panel);border-radius:var(--rb);width:min(560px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
2071.atl .mcard .mh{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}
2072.atl .mcard .mh h2{margin:0;font-size:18px;font-weight:700;flex:1}
2073.atl .mcard .mh .x{background:none;border:0;font-size:21px;color:var(--dim);cursor:pointer}
2074.atl .mcard .mb{padding:18px 20px;overflow:auto;flex:1}
2075.atl .crit{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
2076.atl .crit .r{display:flex;gap:12px;padding:9px 13px;border-bottom:1px solid var(--line);font-size:12.5px}
2077.atl .crit .r:last-child{border-bottom:0}
2078.atl .crit .k{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--dim);width:112px;flex:none;padding-top:2px}
2079.atl .crit .v{flex:1;font-weight:500}
2080.atl .crit .v em{font-style:normal;color:var(--muted);font-weight:400}
2081.atl .mfield{display:flex;gap:8px}
2082.atl .mfield input{flex:1;border:1.5px solid var(--line2);border-radius:var(--ra);padding:12px 13px;font-size:14px;outline:none}
2083.atl .mfield input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
2084.atl .mnote{font-size:12px;color:var(--muted);margin:12px 0 0}
2085.atl /* enchaînement */
2086.fcard{background:var(--panel);border-radius:var(--rb);width:min(660px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
2087.atl .fcard .fh{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}
2088.atl .fcard .fh .p{flex:1;height:6px;background:var(--panel3);border-radius:99px;overflow:hidden}
2089.atl .fcard .fh .p i{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .3s}
2090.atl .fcard .fh .c{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted)}
2091.atl .fcard .fh .x{background:none;border:0;font-size:20px;color:var(--dim);cursor:pointer}
2092.atl .fcard .fb{padding:20px 22px;overflow:auto;flex:1}
2093.atl .fcard h2{margin:0 0 4px;font-size:25px;font-weight:700;letter-spacing:-.02em}
2094.atl .fcard .sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--dim);margin-bottom:14px}
2095.atl .fcard .ff{padding:14px 18px;border-top:1px solid var(--line);background:var(--panel2);display:flex;gap:9px}
2096.atl .vbox{border-radius:var(--rb);padding:16px;display:flex;align-items:center;gap:14px;border:2px solid var(--c);background:var(--panel)}
2097.atl .vbox .vs{font-size:30px;font-weight:800;color:var(--c);line-height:1}
2098.atl .vbox .vt{font-weight:700;font-size:15px;color:var(--c)}
2099.atl .vbox .vd{font-size:12.5px;color:var(--muted)}
2100.atl .plus{position:fixed;z-index:90;font-weight:800;font-size:22px;color:var(--brand);pointer-events:none;animation:atl-up 1s ease forwards}
2101@keyframes atl-up{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-46px)}}
2102@media (max-width:1240px){.atl .row, .atl .cols{grid-template-columns:11px 30px minmax(230px,1fr) 88px 170px 104px}
2103.atl .c-stade, .atl .h-stade{display:none}}
2104@media (max-width:1040px){.atl .row, .atl .cols{grid-template-columns:11px 30px minmax(190px,1fr) 84px 104px}
2105.atl .c-sig, .atl .h-sig{display:none}}
2106@media (max-width:900px){.atl /* le rail passe à l'horizontale sous la carte : une colonne de 184 px est inutilisable sur téléphone */
2107  .stage{flex-direction:column;height:auto;min-height:0;max-height:none}
2108.atl .mapzone{height:26vh;min-height:150px;flex:none}
2109.atl .frail{width:auto;flex:1;border-left:0;border-top:1px solid var(--line);
2110    flex-direction:row;flex-wrap:wrap;align-items:center;overflow:visible;padding:9px 10px;gap:6px}
2111.atl .frail .cap{margin:0 1px 0 0;line-height:1;align-self:center}
2112.atl .frail .cap+*{margin-bottom:0}
2113.atl .frail .statusf{margin-bottom:0;flex-direction:row}
2114.atl .dates{flex-direction:row;flex-wrap:wrap;gap:4px}
2115.atl .dates .dbh{display:none}
2116.atl .dates button{width:auto;height:29px;padding:0 11px;border-bottom:0;border-right:1px solid var(--line);font-size:12px}
2117.atl .dates button .dn{margin-left:6px}
2118.atl .fgrid{display:flex;flex-wrap:wrap;gap:4px}
2119.atl .frail .grow{display:none}
2120.atl .frow{flex:1 1 auto;justify-content:flex-end}
2121.atl .fpanel{right:0;left:0;top:100%;width:auto;border-left:0;border-right:0;max-height:52vh;
2122    box-shadow:0 20px 36px rgba(15,23,42,.18)}
2123.atl .fcols{columns:2}
2124.atl .listhead{flex-wrap:wrap;overflow:visible}
2125.atl .listhead .ctx{flex:1 1 100%;order:3}
2126.atl .groupbar{margin-left:0}
2127.atl .row, .atl .cols{grid-template-columns:11px 26px 1fr 100px;gap:9px;padding:9px 11px}
2128.atl .c-amt, .atl .h-amt, .atl .c-stade, .atl .h-stade, .atl .c-sig, .atl .h-sig{display:none}
2129.atl .nd{flex-direction:column;align-items:flex-start;gap:2px}
2130.atl .nd .rnm{max-width:100%}
2131.atl .nd .rds{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
2132.atl .demand{padding:10px 11px}
2133.atl .pop{width:calc(100vw - 20px);left:10px!important;top:auto!important;bottom:10px}
2134.atl .goal{gap:8px 12px;padding:9px 11px}
2135.atl .pbar{max-width:none}
2136.atl .sigstrip .s{display:none}
2137.atl .bulk{flex-direction:column}
2138.atl .bulk .side{width:100%}}
2139@media (max-width:560px){.atl .mapzone{height:22vh;min-height:120px}
2140.atl .fcols{columns:1}
2141.atl .row, .atl .cols{grid-template-columns:11px 24px 1fr 92px;gap:8px}
2142.atl .cols>*{font-size:7.5px}
2143.atl .listhead .main{font-size:12.5px}
2144.atl .listhead .main b{font-size:15px}
2145.atl .chain{padding:7px 11px;font-size:11.5px}
2146.atl .fcard, .atl .mcard{width:100%;max-height:92vh}
2147.atl .fcard .ff{flex-direction:column}
2148.atl .fcard .ff .abtn{flex:1 1 auto}}
2149@media (prefers-reduced-motion:reduce){.atl, .atl *{transition:none!important;animation:none!important}}
2150`,Xy=`
2151/* coque : hauteur pilotée par le montage (page /carte, iframe, démo home) */
2152.atl{height:var(--atelier-h,calc(100dvh - 60px));display:block;position:relative}
2153.atl .app{height:100%}
2154/* le prototype force overflow hidden sur html/body — on le garde DANS la coque seulement */
2155.atl{overflow:hidden;border-radius:inherit}
2156/* le proto dimensionne la scène en vh (viewport) : dans une coque à hauteur
2157   fixe (cadre démo de la home, iframe), on raisonne en % du CONTENEUR.
2158   Le % se pose sur .fzone (enfant flex direct de .app, hauteur définie) —
2159   .stage remplit ensuite à 100 % (un % dans un parent auto ne résout pas). */
2160.atl .fzone{flex:0 0 auto;height:36%;min-height:260px;max-height:430px}
2161.atl .stage{height:100%;min-height:0;max-height:none}
2162.atl .stage.folded{height:auto;min-height:0}
2163.atl .mapzone svg{max-height:100%}
2164`,e3=$y+Xy,Jx=["europe","northam","asia","southam","africa","oceania"],zw=["monde",...Jx],Mp=[{key:"europe",viewBox:"0 0 1000 1032",fr:"Europe",en:"Europe",countries:[{i2:"GB",n:"Royaume-Uni",d:"M277,310L271,319L274,331L281,316L277,310ZM195,356L180,362L178,375L189,369L195,356ZM188,379L179,384L189,398L195,393L188,390L188,379ZM187,419L181,409L178,418L187,419ZM170,482L180,472L174,467L178,462L174,449L156,449L136,463L144,475L154,469L158,480L170,482ZM216,561L201,574L182,571L150,598L159,600L178,594L186,600L194,590L201,589L218,595L231,588L259,596L274,594L283,582L266,577L283,568L293,548L286,537L265,534L271,523L256,509L269,514L268,499L251,480L248,454L235,438L228,439L219,435L217,432L235,431L226,426L238,423L256,398L252,391L220,389L242,362L214,358L204,371L207,377L200,376L196,381L196,394L191,405L184,407L190,414L199,409L181,447L191,430L199,425L193,434L201,427L203,434L198,435L199,447L188,463L191,469L193,465L223,467L211,477L216,491L221,490L215,508L219,515L214,511L213,516L192,515L183,523L194,522L190,539L168,548L172,556L182,555L195,567L216,561Z"},{i2:"UA",n:"Ukraine",d:"M981,609L942,639L934,656L931,659L932,648L927,658L933,670L908,664L883,676L869,674L872,669L862,668L878,666L881,660L871,663L866,654L860,649L867,664L860,662L848,673L842,695L831,702L836,715L829,712L818,721L805,717L816,697L813,685L836,680L809,655L805,642L772,635L727,668L718,663L692,663L687,668L671,658L675,637L681,636L676,621L696,590L683,560L689,560L694,551L718,544L743,544L755,549L762,543L773,546L778,538L784,544L797,538L806,542L807,518L826,511L829,503L850,494L867,506L863,511L869,522L889,521L901,538L920,535L932,524L948,533L950,528L986,528L990,536L986,546L993,549L990,558L999,564L1000,576L985,583L978,594L981,609Z"},{i2:"CH",n:"Suisse",d:"M429,702L428,716L448,720L447,731L440,729L441,740L425,732L417,751L407,733L394,748L379,748L374,733L358,740L381,702L408,700L411,695L429,702Z"},{i2:"SE",n:"Suède",d:"M458,367L458,388L485,438L484,448L478,448L487,463L486,473L507,472L510,455L516,449L533,449L540,432L539,381L543,379L532,376L544,375L562,359L565,351L556,353L569,340L552,317L542,315L538,263L544,263L543,251L547,254L551,242L576,218L583,200L576,191L577,176L586,158L607,156L599,144L587,97L549,72L544,73L546,92L527,89L525,106L518,103L513,109L503,156L492,162L493,186L484,207L49
21641,219L489,223L474,225L467,236L468,291L479,301L471,311L475,337L463,352L463,372L458,367ZM575,393L565,404L567,423L577,407L575,393ZM544,443L548,412L542,445L544,443Z"},{i2:"ES",n:"Espagne",d:"M190,802L134,792L108,779L82,776L71,767L37,776L41,804L35,813L49,811L49,820L82,824L88,837L70,849L62,883L49,884L57,904L46,919L53,929L37,945L37,955L50,955L58,970L60,968L62,969L57,976L71,997L104,983L154,991L169,975L190,972L198,952L216,941L208,932L207,918L238,887L234,884L266,874L293,857L293,843L255,839L254,832L241,826L239,830L224,828L197,814L198,808L190,802ZM292,922L287,914L280,915L267,924L282,933L292,922Z"},{i2:"SK",n:"Slovaquie",d:"M675,637L671,658L639,659L631,671L609,678L608,685L587,686L571,671L575,658L584,657L600,636L611,637L615,631L624,642L652,631L675,637Z"},{i2:"SI",n:"Slovénie",d:"M569,726L552,736L547,758L531,754L527,759L511,759L517,756L506,737L512,730L530,732L536,726L557,722L559,717L569,726Z"},{i2:"RS",n:"Serbie",d:"M672,763L688,768L700,765L697,789L712,804L703,816L704,831L687,836L689,823L666,809L658,823L633,808L638,802L631,794L638,790L628,783L631,768L623,768L624,760L630,757L622,753L618,738L631,729L643,729L656,738L658,746L673,753L672,763Z"},{i2:"RU",n:"Russie",d:"M618,464L604,476L600,491L653,485L646,466L623,463L624,473L619,475L614,473L618,464ZM905,665L890,695L912,697L915,712L922,715L949,684L967,678L968,668L947,678L926,665L905,665Z"},{i2:"RO",n:"Roumanie",d:"M805,717L818,721L829,712L836,715L836,727L827,732L826,726L822,729L824,764L791,759L762,780L708,786L709,779L696,770L700,765L688,768L672,763L673,753L658,746L656,738L644,729L661,722L673,684L692,663L720,663L727,668L758,644L792,675L805,717Z"},{i2:"PT",n:"Portugal",d:"M37,813L49,811L49,820L82,824L88,838L70,849L62,883L49,884L57,904L46,919L53,929L39,940L37,955L26,958L0,951L12,911L16,913L14,910L4,910L5,903L10,902L18,894L8,902L0,900L31,847L37,813Z"},{i2:"PL",n:"Pologne",d:"M680,549L696,590L675,623L681,638L657,630L633,635L629,641L623,641L615,631L607,638L598,625L580,620L581,614L565,612L568,618L562,622L553,613L554,607L530,598L526,603L529,591L521,575L520,555L511,545L515,536L512,520L517,523L517,517L511,516L510,514L573,483L585,486L579,485L590,495L655,484L666,489L679,520L681,529L671,543L680,549Z"},{i2:"NO",n:"Norvège",d:"M530,40L526,53L522,60L528,59L535,47L530,40ZM515,61L511,67L513,77L521,71L521,62L515,61ZM492,79L485,88L487,90L495,89L492,79ZM500,92L501,70L496,90L485,103L503,96L508,86L505,82L500,92ZM544,73L558,63L570,78L584,72L597,76L602,63L600,42L614,28L631,35L635,53L641,33L648,30L640,27L635,31L623,23L637,19L641,10L617,3L617,22L610,11L612,1L604,0L603,18L600,21L597,6L587,33L589,12L578,9L572,40L563,30L551,37L559,47L553,43L545,47L548,58L542,64L542,46L538,62L537,52L532,54L527,62L531,66L523,63L523,72L508,92L520,93L506,98L508,110L504,101L492,114L492,118L497,115L501,126L494,120L489,129L500,131L485,134L480,140L484,143L476,148L475,160L486,158L471,164L475,168L464,186L468,191L474,186L472,190L457,197L457,204L433,234L439,239L455,224L456,231L448,241L439,243L435,236L428,241L420,237L421,244L414,249L420,258L407,251L395,261L412,260L407,266L390,264L386,270L392,270L373,276L374,283L394,286L369,284L374,296L369,297L370,304L399,306L403,299L405,305L397,312L393,307L368,308L369,320L377,319L369,326L376,335L369,336L367,349L383,329L396,325L388,335L389,328L383,333L376,343L383,345L370,349L366,361L386,352L377,365L384,368L380,372L373,367L371,376L388,390L386,395L410,394L433,371L432,366L441,369L447,348L451,364L463,372L463,352L475,337L471,311L479,301L468,291L467,236L474,225L489,223L491,219L484,207L493,186L492,162L503,156L513,109L518,103L525,106L527,89L546,92L544,73Z"},{i2:"NL",n:"Pays-Bas",d:"M365,607L359,604L362,595L349,585L337,587L321,581L335,584L330,574L347,542L367,531L384,530L390,534L386,553L380,556L386,564L380,574L366,576L370,587L363,599L365,607Z"},{i2:"ME",n:"Monténégro",d:"M632,806L658,822L651,834L645,831L638,845L640,853L619,837L618,823L632,806Z"},{i2:"MD",n:"Moldavie",d:"M756,645L772,635L805,642L809,655L829,671L836,681L813,685L816,697L810,714L802,714L792,675L764,646L756,645Z"},{i2:"MK",n:"Macédoine du Nord",d:"M667,850L700,831L714,838L720,857L692,875L674,877L667,867L667,850Z"},{i2:"LU",n:"Luxembourg",d:"M366,625L373,635L370,645L359,642L359,631L366,625Z"},{i2:"LT",n:"Lituanie",d:"M653,485L646,466L623,463L617,441L625,432L664,427L675,420L707,435L707,445L713,445L700,462L704,481L698,478L688,490L669,495L664,488L653,485Z"},{i2:"LV",n:"Lettonie",d:"M707,435L675,420L664,427L632,429L617,441L614,419L620,396L632,390L653,408L663,398L658,380L669,372L692,382L708,380L728,414L722,428L707,435Z"}
2164,{i2:"XK",n:"Kosovo",d:"M653,826L666,809L689,823L687,836L667,850L654,832L653,826Z"},{i2:"IT",n:"Italie",d:"M394,748L373,753L380,763L369,772L377,779L374,793L389,799L386,810L397,807L413,792L442,806L449,834L463,851L474,854L496,877L520,882L528,894L537,896L535,900L544,897L549,910L566,916L579,945L568,972L578,974L588,959L589,948L601,941L599,930L585,921L592,900L613,903L625,915L627,906L614,892L567,871L572,860L550,860L536,852L524,840L514,815L488,797L485,783L490,776L485,762L503,752L517,756L506,737L512,730L486,725L481,715L458,724L448,721L447,731L440,729L440,740L425,732L419,751L407,733L394,748ZM434,906L422,884L410,894L399,894L406,924L403,943L408,951L415,950L417,942L429,944L434,906ZM566,964L526,976L501,971L495,982L544,1009L558,1011L562,1001L557,989L566,964Z"},{i2:"IE",n:"Irlande",d:"M161,446L136,463L143,474L154,469L158,480L166,482L161,515L151,533L113,534L104,541L85,539L92,535L81,534L92,529L79,528L89,521L82,516L113,510L93,508L114,495L96,484L108,475L103,461L128,467L138,458L128,454L139,443L150,442L148,451L156,441L161,446Z"},{i2:"IS",n:"Islande",d:"M146,106L158,106L149,111L153,115L148,122L159,133L154,147L131,160L77,167L61,155L55,139L37,134L40,127L45,131L57,126L50,125L59,119L53,119L52,110L36,99L62,106L65,103L57,99L68,96L42,80L48,83L49,76L57,81L53,75L62,69L68,81L71,65L81,84L74,90L73,105L82,97L85,101L94,88L98,100L110,92L112,108L115,96L121,104L128,100L135,103L141,95L146,106Z"},{i2:"HU",n:"Hongrie",d:"M671,658L687,668L673,684L661,721L651,727L631,729L609,744L596,744L559,717L566,712L569,696L564,693L576,690L577,682L590,687L608,685L609,678L631,671L639,659L671,658Z"},{i2:"GR",n:"Grèce",d:"M806,899L794,906L811,908L806,899ZM785,834L788,842L784,845L770,850L753,845L743,847L679,878L675,900L668,905L668,914L662,914L681,931L690,930L682,935L694,949L696,944L700,949L721,942L740,948L733,954L708,947L694,962L709,975L712,989L716,992L719,983L731,998L735,988L747,996L732,966L743,971L750,965L738,955L748,949L761,954L757,940L723,929L733,922L729,915L738,917L718,896L717,882L723,879L736,894L742,894L735,886L748,892L742,883L756,886L744,880L740,871L768,858L791,861L798,840L796,834L785,834ZM806,930L805,923L797,924L800,933L806,930ZM737,922L730,928L771,946L759,929L737,922ZM855,989L863,972L853,982L855,989ZM764,1016L762,1028L783,1027L792,1032L824,1023L826,1014L814,1022L812,1016L778,1022L774,1016L764,1016Z"},{i2:"DE",n:"Allemagne",d:"M501,505L500,497L494,493L492,504L501,505ZM411,695L442,710L447,702L459,706L482,696L498,703L492,685L511,664L489,647L477,621L481,625L493,618L518,602L517,598L526,604L529,591L521,575L520,555L511,545L515,536L512,520L502,509L482,500L462,516L454,515L456,504L436,501L437,492L416,488L420,515L427,519L435,528L425,519L415,518L412,532L404,523L391,524L389,544L380,556L386,564L380,574L366,576L370,587L363,599L371,616L366,626L373,635L370,645L377,654L403,660L391,699L407,700L411,695Z"},{i2:"FR",n:"France",d:"M391,699L403,660L354,642L342,633L342,623L330,627L331,619L322,617L312,602L306,602L303,592L287,596L283,614L255,627L253,632L258,635L247,638L229,632L228,624L217,622L221,653L196,652L187,642L157,647L166,653L159,652L163,657L156,659L162,667L190,678L194,688L204,690L208,693L199,693L200,704L216,721L212,738L220,746L223,760L214,743L211,768L191,804L213,823L236,830L242,826L268,843L293,843L291,829L310,812L356,829L386,810L389,799L374,793L377,779L369,772L380,763L373,753L378,747L374,733L358,738L379,703L391,699ZM429,858L425,833L424,842L408,852L413,874L421,880L429,858Z"},{i2:"FI",n:"Finlande",d:"M607,156L599,144L587,97L549,72L558,63L570,78L584,72L597,76L603,35L615,28L634,40L630,58L639,77L657,88L654,112L676,141L672,145L677,163L694,181L692,196L719,214L707,258L690,293L673,301L672,295L664,308L628,329L624,318L618,324L618,314L601,310L598,282L587,253L589,236L599,231L618,183L626,180L623,162L612,153L607,156Z"},{i2:"EE",n:"Estonie",d:"M706,379L710,369L698,344L704,325L701,322L664,326L638,345L647,368L658,366L658,380L671,372L692,382L706,379ZM632,354L626,350L618,356L627,362L632,354ZM640,367L618,369L624,378L622,385L640,367Z"},{i2:"DK",n:"Danemark",d:"M434,491L429,484L432,471L453,444L443,439L448,406L411,433L419,435L424,426L426,436L417,442L409,439L408,468L416,473L416,488L434,491ZM480,457L474,453L468,465L465,458L455,465L470,492L478,477L475,472L480,457ZM447,469L436,471L438,481L446,484L452,480L447,469ZM456,487L456,492L468,495L468,491L456,487Z"},{i2:"CZ",n:"Tchéquie",d:"M604,635L572,665L533,656L528,668L519,670L489,647L477,621L481,625L493,618L518,602L517,598L525,604L530,598L555,608L553,613L562,622L568,618L565,612L581,614L580,620L598,625L604,635Z"},{i2:"HR",n:"Croatie",d:"M511,759L527,759L531,754L547,758L551,737L565,726L596,744
2164L618,738L622,753L630,758L625,758L622,768L616,763L580,761L568,770L557,766L557,778L600,827L584,815L565,813L547,796L552,792L531,764L527,763L518,778L511,759Z"},{i2:"BG",n:"Bulgarie",d:"M824,817L795,824L786,833L788,842L784,845L770,850L752,845L719,857L719,845L703,831L703,816L712,804L701,796L697,783L702,775L709,779L708,786L762,780L791,759L824,764L810,805L824,817Z"},{i2:"BA",n:"Bosnie-Herzégovine",d:"M630,767L627,782L638,790L631,794L638,804L627,807L629,813L618,824L619,836L600,827L557,778L558,765L568,770L580,761L630,767Z"},{i2:"BE",n:"Belgique",d:"M328,591L349,585L363,596L359,604L371,620L359,631L359,642L342,633L342,623L330,627L331,619L303,598L303,592L316,586L328,591Z"},{i2:"BY",n:"Biélorussie",d:"M820,512L804,523L806,542L797,538L784,544L778,538L773,546L762,543L755,549L743,544L709,546L694,551L682,564L680,549L671,543L681,527L667,495L681,494L698,478L704,481L700,462L713,445L707,445L707,435L722,428L727,416L747,416L753,423L763,415L776,419L781,442L804,458L805,464L817,464L824,470L817,482L804,483L803,489L820,512Z"},{i2:"AT",n:"Autriche",d:"M429,710L434,701L442,710L447,702L459,706L482,696L498,703L493,683L510,671L511,664L528,668L533,656L570,662L577,682L576,690L564,693L569,696L566,711L557,722L536,726L530,732L488,726L481,715L458,724L445,718L441,722L429,710Z"},{i2:"AL",n:"Albanie",d:"M646,859L638,845L646,830L665,841L667,867L682,884L667,915L645,896L646,859Z"}]},{key:"northam",viewBox:"0 0 1000 765",fr:"Amérique du Nord",en:"North America",countries:[{i2:"PR",n:"Porto Rico",d:"M914,604L930,599L930,601L928,605L916,610L914,604Z"},{i2:"US",n:"États-Unis",d:"M283,11L279,14L282,18L279,24L284,26L285,16L283,15L283,11ZM262,54L258,51L257,60L260,62L263,58L262,54ZM193,95L191,94L183,95L192,97L193,95ZM203,102L199,98L198,101L191,99L200,103L200,102L203,102ZM221,105L217,103L212,105L221,112L221,105ZM388,218L381,208L382,186L379,167L374,167L370,171L369,170L365,171L366,167L363,155L365,152L360,151L356,147L419,61L4
216415,53L409,49L401,36L394,29L396,25L391,21L391,16L387,16L391,15L391,11L383,11L378,7L373,10L376,7L367,4L369,4L353,6L346,0L340,1L338,15L335,20L338,27L335,28L334,31L338,34L336,36L333,31L336,25L332,30L333,33L332,35L324,26L325,24L329,23L327,20L322,18L320,19L319,17L310,13L311,23L308,21L304,28L305,33L310,37L310,40L312,38L310,41L317,42L320,43L319,46L314,46L311,53L307,53L304,49L296,49L295,43L287,47L286,45L279,48L277,46L272,53L274,53L274,56L271,56L276,62L274,62L275,65L270,62L272,58L267,58L265,70L270,74L272,71L278,70L279,71L273,72L269,80L264,83L265,84L259,86L262,89L269,90L269,94L270,94L268,101L274,97L276,98L276,100L274,99L273,102L282,104L274,107L273,110L270,109L266,114L261,112L256,115L255,113L245,112L242,113L241,116L239,114L239,110L237,108L224,107L221,109L224,108L225,111L227,109L227,112L228,113L235,112L235,114L233,114L243,118L242,120L252,121L254,119L265,122L269,120L284,122L292,120L294,118L293,114L299,112L305,112L306,108L308,110L317,108L329,111L325,111L326,117L322,111L316,111L307,117L307,120L310,120L303,120L303,122L306,125L316,123L316,125L319,123L322,127L328,124L325,122L327,122L330,118L334,118L331,121L339,124L335,127L338,130L336,131L338,134L343,133L339,135L341,141L351,149L353,148L352,150L355,155L362,155L363,158L360,159L361,155L357,158L365,180L369,179L366,172L368,171L370,175L372,173L372,175L369,180L373,184L376,173L378,171L375,182L377,186L380,184L377,188L377,191L379,191L380,192L378,192L379,195L377,193L375,198L378,201L378,209L381,213L375,218L383,216L381,224L379,225L380,230L385,226L388,218ZM293,125L291,126L287,126L288,128L293,130L295,129L293,125ZM287,128L284,128L283,126L280,131L281,127L277,126L274,132L276,130L277,133L274,134L284,135L284,132L288,135L289,132L287,128ZM4,424L3,422L0,422L2,426L4,424ZM12,438L9,437L9,441L13,444L12,438ZM18,455L19,459L23,461L19,454L18,455ZM26,481L25,473L21,466L20,469L17,470L15,478L17,481L26,481ZM323,130L330,130L330,128L323,130ZM369,181L364,182L364,189L367,188L369,192L370,189L369,188L371,188L372,186L368,185L369,181ZM374,184L372,193L369,197L374,196L376,188L376,193L376,187L374,184ZM367,190L362,194L365,192L364,205L368,195L367,190ZM372,199L371,205L373,206L374,202L375,205L377,202L372,199ZM369,199L368,204L366,208L371,203L370,199L369,199ZM378,208L374,211L375,214L378,211L378,208ZM370,207L368,210L370,212L367,212L370,216L368,218L371,227L374,222L371,218L374,219L374,214L372,208L370,207ZM381,216L379,217L375,223L378,221L379,224L381,216ZM368,224L366,217L367,226L368,224ZM795,380L786,386L784,391L790,388L798,380L794,384L795,380ZM762,346L752,365L737,370L734,372L737,379L711,398L706,394L710,388L711,377L704,358L695,355L694,351L691,352L689,348L686,349L683,345L655,334L647,338L636,337L632,339L620,334L615,336L609,334L606,327L604,327L604,331L581,332L510,329L458,321L406,309L407,320L404,327L401,329L399,328L402,327L405,321L399,325L404,321L404,318L391,311L390,328L392,328L390,329L391,331L388,335L393,336L394,338L389,336L379,362L374,371L373,387L367,398L370,405L368,415L373,424L371,427L375,429L377,426L384,429L377,428L378,434L375,430L374,433L374,436L378,442L376,447L384,463L382,469L400,479L400,483L408,489L410,498L432,500L431,503L464,521L491,524L492,519L508,520L522,534L526,546L537,553L547,543L556,545L574,569L575,574L579,582L596,587L598,586L595,580L594,572L591,570L595,571L596,567L595,566L598,564L597,562L604,558L602,556L608,556L606,558L615,552L619,548L618,544L620,543L620,546L622,545L620,547L629,544L628,542L629,540L629,543L644,544L648,540L654,543L654,546L659,547L663,545L665,547L665,542L672,545L673,547L676,544L669,540L672,538L671,535L669,537L668,534L664,536L662,536L662,534L670,534L676,531L683,530L684,527L687,531L685,532L691,529L694,527L692,529L701,526L702,527L699,528L706,529L707,528L711,534L722,527L726,528L738,538L738,549L740,550L740,547L742,548L740,553L745,559L748,557L748,562L750,560L751,566L756,568L761,575L767,571L767,555L757,539L755,535L758,539L758,537L759,541L761,544L759,537L749,525L745,514L745,508L749,497L748,495L750,496L749,494L755,491L763,477L770,473L769,470L770,472L773,463L774,464L781,459L780,458L778,459L776,458L775,457L778,458L779,455L774,453L782,453L784,447L783,446L782,449L781,446L775,448L774,445L777,447L779,443L783,444L780,438L783,444L786,446L779,436L775,437L772,435L767,434L773,434L775,436L776,435L771,431L774,433L774,429L772,429L766,425L772,429L774,426L764,423L763,421L764,417L764,423L772,424L768,420L771,421L767,412L771,407L772,409L770,410L771,417L774,417L772,420L776,420L777,424L779,424L779,433L782,417L781,413L777,411L774,405L775,403L777,400L775,407L782,410L785,398L786,400L784,393L782,392L783,387L782,384L783,386L783,389L790,381L800,376L800,371L802,371L802,374L805,370L806,372L811,368L810,365L808,364L810,367L807,369L800,364L802,360L800,359L801,348L808,341L808,334L809,337L811,337L811,334L814,334L820,326L817,323L814,323L813,319L810,319L804,305L800,304L796,307L793,305L790,333L787,334L787,337L762,346Z"},{i2:"TT",n:"Trinité-et-Tobago",d:"M1000,666L998,668L991,671L995,667L994,663L992,663L999,658L1000,666Z"},{i2:"PA",n:"Panama",d:"M827,742L826,744L830,749L827,754L824,753L823,758L816,751L819,747L824,748L819,746L816,748L814,745L808,743L803,744L801,749L793,754L799,761L792,765L789,765L787,759L785,762L779,758L768,758L766,761L764,759L767,752L764,751L765,745L770,746L774,750L777,749L776,748L782,750L801,738L818,738L827,742Z"},{i2:"NI",n:"Nicaragua",d:"M755,688L752,691L755,695L752,707L754,716L753,713L751,716L753,721L751,723L753,725L751,729L754,734L732,733L731,735L707,718L715,716L718,713L717,708L721,707L724,704L728,705L736,693L740,695L755,688Z"},{i2:"MX",n:"Mexique",d:"M441,542L441,540L438,537L438,540L441,542ZM450,542L447,546L449,547L450,545L450,542ZM410,498L418,531L425,537L432,548L429,553L430,556L428,554L421,554L434,568L438,566L439,570L445,575L447,582L446,589L449,594L462,606L465,614L471,611L472,608L467,600L464,598L463,601L460,598L460,592L455,581L454,571L452,568L452,572L451,571L444,557L443,550L429,530L429,509L445,520L444,526L451,545L460,558L465,559L466,566L476,575L478,579L474,581L474,584L476,586L479,584L478,587L480,587L487,592L485,592L488,597L492,599L490,599L509,621L510,628L514,634L511,641L513,643L509,645L511,650L516,657L527,663L532,669L548,673L558,681L573,687L604,697L611,697L626,690L624,690L625,688L635,692L630,690L631,689L636,692L655,706L657,701L655,698L660,690L674,688L674,685L663,676L667,676L667,670L687,668L687,666L690,666L697,655L700,661L703,650L701,649L703,647L700,646L708,629L704,624L701,625L703,626L690,627L671,635L668,653L661,659L663,662L660,664L656,663L656,661L651,662L629,669L621,664L614,664L599,643L593,629L595,632L597,634L597,637L597,634L593,628L592,623L593,603L598,586L596,587L578,581L574,569L556,545L547,543L537,553L526,546L522,534L508,520L492,519L491,524L464,521L431,503L432,500L410,498Z"},{i2:"JM",n:"Jamaïque",d:"M805,638L822,638L824,640L817,642L814,645L801,642L805,638Z"},{i2:"HN",n:"Honduras",d:"M755,688L741,695L735,694L728,705L724,704L721,707L717,708L718,713L714,717L711,717L709,713L705,713L705,708L697,709L687,705L689,697L704,686L713,687L719,686L723,682L734,681L742,682L747,685L745,684L744,686L751,687L749,685L755,688Z"},{i2:"HT",n:"Haïti",d:"M865,608L868,613L868,618L866,620L869,626L866,624L852,628L847,632L841,630L843,627L858,625L862,622L856,618L856,614L849,613L849,611L865,608Z"},{i2:"GT",n:"Guatemala",d:"M655,706L657,701L655,698L660,690L674,688L674,685L663,676L667,676L667,670L687,668L687,689L694,689L694,687L699,689L689,698L689,702L680,713L665,711L655,706Z"},{i2:"SV",n:"Salvador",d:"M687,705L697,709L701,708L706,708L705,715L696,716L698,717L680,713L687,705Z"},{i2:"DO",n:"République dominicaine",d:"M874,629L866,620L868,618L865,608L867,605L883,602L887,605L892,604L888,607L898,606L902,607L900,613L893,613L876,621L874,629Z"},{i2:"GL",n:"Groenland",d:"M732,44L742,46L739,53L736,53L736,51L732,52L730,50L732,49L728,47L732,44Z"},{i2:"CU",n:"Cuba",d:"M753,598L734,608L732,611L732,615L727,618L736,615L748,605L757,603L759,605L755,607L758,608L764,608L764,606L766,608L772,606L784,609L790,608L794,613L798,615L808,614L809,616L804,624L831,616L840,610L831,607L823,609L823,605L810,606L807,604L806,605L804,604L806,603L802,602L789,599L783,600L777,596L753,598ZM751,616L746,613L747,617L745,618L749,618L751,616Z"},{i2:"CR",n:"Costa Rica",d:"M768,745L764,747L764,751L767,752L764,759L766,761L761,756L759,756L761,758L757,758L756,752L745,749L740,744L737,743L741,747L739,749L733,747L730,743L732,738L729,737L732,733L751,735L754,733L758,738L768,745Z"},{i2:"CA",n:"Canada",d:"M558,30L557,33L560,33L561,32L558,30ZM521,31L518,32L515,34L518,35L521,31ZM562,34L557,35L558,38L561,38L560,40L564,38L562,34ZM547,38L545,27L541,31L544,41L538,40L535,32L532,31L531,28L528,28L527,30L529,31L525,30L523,33L528,34L521,35L527,36L520,37L519,39L523,43L527,43L529,39L531,40L529,43L537,43L526,47L529,51L543,46L548,48L552,45L554,38L552,36L550,40L549,37L547,38ZM573,30L572,32L570,31L567,32L571,36L569,36L570,38L564,33L567,39L563,39L561,41L572,40L567,44L569,48L575,47L575,43L577,43L575,32L573,30ZM559,46L557,43L555,46L557,47L559,46ZM588,44L583,41L579,48L585,51L589,51L588,44ZM575,60L575,57L571,60L575,60ZM510,51L504,43L495,42L495,49L481,64L485,70L486,77L496,75L500,68L520,59L515,50L512,49L510,51ZM554,66L552,61L547,63L551,70L554,66ZM587,57L585,59L586,62L583,62L584,70L586,79L590,79L591,74L589,71L596,71L600,58L587,57ZM578,60L566,61L568,65L566,63L564,64L570,67L567,67L569,70L565,72L562,68L560,72L574,88L575,82L578,84L581,82L581,74L577,69L575,70L578,65L578,60ZM522,66L522,61L507,66L503,74L507,76L504,78L515,80L502,83L504,87L518,89L525,95L504,93L504,101L515,105L516,114L530,114L539,111L543,107L551,113L557,114L562,112L561,107L557,110L556,105L559,106L561,103L565,105L565,101L556,95L553,90L553,84L550,69L543,64L543,80L541,83L539,72L536,67L534,67L535,71L529,74L531,69L526,66L523,69
2164L520,69L522,66ZM579,104L576,104L577,108L575,106L575,109L571,113L584,118L589,114L579,104ZM388,218L384,229L388,224L389,226L379,234L380,237L383,238L376,242L379,248L385,244L388,245L385,247L388,249L389,252L384,247L385,245L382,246L385,252L384,256L387,256L383,261L386,260L381,263L382,267L386,263L393,259L390,262L391,268L388,263L385,264L383,269L383,271L386,270L390,271L385,271L381,275L385,279L389,279L387,283L391,284L387,284L389,285L392,287L394,285L396,288L399,284L396,289L396,293L399,297L403,294L401,298L403,300L400,300L403,303L406,300L404,304L407,304L404,305L404,308L458,321L510,329L581,332L604,331L604,327L606,327L609,334L615,336L620,334L632,339L636,337L647,338L655,334L683,345L686,349L689,348L691,352L694,351L695,355L704,358L711,377L710,388L706,394L711,398L737,379L734,372L737,370L752,365L759,350L767,340L764,339L770,335L772,329L784,313L786,300L776,300L786,299L791,285L797,280L798,269L821,256L828,255L837,248L840,232L848,225L851,214L847,213L848,211L845,212L847,209L842,203L836,201L834,207L832,206L833,203L829,201L824,203L826,203L818,219L818,216L816,216L823,206L823,204L826,197L821,196L817,199L813,197L812,202L812,198L809,197L806,203L806,197L803,195L796,196L796,194L794,194L794,192L786,191L793,189L791,186L786,185L786,183L782,184L784,182L783,179L779,178L776,181L776,175L772,179L774,174L770,171L766,173L768,170L764,170L759,164L757,166L757,163L755,163L757,169L755,170L759,173L756,173L757,176L759,177L757,181L759,185L756,182L753,193L751,189L751,191L750,193L749,189L749,194L746,197L749,193L746,187L743,186L736,191L739,189L738,184L736,184L733,178L728,179L733,177L729,166L727,169L725,168L719,169L715,167L716,165L713,166L712,164L709,165L708,162L702,160L699,165L695,165L693,167L684,165L681,169L687,176L686,185L689,184L695,197L693,196L692,208L705,216L711,231L708,243L698,253L704,258L713,276L711,282L714,285L714,288L709,285L708,290L712,294L705,290L701,293L703,289L701,286L691,282L692,280L686,274L680,252L670,252L663,254L662,256L662,253L659,251L647,248L637,241L626,238L613,243L615,238L609,223L603,223L602,228L602,224L598,220L598,204L605,190L603,188L606,185L605,183L608,185L608,181L611,180L608,178L613,178L616,174L614,170L610,168L607,170L608,168L601,167L600,164L615,169L618,167L618,162L623,163L622,162L624,163L627,160L630,149L621,148L616,144L608,143L616,143L628,147L633,138L629,134L633,133L639,136L642,135L637,128L635,129L635,127L643,133L646,130L649,120L641,110L645,107L642,105L643,101L640,101L637,97L625,98L631,109L628,110L627,124L624,128L619,120L618,116L620,115L617,110L612,107L610,118L604,107L607,105L597,104L600,100L599,98L602,98L595,91L592,82L588,80L584,84L585,87L582,88L582,93L585,95L582,99L585,103L595,106L594,109L595,107L592,108L591,114L594,114L594,112L596,116L591,122L588,123L590,131L590,134L587,135L588,137L588,138L585,133L589,134L585,128L586,120L583,123L584,120L582,120L580,118L575,119L577,124L581,125L580,127L575,123L576,125L574,126L559,126L555,122L550,122L544,112L535,115L533,118L537,120L546,116L535,124L538,134L535,133L537,139L532,131L534,130L527,121L516,122L505,119L506,115L512,114L507,107L500,105L485,91L481,90L478,93L474,93L477,84L472,91L469,91L467,75L466,79L460,82L461,80L455,81L450,84L451,82L448,81L439,85L443,81L458,79L459,77L439,78L441,76L440,74L439,76L434,75L431,78L431,82L426,75L424,66L419,61L356,147L360,151L365,152L363,155L366,167L365,171L370,171L374,167L379,167L382,186L381,208L388,218ZM362,230L360,237L362,240L360,239L364,242L370,234L363,237L367,233L362,230ZM378,248L374,243L377,249L378,248ZM366,245L360,242L364,255L365,249L363,246L366,245ZM382,250L380,252L380,256L382,255L380,261L384,254L382,250ZM376,277L377,281L381,281L380,283L377,282L376,285L380,287L380,290L386,294L383,294L382,296L386,297L388,303L392,304L393,302L392,304L390,306L397,313L401,314L399,304L394,299L393,288L379,277L376,277ZM630,53L631,57L637,62L648,58L641,52L630,53ZM649,93L645,94L644,95L647,96L649,93ZM654,101L654,96L652,102L654,101ZM623,82L618,77L614,68L617,57L611,57L606,62L604,73L606,83L616,87L608,87L612,93L616,95L621,92L624,96L640,93L643,95L639,92L650,90L646,86L647,84L653,86L658,92L661,90L661,93L664,93L665,96L662,97L663,101L669,95L669,97L673,99L674,97L687,109L683,123L689,129L680,134L684,137L684,139L681,135L673,135L674,138L672,142L674,146L681,147L684,142L689,141L687,138L692,141L695,138L695,140L702,144L708,145L706,147L710,150L720,149L727,152L740,150L739,147L718,139L725,139L722,136L731,140L730,138L741,141L739,138L741,137L734,130L739,134L738,129L729,126L731,123L728,124L727,121L724,121L724,123L721,121L722,123L717,118L713,118L709,114L706,113L713,113L708,109L711,109L711,106L717,109L718,107L719,110L722,104L722,111L729,116L728,112L729,115L734,115L729,106L733,106L731,103L733,101L729,99L732,98L732,97L
2164729,96L732,94L726,92L722,97L722,92L715,94L718,93L717,91L711,91L710,88L711,93L706,90L706,93L704,88L703,92L701,88L690,88L695,87L694,84L689,85L691,83L697,81L694,79L687,82L692,76L690,74L686,72L686,77L684,74L681,78L684,71L677,70L675,74L676,79L674,75L673,77L674,69L668,74L670,67L663,66L664,70L661,68L660,70L660,66L658,73L657,68L656,68L658,64L655,64L653,69L654,63L650,60L643,61L642,64L646,66L641,66L644,70L637,66L638,69L636,72L635,66L633,68L635,63L627,54L622,56L617,63L622,66L618,65L617,68L624,74L620,73L618,76L624,78L625,85L622,84L619,86L623,82ZM678,103L674,104L673,105L677,107L680,105L678,103ZM666,104L665,112L668,116L672,114L674,111L671,104L666,104ZM627,119L626,116L624,115L625,121L627,119ZM646,141L640,137L642,140L646,141ZM749,153L747,150L745,151L749,153ZM640,146L635,140L634,141L636,159L633,166L639,164L643,169L651,156L656,160L663,161L666,156L662,154L657,156L655,150L641,144L640,146ZM675,158L679,160L681,158L678,157L675,158ZM660,167L653,170L652,175L654,178L657,177L660,171L660,167ZM672,171L672,177L675,179L676,172L672,171ZM696,233L694,231L694,236L694,233L693,232L692,240L694,237L694,240L695,239L696,235L697,239L696,233ZM856,218L850,225L850,230L853,246L855,247L853,250L857,253L854,253L855,259L853,258L852,261L858,259L855,268L857,271L873,262L877,256L877,260L880,258L881,256L884,253L881,264L883,265L885,263L887,253L887,255L886,249L891,252L893,258L894,253L898,258L900,256L897,245L895,244L894,248L892,241L891,249L889,248L889,245L887,246L888,237L883,243L884,239L881,240L880,233L876,236L874,234L872,242L870,237L870,239L865,241L865,238L864,240L865,234L862,237L861,235L860,242L857,225L854,223L856,218ZM833,265L820,263L812,266L826,268L833,265ZM693,271L689,272L688,274L697,275L693,271ZM857,290L853,282L851,295L855,299L860,295L863,290L861,288L858,288L857,293L858,292L856,297L856,293L854,295L857,290ZM834,299L830,293L829,299L837,301L840,297L843,300L846,293L834,299ZM820,322L831,310L831,307L833,307L832,314L842,308L838,312L839,315L836,314L836,312L835,312L827,326L829,325L830,334L836,335L841,322L840,320L845,318L844,316L858,301L855,302L855,299L849,298L845,303L830,304L824,296L821,297L822,289L819,289L816,292L813,291L807,292L811,288L817,288L820,281L820,278L817,277L819,276L813,274L805,278L794,290L786,313L776,323L771,331L770,338L763,346L787,337L787,334L790,333L793,305L796,307L800,304L804,305L810,319L813,319L815,324L820,322Z"},{i2:"BZ",n:"Belize",d:"M687,689L687,666L690,666L693,660L697,661L697,679L691,688L687,689Z"},{i2:"BS",n:"Bahamas",d:"M788,551L777,553L780,555L788,551ZM796,558L796,550L791,547L787,549L791,548L795,550L794,557L796,558ZM794,574L788,568L789,574L787,574L792,577L794,574ZM797,577L792,578L796,582L798,582L797,577ZM849,595L844,598L843,601L848,599L849,595Z"}]},{key:"asia",viewBox:"0 0 1000 690",fr:"Asie",en:"Asia",countries:[{i2:"YE",n:"Yémen",d:"M105,366L101,337L74,332L65,333L52,342L50,337L37,330L26,326L21,322L17,330L13,332L8,343L10,348L8,374L14,378L22,379L29,375L39,378L52,376L58,379L65,375L88,375L94,374L96,368L105,366ZM100,410L97,410L100,414L108,414L100,410Z"},{i2:"VN",n:"Viêt Nam",d:"M640,375L634,378L632,382L627,382L627,388L622,394L619,404L628,414L627,416L643,430L645,429L653,438L659,454L662,467L661,465L659,467L660,474L658,480L641,492L638,489L638,492L635,491L634,492L636,493L633,494L636,495L634,498L629,495L634,500L632,501L626,497L630,503L623,507L619,512L616,512L616,502L619,498L611,494L616,492L618,488L625,487L629,489L626,480L631,479L631,476L642,470L642,460L639,453L642,441L636,436L638,433L631,429L629,424L614,410L614,408L601,402L603,398L608,398L611,394L605,389L607,387L602,384L598,387L593,386L590,382L591,377L589,376L588,378L582,371L586,367L591,369L594,366L600,368L602,365L607,364L612,358L618,362L627,363L625,366L626,372L640,375Z"},{i2:"UZ",n:"Ouzbékistan",d:"M328,144L330,146L321,150L329,157L332,153L334,159L341,163L328,167L321,165L319,162L323,159L321,156L315,158L312,157L310,162L305,161L307,163L302,168L295,165L292,169L297,173L296,178L297,181L290,190L280,186L283,179L276,175L265,161L258,150L258,137L246,130L248,121L244,119L241,112L237,113L238,117L236,114L233,116L226,117L224,123L217,120L233,83L253,84L264,102L268,113L285,118L289,118L293,128L295,128L291,137L295,138L294,147L303,150L304,156L306,157L313,149L328,144Z"},{i2:"AE",n:"Émirats arabes unis",d:"M159,276L158,288L155,290L155,288L153,288L150,294L152,297L147,297L140,309L119,298L114,283L115,280L117,285L123,285L134,290L139,290L159,276Z"},{i2:"TM",n:"Turkménistan",d:"M213,118L224,123L226,117L233,116L236,114L238,117L237,113L241,112L244,119L248,121L246,130L258,137L258,150L265,161L276,175L283,180L280,186L275,182L272,185L266,185L261,192L256,194L249,194L247,198L240,199L233,192L236,181L230,179L225,167L218,163L212,157L212,154L198,151L191,155L184,154L191,137L191,134L187,132L190,129L192,131L193,127L190,124L189,127L190,119L194,114L199,120L203,121L207,119L204,112L205,105L199,104L194,112L195,105L200,103L208,104L212,110L213,118Z"}
2164,{i2:"TR",n:"Turquie",d:"M50,6L47,5L47,2L40,0L39,5L31,8L34,13L27,15L40,13L48,20L50,18L48,11L50,6ZM121,70L111,70L107,65L100,63L93,52L91,51L91,46L87,42L88,38L78,31L71,29L61,30L50,19L48,21L51,26L45,23L43,23L44,26L32,14L26,15L22,20L26,23L23,24L22,30L20,30L20,34L16,33L17,29L14,32L17,39L13,41L12,48L10,49L15,53L9,52L17,60L16,65L18,69L23,71L28,67L32,71L35,85L41,88L52,86L54,92L61,91L60,94L55,96L54,102L60,100L64,95L68,100L74,101L80,108L91,109L97,112L102,113L102,116L107,115L115,120L115,124L120,123L119,115L123,112L126,100L129,101L132,98L133,100L132,95L128,91L132,83L131,74L121,70Z"},{i2:"TL",n:"Timor oriental",d:"M837,672L836,669L838,667L836,666L838,663L857,656L860,656L837,672Z"},{i2:"TH",n:"Thaïlande",d:"M557,393L566,392L568,394L568,401L575,401L576,407L573,422L575,422L584,414L590,418L596,411L603,412L612,422L612,431L621,438L620,450L616,454L613,452L597,454L588,463L595,481L592,476L584,472L574,473L575,465L571,463L565,466L565,478L557,497L557,504L558,508L564,508L566,515L569,518L572,529L569,523L568,525L571,529L577,532L582,532L589,538L586,543L583,542L578,545L578,539L569,535L568,537L563,533L562,528L559,528L552,519L549,520L547,517L552,494L561,482L556,469L556,462L546,449L546,447L550,445L550,438L553,435L550,435L548,429L540,420L540,415L537,413L541,412L543,400L552,399L554,396L558,395L557,393Z"},{i2:"TJ",n:"Tadjikistan",d:"M290,190L297,181L296,178L297,173L292,169L294,166L296,165L302,168L307,163L305,161L310,162L312,157L315,158L321,156L323,160L319,162L323,165L319,167L315,164L312,164L309,165L308,169L318,171L319,173L325,172L327,176L330,178L342,177L341,186L349,189L348,198L349,201L347,202L343,200L338,201L338,199L335,198L320,203L319,198L322,190L319,189L320,185L318,183L311,187L310,191L304,190L302,194L299,191L291,193L290,190Z"},{i2:"TW",n:"Taïwan",d:"M764,338L761,352L754,345L751,335L757,319L762,315L765,317L765,323L764,338Z"},{i2:"SY",n:"Syrie",d:"M53,100L55,102L60,100L64,95L68,100L74,101L80,108L91,109L97,112L102,113L102,116L91,119L87,126L78,137L38,140L34,131L41,122L44,123L48,120L49,115L46,113L53,100Z"},{i2:"LK",n:"Sri Lanka",d:"M357,495L364,501L375,523L372,532L362,536L356,533L354,526L353,512L354,514L358,498L362,499L357,495Z"},{i2:"KR",n:"Corée du Sud",d:"M770,175L775,182L775,184L771,183L769,186L772,186L777,194L776,202L779,205L777,207L780,210L784,204L786,207L786,203L788,203L788,201L794,200L793,198L799,195L798,185L797,186L792,173L780,162L779,166L771,168L770,175ZM780,222L786,220L786,218L780,222Z"}
2164,{i2:"SA",n:"Arabie saoudite",d:"M101,337L74,332L65,333L52,342L50,337L37,330L26,326L22,322L20,323L17,330L13,332L12,318L8,301L8,287L2,276L1,268L3,257L6,250L7,235L2,225L4,213L4,176L0,173L9,161L16,168L24,164L30,166L36,163L35,149L53,152L61,159L69,175L79,204L99,217L99,223L105,225L105,235L112,251L109,256L109,269L110,275L114,277L113,279L115,280L119,298L141,309L143,317L131,336L101,337Z"},{i2:"QA",n:"Qatar",d:"M113,276L110,274L112,266L119,260L120,263L118,273L113,276Z"},{i2:"PH",n:"Philippines",d:"M767,387L765,388L764,398L767,414L765,415L761,413L761,416L766,428L770,431L771,426L775,428L772,434L773,438L780,438L784,434L793,440L792,433L798,436L800,440L807,440L807,443L809,444L809,438L805,438L802,433L804,431L799,429L797,433L795,429L792,428L788,431L788,433L784,431L778,420L779,413L784,410L786,400L782,394L782,386L778,388L767,387ZM785,438L787,441L788,438L785,438ZM771,442L780,453L783,452L783,443L779,440L771,442ZM768,455L769,458L772,457L771,455L768,455ZM789,455L788,456L791,457L791,470L798,465L801,457L789,455ZM745,500L757,489L759,482L768,474L765,466L763,475L746,497L745,500ZM799,509L796,509L794,511L796,512L799,509ZM786,520L789,519L790,518L786,517L786,520ZM810,431L807,429L808,433L810,431ZM811,443L813,447L819,450L820,454L827,456L824,451L824,444L820,441L811,443ZM802,445L801,452L803,448L810,452L808,448L802,445ZM813,454L815,460L818,460L819,467L822,468L821,465L823,466L824,465L820,456L813,454ZM806,478L811,466L810,457L806,472L806,478ZM817,469L813,469L811,474L818,472L817,469ZM806,480L804,474L806,463L803,462L800,463L800,472L796,476L803,483L806,480ZM827,470L828,478L822,480L821,484L818,484L816,489L812,492L812,487L808,485L803,492L798,495L795,507L797,506L801,497L803,499L806,497L809,499L810,495L811,494L817,498L816,503L819,510L827,512L829,509L830,514L832,513L833,507L830,502L832,496L834,495L839,505L838,499L841,493L838,481L835,481L837,478L835,473L827,470Z"},{i2:"PK",n:"Pakistan",d:"M358,219L361,227L356,231L347,232L337,227L332,230L332,234L335,235L332,237L333,240L331,243L333,248L336,248L336,251L341,254L333,258L332,266L325,271L324,274L319,276L313,284L308,286L302,294L292,295L289,291L279,298L278,302L284,306L282,312L286,316L288,330L276,330L267,326L265,330L259,331L254,327L253,318L249,316L250,312L247,308L245,308L247,309L248,309L231,308L227,304L221,305L204,301L209,290L215,288L222,289L224,285L220,282L223,272L216,266L211,250L224,259L237,263L257,263L260,253L266,250L271,251L278,247L284,250L288,248L293,237L300,235L298,227L308,229L309,224L316,218L314,209L324,203L348,205L354,210L354,219L358,219Z"},{i2:"OM",n:"Oman",d:"M158,280L162,277L162,274L159,276L158,280ZM105,366L115,365L124,368L130,361L138,362L144,355L154,355L158,342L161,340L164,342L180,327L181,324L178,321L175,311L161,301L158,288L155,290L155,288L153,288L150,294L152,297L147,297L142,305L141,309L143,317L131,336L101,337L105,366Z"},{i2:"KP",n:"Corée du Nord",d:"M780,162L779,166L771,168L770,175L766,176L762,175L760,178L757,177L758,175L754,175L755,170L758,168L755,167L754,160L749,159L748,160L745,156L754,144L758,133L761,135L768,134L768,132L765,129L771,126L773,121L775,120L774,114L776,114L783,119L780,121L779,127L782,136L770,152L770,157L780,162Z"},{i2:"NP",n:"Népal",d:"M450,313L448,329L441,329L439,326L436,328L427,325L426,323L422,323L412,315L405,315L400,313L377,296L383,286L386,284L389,285L393,282L397,283L409,296L414,296L415,300L420,304L423,304L423,307L428,308L430,312L432,310L441,313L450,313Z"},{i2:"MN",n:"Mongolie",d:"M463,92L466,89L475,88L480,83L496,76L501,79L508,79L511,85L530,87L536,81L532,74L539,63L561,69L563,77L570,81L575,81L584,76L593,77L597,80L602,80L602,83L607,86L622,85L635,79L644,70L652,72L659,70L657,90L659,92L661,94L666,91L671,92L673,88L678,87L689,93L691,98L675,103L675,105L669,107L668,113L665,117L657,119L652,127L639,126L637,134L642,140L636,145L632,151L624,156L605,160L592,168L588,168L588,166L582,167L569,164L564,160L524,160L516,144L511,143L502,137L483,134L481,130L484,125L483,116L478,106L471,104L464,98L463,92Z"},{i2:"MY",n:"Malaisie",d:"M753,543L762,540L758,536L759,534L768,531L769,528L759,525L755,527L757,525L755,523L750,526L751,519L745,515L742,519L742,515L734,531L729,534L731,537L726,540L729,545L726,545L725,540L722,542L724,545L722,549L715,545L706,560L691,566L689,570L687,570L685,579L687,581L673,578L670,576L669,578L680,587L694,584L700,578L705,577L713,579L722,576L725,570L724,567L728,564L728,560L731,558L732,549L734,544L753,543ZM569,535L574,562L581,569L581,573L605,588L610,586L610,585L613,587L608,575L604,572L603,554L599,546L590,539L589,538L585,543L583,542L578,545L578,539L574,537L569,535Z"},{i2:"LB",n:"Liban",d:"M46,113L49,115L48,120L34,126L31,124L46,113Z"},{i2:"LA",n:"Laos",d:"M582,371L588,378L589,376L591,377L590,382L593,386L598,387L602,384L607,387L605,389L611,394L608,398L603,398L601,402L614,408L614,410L629,424L631,429L638,433L636,436L642,441L640,448L634,451L630,449L628,450L625,452L626,456L618,454L617,452L620,450L621,438L612,431L612,422L603,412L596,411L590,418L584,414L575,422L573,421L576,407L575,401L568,401L568,394L564,393L565,389L568,387L569,383L573,380L574,383L580,383L577,372L579,370L582,371Z"},{i2:"KG",n:"Kirghizistan",d:"M323,165L328,167L341,163L334,159L332,153L329,157L321,150L330,146L328,143L333,140L348,147L350,141L355,139L363,145L375,146L391,151L398,158L398,159L383,164L380,167L371,166L365,172L360,172L359,168L354,169L346,172L343,177L330,178L327,176L325,172L319,173L318,171L308,169L309,165L312,164L315,164L319,167L323,165Z"},{i2:"KW",n:"Koweït",d:"M105,225L99,223L99,217L93,213L102,205L108,209L107,214L103,214L106,215L105,225Z"},{i2:"KZ",n:"Kazakhstan",d:"M328,144L313,149L306,157L304,156L303,150L294,147L295,138L291,137L295,128L293,128L289,118L285,118L268,113L264,102L253,84L233,83L217,120L213,118L212,110L208,104L200,103L195,105L200,96L194,87L196,76L194,72L195,71L202,75L201,70L206,67L217,72L215,68L221,64L224,57L221,54L218,54L214,49L198,50L195,46L196,44L198,45L199,34L194,31L196,25L195,22L201,17L204,11L211,6L213,14L215,15L219,8L237,4L239,8L245,8L246,11L250,13L252,26L255,21L259,28L266,26L271,30L274,29L277,30L281,38L286,36L291,40L294,39L297,35L291,25L298,24L299,20L302,18L308,20L304,15L307,13L304,11L308,8L311,10L331,12L334,10L351,12L357,9L364,13L367,12L366,24L373,24L373,29L375,27L381,29L377,32L377,35L381,34L383,36L392,31L401,29L398,33L404,42L413,70L419,65L422,71L429,72L435,70L439,73L441,79L445,81L446,86L453,87L456,85L456,87L460,92L456,93L454,98L448,99L445,112L439,114L427,109L420,125L422,127L421,130L415,127L401,130L405,132L403,138L404,148L399,152L398,158L391,151L375,146L363,145L355,139L350,141L348,147L336,140L332,140L328,144Z"},{i2:"JO",n:"Jordanie",d:"M34,131L38,140L58,138L54,150L55,151L51,153L35,149L36,163L30,166L24,164L16,
2164168L9,161L32,131L34,131Z"},{i2:"JP",n:"Japon",d:"M859,61L841,54L840,56L846,65L850,78L843,81L846,84L844,90L851,100L853,95L856,93L848,91L848,88L852,88L857,83L869,84L868,73L874,68L877,61L874,64L871,61L869,54L867,60L859,61ZM857,140L855,136L856,142L857,140ZM856,97L857,101L859,98L861,102L859,104L856,101L854,102L856,116L860,118L862,126L863,136L859,148L854,156L849,153L851,148L848,151L850,158L848,166L848,172L844,174L842,173L826,182L818,197L816,198L816,203L823,200L827,201L826,195L833,193L843,184L849,183L849,190L856,194L858,185L861,182L857,179L858,175L859,178L862,176L861,179L870,175L872,168L875,172L875,164L878,164L877,159L880,158L881,166L883,162L883,158L885,154L880,150L879,140L874,130L876,126L874,114L868,106L864,103L860,96L856,97ZM840,190L836,193L836,196L832,196L827,206L830,204L834,211L836,210L839,200L845,201L847,194L844,190L840,190ZM817,204L813,205L808,214L813,217L810,216L812,220L814,218L816,217L814,213L817,216L819,231L823,233L822,229L823,227L825,234L827,230L826,229L829,228L829,211L827,208L824,208L824,205L820,206L817,204ZM817,283L814,286L814,293L817,286L817,283Z"},{i2:"IL",n:"Israël",d:"M38,125L36,129L30,133L29,130L25,133L23,136L24,138L20,141L24,142L10,160L15,139L31,124L33,126L38,125Z"},{i2:"PS",n:"Palestine",d:"M30,133L24,142L20,141L24,138L23,136L28,130L30,133Z"},{i2:"IQ",n:"Irak",d:"M91,119L107,115L115,120L115,124L119,124L117,138L122,144L119,144L118,150L111,153L107,159L109,167L107,172L114,182L115,190L110,197L112,199L110,204L112,211L102,205L93,213L79,204L61,160L53,152L55,151L54,150L58,138L78,137L87,126L91,119Z"},{i2:"IR",n:"Iran",d:"M184,154L182,159L181,157L169,156L161,151L157,141L151,135L153,126L151,126L150,119L152,119L152,116L155,115L154,111L137,113L133,109L132,98L129,101L126,100L123,112L119,115L121,118L117,132L117,138L122,144L119,144L118,150L111,153L107,159L109,167L107,172L114,182L115,190L110,197L112,199L110,204L112,210L115,211L118,207L120,214L125,214L126,239L134,249L141,262L149,268L163,265L168,267L169,283L182,291L194,296L195,295L202,301L209,290L215,288L222,289L224,285L220,282L223,272L216,266L211,250L222,242L223,236L216,233L219,216L223,213L221,210L222,205L226,204L225,202L233,193L236,182L230,179L225,167L218,163L209,153L198,151L191,155L184,154ZM163,268L159,266L154,268L160,269L163,268Z"},{i2:"ID",n:"Indonésie",d:"M654,555L652,557L654,559L654,561L656,558L654,555ZM529,578L521,575L529,580L529,578ZM583,585L586,584L585,581L582,582L583,585ZM664,582L663,589L663,594L667,597L666,602L668,603L667,606L672,606L675,609L678,626L685,625L686,627L694,624L696,631L705,627L708,623L711,626L714,625L715,627L722,624L722,627L724,626L726,633L739,626L740,623L743,621L741,619L745,612L743,611L744,608L742,607L747,602L747,599L749,600L755,595L754,584L759,577L758,575L765,577L769,574L756,565L759,562L747,550L755,548L751,545L752,543L747,543L734,544L733,546L731,558L728,560L728,564L724,567L725,570L722,576L713,579L705,577L700,578L694,584L680,587L670,580L670,576L664,582ZM613,591L616,592L617,590L616,588L613,591ZM595,590L594,593L600,595L599,593L595,590ZM536,589L542,598L544,598L545,593L539,588L536,589ZM616,601L617,603L621,603L616,601ZM520,547L516,547L519,555L529,565L534,567L541,575L542,580L552,585L558,600L564,603L571,611L577,626L585,635L618,661L618,657L623,659L626,657L630,659L631,637L633,631L626,624L618,627L620,622L616,619L614,612L608,610L604,607L604,603L608,601L607,598L603,596L598,599L595,600L600,596L593,594L589,588L583,585L578,580L576,580L
2164577,583L573,581L564,571L549,562L548,559L540,551L527,550L520,547ZM550,603L549,609L550,609L552,606L550,603ZM669,607L669,610L672,608L672,607L669,607ZM560,621L556,613L553,613L553,616L557,621L560,621ZM629,616L629,618L628,616L626,617L623,621L630,622L632,629L640,631L641,625L636,625L633,616L629,616ZM650,625L650,631L656,630L656,625L650,625ZM570,631L570,633L573,637L573,633L570,631ZM709,663L706,666L714,666L720,663L709,663ZM642,661L633,660L631,665L625,669L635,670L639,671L638,674L657,677L669,675L693,679L711,677L726,680L724,677L724,671L709,671L706,670L704,664L689,663L685,661L681,666L663,667L658,662L644,659L642,661ZM838,593L844,591L848,590L838,591L838,593ZM812,590L812,594L814,591L815,594L818,590L812,590ZM828,595L834,594L837,592L828,592L828,595ZM834,557L831,556L820,567L810,569L791,567L786,573L783,572L778,584L779,592L778,590L776,593L774,604L769,613L770,620L777,620L779,625L776,639L778,641L788,640L786,635L787,620L785,613L789,609L793,609L792,618L800,622L800,629L804,629L805,626L813,623L813,620L806,616L806,609L796,600L805,595L811,587L816,587L817,585L814,583L802,589L798,589L793,595L788,596L782,588L782,580L786,576L824,571L834,557ZM743,628L743,622L741,624L741,630L743,628ZM815,623L810,635L811,637L817,632L814,631L815,626L816,627L815,623ZM811,626L807,629L807,634L811,633L812,629L811,626ZM803,632L802,634L804,636L805,633L803,632ZM830,662L837,660L838,658L831,659L830,662ZM825,661L819,662L818,665L821,665L825,661ZM813,667L815,662L814,661L814,663L808,668L788,667L782,669L782,672L783,674L801,672L813,667ZM836,666L823,675L822,683L831,679L837,672L836,669L838,667L836,666ZM760,670L764,674L760,675L758,673L753,673L750,675L749,680L774,673L772,670L770,671L760,670ZM744,673L742,675L742,678L740,679L747,679L749,673L744,673ZM732,672L724,674L731,678L732,680L738,675L732,672ZM783,678L773,683L788,688L792,684L783,678ZM819,686L814,689L814,690L818,688L819,686ZM866,539L864,542L865,545L868,542L868,539L866,539ZM939,555L945,559L949,557L944,555L939,555ZM862,553L861,547L862,544L858,548L857,556L861,570L865,574L869,575L864,570L862,564L863,562L873,563L866,559L870,554L869,549L865,552L862,558L859,558L862,553ZM888,562L887,564L892,565L893,564L890,562L895,564L898,562L894,560L888,562ZM948,566L955,563L941,565L941,566L948,566ZM892,571L893,574L895,574L896,570L892,571ZM857,572L859,577L863,576L860,574L859,571L857,572ZM883,583L887,584L890,580L889,579L883,583ZM860,582L859,586L866,584L864,582L860,582ZM996,560L964,557L957,563L957,566L951,570L946,579L940,585L936,584L933,577L932,581L928,576L928,566L925,560L909,560L898,568L895,575L905,574L906,578L909,580L926,575L924,581L918,580L914,585L906,587L915,590L917,598L922,595L922,590L925,585L924,590L927,593L937,592L935,594L940,596L961,596L970,599L970,602L972,601L971,603L973,603L974,608L978,612L976,614L981,615L977,617L981,619L979,627L982,623L984,625L991,620L990,623L1000,630L996,560ZM890,593L868,597L865,601L865,604L867,600L871,602L875,599L881,600L885,598L895,601L895,597L890,593ZM846,604L847,608L851,610L858,607L858,604L854,602L846,604ZM934,608L930,616L933,618L937,616L934,608ZM930,618L930,624L931,625L934,619L930,618ZM980,621L975,619L971,622L967,632L975,628L980,621ZM905,639L905,633L901,638L900,644L905,639ZM853,649L845,655L852,653L855,650L853,649Z"},{i2:"IN",n:"Inde",d:"M261,329L261,333L266,331L262,333L263,338L268,342L272,344L280,342L276,347L267,348L265,346L264,348L273,363L278,367L291,365L294,362L292,358L295,356L294,354L300,355L298,356L297,358L299,358L297,361L302,361L297,363L298,372L295,380L297,387L296,386L295,388L297,388L295,393L298,421L305,439L308,460L320,490L321,500L330,510L336,508L340,501L351,501L347,499L346,497L351,490L356,490L357,481L355,479L363,459L361,456L362,455L363,457L362,440L365,434L369,433L372,434L375,429L385,427L387,422L405,411L419,398L416,398L417,396L427,396L432,392L435,388L434,382L445,376L447,373L445,372L445,371L447,373L446,379L451,379L452,374L452,379L454,378L455,379L455,363L452,357L454,351L447,347L451,342L456,341L448,334L452,329L451,327L455,331L457,329L460,333L463,331L465,341L485,343L489,345L487,346L484,353L479,354L477,359L478,364L479,363L481,366L484,359L487,359L490,377L491,375L493,376L495,374L496,366L498,365L497,355L505,357L511,345L509,342L515,334L515,328L524,321L529,321L533,323L531,318L535,314L533,310L525,309L528,306L527,303L524,304L526,301L523,299L517,303L510,300L502,306L497,307L491,315L482,316L482,318L486,321L485,325L470,325L464,326L459,325L455,321L456,312L450,313L448,329L427,325L426,323L422,323L412,315L405,315L400,313L377,297L381,288L387,284L381,279L380,276L375,273L372,269L369,269L370,262L368,256L370,256L372,258L375,257L373,241L375,238L370,234L370,225L368,224L356,231L348,232L337,227L334,228L332,234L335,235L332,237L333,240L331,243L333,248L336,248L336,251L341,254L333,258L332,266L325,271L323,275L319,276L313,284L308,286L302,294L292,295L289,291L279,298L278,302L284,306L282,312L286,316L288,330L276,330L267,326L265,330L261,329ZM490,486L493,475L492,471L494,465L491,466L491,478L488,482L490,486ZM501,530L499,531L501,535L502,533L501,530Z"},{i2:"GE",n:"Géorgie",d:"M132,81L130,74L128,74L122,69L127,66L129,58L125,45L127,45L133,53L140,58L143,68L148,69L149,71L150,70L154,75L152,78L155,84L152,86L154,91L151,92L146,84L141,85L132,81Z"},{i2:null,n:"Chypre du Nord",d:"M36,100L33,98L33,96L30,95L29,93L32,92L36,95L44,97L37,97L36,100Z"},{i2:"CY",n:"Chypre",d:"M29,93L33,96L33,98L36,101L27,100L25,93L29,93Z"},{i2:"CN",n:"République populaire de Chine",d:"M633,375L645,373L644,371L651,375L655,372L658,374L656,380L659,385L664,385L665,383L661,379L663,374L665,376L669,372L674,371L677,367L681,368L681,365L684,367L687,365L688,362L689,363L692,361L689,354L691,352L696,357L719,349L722,341L726,341L731,333L729,331L736,328L738,321L741,320L739,318L743,318L742,312L740,313L738,311L741,311L744,308L740,303L745,304L748,295L748,288L751,284L755,284L753,280L754,277L752,275L756,274L755,271L754,269L751,272L755,266L747,264L742,267L741,265L738,266L740,264L743,264L751,256L748,252L738,247L733,249L737,246L747,248L749,247L738,240L729,224L719,220L725,206L723,204L727,204L727,199L735,193L739,194L740,187L732,189L724,187L720,189L718,195L714,196L711,195L709,188L699,187L696,182L697,178L706,176L708,169L715,162L718,154L723,152L728,156L723,168L723,170L728,169L727,172L723,175L724,177L728,174L735,164L745,158L748,151L754,144L757,134L768,134L768,132L765,129L771,126L773,121L775,120L774,114L781,117L779,115L783,112L782,107L774,93L778,86L786,86L787,84L787,71L783,60L785,55L782,50L779,49L773,55L771,61L762,64L753,54L745,51L734,53L731,52L725,43L705,24L691,23L677,30L673,37L677,37L679,42L675,61L677,65L669,72L661,71L657,90L661,94L666,91L671,92L673,88L678,87L689,93L691,98L675,103L675,105L669,107L668,113L665,117L657,119L652,127L639,126L637,134L642,140L636,145L632,151L624,156L605,160L592,168L588,168L588,166L582,167L569,164L564,160L524,160L516,144L511,143L502,137L483,134L481,130L484,125L483,116L478,106L471,104L464,98L463,92L457,92L454,98L448,99L445,112L439,114L427,109L420,125L422,127L421,130L415,127L401,130L405,132L403,138L404,148L401,149L402,151L399,153L398,159L386,163L380,167L371,166L365,172L360,172L359,168L354,169L346,172L344,177L342,177L341,186L345,187L349,190L348,198L349,201L342,203L353,210L353,216L355,219L358,219L362,223L370,225L370,234L375,238L373,241L375,257L372,258L370,256L368,256L370,262L369,269L372,269L388,285L391,282L397,283L409,296L414,296L415,300L420,304L423,304L423,307L428,308L430,312L432,310L434,312L436,310L445,314L455,311L456,312L457,319L466,310L477,313L479,312L485,316L492,314L497,307L502,306L510,300L517,303L523,299L526,301L524,304L527,303L528,306L525,309L535,311L538,308L542,312L544,318L547,318L548,336L540,342L537,349L539,353L538,356L550,354L549,356L551,364L557,366L554,374L561,375L564,381L568,381L573,378L574,383L579,384L577,372L578,370L582,371L586,367L591,369L593,366L595,368L597,366L600,368L602,365L607,364L612,358L618,362L627,363L625,366L626,372L633,375ZM671,391L667,387L666,388L654,391L648,398L649,406L6
216458,408L663,405L671,391Z"},{i2:"KH",n:"Cambodge",d:"M641,447L639,453L642,460L642,470L631,476L631,479L626,480L629,489L625,487L618,488L616,492L611,494L606,492L603,493L604,489L602,487L598,490L598,484L591,472L588,463L591,462L595,455L613,452L626,456L625,452L630,449L635,451L641,447Z"},{i2:"MM",n:"Birmanie",d:"M564,393L557,393L558,395L554,396L552,399L543,400L541,412L537,413L540,415L540,420L548,429L550,435L553,435L550,438L550,445L546,447L546,449L556,462L556,469L561,482L552,494L551,501L549,494L554,483L551,483L550,468L546,460L545,463L544,453L542,451L540,439L541,433L537,433L536,428L532,424L531,432L528,434L525,431L527,434L517,442L517,438L515,441L513,441L512,437L510,440L510,434L506,439L509,423L504,405L503,409L498,404L502,405L503,403L500,400L501,398L496,397L495,399L494,393L492,395L492,393L491,391L491,394L488,390L486,384L487,382L490,384L490,377L491,375L494,376L495,374L497,355L505,357L511,345L509,342L515,334L515,328L524,321L529,321L533,323L531,318L535,314L537,308L542,312L544,318L547,318L548,327L548,336L540,342L538,347L538,356L550,354L549,356L551,364L557,366L554,375L561,375L564,381L573,378L568,386L568,387L565,389L564,393Z"}
2164,{i2:"BN",n:"Brunei",d:"M725,541L726,545L729,545L727,540L725,541ZM722,542L725,539L715,544L722,549L724,545L722,542Z"},{i2:"BT",n:"Bhoutan",d:"M479,312L482,318L486,321L485,325L470,325L464,326L458,324L455,321L462,312L467,310L471,310L470,312L479,312Z"},{i2:"BD",n:"Bangladesh",d:"M456,375L458,378L460,372L461,378L465,371L464,374L467,374L465,377L467,377L471,372L469,368L471,363L468,360L471,361L471,359L474,370L479,367L483,372L485,385L487,389L486,383L490,384L487,359L484,359L481,366L479,363L478,364L477,359L479,354L484,353L487,346L490,346L485,343L465,341L463,331L460,333L457,329L455,331L452,327L448,334L456,341L451,342L447,347L454,351L452,357L455,363L456,375ZM473,374L473,371L470,367L472,372L470,375L473,374Z"},{i2:"AZ",n:"Azerbaïdjan",d:"M155,123L161,119L167,111L173,113L169,105L169,93L160,95L158,93L155,84L152,85L154,91L152,92L146,84L143,85L144,91L142,94L143,98L139,100L143,107L140,113L154,111L155,115L150,120L152,126L153,126L155,123ZM133,100L133,109L137,112L138,105L134,102L135,100L133,100Z"},{i2:"AM",n:"Arménie",d:"M133,99L131,94L128,91L132,86L132,81L143,85L144,91L142,94L143,98L139,100L143,107L140,113L137,112L138,104L133,99Z"},{i2:"AF",n:"Afghanistan",d:"M275,182L289,190L291,193L299,191L302,194L304,190L310,191L311,187L318,183L320,185L319,189L322,190L319,198L320,203L335,198L338,199L337,200L343,200L345,200L347,202L343,202L344,204L339,205L324,203L315,208L316,218L309,224L308,229L298,227L300,235L293,237L288,248L284,250L278,247L271,251L266,250L260,253L256,263L237,263L224,259L211,250L222,242L223,236L216,233L219,216L223,213L221,210L222,205L226,204L225,202L229,199L233,192L240,199L243,199L247,198L249,194L256,194L261,192L266,185L272,185L275,182Z"},{i2:null,n:"glacier de Siachen",d:"M361,227L359,221L368,224L364,226L361,227Z"}]},{key:"southam",viewBox:"0 0 1000 1454",fr:"Amérique latine",en:"Latin America",countries:[{i2:"VE",n:"Venezuela",d:"M376,23L373,27L365,27L375,29L376,23ZM457,77L432,81L425,77L433,77L443,61L426,50L423,55L415,48L410,52L405,43L401,47L402,42L397,36L420,32L367,35L379,37L349,47L333,43L324,35L283,39L277,25L268,19L250,19L243,4L236,10L238,16L247,15L247,19L210,31L210,40L219,57L215,69L205,71L196,56L207,37L200,18L210,15L214,12L200,16L184,34L168,70L181,71L189,89L188,105L198,115L239,116L254,133L297,131L289,150L288,167L300,190L288,203L294,203L303,212L310,237L323,247L337,242L339,248L386,214L386,210L372,208L368,185L356,170L373,177L388,177L398,184L401,175L427,169L447,156L430,134L436,128L436,118L453,111L445,100L465,84L457,77Z"},{i2:"UY",n:"Uruguay",d:"M582,994L574,1007L553,1018L539,1015L529,1017L512,1007L499,1007L489,991L496,973L495,953L506,915L514,918L521,914L535,929L536,935L544,930L577,957L588,972L580,981L582,994Z"},{i2:"FK",n:"îles Malouines",d:"M454,1364L457,1368L453,1370L457,1371L447,1377L451,1380L462,1375L471,1364L454,1364ZM476,1361L474,1369L466,1378L469,1382L474,1380L472,1376L480,1378L479,1375L492,1369L490,1363L485,1367L483,1362L476,1361Z"},{i2:"SR",n:"Suriname",d:"M591,138L583,155L583,166L593,185L584,210L578,212L571,206L555,210L550,208L546,213L549,222L533,218L520,189L513,189L504,176L507,157L520,153L527,133L551,140L552,134L585,136L591,138Z"},{i2:"PE",n:"Pérou",d:"M244,357L226,356L204,364L182,379L175,400L177,408L164,419L165,427L160,433L183,463L178,473L196,474L201,484L221,483L235,470L234,505L257,502L277,535L271,544L270,561L274,572L265,586L269,595L264,604L269,615L277,619L261,638L264,645L257,650L256,661L246,664L227,651L222,642L146,606L127,590L117,574L119,563L98,536L96,527L87,520L59,463L31,425L6,411L11,401L0,381L2,371L20,351L24,361L17,365L21,369L18,374L25,371L36,373L43,383L50,384L57,374L63,348L67,349L73,338L98,328L122,304L128,283L120,273L128,271L142,277L150,290L163,295L179,320L195,319L205,313L212,317L222,314L241,323L227,348L236,348L244,357Z"},{i2:"PY",n:"Paraguay",d:"M498,691L505,717L502,741L523,744L532,740L544,746L552,782L568,779L575,784L563,838L544,856L535,854L530,859L488,853L498,829L509,815L507,811L463,784L440,776L407,744L415,707L425,687L480,679L498,691Z"},{i2:"GY",n:"Guyana",d:"M445,150L430,134L436,128L436,118L453,111L445,100L464,85L460,78L494,103L490,124L498,114L522,129L522,150L507,157L504,173L513,189L520,189L522,200L538,220L520,219L504,229L497,227L493,234L487,236L478,232L468,224L461,204L464,184L471,177L467,167L458,164L461,152L458,149L445,150Z"},{i2:"EC",n:"Équateur",d:"M127,272L120,273L128,283L122,304L98,328L73,338L67,349L63,348L57,374L50,384L43,383L36,373L25,371L18,374L21,369L17,365L24,361L20,351L28,345L33,332L30,321L28,332L26,328L21,336L6,327L10,320L6,301L16,290L19,290L15,285L24,273L24,258L48,248L49,243L74,255L81,264L101,266L105,262L127,272Z"},{i2:"CO",n:"Colombie",d:"M218,8L200,16L184,34L168,70L181,71L189,89L188,105L198,115L239,116L254,133L297,131L289,150L288,167L300,190L288,203L294,203L303,212L310,234L306,238L305,227L299,218L287,226L281,221L282,227L245,228L245,242L257,242L260,250L241,253L241,268L250,276L255,290L244,357L236,348L227,348L241,323L222,314L212,317L205,313L195,319L179,320L163,295L150,290L138,274L105,262L101,266L81,264L74,255L61,251L45,239L50,234L55,236L55,223L71,214L87,187L81,187L77,181L83,170L77,153L83,147L79,139L81,130L69,116L73,106L77,109L85,100L81,85L94,100L91,86L111,69L119,66L122,50L118,52L137,30L148,32L144,35L146,37L152,25L170,25L206,0L215,2L218,8Z"},{i2:"CL",n:"Chili",d:"M240,1200L235,1190L240,1187L237,1175L228,1174L227,1204L236,1206L240,1200ZM257,1229L249,1226L249,1236L254,1235L257,1229ZM239,1224L228,1235L240,1248L244,1244L238,1232L242,1226L239,1224ZM238,1255L235,1245L231,1257L238,1255ZM243,1317L237,1302L232,1305L238,1318L243,1317ZM234,1319L229,1306L227,
21641307L229,1322L234,1319ZM236,1321L229,1326L231,1331L237,1324L236,1321ZM241,1319L233,1341L241,1344L241,1337L244,1334L247,1346L248,1331L241,1319ZM246,1350L238,1347L237,1354L246,1350ZM254,1374L245,1373L245,1380L254,1374ZM246,664L257,729L254,762L249,771L254,778L252,801L255,814L251,826L250,865L241,895L246,910L241,932L249,975L245,985L248,997L229,1074L221,1079L234,1118L227,1159L235,1173L241,1172L245,1166L252,1169L256,1165L255,1168L248,1174L254,1175L257,1184L250,1182L253,1198L249,1204L248,1222L259,1227L259,1231L249,1242L257,1249L245,1251L249,1259L247,1273L246,1258L244,1265L242,1267L237,1267L243,1263L241,1249L239,1257L226,1261L229,1267L219,1279L224,1284L222,1279L229,1274L230,1279L241,1279L244,1287L240,1292L246,1295L239,1298L246,1303L253,1296L259,1306L241,1304L244,1314L251,1313L247,1316L249,1333L252,1335L253,1325L254,1325L253,1333L258,1337L251,1337L257,1345L249,1350L260,1355L256,1355L260,1362L264,1355L263,1364L258,1362L249,1353L250,1360L244,1361L249,1368L262,1371L264,1378L260,1380L271,1386L283,1380L274,1374L280,1376L285,1379L286,1389L284,1392L281,1383L268,1391L261,1389L267,1399L278,1395L273,1403L281,1407L284,1395L301,1395L285,1400L282,1410L290,1414L292,1407L306,1399L300,1414L297,1409L291,1412L308,1421L312,1419L311,1398L331,1385L342,1386L321,1381L293,1383L285,1374L283,1357L272,1359L262,1336L273,1318L276,1306L271,1299L280,1272L276,1250L281,1242L269,1233L282,1232L283,1228L272,1225L270,1201L263,1196L261,1182L267,1176L260,1149L261,1125L264,1109L273,1100L266,1084L263,1065L275,1047L271,1030L282,1007L281,987L276,985L263,945L269,925L275,920L270,902L275,882L284,871L289,854L299,849L293,839L296,832L292,816L295,809L292,801L297,793L315,785L321,762L317,759L303,759L295,726L283,708L286,698L283,692L288,686L277,676L273,657L264,645L257,650L256,661L246,664ZM248,1383L254,1393L256,1393L257,1386L252,1380L248,1383ZM258,1402L265,1409L281,1413L276,1409L258,1402ZM341,1393L329,1391L323,1398L317,1397L321,1401L317,1406L321,1410L332,1409L323,1420L340,1430L337,1433L330,1428L324,1429L317,1423L321,1422L318,1415L315,1425L323,1433L316,1430L313,1432L303,1433L302,1436L346,1438L341,1393ZM283,1413L273,1417L283,1426L288,1423L287,1428L292,1427L296,1421L283,1413ZM298,1423L301,1430L313,1429L312,1425L298,1423ZM367,1441L353,1439L351,1441L355,1445L365,1446L367,1441ZM309,1442L323,1447L325,1445L323,1441L309,1442ZM329,1445L340,1451L338,1445L344,1446L345,1451L356,1454L347,1444L349,1440L330,1440L329,1445Z"},{i2:"BR",n:"Brésil",d:"M670,265L672,252L666,263L670,265ZM674,260L672,264L680,266L686,261L674,260ZM693,264L688,264L683,267L692,268L693,264ZM665,267L658,267L657,270L665,267ZM651,286L652,276L646,278L643,287L637,295L651,286ZM665,270L662,284L667,289L663,291L669,304L703,298L715,274L674,267L665,270ZM305,237L305,227L299,218L287,226L281,221L282,227L245,228L245,242L257,242L260,250L241,253L241,268L250,276L255,290L244,358L226,356L204,364L182,379L175,400L177,408L164,419L165,427L160,433L183,463L178,473L196,474L201,484L221,483L235,470L234,505L277,505L320,477L345,473L346,506L355,522L367,531L396,536L423,554L438,553L450,560L455,588L449,588L456,597L457,614L495,614L494,635L506,641L513,656L499,689L505,695L498,699L505,717L501,739L523,744L532,740L545,747L552,782L568,779L575,784L567,817L579,817L585,832L581,851L543,873L544,877L540,877L506,915L514,918L521,914L535,929L536,935L544,930L577,957L588,972L580,981L582,994L596,981L611,944L625,931L626,916L630,923L639,921L639,925L624,947L609,954L609,960L631,943L656,903L676,887L683,857L681,837L688,823L683,820L682,818L687,820L689,816L693,819L698,811L721,796L740,787L750,788L768,778L767,773L796,774L797,768L801,774L819,775L827,762L842,757L845,740L872,706L878,677L889,666L899,626L899,576L906,559L910,556L913,563L918,561L940,528L940,531L980,494L995,470L1000,446L993,407L987,397L953,389L927,360L896,339L863,338L822,323L805,332L804,324L793,340L801,322L800,318L795,322L793,319L798,315L795,308L786,302L781,307L778,299L739,281L720,283L713,291L715,299L713,301L707,298L696,307L691,320L687,323L694,303L670,308L664,303L660,285L637,298L621,297L636,293L652,266L682,240L681,229L664,219L654,176L648,171L615,216L598,212L586,216L571,206L555,210L550,208L546,213L549,222L524,218L504,229L497,227L493,234L486,235L468,224L461,204L464,184L471,177L467,167L458,164L461,152L447,149L447,156L439,164L401,175L398,184L388,177L373,177L356,170L368,185L372,208L386,210L386,215L373,220L369,229L349,238L341,248L336,241L323,247L305,237Z"},{i2:"BO",n:"Bolivie",d:"M273,657L261,638L277,619L269,615L264,604L269,595L265,586L274,572L270,561L271,544
2164L277,535L257,502L277,505L320,477L345,473L346,506L355,522L367,531L396,536L423,554L438,553L450,560L455,588L449,588L456,597L457,614L495,614L494,635L506,641L513,656L499,689L505,695L500,698L498,691L480,679L425,687L415,707L407,744L403,738L382,740L374,757L368,744L345,742L335,736L317,759L306,760L303,759L295,726L283,708L286,698L283,692L287,686L277,676L273,657Z"},{i2:"AR",n:"Argentine",d:"M501,924L540,877L544,877L543,873L581,851L585,833L581,820L567,817L562,840L544,856L535,854L530,859L488,853L498,829L509,815L507,811L463,784L440,776L404,739L382,740L374,757L368,744L363,742L345,742L335,736L333,743L326,745L317,759L321,762L315,785L297,793L292,801L295,809L292,816L296,832L293,839L299,849L289,854L284,871L275,882L270,902L275,920L269,925L263,945L276,985L281,987L282,1007L271,1030L275,1047L263,1065L266,1084L273,1100L264,1109L261,1125L260,1149L267,1176L261,1182L263,1196L270,1201L272,1225L283,1228L282,1232L269,1233L281,1242L276,1250L280,1272L271,1299L276,1306L273,1318L262,1336L272,1359L283,1357L285,1374L293,1383L321,1381L343,1386L334,1373L327,1372L332,1370L327,1360L330,1349L338,1342L330,1339L334,1333L340,1340L346,1336L350,1316L373,1294L366,1292L373,1281L369,1276L357,1275L344,1264L342,1256L351,1238L362,1232L371,1232L371,1225L376,1217L376,1202L390,1189L379,1183L387,1179L395,1187L401,1183L398,1170L388,1177L378,1171L375,1143L400,1150L421,1144L420,1129L426,1112L421,1109L420,1100L442,1104L492,1092L504,1085L520,1059L519,1048L508,1041L512,1027L492,1012L488,1003L490,978L495,975L495,953L501,924ZM346,1438L375,1440L388,1437L392,1432L377,1430L362,1421L344,1406L347,1402L341,1393L346,1438Z"}]},{key:"africa",viewBox:"0 0 1000 1071",fr:"Afrique",en:"Africa",countries:[{i2:"ZW",n:"Zimbabwe",d:"M700,892L673,889L669,886L669,883L654,879L650,872L650,864L644,863L643,858L629,849L616,823L642,826L656,810L668,805L670,797L682,792L692,792L693,797L704,797L729,808L728,833L723,841L727,857L719,867L717,876L700,892Z"},{i2:"ZM",n:"Zambie",d:"M692,792L679,792L670,797L669,803L668,805L656,810L638,827L625,826L609,819L589,821L571,805L570,800L569,752L598,751L599,720L605,724L605,728L618,725L619,731L629,735L641,736L646,730L652,740L664,745L673,757L681,756L684,759L685,739L681,740L680,743L674,742L664,730L668,715L665,695L672,689L673,684L700,680L705,686L711,687L736,701L743,715L737,721L736,739L740,742L732,747L731,756L727,761L731,768L734,767L690,782L692,792Z"},{i2:"UG",n:"Ouganda",d:"M749,571L702,571L696,572L689,578L684,577L689,544L709,525L708,522L701,519L702,503L707,499L717,498L722,503L735,497L742,499L749,492L756,500L756,508L763,518L765,529L749,553L749,571Z"},{i2:"TN",n:"Tunisie",d:"M429,61L428,72L411,82L409,85L409,95L399,103L395,76L387,69L378,50L378,46L388,37L391,30L391,11L396,5L410,0L412,3L417,2L419,9L427,4L428,7L419,17L426,31L411,48L414,52L419,53L419,56L422,54L425,60L429,61Z"},{i2:"TG",n:"Togo",d:"M258,387L255,397L263,403L267,417L265,449L268,459L259,462L250,450L253,427L248,421L251,412L247,410L250,398L243,391L244,385L258,387Z"},{i2:"TZ",n:"Tanzanie",d:"M837,630L834,630L835,638L837,630ZM831,654L829,644L828,642L826,649L831,654ZM704,685L747,702L748,700L753,703L756,711L757,723L761,731L776,729L781,733L791,731L797,733L805,727L813,729L826,725L843,715L833,708L832,695L827,684L829,677L827,670L831,662L821,648L827,627L804,609L804,602L750,571L698,572L703,588L698,593L697,599L702,601L702,604L689,621L681,623L683,651L693,662L704,685Z"},{i2:"SZ",n:"Eswatini",d:"M706,945L707,958L705,965L696,963L689,956L690,951L698,942L706,945Z"},{i2:"SS",n:"Soudan du Sud",d:"M768,472L742,499L735,497L722,503L717,498L707,499L702,503L683,486L678,490L661,489L649,476L647,470L637,465L635,456L619,444L617,439L612,434L603,430L602,425L607,422L614,402L627,399L637,413L657,411L660,415L671,415L688,401L700,409L705,408L724,388L722,379L718,374L734,371L734,393L746,401L750,424L747,428L737,428L734,436L747,442L759,454L768,472Z"},{i2:"SD",n:"Soudan",d:"M749,412L746,412L746,401L734,393L734,371L727,371L728,374L718,374L722,379L724,388L705,408L700,409L688,401L671,415L660,415L657,411L639,413L626,399L615,401L607,422L602,426L592,424L594,408L582,392L583,386L578,382L574,366L567,364L573,356L571,349L577,343L575,337L583,328L583,323L585,320L598,320L597,256L611,256L610,226L698,225L701,221L702,225L778,222L785,235L785,250L790,270L808,281L792,296L786,296L785,308L779,326L781,339L777,362L770,364L763,376L761,391L755,391L752,394L749,412Z"},{i2:"ZA",n:"Afrique du Sud",d:"M673,889L700,892L708,923L707,940L706,945L699,942L696,943L689,956L696,963L702,965L705,965L706,957L718,958L708,984L694,995L673,1022L633,1054L616,1056L614,1060L605,1060L603,1062L573,1060L563,1065L547,1066L540,1071L524,1065L523,1061L520,1061L520,1065L519,1056L511,1043L517,1038L516,
21641027L491,982L499,974L503,977L505,983L514,986L528,987L539,980L539,926L546,931L551,943L549,956L563,956L576,946L583,934L606,941L616,940L623,926L636,919L640,909L656,896L673,889Z"},{i2:"SO",n:"Somalie",d:"M862,581L854,568L854,511L869,491L880,489L891,480L911,478L953,430L966,407L964,379L980,374L989,366L996,368L995,390L997,388L1000,391L994,392L993,406L956,484L928,516L891,545L862,581Z"},{i2:null,n:"Somaliland",d:"M964,379L966,407L953,430L939,430L895,416L886,409L874,392L882,378L899,394L907,393L919,387L930,388L942,381L964,379Z"},{i2:"SL",n:"Sierra Leone",d:"M93,421L87,432L74,445L61,437L61,431L56,430L50,420L56,417L52,418L54,413L51,410L55,410L64,398L81,397L88,408L90,418L87,423L93,421Z"},{i2:"SN",n:"Sénégal",d:"M73,321L76,331L75,340L83,351L82,359L69,360L59,357L58,355L29,352L19,355L7,355L11,352L7,352L9,344L21,344L21,342L31,338L43,344L49,342L32,335L26,338L11,337L9,332L11,330L9,330L5,320L0,318L11,310L22,291L49,292L54,299L60,301L62,308L73,321Z"},{i2:"ST",n:"Sao Tomé-et-Principe",d:"M341,552L336,552L340,550L341,552Z"},{i2:"RW",n:"Rwanda",d:"M684,577L689,578L696,572L698,572L702,580L703,591L689,591L686,598L674,597L677,584L684,577Z"},{i2:"NG",n:"Nigeria",d:"M446,350L452,359L454,370L460,373L459,383L446,392L439,412L435,414L431,424L426,426L417,446L418,449L411,457L407,459L399,449L396,452L392,450L376,465L368,484L363,482L364,487L349,487L346,484L347,487L344,489L341,484L343,489L339,488L333,491L324,485L321,476L324,473L318,472L322,470L317,470L307,459L293,458L297,455L282,458L284,418L288,417L300,397L296,382L299,365L311,348L327,345L339,349L348,359L361,354L374,361L387,362L400,355L413,355L429,359L446,350Z"},{i2:"NE",n:"Niger",d:"M446,350L429,359L413,355L400,355L387,362L374,361L361,354L348,359L339,349L327,345L315,347L307,351L305,359L299,365L298,378L287,367L280,369L280,374L276,368L278,365L277,362L269,363L261,357L261,351L264,352L256,346L250,334L252,327L262,327L267,323L299,322L305,316L310,304L314,265L337,261L362,241L427,203L448,208L458,217L469,211L471,233L482,251L479,257L474,302L458,319L444,340L446,350Z"},{i2:"NA",n:"Namibie",d:"M551,826L609,819L616,823L601,826L592,833L587,826L554,831L554,885L539,885L539,980L528,987L514,986L505,983L503,977L499,974L491,982L475,964L470,949L467,930L462,918L461,892L420,826L419,815L431,815L439,811L453,817L516,817L525,823L551,826Z"},{i2:"MZ",n:"Mozambique",d:"M700,892L717,876L719,867L727,857L723,841L728,833L729,808L704,797L692,797L690,782L734,767L740,776L751,774L753,785L748,796L759,810L759,814L762,814L761,806L764,800L770,799L773,781L764,766L755,758L752,740L756,732L776,729L781,733L791,731L797,733L805,727L813,729L826,725L843,715L845,718L842,728L843,748L841,753L843,753L842,777L844,775L845,779L840,791L829,805L817,813L794,822L785,828L777,839L769,843L755,855L751,853L751,864L757,882L757,893L760,889L760,891L758,918L750,926L718,940L715,946L718,950L720,947L718,958L707,958L708,923L700,892Z"},{i2:"MA",n:"Maroc",d:"M256,24L261,30L259,51L264,64L261,69L240,68L238,71L227,73L227,84L209,90L201,97L187,98L184,102L178,100L156,112L149,136L135,139L123,135L114,137L114,141L108,148L103,150L94,167L72,183L63,203L54,215L24,214L46,178L61,166L73,143L85,136L97,119L117,115L138,100L147,90L149,70L160,54L172,45L194,36L212,10L221,9L220,14L227,20L242,21L248,19L249,23L256,24Z"},{i2:"EH",n:"Sahara occidental",d:"M149,136L152,128L148,153L103,149L96,188L79,197L77,220L24,215L21,223L24,214L54,215L63,203L72,183L94,167L103,150L108,148L114,141L114,137L123,135L135,139L149,136Z"},{i2:"MR",n:"Mauritanie",d:"M73,321L62,308L60,301L54,299L45,291L22,291L16,302L28,265L28,252L25,246L28,244L26,245L31,233L24,219L21,223L24,215L77,220L79,197L96,188L103,149L148,153L151,134L197,172L173,170L170,291L170,299L173,304L170,315L118,313L116,310L114,313L97,313L93,317L86,309L78,320L73,321Z"},{i2:"ML",n:"Mali",d:"M80,362L83,351L75,340L76,331L73,321L78,320L86,309L93,317L97,313L114,313L116,310L118,313L170,315L173,304L170,299L170,291L173,170L197,172L272,235L272,239L280,246L299,254L298,266L314,265L310,304L305,316L299,322L267,323L262,327L251,328L239,325L219,333L217,338L210,337L204,345L200,345L199,351L196,352L190,348L184,353L185,358L181,359L182,364L169,372L164,393L156,397L153,395L153,388L151,391L148,389L147,394L143,394L142,397L135,392L128,396L124,391L124,383L119,383L123,377L118,372L114,360L111,360L111,363L105,366L98,363L91,368L88,363L83,3
216465L80,362Z"},{i2:"MW",n:"Malawi",d:"M734,767L731,768L727,761L731,756L732,747L740,742L736,739L737,721L743,715L733,698L747,702L748,700L756,708L757,723L761,731L756,732L752,740L755,758L764,766L773,781L770,799L764,800L761,806L762,814L759,814L759,810L748,796L753,787L753,776L750,774L740,776L734,767Z"},{i2:"MG",n:"Madagascar",d:"M968,741L979,764L981,796L977,801L974,793L970,794L971,809L964,820L961,837L918,934L911,939L888,944L874,935L871,925L873,913L869,896L874,880L878,878L889,859L887,821L894,810L895,803L920,796L923,799L925,793L932,789L934,792L939,782L940,786L945,780L947,781L945,776L949,770L948,766L950,764L953,766L961,759L962,746L968,741Z"},{i2:"LY",n:"Libye",d:"M396,105L409,95L409,85L411,82L428,72L429,61L438,66L452,65L476,73L483,87L511,95L528,105L536,101L541,95L540,78L554,68L568,66L580,70L583,76L605,80L608,84L604,89L606,98L603,105L607,120L611,256L597,256L597,263L483,205L458,217L448,208L427,203L421,191L406,188L394,163L401,153L402,120L396,105Z"},{i2:"LR",n:"Liberia",d:"M74,445L87,432L93,421L102,421L106,434L104,438L112,441L117,434L121,444L116,452L132,463L130,486L107,475L74,445Z"},{i2:"LS",n:"Lesotho",d:"M663,1002L653,1005L648,1012L644,1012L636,997L645,987L658,982L668,993L663,1002Z"},{i2:"KE",n:"Kenya",d:"M749,571L749,553L762,537L765,529L756,500L749,492L768,472L775,474L776,482L780,488L793,488L811,500L831,502L837,496L850,489L856,494L867,494L853,512L854,568L862,581L853,586L849,594L843,596L841,605L830,626L827,626L807,611L804,609L804,602L749,571Z"},{i2:"GW",n:"Guinée-Bissau",d:"M7,356L29,352L49,353L50,356L46,360L48,368L34,371L28,380L28,376L26,378L23,372L29,369L23,367L29,363L17,366L17,363L12,361L13,358L7,356Z"},{i2:"GN",n:"Guinée",d:"M100,420L87,423L90,418L88,408L82,397L64,398L55,410L51,410L46,403L46,396L36,391L32,380L28,381L34,371L48,368L46,361L49,359L49,353L68,360L82,359L80,362L83,365L88,363L91,368L98,363L105,366L111,363L111,360L115,361L118,372L123,377L119,383L124,383L124,391L128,394L125,406L129,408L130,413L127,417L131,423L123,422L122,425L126,428L122,436L116,434L112,441L109,441L104,438L104,423L100,420Z"},{i2:"GH",n:"Ghana",d:"M244,385L243,392L250,398L247,410L251,412L248,421L253,427L250,450L259,462L255,466L245,467L211,482L195,476L200,475L201,471L197,467L194,450L206,429L203,416L203,386L235,388L244,385Z"},{i2:"GM",n:"Gambie",d:"M11,337L26,338L32,335L49,342L43,344L31,338L21,342L21,344L8,345L10,338L13,342L27,340L14,341L11,337Z"},{i2:"GA",n:"Gabon",d:"M439,524L438,537L452,536L456,543L449,551L447,559L457,565L455,585L449,594L445,588L441,592L434,591L428,584L426,591L413,591L412,599L418,606L418,611L412,609L406,615L385,593L390,595L384,592L375,576L379,581L382,580L375,576L370,565L373,566L379,561L380,551L386,555L389,553L379,548L384,547L383,540L409,541L410,521L439,524Z"},{i2:"ET",n:"Éthiopie",d:"M768,472L759,454L747,442L734,436L737,428L749,425L751,396L755,391L761,391L763,376L770,364L777,362L781,339L792,336L797,340L801,329L809,335L818,332L820,334L834,334L844,339L868,364L860,376L861,386L877,386L874,392L877,398L895,416L939,430L953,430L911,478L891,480L881,488L867,494L856,494L850,489L837,496L831,502L811,500L793,488L780,488L776,482L775,474L768,472Z"},{i2:"ER",n:"Érythrée",d:"M781,339L779,326L785,308L786,296L792,296L808,281L820,312L828,324L829,319L834,326L848,331L868,352L879,359L873,365L868,364L844,339L834,334L817,332L809,335L801,329L797,340L792,336L781,339Z"},{i2:"GQ",n:"Guinée équatoriale",d:"M370,499L366,505L369,507L374,500L370,499ZM409,523L386,521L386,527L380,539L388,541L409,541L409,523Z"},{i2:"EG",n:"Égypte",d:"M778,222L702,225L701,221L698,225L610,226L607,120L603,105L606,98L604,89L608,84L636,88L661,95L687,83L697,83L701,86L697,84L696,87L701,90L702,87L707,90L728,85L740,112L734,138L719,126L708,106L706,111L715,127L724,136L732,154L751,186L760,194L757,196L760,209L778,222Z"},{i2:"DJ",n:"Djibouti",d:"M882,378L877,386L861,386L860,376L869,363L873,365L879,359L883,369L871,377L882,378Z"},{i2:"CI",n:"Côte d'Ivoire",d:"M128,396L135,392L142,397L143,394L147,394L148,389L151,391L153,388L155,396L163,393L176,405L197,402L204,409L206,429L202,433L194,452L197,467L200,469L200,475L194,472L192,476L181,473L163,474L167,475L154,477L130,486L132,463L116,452L121,445L118,436L122,436L126,428L123,422L131,423L127,417L130,413L129,408L125,406L128,396Z"},{i2:"CD",n:"République démocratique du Congo",d:"M700,680L673,684L672,689L665,695L668,704L668,717L664,729L666,734L674,742L680,743L681,740L685,739L684,759L681,756L674,758L664,745L651,740L646,730L641,736L629,735L619,731L618,725L605,728L605,724L599,720L574,725L574,711L567,699L566,666L549,666L549,660L538,661L533,664L530,676L504,678L495,666L490,649L486,645L435,644L427,647L423,643L427,642L426,633L432,628L437,626L441,629L445,623L455,621L456,629L460,630L479,613L483,589L493,575L506,565L511,526L519,507L518,492L526,483L535,479L548,489L576,494L583,485L616,481L623,476L642,480L646,478L663,490L685,487L703,504L701,519L709,523L689,544L684,577L678,582L6
216477,589L673,593L678,602L683,651L693,662L700,680Z"},{i2:"CG",n:"République du Congo",d:"M406,615L412,609L418,611L418,606L412,599L413,591L426,591L428,584L434,591L441,592L445,588L449,594L455,585L457,565L447,559L449,551L456,543L452,536L438,537L439,524L458,523L480,531L489,503L501,501L512,504L517,502L519,507L511,526L506,565L493,575L483,589L482,608L478,616L460,630L456,629L455,621L445,623L441,629L431,623L420,632L406,615Z"},{i2:"KM",n:"Comores",d:"M886,737L882,735L884,729L885,730L886,737Z"},{i2:"TD",n:"Tchad",d:"M597,263L598,320L585,320L583,323L583,328L575,337L577,343L571,349L573,356L567,364L574,366L578,382L583,386L582,392L577,391L566,396L565,401L545,419L524,422L526,426L518,435L505,436L492,443L488,438L479,443L472,443L473,439L467,427L450,410L454,406L475,406L467,396L467,378L464,368L458,360L452,359L446,350L444,340L458,319L474,302L479,257L482,251L471,233L469,211L483,205L597,263Z"},{i2:"CF",n:"République centrafricaine",d:"M602,426L604,431L612,434L617,439L619,444L635,456L637,465L647,470L651,479L623,476L616,481L583,485L576,494L548,489L543,484L532,479L519,491L519,504L502,501L489,503L482,522L481,512L467,499L466,492L461,487L459,468L456,464L461,462L472,443L479,443L488,438L492,443L505,436L518,435L526,426L523,423L549,416L570,393L582,392L594,408L592,424L602,426Z"},{i2:"CM",n:"Cameroun",d:"M368,487L375,466L387,454L399,449L409,459L418,449L417,446L424,431L432,423L446,392L459,383L460,373L454,370L452,359L458,360L467,378L467,396L475,406L454,406L450,410L467,427L473,440L456,465L459,468L460,486L466,492L466,497L481,512L482,530L458,523L389,523L386,521L388,507L383,499L386,498L385,495L381,497L375,494L374,487L370,485L368,487Z"},{i2:"BI",n:"Burundi",d:"M698,592L697,599L702,601L702,605L689,621L681,623L676,595L686,598L689,591L698,592Z"},{i2:"BF",n:"Burkina Faso",d:"M258,387L240,384L235,388L203,386L203,410L197,402L176,405L164,393L169,372L182,364L181,359L185,358L184,353L187,350L199,351L200,345L204,345L210,337L217,338L219,333L239,325L251,328L250,334L254,342L264,352L261,351L261,356L269,363L276,362L278,364L276,367L280,374L279,377L274,381L266,381L258,387Z"},{i2:"BW",n:"Botswana",d:"M616,823L629,849L643,858L644,863L650,864L650,872L654,879L669,883L669,886L673,889L656,896L640,909L636,919L623,926L616,940L600,940L584,934L576,946L563,956L550,956L551,943L546,931L539,926L539,885L554,885L554,831L587,826L592,833L601,826L616,823Z"},{i2:"BJ",n:"Bénin",d:"M266,460L268,459L265,449L267,417L263,403L256,397L256,392L266,381L274,381L280,375L280,369L287,367L298,378L296,382L301,394L288,417L284,418L282,458L266,460Z"},{i2:"AO",n:"Angola",d:"M435,626L431,623L420,632L423,643L427,642L426,633L435,626ZM598,720L573,723L574,711L567,699L566,666L549,666L549,660L538,661L533,664L530,676L504,678L495,666L490,649L486,645L437,644L424,648L441,682L440,687L435,692L448,723L445,741L430,758L423,789L419,794L419,815L431,815L439,811L453,817L516,817L525,823L551,826L589,821L571,805L570,800L569,752L598,751L598,720Z"},{i2:"DZ",n:"Algérie",d:"M396,5L391,11L391,30L388,37L378,46L378,50L387,69L395,76L399,103L396,105L402,120L401,156L394,163L404,187L421,191L427,203L362,241L337,261L300,267L298,265L300,261L299,254L280,246L272,239L272,235L151,134L155,113L178,100L184,102L187,98L201,97L209,90L227,84L227,73L238,71L240,68L261,69L264,64L259,51L261,30L256,24L264,24L281,15L286,16L304,7L336,3L348,4L354,8L370,2L375,5L379,2L387,6L396,5Z"}]},{key:"oceania",viewBox:"0 0 1000 677",fr:"Océanie",en:"Oceania",countries:[{i2:"VU",n:"Vanuatu",d:"M802,147L801,160L802,164L807,164L808,153L804,156L802,147ZM809,169L807,172L811,181L816,181L809,169ZM822,199L819,201L824,204L826,202L822,199ZM833,225L832,219L830,219L829,223L833,225Z"},{i2:"SB",n:"Îles Salomon",d:"M665,12L659,5L650,0L660,12L665,12ZM703,32L686,19L682,17L704,36L703,32ZM667,23L661,28L667,28L670,34L667,23ZM717,33L719,47L727,55L722,38L717,33ZM699,48L702,56L718,58L711,50L699,48ZM737,70L724,66L728,71L741,77L737,70Z"},{i2:"PG",n:"Papouasie-Nouvelle-Guinée",d:"M552,39L550,43L558,44L556,40L552,39ZM564,49L560,49L556,45L559,51L563,53L564,49Z"},{i2:"NZ",n:"Nouvelle-Zélande",d:"M834,496L834,488L830,487L833,505L837,504L834,507L838,522L838,514L843,521L841,527L839,524L841,532L845,536L841,535L842,548L833,562L821,568L833,585L831,593L821,602L824,602L827,609L837,605L853,592L860,577L866,577L870,581L886,558L880,554L869,559L857,549L855,528L852,540L844,532L848,523L845,514L847,514L847,505L834,496ZM805,598L802,587L805,585L796,587L771,617L772,614L746,628L737,629L728,637L719,640L71
21647,647L714,645L712,647L714,652L707,653L708,656L712,655L709,659L718,660L725,669L735,672L755,664L767,639L780,636L779,633L790,638L791,635L786,630L788,628L796,625L815,608L814,603L819,598L815,600L814,600L819,597L815,596L815,597L811,599L816,594L805,598ZM718,669L717,672L713,677L722,675L718,669Z"},{i2:"NC",n:"Nouvelle-Calédonie",d:"M800,255L799,248L796,248L796,254L800,255ZM752,232L763,252L783,272L791,274L791,270L768,245L752,232Z"},{i2:"FJ",n:"Fidji",d:"M1000,213L978,215L976,218L978,222L986,219L989,222L997,222L998,219L992,219L1000,213ZM970,226L959,227L955,235L963,240L974,240L975,232L970,226Z"},{i2:"AU",n:"Australie",d:"M228,78L230,85L238,89L246,80L242,77L234,81L228,78ZM228,82L224,83L224,89L232,88L228,82ZM330,111L325,120L334,121L331,117L334,112L330,111ZM379,155L373,154L371,159L379,155ZM428,77L427,66L421,59L417,63L414,81L409,86L413,92L408,96L406,110L409,130L404,153L397,169L385,174L373,168L369,161L357,159L312,132L319,116L318,105L326,104L333,87L325,83L323,91L320,91L318,87L314,88L317,81L303,88L253,76L251,78L265,82L266,90L261,93L246,94L243,91L237,99L233,98L233,101L226,107L228,112L222,118L216,132L224,138L220,139L221,143L215,140L214,144L211,140L204,139L197,149L197,139L185,129L176,125L172,133L163,131L163,139L158,141L157,136L151,145L154,151L149,150L146,153L150,157L144,155L141,159L140,164L143,167L145,165L142,172L147,173L129,173L128,178L135,184L134,187L131,186L131,194L120,178L111,191L110,198L114,207L107,214L97,235L78,246L70,246L47,263L37,264L12,290L6,302L2,293L0,306L4,319L3,337L19,357L21,364L18,366L15,361L14,363L8,356L17,369L13,371L8,364L6,366L23,382L27,394L41,409L50,431L63,447L69,472L67,480L62,479L65,491L88,498L102,496L123,479L126,472L146,465L156,466L174,462L181,445L201,430L220,427L241,415L270,408L286,414L306,416L314,421L314,428L323,433L334,452L331,451L330,453L337,458L342,458L340,453L346,442L357,435L363,418L366,434L361,444L360,456L355,456L354,462L365,459L369,443L375,457L372,467L386,462L386,466L382,466L393,478L394,492L403,502L416,509L430,509L444,516L461,501L464,504L459,508L462,511L468,507L467,511L480,521L481,516L478,515L486,514L500,502L520,500L526,496L531,469L540,456L548,433L565,416L573,400L585,355L580,331L582,311L564,280L550,268L548,251L546,253L539,247L537,253L533,251L530,237L519,220L522,219L520,215L504,207L500,200L484,193L483,186L478,182L480,172L477,160L469,151L467,128L454,116L446,120L443,118L437,90L432,85L433,79L428,77ZM585,296L584,291L580,308L582,303L585,296ZM364,467L351,470L350,472L363,475L371,471L364,467ZM452,534L451,529L449,528L448,537L452,534ZM498,534L501,540L504,539L500,532L498,534ZM458,551L469,573L468,575L465,571L468,582L477,589L475,592L485,594L490,580L492,584L493,581L496,583L496,587L498,586L498,577L502,567L503,571L502,549L479,554L459,546L458,551Z"}]}],t3={AD:"europe",AE:"asia",AF:"asia",AL:"europe",AM:"asia",AO:"africa",AR:"southam",AT:"europe",AU:"oceania",AZ:"asia",BA:"europe",BD:"asia",BE:"europe",BF:"africa",BG:"europe",BH:"asia",BI:"africa",BJ:"africa",BN:"asia",BO:"southam",BR:"southam",BS:"northam",BT:"asia",BW:"africa",BY:"europe",BZ:"northam",CA:"northam",CD:"africa",CF:"africa",CG:"africa",CH:"europe",CI:"africa",CL:"southam",CM:"africa",CN:"asia",CO:"southam",CR:"northam",CU:"northam",CY:"asia",CZ:"europe",DE:"europe",DJ:"africa",DK:"europe",DO:"northam",DZ:"africa",EC:"southam",EE:"europe",EG:"africa",EH:"africa",ER:"africa",ES:"europe",ET:"africa",EU:"europe",FI:"europe",FJ:"oceania",FK:"southam",FR:"europe",GA:"africa",GB:"europe",GE:"asia",GH:"africa",GL:"northam",GM:"africa",GN:"africa",GQ:"africa",GR:"europe",GT:"northam",GW:"africa",GY:"southam",HN:"northam",HR:"europe",HT:"northam",HU:"europe",ID:"asia",IE:"europe",IL:"asia",IN:"asia",IQ:"asia",IR:"asia",IS:"europe",IT:"europe",JM:"northam",JO:"asia",JP:"asia",KE:"africa",KG:"asia",KH:"asia",KM:"africa",KP:"asia",KR:"asia",KW:"asia",KZ:"asia",LA:"asia",LB:"asia",LI:"europe",LK:"asia",LR:"africa",LS:"africa",LT:"europe",LU:"europe",LV:"europe",LY:"africa",MA:"africa",MC:"europe",MD:"europe",ME:"europe",MG:"africa",MK:"europe",ML:"africa",MM:"asia",MN:"asia",MR:"africa",MT:"europe",MW:"africa",MX:"northam",MY:"asia",MZ:"africa",NA:"africa",NC:"oceania",NE:"africa",NG:"africa",NI:"northam",NL:"europe",NO:"europe",NP:"asia",NZ:"oceania",OM:"asia",PA:"northam",PE:"southam",PG:"oceania",PH:"asia",PK:"asia",PL:"europe",PR:"northam",PS:"asia",PT:"europe",PY:"southam",QA:"asia",RO:"europe",RS:"europe",RU:"europe",RW:"africa",SA:"asia",SB:"oceania",SD:"africa",SE:"europe",SI:"europe",SK:"europe",SL:"africa",SM:"europe",SN:"africa",SO:"africa",SR:"southam",SS:"africa",ST:"africa",SV:"northam",SY:"asia",SZ:"africa",TD:"africa",TG:"africa",TH:"asia",TJ:"asia",TL:"asia",TM:"asia",TN:"africa",TR:"asia",TT:"northam",TW:"asia",TZ:"africa",UA:"europe",UG:"africa",US:"northam",UY:"southam",UZ:"asia",VE:"southam",VN:"asia",VU:"oceania",XK:"europe",YE:"asia",ZA:"africa",ZM:"africa",ZW:"africa"};function n3(t){return t&&t3[t.toUpperCase()]||null}function r3(t){return Object.assign(t,{continent:n3(t.cc)})}function i3(t){const n=new Set,r=[];for(const i of t){const s=(i.name||"").toLowerCase();!s||n.has(s)||(n.add(s),r.push(i))}return r}function s3(t,n){const r=m.useMemo(()=>t?{mode:"anon"}:ha(),[t]),i=!t&&r.mode==="client"&&!!r.token,[s,a]=m.useState([]),[o,c]=m.useState(""),[l,d]=m.useState(!0),[p,u]=m.useState(!1),[g,f]=m.useState(0),L=m.useRef(0);return m.useEffect(()=>{const v=++L.current;let y=!0;return d(!0),(async()=>{try{let h=[];if(i&&r.token){const[b,x]=await Promise.all([Op(r.token),gr()]);b&&(c(b.fund||""),h=b.targets);const A=((x==null?void 0:x.recent_ops)||[]).map(w=>fd(w,n)).filter(w=>!!w);h=[...h,...A]}else{const[b,x,A]=await Promise.all([Fp(),_p(),gr()]),w=(x||[]).map(j=>Ox(j,n)).filter(j=>!!j),S=await Px(w,n),E=((A==null?void 0:A.recent_ops)||[]).map(j=>fd(j,n)).filter(j=>!!j);h=i3([...b,...S,...E])}if(!y||v!==L.current)return;a(h.map(r3)),u(!1)}catch{y&&v===L.current&&u(!0)}finally{y&&v===L.current&&d(!1)}})(),()=>{y=!1}},[i,r.token,n,g]),{session:r,connected:i,fund:o,dossiers:s,loading:l,error:p,refresh:()=>f(v=>v+1)}}const $x={retenu:"#12A150",ana:"#1e40af",pending:"#e67e22",valide:"#6d28d9",ecarte:"#E5484D",fav:"#eab308"},Xx=t=>(t||"").trim().toUpperCase(),a3=t=>(t||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim();function Bn(t){const n=Xx(t.verdict),r=a3(t.ceoStatus);return r.startsWith("valide")?"valide":r.startsWith("ecarte")?"ecarte":n.includes("CALL")?"pending":r.startsWith("retenu")?t.memoUrl?"ana":"retenu":n.includes("NO MATCH")||n==="PASS"?"ecarte":r.includes("trancher")?"pending":!t.memoUrl?"retenu":(n==="CONSIDER"||n==="MONITOR"||r.startsWith("analys"),"ana")}function e1(t){const n=Xx(t.verdict);if(n.includes("CALL")){const r=Bn(t);return r==="valide"?"CALL YES":r==="ecarte"?"CALL NO":"CALL PENDING"}return n||"—"}function t1(t,n){return(n==="fr"?{retenu:"Retenues",ana:"Analysées",pending:"À trancher",valide:"Validées",ecarte:"Écartées",fav:"★ Favoris"}:{retenu:"Kept",ana:"Analysed",pending:"To decide",valide:"Validated",ecarte:"Ruled out",fav:"★ Favorites"})[t]||t}const o3=new Set(["CALL","CALL PENDING","CALL YES","CALL NO","CONSIDER","MONITOR","PASS","MATCH","NO MATCH","LEAD","NEW"]);function l3(t,n){const r=e1(t);return o3.has(r)?r:t1(Bn(t),n)}const c3=7,Bo=[{max:0,c:"#0F172A",px:7,fr:"AUJOURD'HUI",en:"TODAY"},{max:7,c:"#475C6E",px:6.2,fr:"≤ 7 J",en:"≤ 7 D"}
2164,{max:30,c:"#8798A8",px:5.4,fr:"≤ 30 J",en:"≤ 30 D"},{max:1e9,c:"#B9C6D2",px:4.8,fr:"PLUS ANCIEN",en:"OLDER"}];function br(t){if(!t)return 9999;const n=Date.parse(t);return Number.isNaN(n)?9999:Math.max(0,Math.floor((Date.now()-n)/864e5))}function vd(t){const n=br(t.date);return Bo.findIndex(r=>n<=r.max)}function Rt(t){const n=t.hot;return!n||typeof n.left=="number"&&n.left<0?null:n}function Yh(t,n){return(n==="fr"?t.fr:t.en)||t.fr||""}function d3(t){const n=typeof t.left=="number"?t.left:0;return Math.max(0,Math.min(c3,n))}function p3(t){return(typeof t.left=="number"?t.left:0)<=1}const u3=["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],h3=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function n1(t,n){const r=Date.parse(t.date||"");if(Number.isNaN(r))return t.date||"";const i=new Date(r);return n==="fr"?`${i.getDate()} ${u3[i.getMonth()]}`:`${h3[i.getMonth()]} ${i.getDate()}`}function r1(t,n){const r=Math.max(0,typeof t.left=="number"?t.left:0);return n==="fr"?r<=0?"dernier jour":r===1?"encore 1 j":`encore ${r} j`:r<=0?"last day":r===1?"1 day left":`${r} days left`}const Lt=t=>{const n=(t.verdict||"").trim().toUpperCase(),r=(t.ceoStatus||"").trim();return!!n&&n!=="NEW"||!!r||!!t.memoUrl};function Yt(t){if(!Lt(t))return"todo";const n=Bn(t);return n==="ecarte"?"ecarte":n==="pending"?"pending":"retenu"}const i1=()=>({win:"all",status:"all",signalOnly:!1,signalEngines:[],sector:[],country:[],engine:[],stage:[]}),m3=(t="europe")=>({continent:t,filters:i1(),sort:{key:"signal",dir:-1},groupBy:"engine",shown:{},pileMode:!1,openFacet:null,popupId:null,modal:null,chain:{queue:[],idx:0},spaceTab:"retenu"});function g3(t,n){switch(n.type){case"continent":return{...t,continent:n.key,filters:{...t.filters,country:[]},shown:{},popupId:null,openFacet:null};case"filters":return{...t,filters:{...t.filters,...n.patch},shown:{}};case"toggleFacet":{const r=t.filters[n.facet],i=r.includes(n.value)?r.filter(s=>s!==n.value):[...r,n.value];return{...t,filters:{...t.filters,[n.facet]:i},shown:{}}}case"clearFacet":return{...t,filters:{...t.filters,[n.facet]:[]},shown:{}};case"reset":return{...t,filters:i1(),shown:{},openFacet:null};case"sort":return{...t,sort:t.sort.key===n.key?{key:n.key,dir:t.sort.dir*-1}:{key:n.key,dir:n.key==="signal"||n.key==="amount"?-1:1}};case"groupBy":return{...t,groupBy:n.groupBy};case"more":return{...t,shown:{...t.shown,[n.group]:(t.shown[n.group]||po)+n.by}};case"pile":return{...t,pileMode:n.on,popupId:null};case"openFacet":return{...t,openFacet:t.openFacet===n.facet?null:n.facet};case"popup":return{...t,popupId:n.id};case"modal":return{...t,modal:n.modal,popupId:n.modal?null:t.popupId};case"chainStart":return{...t,modal:"chain",chain:{queue:n.queue,idx:0},popupId:null};case"chainNext":return{...t,chain:{...t.chain,idx:t.chain.idx+1}};case"spaceTab":return{...t,spaceTab:n.tab};default:return t}}const po=60;function Rp(t,n,r,i){if(i!=="signal"&&n.signalOnly&&(!Rt(t)||n.signalEngines.length&&!n.signalEngines.includes(t.engine||""))||i!=="sector"&&n.sector.length&&!n.sector.includes(t.sector||"")||i!=="engine"&&n.engine.length&&!n.engine.includes(t.engine||"")||i!=="stage"&&n.stage.length&&!n.stage.includes(t.stage||""))return!1;if(i!=="win"&&n.win!=="all"){const s=n.win==="1"?0:n.win==="7"?7:30;if(br(t.date)>s)return!1}return!(i!=="status"&&r&&n.status!=="all"&&Yt(t)!==n.status)}function f3(t,n,r){return t.continent!==n.continent||n.filters.country.length&&!n.filters.country.includes(t.cc||"")?!1:Rp(t,n.filters,r)}function Pp(t,n){const r=n.key,i=s=>{switch(r){case"name":return(s.name||"").toLowerCase();case"country":return s.countryLabel||s.cc||"";case"stage":return s.stage||"";case"amount":return s.amountEur||-1;case"age":return-br(s.date);case"signal":{const a=Rt(s);return a?100-(a.left??0):-1}}};return[...t].sort((s,a)=>{const o=i(s),c=i(a);return o<c?-n.dir:o>c?n.dir:(s.name||"").localeCompare(a.name||"")})}const x3={AE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAZUlEQVRYhe3VsQ3AIAxEURylD5OkZjC6bJeKrcgMNrJOKP/1SPflglIAQMlGvafnQetX1paQQz1gFQFqBKgRoHZ6H8znzdgRtv0FCFAjQI0ANfc/YGYZO8K2vwABagSoEQAA//YBpacFM8B670sAAAAASUVORK5CYII=",AR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABX0lEQVRYhe2WzU7CQBRGzxRK24BaA0YiCxECxlfwufSt9Dl07RLSAIkLRH5qA/ZPOm7dM3VCMucB7ndPcu/cAYPhIMTD00TqbuIQLN0NHIoR0I0R0I0R0I0R0I2QUpZ2iYs8AQSW7ZQVQbWMosnmnXg9Iw4nyCzFaw5otIfUTtvKs5QLZNGccPpKvhmRbT+Bgjyake0W+L173LMrpXnKBbYfY5LFG+vpCydWAHuIRJ+W7RIvO8oFlC5xkSfEyxFFvKEhAzxrhWuvqBOQ71YkYYD8SVVGqhUQQmDVXKg4IMCpS9y6hAKQOUWWovrNUDpCourg+j3ycMoXfUQICMG36OE7Pl5riGW7KiPV74DXuiaNbvG7KfvkDiEqNBsX2OdDGpcD1XHl3IEsmrOdj4hXY0TNwfNv8JpdXL+jOqrsQ5YCUvnY/KX6+Dwtrfh/cPR/ISOgGyOgGyOgGyNgMBw5v1zaeuHpaSq0AAAAAElFTkSuQmCC",AT:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAY0lEQVRYhe3YsQ2AMAwF0RghdmEEWhrWoWfmVBnAGcLFCeXeBP8qR2lNrOjnlfSIio0eUGUAzQCaATQDaPvx3PSGkshMnxIkA2gG0AygGUCL8X6/vsT+StAMoBlAM4BmgFY3AZnxDENxfMTcAAAAAElFTkSuQmCC",AU:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAD10lEQVRYhe2Xe0xbdRTHP/daBpXe1hYKg0kJ+ADd2CRBDaiDkSFmFMOSwbZsgcHEDYX4jC5mEITEmBiJc2Odzz1kGRmLERoXcMgm/6gZzgHZlDhntqDJRnzQlo1HS/2DMCF9XRrKMOnnr5t7z/n9vueec3/nHggSJEiQ24kwlF3mlGoqEB9LpdncQ92ek/x6dcjFcKylkutpRQBE9RwntHCfi01cjJZaYwr5fefg+p9INRUoSz8NaADiSaORkSYzw2u3UyRNcuFUNfvrN2OI1clexBCr41BVDj8+qCC/ox1p+3rU7R9
2164wcPBmAKVPIW7be4rUi3Za84zYmtux5DxDabSCX868yeF3S7jHoPfoHBej5aOKbH5IvoN1ra2Eb3wKTecnHLeKLM+p57nqY7KFCIKAXqdCr1MhCMIc/BIqnDMF1RSkUjDQj/PSFaTdOxCzHqHZ3MMmgzSrhI50XXRr56kEfaGRlHQcqQIgt3gvw1Z52RPGey44fZvBxM+X+XvrLgC0TW8TkpwoawN334o77k+I4uA7xQCUvfYZA5evyfITBlkuKwB/iUtYLdvWEKtDEODK73/J9lH4IypQXP1DvvBpFk0JefRfomDVA3fT+9MgY+N2l+eKmRvExWh5pXwtz25+HPFsP5b6A6BW0Z2ZSX76fbfsQpITMfVfc2v3+olzPj9iUZw6ZSYnfb+7huoNbDKmse3Vw5i/7ndda1r4ezWFDHTVsvNeDbann8eyp4nu/DzShyQ2NHS4OL5Y10JSdi0HLg2jamtE/cJWVpu/5Fu9lRMv53o8fu9SK6kszqKqJAut5k6v4pVhIVisowxbb2K7MebWRjA1dTvLitLh+76pNympaH80g92t52fVpLdObIjVsasiF3frFJu6Zm2YlBjN6WMvIYoCmRsbfJ42kVoVdoeDkRvjTNgdrgGMnjnrtNaZEJZG8k16hscSkPsrMV2Cwne9WOtMRP0W6mK3c8sTCAiYjnZ7FS+HWY1ssZAQF0FpYQYNH3fyj8V7QxMXSNOcsNhGUShEn+JhjhnQSEoA2W1+IZCVAbUqDIC8NSvIW7MC+C+Y242sDBQ8uYrKkiyk8DAEAWwjY7x/6DRffNW7EBq9IisDbZ19qFVhPLwynrSUeFThobR19gVamyx8BhAVIdHSWM7K5GW37qUkLaOlsRy9TjVvQuZlHvDG+tyH+PCtLQDseOMon3ec90+pB/ydB2T/jUZFSKwr3ceE3UFaSrx/Kr0QHSnhcEwCsFSvlj/QyM3AkhAF4xN2l+v5JKDzwEzBgRAP/s0Di7ITBwkSJMj/h38Bz0ZuzGmiSNAAAAAASUVORK5CYII=",BE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAfElEQVRYhe3PIQ7CUBAG4b802AraS/QCGMI5uDEkiNp3gx6gQSCaFEVS+zCDmM+t2N1Mk53z2K3PsrSpNE/XDKdj1c62bHnd3rWvkuTel8flOxx+ufBPDKAZQDOAZgDNAJoBNANoBtAMoBlAM4BmAM0AmgE0A2gG0AygfQC07g5IprZIiAAAAABJRU5ErkJggg==",BG:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAfElEQVRYhe3XMQ2AQBBEUY6sAkTQUCKCBCGYwQo+CA0lCqggwcIiYoqfS+YpmJ9ss01jJimZudAjFCUzkx6haOkBKgfQHEBzAK36gBi3ld4gifO96Q2S6k/IATQH0BxAi+H56A2ScvWdX0qSA2gOoDmAVn1A7PN00CPMQD9rWBHZFui3fgAAAABJRU5ErkJggg==",BR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAIAAABAJy5dAAAABmJLR0QA/wD/AP+gvaeTAAAFQElEQVRYhe1XXXATVRQ+m81fl2TbpjQJTdO0TRvSQmmLRZCg4iiO4ogDisOoKMq0jgOKzoAPojjKA47IGypScGBGcRAVkR8FxxlKKSMUpK0lbdOm0DTZps1vk90k3eyPD+mUNKRNaQX6wHm75577nW/PvfvdcxGoXQzTyQT3mkCi3SeUyqYdIeHUIRCAak0/ANQ6VPw9J6THInuM1scVgwCwdtZATVtRG5U2FUAUVmgnt1KI8FvyicNlFgMWiXnypHRNbv8MlDvvx1kemRwsMjkdqpRTtSVd83Eq6WwrhdWY9X8Pyu8GIQzlPiro3awjUIQHgAgtbLSoe104AOQpAwsMfRIRCwA8QK1DtcWSH2TRO0ho+Uzfl8ZunXQIAHpd8k+/Nx0+ayQj4pEAmZRes7R92ysNuTODAEAMid/uKDw6oPj/CSnF0Z2GG2vVrtjw1KXClz5bEQiJkwbLpPTBLSdXmjpjwxPuzLfa9Y5I8uAEm9ChXq30nKxseyg9GBsebShetX1VhB7zD6UZ9KfzxvJCl1HrBQADFnkjZ8AXFf4TlKXMlaJChWmRr0u6lyn8I55el3xO9XpyAp8rT6PNtfs0M8kRzzk//qZZ3xEaTxfGJCRE+A1a53a9TYay8f6dZ7d56fkYjgLPMzQEvdFeG9Vidnb2uG8FqX66+ZtNp+M9YVbweY9mx/VcegxdSE6oXEbtLbUuwMkE/xAjOer8iwgMhgIcC5xYhBRlqzlFyFRQcsXe3dTUTxHCXXvreX5YsWVSeuDH3VIxk4DTQmI15qJLgSQ7mEgoDeXe1zk+KLCLkCTXQH1r7pNbX1tUoa272B3vV2bJHlmUv3ipal5Fts3p+f0X+8/H2jmOB4Bzuw4tmWO/FYrhkK8c6g+78sjRujDqUD+aGThR0fa80oOOIbMN13KP1BX1OHwJfipMmzsHTv95vaXRi4mkj6zMWr28rNvqd/ZTy+bfmJufZDcFCCxMJ9eoPR2hNGtYOuK/vbsMGV22ypKcq21EvKepnWhqJxSH0jZsKt+6o+rCMR+CHL+tFKMq1BOR7CdUDI+YMoJJi+QnpQfOlOUocUwmpija6R4WgrwcPBOXDpJ0bBiOMOfq7H4H/8LrBcUSswq33ArFcMhu+6wXW2a3UdiYhACA4ZE6X/pxl+IBnNJI6AQUdSZ1wbKK40V2Z6Bqbo6jPwAACIIY81QhmkERQSgSjUXOK1ZdNfd3Nvdtfu6AUBBNwGkhsZXNJfsJFc0nNmTJG7Rmcoapsew9S0HCiZOIWH32mWtWZzTKBMnhNDzP+0IhkUDg9t+8awk3VVmqMc2+IhGG4hHCrOCTbu2DF8uT/mIwCWG0u+VzqtcHw2IAeOphwx/1N7djtk5psbl0qvQZMqlOk3G+scVcuy8n6/aEMcXV4WOE3/Vlm0nsMUUAQzkAwDG6VOc5Um/keaTL5okP9gxSiyvyO2zefDVed9l6eOtvVcXO2JSfEb7bUfBOR6E7KhonXWpCMTNT2ME+pUoSLZeFAMCo9ZYXuk5d0tPM8IaKRCIURTmO63X6WZbNVgj2bPzh2YVdsdkT7sxnmkrP+tJTJpooIQCgWPTXgazGgMyUEcwQskat99UnWqmw2OJQ0AzKcRzHDddv3bJ/92w8FKsNMSReZy7+2JoXZCbaFU21QRuKopctalusQcsOVBmcd7VBG7E718JOssl30uJvCVWIQ5dkBIVx8h3lkS96NC+3Gnoi0nGWj2OTrNCIxT+DGvzyqT+DpkoIpttDEQB4gL0O1dRxYjbt3vb3CaWyaUfoP/bnW7HexCRgAAAAAElFTkSuQmCC",BS:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABTElEQVRYhe2Xy0oCUQBAzx0fjU6k+GiMHhiDlJuMIiIGolKhNtqiVYHbdtHCoA9o2aI/tsVwF4I43nFmrgP3fMDlHO4bDAaDQSeCdmdGfwwNV7dLJAQww8rB2RXcPkLJ0e2kRBAgscvgD+DSB2Hps1JgPkBS34X+CI5P0jdSZHGAxOvCYAzVenpGiiwPAMjl4Pwm2B/FrXSsFAgPkGzvgD+E3jUIkayVAqsHSFoHwbLabycipIp6AMEEvNxX+P1oceQWEtBScCFCgKRsW3y9NfieNLGLepbVWgGSQ7fAz7vL5Kkag5IasQRI7i4c/j736HXsuIYMJdbrVoj0D6h8HIPoXEJrBTgli+mr3k0cKSDbx+iGXWSrz8CGPiXCAzb8Mbc8wOvC8BkqtZR01FkckKEPzXxABr+UQUCGP/V5vFN4GEGtqdvFYDAYMsg/5Rwq7afBW8sAAAAASUVORK5CYII=",CA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACkUlEQVRYhe2XS0hUYRiGn3Ocmhk9VmNWq7xEk5exwggCISmoRYsWQUXXhbUoXURSdIEKWrhu1yIoAluE4DLpBoYmM4lglmaMIMYYiqHRdI6jzrm0kIxpEvGc/1SL8yz/8/7f+73zzX8u4OHh4fEvkQYiRdZyNlT2f3KrFwA+VBUvSy+71Mdfw9UAWncUrTvqpgU+N4t/uXsHDIO85lbXPIRPINXXC6aBFu1kuucN0709aNFOMI35a4IRPoHkizbGbl/HnJtdWBtruoW80k9ezW6C26uF+gmfQKCiipn4IHMjwwtrcyPDzMQHCVRWibYTF8DUNAACFZFFNYHySIZWBI4CqB3t6BPjAIxebiD57An+klLkYG62UTAXf0kpyedtjF5qAECfGEftaHfSgrMz8LXlE
2164d9fvcRXsBZ9ahIt1oWs3Me/eQup928ztP5wGWqsi89XL2DpOvHaHehTk+Tv2YdSu9d2D44mkL//AAD61CQAVjpNouEMqYF3WdpUfx+J+jqsdBosa2HPzxp2cTSBYOXWrDXL0P8sNk0szOwakW1OWrA/AVNVSTSed2QOkLh4DlNVbe+3HUBWFEqbW8nbVWPbPLd6JyUPW5AVxXYNR2cgJ1RA0b1mCs/WL3tv6MgJih88xle4zkkLzp/EUo6P9Y3XWLGxmPGmm/OHdAn9his3KDhZ59QaEPggCx0+TujoqaV1x04Lax4Evwtpsdf4w+UEwmX4w2UYyW8gSeSsWs3s0Edmh+LzL3aWBZIkxFNcAMtiU+tTJN+vklqsCyQp46Bb+iK3WZuICyBJGc0DmJqa9Uv/rnGKqx80pqaC7O5Xq6sBDE0T9VdfFFcDrDl4yM3ygMsBZCXfzfIeHh4e/wE/AIStzOFS9ztcAAAAAElFTkSuQmCC",CH:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABFklEQVRYhe2YvQrCMBRGP38QiuCkuDiJCK4OBQeh7yAUR5/B1dnVZ3AURXyFQgehg6sg4tSltFNBCkLRXRI1ErwG7hnzQW4OhJtLCpBw6rXusoyC7jEsiNaLvz6IbliAGhagpqx7w1K9gUq7I8xulzPyJNZaT7tAdeigOV8Is2g2RbrbaK1n/BViAWpYgBrjBZTbaKneQHXoSHOrb3+VAcDV95TfCeGICsjHacseoLVcKxX5lHDiIgv2wozH6X+FBagxXkC5jd4uZ0SzqTS3+jZqo7EwS7crZIfg5d6qKAvkSfx2JJYJZIeAx+lnWIAaFqDGeAHtvxJX30M4cYXZN33+HdoF8iRGpvnv5xXGXyEWoIYFqHkAMJxFZVylOOQAAAAASUVORK5CYII=",CL:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABRElEQVRYhe3WvUrDUBjG8X/aCEqpOqhTVSJFhFrRsQ7aUXBw6CQ46CV4IeJduLgVtE4WHOykOOhQwSV+QDGIEGqQ2hw3l8Q2tjUn1fMb30DyPITzAYpcGrkD0c0LxPlmr7J0JCb16z2gCsjWssBydpzc/FhYWTqit3q4s27gCqhcW2Hl+TFPgZXFCRKDcRpNwcZqCgQcnpoM6DHqToOzq2cZOb/lKXD3YHO0lyczM4Ie1wA42c9TNW3WdsuhB2zHswYeLYel7RKlytPXrHxRI7t1zH3tLdRwQfiuASFgIT2K9fpO0xWkU0lct6vz7tf47kKzk0mqpo1RKGIUilzevjA3PRx2tkB8rxKJIZ2689F2BhG9SvgF9ZtFwd8+iftB3xfQbjJT0dwfA+r7P6AKyKYKyKYKyKYKyKYKyKYKyKYKKP/dJxKlVEJD2rV1AAAAAElFTkSuQmCC",CN:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAB5ElEQVRYhe2XO4vUUBiGn3NymcyMo4LKDO6622gh2ImgxRYWQXYsRBBbsbJaG2t/hP/A0s7Kzs7STrD3CrMgUTLJzmSSnGOxKC57ZqJzO4V5qoR8+Xjf73JIoMYuItq8pG2LWAS5aALRsOt/fgO+Jngc0Xj0fYly/p2ZBmSvQPYK4zMRaNzrI7wbI+R5c8w6mLkDjYc/QEP2/LQ5QIJzOaN831iVvkpmdsDvJ/j9ZHqA4rd471aCfy9GnC2XKrAK988b2Svw7w5BAI7GvTYCINiLoBSgYfKygxoceQ3RVvi7CV6YEoct1rnWx0bI2zmg9WyAPHe0kjpySJ90yV+3jYnkVo7oKNQHD50ufLj9NcYdkN2CzqvPyO7hcqp9l+HtC6h991gC2xhLpTOBPFNCIaA4vNaZqEwmTqilC6zCaMALU9TAYXh/g/jOJuqLixemU5OItsLvJzSffsO5OFmZWBPmYc0FcbhN8bZJ+S4g3t2CfHoHdCpxro7xdg4oP3mr0mpk8W8hAWiQ2zk6kZBK9Lh63JbF3FspAo17M0WeUmQvTqI+rrfyv5jbgJ4ImnsROhPkb1qor3ZOqPk70FQkDzZwroytiYf6f8A+tQHb1AZsUxuwTW3ANrUB29QGbFMbqPnf+QmYZ5Q68JFp2QAAAABJRU5ErkJggg==",CO:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAWUlEQVRYhe3XMQ0AIRAF0V0c0CABDfg8X5fghwREUEzBPAV/qs1GiJVrtk2PuFHoAbcMoBlAM4BmAM0AmgE0A2gZ4/MfIBlAM4BmAC3/2r0DJANoBtAM0OsOu9MG7hU04NAAAAAASUVORK5CYII=",CR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAByUlEQVRYhe3XT0gUURzA8e8b5o+yBbu0rahk0mHBFspDp05hB4Wg2EOhp27ZoUMd02jDQDBv0cUuRScxRKJ7ByGiUEEisdJYl2q3LduD2rg7Ds9D1xjHhuEhvM95Dt8f7715M6BpkQhy966pjojCBDmhOiIKQ3VAVHoA1cTE1JxUHRGFkFIe6AEO/BbSA6gmls/l930GDMfBzKTxyhXkjh9HV2jmn8UPoR8WtsWx8QJubw/rrkd7k4U79pBfTydjTAy2ry3UducWxuU8xU2X+sZ7vjQkR8YKJC/1xdW3J7GQyobaQsKxObX6jrXPL5krb2AnWtjZ/M75ri6sn4f41Nsfd+s/hV4Bp7MDTJ9vlRWKVppVI8uSdZrSxzc057JxNgYyQz8pJfPTt3my0GDWes1h6VBza6z4Ce4nW2NMDBZ6BerFEpkTZzG3txHVPDfOXMf7fYXjhiRRz8TZGCj0CsiGR9PbLe4ODnBy5gWzr74y2l3lYv8DakPqfilCH2L4+xptG75J6uoFvK0SltNJeeQR68+m4mwMbvqfi0w4NtbRNF75B9JXe5Hpr1HV9ACqmY+fz6tuiESQK+hDrJIeQDUTxKDqCE1TaBdYSYgdZwvN6wAAAABJRU5ErkJggg==",CZ:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABQklEQVRYhe2RsWrCUBhGP03AWhR07VakW6GdRRB8CrdOnVtw7ZCX6AMU2lco5AGEFgQdJYuD2C6FhkIhlIBdP5HIjcn1/y94tiRwc79zgCPCDB+e159fP2tX8Va1y+AlnKLVPMH1xZm0z9x49U4/SP5ShG8RZtEHelfnaJzWpO9lTJUfwvcI3dtHPL1OpO6TG6/e6Qf8wrUa1awPrtTYKsC4UCOzAKO5xs4CjNYaRgUYbTWMCzCaauQuwGiosVcBRrpGoQKMVI3CBRiJGqUVYA5Zw7d1cCX+xu/dPeY3C1u/AGBpwCBeYLQco50mNo7foNQB7TTBaDnGILZrnSltwCGtM4UHSFhnCg2Qss7sNUDaOpN7gAbrjPEATdYZowHarDM7B2i1zmQO0Gyd2RrggnVmY4Ar1hkfcM8647to/Ygm/gHSII7bdZlbywAAAABJRU5ErkJggg==",DE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAaUlEQVRYhe3VQQ2AQBAEwVlyCVowhilcYILwwQFaQMQ+Opd0KZh+TSK1VJKdHtFRST56RMdCD+gygGYAzQDa9AHjpBc01esTswygGUAzgDbWjZ7QU9/jkaEMoBlAM4A2fcC4jtz0CAn0AwaYCVkSQ7WdAAAAAElFTkSuQmCC",DK:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAA8UlEQVRYhWM8xm1wkoGRwYyBDCAS7sWgOqcVRezL2asMlx1iyDGOdPCf4RQTfWyiHRj1wECDUQ8MNBj1wECDUQ8MNBj1wECDUQ8MNBjyHmCRrcmUYBHgI0szh6o8hhi7rCSDYnc5pe4iCvz58EmC8euVW1+4tFW56WIjlcG3q7e/DvkkNOqBgQYs77ccePvpyFmy8gCHqgKDgJMFitjvV+8Y3q7fRRXHEQJ/P3x+y/KoedoLBkYGOXIMEAn3wvDAz8fPGe6XdFLFgQTBf4YXQz4JjXpgoMGoBwYajHpgoMGoBwYajHpgoMGoBwYaDHkPAACAKDH+2uD0
2164QAAAAABJRU5ErkJggg==",EC:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADR0lEQVRYhe2YPWxbVRiGn2tfX//ea9mhTS5OWqVqm5pGFsQDAxUSCQpbUNshVTMyscHQvZ0REiMsDEUCKoEQv5HagUIDUpW2SRsMlkuaxk7in9iOndjx9c+9h4GRMUfygJ/56HvPq1ffd44+GNBfFLGO6PcljoKr3xc4KgMD/WZgoN8MDPQbVVahxqGfL746QzavE9BHmIhHuJD4Elv4Wbw3y/az5wQCgvMTm8y+nselOlJ0pRgQAu4va3jcOUaiKrncc7aaw6SNGywtP6Sa/QWBQtDTpVTsspqOMjVZliEt7yXuOkGsjhfdV6VaU/nhJ4PfH5ygUm1y9VKJmekGRsjmwDqG39tAVVoyZOX1gJsWqdQp2o6bVkDjoOki9oKfa++qXJyrg0+hIxT++HMcl7AQQpGiKyWB/P4kDcuDUy3wMKpj+nvUN6Z50jmJikNSz+Abuk3GMphpNLGjJiFfB9NIHdmAlARC3iKlrEbvWJOn5QCFx3MsFqYY9lWIeKv8mH2V9NplbhVjDJtldnNeDF9RhrScJta9u0Q1DXoavWaA3nCS+fgswhHcK1vYQzZiz89mIc+OZRDx5AhqcppY2hgdGyvz177J+Z997F+weFK4g2maxB2HYKWOEB1uPDigdtogPpaXJYuqvn9TSqGrU0vMnE2RfjTOmctlKo0e1UYeO5TB0RVGvAnWVsax32jz0d23uLX6mhRdaQk4joKCoO1ScbU8/Ja3KdVfQrHDJM9tcbbXoe1SASFtAoHEMeoIhZfHNlkJmLi/+ZvCjkGoucaokmd17Tjqd095FDB5ZWxDqgFpCZSbOokXt9k8EcPqWrxTzrAes1EcD2+WaxQf75GaSDBp5tlt6rJk5RlY2YqTq0X4bOFTFtMLJIufcLItsB2B21D4fm6BOzMfkN0bYmX7nCxZ3K6Ji9ePXkZghj18vpzADO+xU60yohdZz8SoqDqHQReHPkG9E+a9r6/g0yLUWnJ2CZISUNioOBwPjfLh3XnqrUOSl57x6+0kVlfl7cR9Pv52GjOsYtsOpYacnyiA4p67KW2torkFHfvfBvW4bOaLq2xrBkuRU3Qd93/OyECpjJ4e7IX6ycBAvxkY6DcDAwP+7/wDKFZRo0QZ/jkAAAAASUVORK5CYII=",EE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAcElEQVRYhe3WoRGAQAxE0Q2TsvB0g6AaFCVRxykkNldExJ+b2VfBfpVIxor9vB96REfoeose0bHRA7ocQHMAzQG05QNS/0dvaAlJvsQkB9AcQHMAzQG0HGPQG1qiqvxKkBxAcwDNAbTlA1LSQY+wlU0sPw5ACEUEngAAAABJRU5ErkJggg==",EG:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABcklEQVRYhe2WT0oDMRSHv4zT0qm12KqouBJBRTeuXPQC7tz1mL2AB+jGohfoSvzbagWHKZnOTJ4LFQ/QhCDm2wbeLx95yQsE/KJuOofiexPLEPnewLIEAd8EAd8EAd8EAd/E65cXDssLoBzWByUizr4S0/GAZveY1e6pqwj7LWQqTalngJB0j/g6AaHUM0ylbcfZF5iOB6STEaV+x+QZUuaU+p10MmI6HtiOI7ZdsJg/8fE8JH29pbG6h6lyZvdX5OkdSXvfdpx9AQBEAKHQb79tI8ZJlHUBMQUqiqnVWrR2eogpyCbXLFSMVIXtOBeXOEdFMUn7gDK9p8peSNoHqCjGmIXtOAcCZkGzc0LU2EBnD+j5I1Gyydr2OcbktuPsz4GPpyFSacoiAyUgIChq9TVUVKe927MZZ/8EWltnCGBMjlJ14loLqTTyvWYb1e/3nU3i+koJwKJy89jBz5j8w/z532gQ8E0Q8E0Q8E0QCPx3PgGFZo6Lo8E0HQAAAABJRU5ErkJggg==",ES:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACTUlEQVRYhe2YS2sTURhAz507nUkmmU4aTYo0tiKt1Srowseq1Qpd+ASXguhG8Ge4FX9DEVx14VZcKaiIOytKddWHj9KkkKZJmzROZpLrRlqkIlPbZBbO2Q+cwzeX+3EhIlzE20S/CltiN2hhC+yWKCBsooCwiQLCRqg3RPdAmOwq4Ov6Pr5U03vl8k/oO/3A9aHegGZT0CzXQGiUdYFlKKQGsh2Wf2HHAeU1wfSDHvxkC0EMTQelDMx1ybn7Jex4Z49U4ICNkmS9KOk90iB7yaXY1DCsNQAaG5KM4WHHFbVVjVhCIY3OhAQOKDUVxViT7hWJPi9J+VAvmqTv3UVL+NiWxGWKuWqBtA+5TGcCAh/i7v1DOAO3cCsai7M67qkfVOa6ENZV7A8XqJQm8EQWJ3eTZOZYO51/I/AElqcNlmYL1FoxfNOgkB7AaK3heTWUZaALi6V3JoXZPNlDktSZdmpvEXgC7nKLnvFxUv0eet2jNmPxcnCUycknVI7a+HENZ8AjPTqGt6Lo1PUYeAKyS1B68R77bBbz5Ap9Swt89IaRrTr5h9dAVzhXcpQ/zZByNBDt1N4i8AScYZPeOxNIXW26XT/9lMv+cxqDChFvoemK3tvj9By32qS7ncABib5vxOqPSCarKPErwY+hZRIY3xVCFyRSqxgbj4n3zbfLdxuBf6HX+TFWPYfz2Ty5EYvlBZvmyEXUUArz8zMO9FdxU3leLZ7Aloe5cXCqnd6b7ME2KujYif0De7CNhruNR+9CYRMFhE0UEDZRQMT/zk83drTDXLdyGgAAAABJRU5ErkJggg==",FI:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAzUlEQVRYhWNgGAWjgCLA+P///9WkaiqdtEvt9LXnQrjkS2Itb/lYq72jzGnEARYGBoYQUjU9eP6R4eC5Bzjls0NNZShwE0mAiV4W0QqMemCgwagHBhqMemCgwagHBhowMpg2/B9oR1AChnwMjHpgoMGoBwYajHpgoAHj////Sa4HQitXM6zZew2n/Kr2UIZQZy2KHEYsGPIxMOqBgQajHhhoMOqBgQajHhhowMLAwEDy4K6CpICag5GCMC55Tg6WWwwMDG8pcdgoGAV0AgCrTSG9AH1c4wAAAABJRU5ErkJggg==",FR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAW0lEQVRYhe3PsQ2AMBAEQYNEB0RkdOLOKchyA07sIi5YJO/k9/otRazjuutMDoz2RQ/05432Z7T+AQNoBtAMoBlAM4BmAM0AmgE0A2gG0AygGUAzgGYAzQDtbgECSgVk6LpDpQAAAABJRU5ErkJggg==",GB:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADaUlEQVRYhe2YXUxTZxjHfz1SBaTWEEWazihDxeLi1BiHASNcDHUjExJ0wpyCJFJMDBGNqIgXOmPwM92FFmMDyxKIigFN/Vo0sARj41TUOIo69hGDlGoMtSJk6LoLPE0K0g88rTE5v8snzfP8/+/H8z6nICMjI/MhUfy+ZI1Lu60IdWqSO/j0+UsOn7jCj9WN9Pb1B5Twvz+PYq+u469NezzicUfKicnLRvh0Q0D5RivDyMtOomx1MoqzF7Ad/Zk3zh5UX8xBu60I4dX9h7RlFWLNKODFtZsATIyOYt/WTP5u3kupPp2IcGVARaVgtDKM9TkpPKwvYYfSTteXq+ioMDJ2tg6d2UTipZ9QpyYhaK6eRFuqp+eeFWtGAa1L1+JosngY+aNpN8X5aSExEhGupDg/jfZzW9ipcmBfmkunoYrIz2Yws74SndnEuOT5AHTaHQjx3xzkB6eaSZdr0ZbqedX6iLasQg8jmhg1R8pXBHVHxBVvO1PCZuUzOt+ueGTidGbWV7pXHAaO+Pb9DUxL3YXwb/9rjtc2Mz3zkE8jwThaovBHDZvZqXLQtSTHp/CpKWVUGH+ht68fQUwUaiPvK1xEGJw42EakEi6iUMQVuXwV9NbGBrffidFRXtvoY+s/fuXxt40rXC6XVwMjwZsBqQmzV9dJntR5/bZfMSlQWMbPlnwHQsmQS/yxIRv40Ci6qk5Lfgec12/z7NR5j9iElV+jWjhP6lKEBaO1AUMMqBbOC04b9TWfiw9Z+cav0MaOd8edlhY6Kow4miwIkRHEfJ/FmHWriJ0xxWu+Dlu3X3kMDS1+PWTD3gHxyW//dTfGvbnuok5Ly8BIsSwP5427xBbmMrnxJMboBOIzD3stBhC/eBf6sho6bN0AqJLmDowQF6tRLfgcW2UNj9O+Rf/8Ae0NJT5HlCEGRip8uFllMOKsJZURt4FgCw+WESHUwqU2onjS1e3SxKjdCd91qUatWcGhM7c4XtvsU/T7ftRHhCtZn5PC1sJ0/NEliD96ce3mwDfxsjxe/nYPTXE+k5vqMEYnkJBtwFAV+D8UI6G3rx9DVSNxi8rfuSM6s4moubOwVdZgS/8OQRRuzSig504rmuJ8Pmk8zbHIqcQvPyDZUQmU4Y7WuOT56MwmdGYTY+ckhlyXjIyMjCf/A4t3fvE9wDmIAAAAAElFTkSuQmCC",GH:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABgklEQVRYhe2WPUjDQBiG38sfClKbgoIOrUs7dBE7aUFcVNDZxclZcHJ0VQQHZyGgg5P4iwgO1lYH8Q9ROokKQl3q0EGEoom51CEYKP4M7Z2HeM+WHHzfPZe8dwdIxEIuzURF9CTqQRE9gXqRAqKRAqKRAqKRAqLRmvscbsVdzz/kNYVw60HcfCu3q0TmxAEB0N9j8GoBjVtlAJv7NncBbhnwPGDn0Mb2gQ3q8erC8As8FCnuCjR4vi1QPJb8mVtrL0jE1GAsHlMRbVM/1agFZhlwKTBrlTFjleF9s+KEABOjjZibbIKhswk28xDnzhyMTT2jWKq2aDEVLE2HMNTLNg9cdqG9YwfD409V73YXwhhMsw8zlxBnT/2zxdBJ8Kt8vGMNF4GtrI2OdhW5xTCOlk3Eoyo2MjYqHE4c5gJX1y5SSQ0XqxF0d+pIJTWcr0QwkDaQv3FZtwMZme9iui5vrxR6w9db5E9jtaKt34eYFvxt/vxtVAqIRgqIRgqIRgpI/jvvVVJqxcXfp5oAAAAASUVORK5CYII=",GR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABU0lEQVRYhe2XP0vDUBTFT5pnaCxCDYKFglPX0q1uTkI/gJtD/QjugpODo4vO
2164jh3jB+jUMVk6VLvolnSyKdQ/0aLESVz6moTc9Hkhv/VdDufA4b73gAK1aFtdO5Idjq86qFsmAODOnaB77azNWFJKqg1khX0AQSFSq5ZxtF+nkEoNSYC9nU1cHjcppFLDvkLsA2je9F26RmvVMvSSBgAIF98IXhdL5x68OU5vh/k4jEH87vk4TEOHbHYyC+EFIaWvxPCvkO340gp1WrswDR0A4Ach3KfZ0rnpyycG4+d8HMZA8pRoNyz0zw/ycRgD+wqxD0ByE997cxxeDCikUkMS4O3jC85jQCGVGv4Vajcs6aEh/vJtVzawalYVWhRF0jXKAfYVYh9AnNy4qj1kQtiOr9pDJvhXKOl/4L9SrFHVsA8gznoj1R4ysfJHxgH2FWIfoEA1P1RrUq8MjauNAAAAAElFTkSuQmCC",HR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACyUlEQVRYhe2XS0hUURyHvzt3zMdM08hkWCYaWGiv0bTMkoralBKKLYwgkkLCXUgLg2glvTYuKsraSUIUlpFZK6nUlBzUfJTZiJaJWY423kYdp3tPiyhatPOIi+63PXC+8zv/8wQTExOTxURpdW4Wiz2I+WBZ7AHMFzPAv/BtyQK7ndGCfEYL8sFmYyI9ayFUWGV1ZMQsp/LiFba3tvD8tofEVdvoWucjJCDkzaP7vcG50/vojjU4fukmlq/jUrzSKtBWXMLQ21tUxm7gy5yKZ0xh1HAxKaLZkFTNzpTHvHBn0DI1hudkiSytvAq4a+5SUVaBXVVIjQzgnf3Bt5hsLLrOo0aN2LV2TlVdJiIsDNfIK1laeQEi3r3jcGAYQ8COzBUUDrxBOXsBALEyltHI9TQfPEZ0pJW9xSdkaUFIZLj8qujNKRITdQ0iNOkX/UdLRf/RUhGa9IuJugbRm1Mkhs9fk6kUUk8hfUpDe9mOPj2N1enge3sP3zt6sTod6IHpX21+TaZS3hICsGduYeORPHz36um5WkVSZTkoCj27C3HsymTjszsEBz/KVMq9B1SHDZs7hbmxcQJdfYQnrGZJfByBrj5CY+PY3CmoS+0ylXIDaE1tdKbl4ty3g9TOerwnyvAWnyG1sx7H3iw603KZavbIVMoNoM/MEhz6BKqF8IQ4giOfmRv5THhCHIrFQnDoE/pMUKZSboBlu7aSPtiI1tiGJzGb5Ps3SK65jicxG63JQ/pgI47sDJlKuZs4PCEe1RaFPhNE92uoUREIAbpfw5gNokZFErEmXqYSheWXpP4HnhxSyMzbSvSBPXRs2o+iQGrXUybrGmh92EZOrSJTJ/81mlNjUP2gj8DAR8JcTqyuaALeD1TVvie3VrZtASrwGwsCt8sA4LXPgoHcmf+N1D3wNwYKHT51obr/g/kjW2zMACYmJib/Nz8BL5SYPu4wROoAAAAASUVORK5CYII=",HU:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAATklEQVRYhe3VMQEAIAzEQIobJKCAFSkoxVIR0SEDOQWf6VuTJFLcMZMeUdHpAVUG0AygGUCLzPQHSAbQDKAZQIt1tj9AMoBmAM0ASfrbA00tCF8CimqHAAAAAElFTkSuQmCC",ID:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAATklEQVRYhe3XwQ0AMAjDwLRi/5XpEDwsVN8EsXiRiHU6aXrExKUHTBlAM4BmAM0AmgE0A2gG0Cq9+h3YfwEDaAbQDKAZQDOAZgDNAP3uAa2nBD4LbBEPAAAAAElFTkSuQmCC",IE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAATElEQVRYhe3POQEAIAzAwBZtWEEJLrCCuCKiQwZye59ESBIp48zqLKh1ex/sbI2P3nWeATQDaAbQDKAZQDOAZgDNAJoBNANoBkjS3x6aSASw+sr9CwAAAABJRU5ErkJggg==",IL:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACI0lEQVRYhe2ZP2gTcRTHPxeSDkFbqIO0RiGkGiq4hEgzFEQFLYIudtBEcaiLRNAhUqGUzpaCQhEq6NBRRHQqKf6jtQVba2iqcF6DEpViA9o/MWqbNHluEbHgcL/jPMhnuuNx931f7r3fu/udJiLdOBhNRMTuJMzgsjsBs7hfvc3bnYMpNCLJWgnZSc2A3TjegPZo+oujm9jSQZZbKgKwvbHOKglrS6hnKEPPUMZKCesMpIw8wyMLDI8skDKsG5aWldCBC9O0+LwIYHz4zsStNjRNvY4SA09mvtJ9c756XiwJr999Y/dOLwCZTz/YF9hKnee3g2vxPRwObzMrraaEDoYaAdgoC2c6mtGzBc6f8JGI+klE/XQd96FnC5ztaGajLH9cYxpRxER6WTztoxLrS0tL57isFcvV2FqxLIGT4xLrS4unfVSezy6pkhVlBkRETvemhUhSHo7l/oo9GMsJkaSc6p1VKSlKVyHh3+3kUtzJygxMzq1w/1mO2NEmEoMG66VKNbZeqnBl0CB6pIl7TxeZnFtRJYtbxU0qFeHSdZ29/i2EWxu4+3iRiwM6+1sbAHipr5L9/JN45y7evC9w+YbO1O0ILpf5p2HbMtofD3IobH4lsnSQBXxeRGD+438+yDYjZeRp63oBwNSdCKFgvRUyanpgM0LBes4d21E9tgrHv047/4Omtq1iMzUDduN4A9qMvuroJq79H7AbN3DV7iTM8AtZ2yrPRRBFDQAAAABJRU5ErkJggg==",IN:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABvUlEQVRYhe2WMUsjQRiGn9msJgZhYyFYCBe8w+I4MOAVBzYqKQRB0t0v0C0l4K8QO0GM+h9WEQSbs1QsJLHLqpguoBLXKGqica5Id80V++lw3Dz1MM/38s18M2Axi9KlcW26iDg4pguIiw1gGhvANDaAaWwA07h8+3lkuog4KK21+Fdid/ecra1Tms02AJ7Xy/z8GLOzn6VV8gGKxV8kkwl8P4fjgOMoXl40pVKZTueNlZUpSZ3sHQiCkHS6B9/PcXPzSKVyRbl8RaPxRLH4Hdd12Nk5k1TKdqBQCFhdnSaK2uzvX9JstgAYGOgjn/+E5/WyuHhAEBSklLIdaLU6aA212h339y3C8JYwjIiiJ2q1OwCen18lldJj9M9mKpT625p4uJKbJZMuSimyWY9qtcHoaAboHqFs1gMgleqRVMrege3tM46P6/h+juvrR+r1B5SCoaF+BgfTrK2dMDExzNzcFyml/BhdWjogkXBYWMjhut0x2m532NiooDUsL09K6t7nIdvbu2Bzs0IUdadQJpPC98eYmRmRVqHG178eiu/6gbiX0cUP00XE4Z//jdoAprEBTGMDmMYGsPzv/AYJgJdnvkY5rgAAAABJRU5ErkJggg==",IS:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABdElEQVRYhWNkMGx3YSARZIYayuqriksInzwnwfnyFR9M/LWNxcOfQgI/W+Yevfjk5edfpJpLDmBh+M+wm1RNanJCDOkhBgxPN6xh+Lh0O1zcKc+PgdNEi6F93nEGhv9UdSdOwEQfa2gHRj0w0GDUAwMNRj0w0GDUAwMNRj0w0GDIe4Dl+vpUkjWJCXLjld8zM4Lhz99/5LqJJMCioSBMdUNVZAWpbiYuwHhD2JHshu+/L98Z/v9ENPuZ+HkYGFmYqeIwYgHL37cfqWbYv49fqGYWsWDoZ2JmYX6yNQ+GJMT4//9/svPA05galC6l4unFDJwmWlRxGLGA5caDtyRrEhPkZhDi58Apf+fxe/oVo5qBs0nW1F/izFAQbYpT3iV9BcPD59QrHPCBIZ+JRz0w0GDUAwMNRj0w0GDUAwMNRj0w0GDIe4CFgZHBlVRNN+6/lp2x+ry4sJSyBEdcGHyK6dS5Vw9/3P/58+//f5cYGBnoMsUEAEhSZQJOFvxKAAAAAElFTkSuQmCC",IT:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAWElEQVRYhe3PMREAIQwF0YAUWnSgCBsoQgSWQESKvZnb1/9MNkKsEmvczIE7d+qB03pqX1PrDzCAZgDNAJoBNANoBtAMoBlAM4BmAM0AmgE0A2gG0AzQ3z3ZYwVXTvBIaAAAAABJRU5ErkJggg==",JP:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACEklEQVRYhe2YvW/TQBjGf7ZInIEkSy3ihFaZEKpoAupXKCM76gILbAUhFrpW/QtgAyRQp04Rgi6oMyuiiQDRGAlVbBFJPygMSRiwo9oMKEspUvLeS
2164R7wb77nnvc53/k+ICZajDAMw6iLUMGMugBV4gBREweImlO6OwyPAjpbDbp1F6/9DQDr7Bkyc1NkF8oYpt4x0xYg8Hxaz17SfLiOf/DjxDbJ3BjFlSUK925gJhNafLXsA17rgMbiMr0Pn4dqf7p0jvLmE1LFvKq1eoBfzV3eVW7h738fSWc5NjO1KqkJR8VebREHnk/j2v2Riwfw9g5xF5cJ/L5KCWoBWk9f8NP9Itb3Pu7QXttQKUE+hcKjgDeFq/9csMNiOTZXWq/FfyfxF+i83VYuHv5MpW7NFevFAbp1uelxOlEE8HYPxaY6+5IvYsMQS3X2JQ5g5W2x6V99OWNirThAplISmx4nu3BRrBUHyF4uk8zJR26AlbfJzF0Q68UBDNOkuLIkNh5QXL2jdEJVOgsFfp/38zfpbe+I9OnpSWa3qhgJ+aFY6ShhJhOUNh9jOaMvaCtvU3r1SKl40HAjS004zNSqpC+dH1qTnp5ktv6c1HhO1V7fu1Dg92mvbdB8sI63d/LGZDk2xdXbFO5eVx75AdoftsIgoFtz6dQ/4X3dB8Aaz5GtlMjMT2m/UsYvc1ETB4iaOEDM/85vkMeuMUJQpcIAAAAASUVORK5CYII=",KE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAC90lEQVRYhe2YTUhUURiGnztezVFqQmYCpeh3yCKKQacgXYjkQGDQJmaVRaRbcRltWlkiGC2ktG0bWxSUBI1thlaVFoU//VA4jSR0hwppphyc+7WY6037gWA+moJ54SzO/c593++995zzHQ6UUFwYgBQ7iULgKXYChaJkoNhQMWCa5l9551dQMdDc3ExbW9sfj49EIjQ1NWlIA/ldqKDm9XolkUhIMBh0nxkgUZ9Pjvl8YqwYGwwGZXZ2ViorKwvWdZoKifT390s8HhfDMASQUyCTHR0yefy4nFg2ZRgSj8elr69PK3k9A36/X1KplLS0tEgTyBjI3NCQJC9fljGQgyCtra1iWZb4/X41A0ZnZ6daIfN4PGwOBNgzMIA3kyF09y7YNk8OH+ZLdTWTPT0kLAvbtrUkMYeHh9XIAG5Go3gzmTy5zweS/z7edJqdL19yZmREVc982NioRiaANTPDWqefS6dhxddOjY7yoLERQ00RzIWJCTWyV8AdoNvpZ+fnkRUGbmcy2BMT7FBTBJ1q4uCR05axMD7uTiGAh8AG+HcNJIH3QBaoAD7cu+fGsoAFzGkKomzAIr8OUkAdsL23F2ybp0ePurH3moIoH+Z+Wpwi7hQyfjemQKj+gQD5BANO//XZs66BH2NaUDWwkfwiLXf6NYcOgQifp6Yod2IbNQVRNrCf/PxfxrpweNU2GnbGaMJc19CgRhYCPDMz4FTiNbW1qwwcqapi365duoVs//i4Ih28i0bh+nUAPFVVq+qAv72dA9pHia5rXWpk2VSWbXu3EhqrxvsxzdKnT+5RIlNTzVRoO7cunqQiUKGmaV69f1WNrHtTN+ffXKIh/JVzMfiaSLhT6EI4zeMXA5zecprB54NqmmU0cE6DqN6ux2N7mM5Nk1wP5TaEFmtYTCa5Yj5jdDfkynLU2XWYiyaWYWnIYtClc7EVMSPEsjG3NBrAsbc+coZwY9PCdxEbIhURYksxDVk9A8VC6V6o2CgZKDb+ewMlFBvfAGR8dzfM5+edAAAAAElFTkSuQmCC",KR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAFy0lEQVRYhe1YXWxTZRh+zmEtW7tEsggIYrJ2Q1FwDDBOlsqKBBaSDQQvJlOEMXaBbQWmJuOndBdi4xbPGSmOuNFBNM5gJF6MZWEwORCIAdE2QrdEWaoYhQX/wlalPcc+Xm1YHd3pqlmMPMm5OO/3Pe/7Pt9Pz/sWuIuJhUCSE51EOhAnOoF08f8S4PV6Icvyv5ULZFmG1+tNiaNbQDAYhMfjAQA4nU709fWlll0S9PX1wel0AgA8Hg+CwaBuri4BqqqiqqoKRUVFEAQBLS0tCIfDaGxshKZp48sagKZpaGxsRDgcRktLCwRBQFFREaqqqqCqqj4n1AGPx0OTycTjx48zOzubHo+Ha9asocVi4eDgoB4XoyISiTA/P59lZWV0u90jMZxOJ8+dO6fLx5gCgsEgjUYjZVlmSUkJCwoK6Pf7KYoiFUUZd/LDOHv2LEVR5KFDh7hw4UKWlJSws7OTBoOBFy9eTE+AqqpctGgRi4uLKUkSMzIy2NHRwZycHLpcrlE5v355hVe9EkNPVzLw+FMMPP4UQ09X8ts3mvhbf3hUjsvl4tatW3nhwgUaDAY2NTVxyZIlnD9/PqPR6PgFNDc302Qysauri2azmW63m6tWraLVauXQ0FDC3Hg0xquvNfKzQhs/Kyge9fm80Mar3jcZj8USuNFolDt37uTq1avpdrtpNpvZ1dVFk8nE5ubmpAKSXuKamhooigJJkpCXlweLxYJjx47B7/fDbDbfvkeqiitbtuPGBx8B8fid71s8jhvvH8WVF18G/3RJjUYjli9fjo6ODlgsFuTl5UGSJCiKgpqamqR3WFcpEQqFcO3aNVRUVKCyshI+ny9h/OrrEn44cnQsNwmY+uwzeGBHbYLN5XKhvb0dR44cwYwZMzB37twx/eiuhTRNw4EDB7Bp06aE1f/ui68wsKEaiP+ekgBBFPHw0XeRac0dsUUiEbS1tWHLli3IyMjQ50evgDvhnVf3Y173++PiTltfgVmvvJROeOiTmQQdfTcxb4w5JzKt6MqajR8nZeFB9Uc8F7mEXO0XDH7yabrh0xfQqU5HjWjCvfFfRx333mPDh6ZHRt4vG6ahM2s25J+7UXxtIN3w6VejMUHEnilLERX+vhbt5kcTkh9GVMiAZ4odqjgp3fDp78As8RbOT74flfeuxbrIJVi1X/CTmIWurHwombl35N0QTeibOhuPpRk/bQG2+ybhm++BrzOmwHvPkylx4w/9fXdShe4jpGkafD4fIpFIgt2x/gkISP2HTATxZMXSBFskEoHP50upwtUlIBQKQVEU1NfXo66uLmFs8dICVNwX1R1wGOtmRmFd8FCCra6uDvX19VAUBaFQSJefpN8BTdMQCASwa9cuDAwMYNu2bdi8eTN6enpgt9tH5kWGfoP9uTZcjGbrCvpE5iA+bq9BlmnyiE1RFCxbtgwHDx5EU1MTpk+fjr1792LBggVJP2pJd6C1tRV2ux21tbXo7+9HOBxGWVkZqqurE46SOTsLp9urUTkjmvQ4iSSenxnFx+9tTkg+FovhxIkTKC8vRzgcRn9/P2pra2G329Ha2pp8NZJVesPl9OLFiynLMq1WK4PBIHNycuh0OkflnD99iS9Uv03rymYaS9s4udRP68q3uKG6hRfOXB6V43A4uHHjRl6/fp1z5szhvn37/plymrzd0Ozfv589PT0sLS2l3++nIAjs7u4eiz4mTp06RUEQePjwYa5YsYInT57kmTNnaDQa029ohvHXlnLPnj1cu3Ytc3NzefPmzXEnPzQ0xPz8fJaXl3P37t0jMVwuF3t7e3X50CUgFouxsLCQNpuNsizTYDCws7OTDQ0NVFV13AJUVWVDQ8NICynLMm02GwsLCxn7S9OTlgCSDAQCNBgMlCSJDodD9wrpQW9vLx0OByVJosFgYCAQ0M1NqZz2er3IzMzE9u3b9VJSgizLuHXrFnbs2KGbc/fP3YnGf17AXUw0/gB3sv8AHpOZwgAAAABJRU5ErkJggg==",LT:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAgElEQVRYhe3XMQ2AUAxF0X5SNLAwsqAASXhBABawwMzEhABUMLGRj4gON03eUfBu0qVmIiFlW8aTHhFR6t5XekREQw+IUgBNATQF0NIH+HR09IYQv56W3hCS/oQUQFMATQE0H97UD5n5en/0hpD0J6QAmgJoCqClD3CzMtMjREA/dEIM+riIWisAAAAASUVORK5CYII=",LU:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAdUlEQVRYhe3VsQmAAAxE0UQykRu4jM5k7T62gpUTiLUIcYgUn8C9Ce5DIGYiJf6M00yPqIj0XOkRFQM9oEoBNAXQFEBrH+DfcSY9osIzs3VA+xNSAE0BNAXQYr9fekOJ23bpkZEUQFMATQG09gFh5gs9QgT0A3QcEegC64KNAAAAAElFTkSuQmCC",LV:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAX0lEQVRYhe3WQQ3AIBAFUWhQ0gsKKoQbXhBQFZVTXYuIPUxI5in4c9otRZJI9bufoEdkXPSALANoBtAMoB0f0Poc9IaUGhFeYpIBtPavl96Q4jtNM4BmAM0A2vEBksTaMREKq+ktOnIAAAAASUVORK5CYII=",MA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACBUlEQVRYhe2YPW/TUBiFn/imN2mK86GUfoigGlSpHdqhE0PalYUyI34E/AgGKCAhhBjYEL8ANiTGtqSoUoduFYWhSEWBlsZJlPjbZkB0AYkiX8tC+Bnta51zdHxf6xoy0iX3emkhSttEHLS0DcQlC5A2WYC0yQKkTaIBDkbzfCrmk5RINsDbqmSzJpOUSDbAji7Z0f/RAG0pGPdCxv2Qw6JISia5ABs1ybLp0DxxaFWSayH2DvsiNdZrhV+uv6mPsmLaAGxUi799dsV0mHLCWPqxG5h0Q6adkFcTJTRyzA59Kn5E3QtY7
2164Hss9j3qXkDFj5gd+mjAy8kS024Y2zwoaABg2XSYG3g8ntEJiRARXP1ms9T3AOiM2PSE4GQEtssFHu2ZTLmBCml1e+C8F3LnYxdb03hx4RxzA//03vzA53ljjM8Fwd0P6syD4k0sIlg9smhYPg8NnV1dsqtLHhg6Fy2fa8cWQvHxSflnslUrcP3Y4krX5dZ8lYgcT/c6bJclrWqB1SNLqZ7yMbpVkVy2Au4bOjfaFjfbQ9aMMpfsgK0ExqnSBnpCY7+U51ljjNsHfQz7x7u+0Hd5MqNzWBT08hplP/70+YnSBt5VJU3T5d5+99Q8gGEHrL03aXZc5S0o/SvxVQom/jBhzrLmb1DawFmMqTQP2YEmfbIAaZMFSJssQMb/znflJqz4C7TXZAAAAABJRU5ErkJggg==",MX:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACYUlEQVRYhe2YT0iTYRzHP+/eub2+29zMSJe2cs3MApP+IEKQWmD/MIJIwjp1iejQqUOHIIRuHUoouxZFEAVJRYeSRElNw1aNQnHacNXmxC2bzr3a27WLXd5HdvD9XJ/n9/3w5YH3fXjAxGR1IzW2XVgwEtDZdPaXkfmRppYhI/PWruiozUiAY0/NWiPzwEEjwxaD8pxjFsg1ZoFcYxb4H9PjIYaftPPt07sVc1hFBy4tZclkUkT7nzE1GSbY/ZpQ+Ca7aus4ffUONiVfqE/4CcwkY6TCnWQS71lITJL5Y8GiQ09PL/eunBetE1xg8Tceh50ZyYtWUMmcJvEzZcHpUigtVhn/3M9YsE+oUmwBOZ9I9AtzySm0WZ1YbAxNyrKhYiuyrCLlKfQ+fypUKaxA/+BjFuMRWJIpsiVxub8TS9lwqnbCCY2Tl65TtnM/JVu209v3UJRWXAGbpCHnF3L37RiJeRceR4C9+xrQKGB6JsmjW9eorj9MoHo36POitOK+Qg53GcGJAYrKy+n4OorX4yGCnUPH0kiyRJYdbLRbGIkPUbwuIEor7gQC/loUS5bWKg/HjxzFX1mF3wn34yWMu+p5lZ5n1uen0KlS7qsRpRVXQJbz2BRo4EXXA+ocYFWhWevjoj6E6vXR3tzAwJsblKyvQVFcorRif2SK4qT1xGWCoW5cEx+Z3XaKzRmIBjuI6Ac409KGJKsilUica9KNBOi3Xy67lor9YE7T8Jb5lt0zvKbSiF78VeJf3MVe3CspwLyN5h6zQK4xC+Qaa2NpRdZIQHrwg6GnRcDQ06KJyWrnL2m8s34A2fgDAAAAAElFTkSuQmCC",MY:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACiElEQVRYhe2WX0hTURzHP3f3Op1aUpPpZjYpF0aS4kOgCD7kywgyAuktSMI3pZfwPXqsl4kPRdFbD/ViUDMi8KGNQEa6SlIHUgrmyoXmvGzOeXsYLLe72R92kAv383Tu+Z17ft8fv3PO7wcmJiYmB4kEg5pIByHui9we5U8LGhxbtDSts52SmZ63E1fL/slBjdf73+L+hqIZcDvjjI0E6Dob5cF4C8FwHWpC4X3ETvSHDdmS+S29K+3rQNPulV71HgpmoMm1ydtHz4jGbLRe6Wfle2WOve1ULJuJ6soU4QV7UQfLw8MllKunYABjI0FqqrfpvNaXI77CmqajZY2Tx37irFUB+LpWSVXFDu/maklsy7q9vo2OCpKeQRdAg2MLb9cSj18283nlUI5NljW2EgoDffN0t68CEJip58bdTmS58FvQGokIkP0bS/7E6aZ1JAlmFmp1i93OTfp7F2nzxFDkXRR5lzZPjP7eRdzOTaFCi6HLQDKVOQYV1p2ceUmCalsKADWhcORwMjuGjE2SQMtLxEePp+Si96ILYHrejppQOH9uhdsPO7LzmgZTsw7czjj+YCMXe74A4A82El6wMzXrKOjAMTQkSHoGXQBxtYyxJ2e4eTXMhe4lXgSOZ23l1jSTIRdVth2ev3EDcLQmyWTIRbk1TbLAJW70+QTKL1IHyq1pxu+8ort9lYFbPTx9fSLHXm9Xc75XY7nP7F4i3uUSSS1M0UImWzQGL3/i+qU5ZIvGZMhFMFxHYKZ+X8H5iG4lhPdCwitxF2JTvDExIXR/KQRCMyAaKerzGTsATcsvPcZC+tDcbOgAdL2Q0TD8EVJE9+uiMf4zuu73GzsAo98BExMTk4PlF3to1Av5YzkRAAAAAElFTkSuQmCC",NG:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAATUlEQVRYhe3PQQ0AIAzF0IFDUIMDUINFELFDSei7/2WNkCRSidlO5sAZO/fA6ql9Ta0fYADNAJoBNANoBtAMoBlAM4BmAM0AmgGS9LcLHHQFB/AWPAQAAAAASUVORK5CYII=",NL:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAbElEQVRYhe3WQQ2AQAwF0V1SFyAAJxywgg3scCFBAC5QU0T0MCHMU/An6aGtidWPaU56RMVAD6gygGYAzQCaAbQY14XeUNIz01eCZADNAJoBNANose0nvaEkrvuhN5R8/oQMoBlAM4BmgP7uBcUGCtTfZKdIAAAAAElFTkSuQmCC",NO:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABdElEQVRYhWPcxatfzkAi0Jpcb8XMzcU6/9hNyUdvP3PCxDWlBL+EGSu/+vXm3debZZ1nSDWXHMDC8J+hg1RNop52DGxiwgwHNl1g2HX4Olw8NtCGIS/EneHz5VsMDP8ZQqjqUhyAiR6W0BKMemCgwagHBhqMemCgwagHBhqMemCgAYtkpA/Jmpg42PHKswrwMZBjLjmARWdWC9UN5ZCVYKCFudgAy9nL98nW/OnzdxT+2/dfGCgxjxzAyKAQ/Z+uNlIZDPlMPOqBgQaMZy7dIzsP5NQtZDhx4Q6c7+VgwNBUFEwVhxELWIx1FcnWzMfLicIXFuRhoMQ8cgDLlbQakjVp9FQwsPDx4JT/8fgFw53mKZS4i2jA8nz5FpI1qbUUMjDg8cDvD58YyDGXHDDkM/GoBwYajHpgoMGoBwYajHpgoMGoBwYasDAwMlSQqun19kNWzNxcrA4inJJKdpqIKSb2f19erNn56tebd18ZGBnoMsUEAEREWH4iNM2ZAAAAAElFTkSuQmCC",NZ:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADY0lEQVRYhe2XW0wcZRiGn112G7aCsogalixlwQVatSc0nNqkHZcQDCLFQ7uYRg0WWlpCE7UhUkyBqInEaNOGQhNqvGAXwRAiRSVLkdhIuaACaakSWIo0bbVASzlIZdOOF8Qe3B0cUcI2medqLt53/u/95/v+mQEFBQWFpUR1Lu1NMWRfDrrYddQ0dlJy8GucwyNuwsn6PZzdbAXgye/s+GccdtMYg/UUvvAUm/q6uTk6Rsi+HAK2H1vUAOoO4TlGapsYSM8mTS/S6yiivNRKqCFQ9k1CDYFU5SfR+vQyNn7v4LHt6UR8eQTb0Mwilj6HOuugA6FzlpObUxipb8a5JQdriJb+tmI+//g1IkIfkTQbg/VU7BZoWa8lznGcoC3JPN5wlK+uqXgiqZTcIvuiB1CpTLvEuwsqzFiH8EsvrsFhDG/vYPmGZ6hp7CTD5H9PC1WfOOdRJ9WCcng+MZJbt0SaTvXLDzDV1Sv+swxm+s/jzH4XgIijH6Azm2Qt4GlWPPFK8hoKB9sBeD88gdrmHlk+VUfAalkBFkq8PlG2titrNaIosv7YGdkezUKKWgyWaX0Q6gZuX8+6bsryeU0LSZGUYMbRLj0TmrsXMAbreWuHhWzrBlxdZ7lYVonK34/u2I2kxptv63RmE1Xdv3nU7f/iR1lDbDI+zPkLY/NqXk+NId/5A1dyLWTauhgbn3bTqP8q/NP3Xqav9QBvRAcwlJnHpYpqeiwppA49gLWs2c24t6SOKOEAn/08TpjtEIadr7Km5RuOh01jfydZ8vgNeFCHEB+JPSMKISGS5b5ayQC1J86gMYczKqo9Fg+gLi+10t9WfKfwI9WcSrSQPOCLtax53t28cPkae0vqiH62mGrnFOE1h+8EWTFN1R7BzTM+MUNetB/qTyp4cYUfv99wSd5f46NmbdOv5NlOS2syw3Q4X9qF5tEgeiwpcy1wslXS4InhS1fJLbLzYfm3cy1oO8RsZw9xH1UC7jvcPu3DaNJWtJPzj9/E1A0Arl73vPvwtxfZ/Yh6qQv4rygBlholwP9JzMoQYlYZ/pXHawIUbIuj0vgHFUYXBdviZPu85hh9yF9Hm+8gqFRsmjF
2164xfVLe35zXfI3qfLU0WNLnrlt+kh3Aa57AQvGaGVgo930ABQUFhaXlT+sJOVcszuG9AAAAAElFTkSuQmCC",PA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACB0lEQVRYhe2YP2hTQRzHP9c/eXGwRvO0pYLVSqMZbAtdjJSCgyilSwcVOrq4OLt0dWjdVLRLB3EJhCqUKhojFCc7KKKCgf6jvJg2QoJWS2lS9LlFoti7VC73St9n/PG+d98vv7t79x74mEW4ruvqnCDe2qVzeOq0jl4D/ACmqSrAx4VPpBeyurxsi6oCTCRnePh8RpeXbdEge+DDrMPnwioAiaevADjdHQGgObyPU5EjGu3JkR6j+S/fuTJ8j6npNxX1c2c6eTB6jRY7tOUExo9Re/9eJu9eZ2igt1wbGuglOT4sNV8LpEsIQAjBvJPjxLFWAOadHEIIrcZUUdrEmVyBaPthXk+M8PbRTWLdEZyVvG5vSihdJYqlTaxAY0Vto7hJ0Gr8h+I3xvcA8Jd5QMl8Ldhdb2IvsuMDNIjoJa0TuMvvtI6/4zvgBzCNpwKszi7ybW6xKo2nAmQep8g8eVGVRukyp5Ov6Tk28gUAnKkkAOGeTgCCdphQtGNLvfEAe5oP8n7kDtnUy3Jt+vJVWvpixG7fkOqNLyHrQIi++7doG+wv19oG+zkbHyN4yJbqjXcAACFYW3JoOn4UgLUlBxS/N4x3AGB9OUdTRzvnn8W5kEpg93Sxnl1R0gpOXtT6a9FNJ6TP/CyVqAsEKmo/ikXqLUuq9UQH/jQPKJkHjwT4H/wAPrudX+z7gl25CQKJAAAAAElFTkSuQmCC",PE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAC8ElEQVRYhe2XS2gUZxzAfzuz+00e+zR0lSQm6WpTYzTGdyFtLbTNTTwIoqBeeiqFevHQggeJl9CLIPg4+ABP4kHiwYOiBxOhWyiJCc3TSKLZ7GaX7EyyJjuzzk7GW4vn/dI1sL/jMN//Nz++GWYGKpQXz2R4m1vKgFZjuqQLmIpsL2m9UtLqT4BKQLmpBJSbSkC52fAB3vUaPJFLsmAZuB6XLVqEtmDDunjWZQcSZpZbs49JWTop0+D27BPmTR0Xl4JTkOqSugMv9XHsooniDdNSVc+ppm8AMKw8C5bBb4NXSeezPP7xMh48UpzSduBFZpif//yDv7OviLiClYLOjdFHPJx7hqssE1bWGEwPYVg6A5NxWVo5AYnVBXoGr2E5RY42fMtPfXF6+hxG/hrjYCRGV/ALwj7Bg+96+VLdxGjxrQwtIClgeHGU1GqCQ9F2Ar4qzgQneBrrJyJ8JE2dbHIGo/COjJlhwp6ld+wu6XxWhlpOwMqaw/ZgCzO5BCO5WezaKE/EPm7PR6gTIfwFlYAQ2Kqg1d/MNm0Twivn8ZMyJZNfZGh5Dr+i4lNUAjNJnJyX34smdc8FmrVKjb7EvdAcuVweRC39qZccaz5SsltKwMlYN8NLrxlZHKUhvUjd9TtUn9GhpcjytIp9P4IVK9D5ywX67DSiWGR8ZZ5jEtxSbqGQCKK/NzHsd8yk3qCdXsbbaaGEHTweECeWcA2VbjNKq1rFkfBezu04LkMtJ0CogrOxbgK+Gl7UrUFmJ++TfhxTYGeqKPSHUHwHOE+c5mg7F/ecpVrVZKjlvciObv2a16sL3JzqY+evl/h+LIs99QoaBWrXVgbaqkkMX8HVmggForK08n/q3/4TZ3w8zqRHZ/ekgeNVmW4K06TVE+vYT2NzG35fzb/nl/pTL/1jrvHzDlIhhx8sH7GvPkNFY8taBksrsGPzftk6+QFKbQ2Ha7s+OraLetma/3zrNvl/ohJQbioB5aYSUG42fECFcvMBh/EKfLayd80AAAAASUVORK5CYII=",PH:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADBklEQVRYhe2XSWhTURSGv/vSlFpr0ToVp6UiuFAQFDeCIoobVy7cqAt3gu3GsYoDrQMuGrCiVatSqRYHHFCkFBxARUQIUkupQ+OQpK0mTTqkQ17ePS4ibWOnVDFPId/u3nN5fD/vvMt5kCZNmjR2ompftUihy019U7vdLr+FEhExY5pL9z0UldcRCPfZ7TQulIiIhG+DkUOIlRy5WE/ZjfdYWux2SwoDK4yE70JvPXm5TlyFS6irWsfaZfl2uyWFEhHB9INz1pDi/ed+CkrdNPm6bFBLjniAUYiamrO3P7C/vI7O7liqvJJmjAACKAD8gR4OV9Rz4V4T+h/6PkYOYPrQwcsYU7eCc3b/9uuGNgpK3byoC6RIcXSMhJXVgbRdg6gHMVtQygm6G3rfIcFKEJOlC/N4Vr6a6yUrmDcz2ybtARIDoBDzK7r9AYggvQ2g+9CdtUisFcSKn1KwcdVcGqrXc2jbIrIyHTao/zQe0kKxIJb/IIRvAgLKAXmbceTvBseUYR/ibQ1TVN5I5cNPf9/4FwYCRD3o9hpwTkWaj4PpHTg0YSFM2w5WCCN3PWTO6a9J4Bxi+jHyi3jiDlHocvPmfThlATKG3VVq0GLgJhqLpREP1Z7T9DQ2/rlZkozSQrcA/bOFtuDI3zViC0V9X2guOU1b9Z0UKCeSGMDqRAfOgJGNyl6BfD+FMXMnuusx6AjG9B1gZPUf1909fDtVQavrHLrPniHwlxYSlHMuKmc5EguiJiwAlYExaQ0SeRl/GwAihO/V4DtwgqjXn3rrQSQGcOSi8jYBoFQmWiyUYyI4Z6Oy5gPQ7X6Ld28xkVfulMsOR9KjhNnyjZYTZQSu3ACtU2OXBMPfQv0oJGoSuHQNf4kL3RVJjdU4iAcYYZxur3mMd08x0c/eIbV/BSWxkOivhajsxagZBYCi991HfPuO0vHomd1+Y5KBYzJq8gYwcrBCHTSfLCNwvgqxLLvdkiL+T2zGCF69RXNxKbFgyG6ncZHRUfsUb9Ex+j547HZJkyZNmv+QH8y2ZOQfP27YAAAAAElFTkSuQmCC",PL:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAUUlEQVRYhe3WQQ0AMAzDwHUYBmf8UYxLByIPq5IPQfzLWlKkurvpEYlND0gZQDOAZgDNAJoBNANo4wPqneudJhlAM4BmAM0AmgE0A2jjA6TQB72MBmI8IeBoAAAAAElFTkSuQmCC",PT:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADSUlEQVRYhe3YX2jVZRzH8df5v2metrOpxxxmhibNaKmILrVMGRkFERXhTXeGjqAgsRSiiwxEIiHQuqguBv2h0vLGwkgP+GeFQn9klm4hzSZuuVLTudM559fFCaFgsKM/20Xnff38vs/n/Xt4nuf7+1FlbIlYLQir2OEdzPs1rGqjI/rfThc+VYGxpiow1lQFrhSKhFlt9FzTPXBTHe33sOw2pjWQjRDrxSG8jy9DyzkiV/3O1rVxYB3pWl74hPb3+G0XVuA4XsPHqA8p6Qhc1Qq8/gSLkwsNHploOB9Xm4qZkom5taYg/mOcIgoF+elxyfkflKX6ww8P8Uof6HyeO5u48NYkzTW7JF7Fz5QeIFiKjeVxxZdx4naW4xtMRz603FeoSGDWZBZMJxKhlIhKnEBzC/cvEL1lgJv7Wd3M0JDYqQ4iCXqwAJuwbowFHm6h7xzZNPlLMeM2Y9NjbNjg885Tdu/vtfXNRZw5Q7ZDsGQCu9CK1eGHp8JNPHca2/ex+yjJVEnQingBZBvGyU6svTI2mItMnkfwA+aElvkfxMzz0mgHb1vFjEns76apb6a6h44bHr7Lms9qNaRTes9cdLir39mzF8264w1BepyoQVb9LXAQJ8MVqGgFigHJKE315IfiYhtJnK9z6XJBJp1SKJQEATWJqOgr+KqeRuWjNIZIuOErFsgdZ3uOdw5yPo6jxH/6xbub7lOTirlxQsL6J1u0TcrTTRCtKz/4FAaxN/T8lQkc6mHZbLr62NfYy5SUwh8d9HQrFgN9/UOUSkofPqc0n8LiBtbiRXwffngqvMjGp+jfwslB9nTx6IGVprbsZnOaJWtobGTnDtYeUuzKuvz0eOMTPWQobCG+PnyBijbxn0XmZGlpYqCPI5kBTbkHTfj0GLkce/bQe0rx/EKn59a74DvFDMkk8WXhh+cqW4mtj9M6g7f3EhRYlG519+mpsqWoi5eHDPfnJH8/J7OSxGwibRi4DuldQzf67AqeWc4Xx/joCDfUsK2Wxs3KZ/8qfKu8gc+FmPhfXFM7PTlN+70sncnsKTRGiHWjU7mdzoUVc2RC+y8UjfD1TuZdp65zxHnDKlQKUAqr2uipfhOPNVWBsaYqUOX/zl8n0vVXZJ8XHQAAAABJRU5ErkJggg==",RO:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAW0lEQVRYhe3PQQ2AMBAF0QUF+KgJnCGjDioIPU2oiH+YJsy7/81OlVhHtedLDszRowfe+4r2Z7TegAE0A2gG0AygGUAzgGYAzQCaATQDaAbQDKAZQDOAZoD+bgHrqgVEBVfWYgAAAABJRU5ErkJggg==",SA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADVUlEQVRYhe2XW2ibdRiHnyR2X9Ok65bDkjRNmx7TbO06V5uuOByd65y2DA8
2164XHvCENzJQBK8FRfDCO+9E7xRkKE4QpYjTDZ3bbLcZm8aa2C6ntmnSLEmbc9IcvJPdfpTyXfg99y/8Hn7w/t8/yEiLgjfGGlKH2A1KqQPsFllAamQBqZEFpOYBsQMn7EMsxYK8c+41bgYXyZUKDFv78MfDXPbNc9Y5zu8hL+ZWPV06M1qhhVq9zs//zPPi2ONEUnHi2STHbYMEkutsFbJMDY5zK7LEhH2Yd2c/FZVHdAPl6g5vn36BWr2OZp+afKWEab+eWr1Ol85MKp/h1fEZHnWM0dqswb3mx2HuYsjSi6XNQCQdYzObYsTaz4fn3+SpkUkmuoe54r9NtV4TG0d8A06znUYDjrb3EU5t8OTRU8S2kzxoc6BSqihVywCsJFZxmLqwHTiFZ22ZMw4XleoOdr2F6HYT3o271BsNVEol1wMLjHT0U65WRAuIbuB2xIcnuownuoJ3I8Dn87NcWrhKv9GGAjBqDxJOxciVi/jiYb7zXkMjqPn4t0uM2pz4YiEajQbnhx/hk+vfYNdZmBoc5+69NdHhAVS4rO+JGTg98BAqhYpMKc/zo2d5a/I51E0CplYdmmY1+wUNnvVluvXt+OIhXnFN02fsIJBcx9JmYNTmpPOgmYX1ZZKFDAoUzIW8zBw5SbqYZT78194KqJQq8pUilVqVr91XKFcrfHT1InUa/Lrixq63cDPk5eljk1w4+QzBZJTWZg39hzqJZe6RLmQRmvaxFAuSKeUxag8QSkZZ207w7PEpLt75cW8FTK06po88TKfOTI/BincjwMuuaWaXbvDBzAWW4kHOHZ5gq5jn28VfSOTS+DfDfHHrBwAec06QKeU5Zh3Ave5H39KGfzPCZjaFukngRtCztwJaQU2vsYOBQ51ohRZy5SKJ3BY9hnYi6TjpQoYv7/zEXGiRl1xPsJJYJZZJslOr4l7zoxVaAPjqz8sMmuxEtmJoBTWHLT18Nve96E0k/wekRhaQGllAakTfQvdzwj7031oUQ5taS6/Byh+rfgqVkujdfz+7auDveIh8pSh6ToGCbr2VMw4X70+/vpsI8jsgObKA1MgCUiMLyPzf+Re4VUynp0MeMAAAAABJRU5ErkJggg==",SE:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAaUlEQVRYhe3XsQ2AIBQA0Q9xSVtLh7JlGWdCF7AR1JPkXklC4ELDj5C6pFjL0bq5LvPlet5K84Xuyp+d9BIDaAbQDKAZQDOAluoezX+hPxj+BQygGUCbeqYnJ7IHGEAzgGYAzQCaAdLgTgMiDF132qMcAAAAAElFTkSuQmCC",SI:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABZklEQVRYhe3WT0sCQRzG8e/sKvZnN02RiKxTBNmhSx26dOhaL6Fu3erUC+o1hIgQ1LVLhwo1iiAISqggLW3FNnc6hNAh3CXRUZrPeQaeZ3+zswuapmkqCSmlVB2iE4bqAJ3SBVQL+S3wmh6Z03dyxRoN5xqEYGhkjvUFi42lUQxT7TPwfYmrjxVWts+4is8yaT0hkJRqE8y/3HCyv4ydtHuV9Ve+E7CSUcY8h6Zn4soIhvBoeia2V8dKWL3I2JZvAWEI7AjMJEzW0ikMA44KDWxHIAzRi4xthcRWyXfR6idk9uIsTIUBuCy57O5AkL3d5jsBgFQUTENQuHe/N5mC6Wh/fP8CXSHFcoTs4R11V+J8SLK5W/KV4W5nCyTQBC7G09gH58SqzwBkj8vkY4tdDRaUYPMh8FmIulUk8BZWe3X+FGgCLa99FLxl4H8lBr6AkNAf9+EfDfwEdAHVdAHVdAFN07T/7Qso3F0oXv9YbgAAAABJRU5ErkJggg==",SK:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADFklEQVRYhe2XXWgUVxiGnzkzY7LZaLTZbKpECsVElrhtBMEb8SeotRYaWrzwF8Uf8MbSXrQ3vbEIRVBEQahFzEWk1GIpaa4bWmhrL4o16HohGjfRZFWMiVk3ySYz55xebN0Qtpn1J5lR2Odq5vvOYd73fGc+zoESwWJorXXQIl4GEbSAl6VkIGhKBoKmZCBorGID0ps/Rl5LTImZjTGspndwOn9D3X8wJVe2azsVXx+eUZFeFK2ATqcLYmb9EiqOHoFQqHD88PDMKHtGrPZLvdMm36qt5O2xsfy7GV+GSvag+vtBa3TqHiJagzFvHvJWNwB6fJzOKymejDmzLh7ACH/YNu1RYv+mBg6f+QQ9OATA3I6LWMvfBSlBCFAKTJPxtu8Y/fIrAOzmNayf30KiZ8gXA57/gG0JmJhcyYkLF8me/hajvIyKE0fJbN2NWLQQnR2fnOS4zLH86w2eX7ItAa4LgBlvRPbeQf7TherLbSF5sxv38hWQLqJuEQDacXLzfMK7AqZAO7kK2GtXE/risyn5+Ym/88+ZnftQfSl4lQxIpcE0QUrc3/8kk7iOTPZiLq4j3PoN6ebNGGVzMJc2IJM9uUlCoJR/J3RPAwPpLKImgupP4XZdzccN2watUXf7AJC3budzojbKw+HsLMktxLPWXd2DmPHGgvgNFebMhcs8sioKcm4sRs/9zMwpLIKngeu9Q6RXrUEagh+qm+hY0MiN8igfzH2fz9uTfLR0DwN2mPORFXRW1YMQ/FEbx5HKL/3eW0hrOD6ymFCshVPlywCIOCOMChuAZFk162MH85VoiyY59pc//f8pRdtF6y/dNGzZiK1zqzpgh6fkn4p/U42QXNnMtaS/Bozz8ZaiLSNU8wbZDe9x6NIYE4ZZkI+qUVo3VZM69z3KlbMidDqMwbr6Z+p5RlUVV/d+yoFfn9AvJquwgiHOrqskcuoY+CwensMAAJaJs30bJx/X8vMdyaGmSnZkErg/ts+iRG+ez8B/iEgEe2MzEz91oLP+9fz/44UMvEq89lfKkoGgKRkImtfeQImg+Rd7KA57dCjdN
2164QAAAABJRU5ErkJggg==",TH:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAAgElEQVRYhe3YsQmAMBBG4ZxkCVcQLFzDPa2sFLTSlA7hAE6gYKdDXPE4+L8J7kGOkKQkLBvq7qOH8KjoAbwUQAsfYOe4hF5iu583dED4I6QAWi7bQc/gYm3Ta4lJCqApgKYAmgJoNk8l9E2s9wBNAbR8rTs9g4u+FmkKoIUPENoP1IEYbO5mxksAAAAASUVORK5CYII=",TN:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADG0lEQVRYhe2YW0wUVxiAv5lZZ3a2IEuqRkDAPrQKFZsmNraJ4RIEvMSkTUVRsLbBS/vgi5rqg41tE03atPFBiaJsQoCVFtSa2NRUCWJ8NoEEUPpgECGbVhQF3XFnZxgfNmG1WhOZMWPS+Z7mJP85//nOzPnn5ICHuwgR3rTcnoQdRLcnYBdPwG08AbfxBNzG5/iABfkEttQglxYizc8BwBwcQu+4TLShBaP3mqP5HPuRCYpM6qEDBLZvBvE/XqxpEj3WyMTOb7B03Ym0zggIikz6+TbkkmVYMR2tvhHt5Omp1fYtykOtXou6bTOCIqN3XmFs5XpHJBwRmHn0JwJffo45EmFsdRVGTx+IIv71H+P/ZDVSbjaTf9/G6B/Av2kdUuZcokcaGN+x130BX0E+s7q7sOIGd5aWYfT0Iah+gmebUcpLmLx3HzGYNhVvDg4hZmYgSCKj7xVh9F23JWC7CgW21IAootU3JlYeSDm4D6W8BIBoXYh4d+9UvDQvk8nboyBJqLXVdtPbF5CXFwGghU8Bif0QqK1JBsR07m/YysMfDzNWUYk5EkHKygBAKSu2m95+GZVy5gFg9A8k2m/lIqSmYFz7i0enz6GF2zFv3GRiz3cEf21Ays1O9n3iebrY/5FZ1ovbL9N3GtgWMG+NAODLX5BoDw5hjU/gy3uHlH27UKsr8S18m9Qf9qOFwpg3byX7Dg3bTW9fQL/YBYBaUwmAFdOJhlqSAYpMWusJ3vh6B+l/tiNlZWAORwCIXbhkN70DZXRRXqKMGiZ3Pywn3t2L4FcI/taEsqL02TJ6YxAxOwtBFBldXDi1d6aLtJvAt3YGmPxnFHHObOSPPkBZU0G88wrmcIRHrWcw+gcQ5BlYDx5iXO0hduZ3fEveRwymET3SgNbcZmvy4NRRQpZJ/+MX5NJCLF1HO96EFj6VPEoU5KNu/BR122cIsozecZm7q6ogHn89BCAhkfrz9wS++gIk6flBpkm0LsT47v2OTB5ewbWK792FqLXVKGXFTx2nYxcuoYXCtr/5f+PdC7mNJ+A2noDbeAIe/3ceA72FH/P5EKoAAAAAAElFTkSuQmCC",TR:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAACt0lEQVRYhe2YT0gUURzHP7O7s6uu+YfVzLLA1rTFooIgSDJMwiIPQbeklKxjBKFQVpYpiEgH6VzYwTzawYuQYgpCgWRaYVZardoflVxD3XF2dzooi0vbOuuuzaH5nN57vPd+3y+/92Z+PNDRFsEZl6ZoLSISDFoLiBTdgNboBrRGN6A1pvUsEnMdWMtKsBQcwbRjOwCeL06krh7mm1uQ3w5HVWQowvqRCRYziQ13iS8/D4aV5CkK8qvXyO9GABCzs5Ce9+O6fhtlSd4Q0atRnQHBYiblSSuW/Dz/2GJbO65btXjGPgduas9kU+UVfjU2bbgJ1RlIbmrAerHU35+ra2Su/l7INTFFhbg7OiNTuAaqLrGY68B64Zy/v9jWvqZ4AHdHJ8aMrQBYDh9ap8TQqDJgLSsJOPOu6jrVARS3BEDS/Ua/GcEahzF9S5hSg6PqDliO5fvbSwNDeEY/qQ7gm54BwJCchK3lAd6JSURHDj8KToWn9C+oMmDK2OZve95/UL25ITmJ2OITxJ4uxphiw5i2GfbvZerkGXyzrvDVBouhbtrqey5EJXC0UPUVSuvvQdydDYA8MMT3vONhB0ofHcTrnAg4QtHIgqojJHU+8xsQ9+3BZM/E83FMVQBDqg3f1Ay+n7PMlJTjHZ9EsMZhSEiAKBhQdYTmm1vA613uCAKJtTdVBxDMFgBmL1fiHZ8EQJlfwPv1W5hSg2O8KsbfWWuSb2oaQ2oq5oMHAJazIYDU2xdyXUxRIfLLQQC8zonI1QZBdTXqulaN1N3r7ydUVWBrfYgpa+cfc0277CTcqEDq6omOyhCEV8yZRRLra4i/VApG4/KgoiAPvUEeHgEExGw7Ut8LXFU1KPLGF3PrelYRHTlYS89iKTwaUE67n3az8Ojxipl/g/4upDW6Aa3RDWiNbkDnf+c3FYXX7pwB7v0AAAAASUVORK5CYII=",TW:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAABy0lEQVRYhe2WP0sjQRiHn/0TIXBuY2GTA1nhsBEk11kId8Qyn8AqjShnaSDiB7DQ9ixECKKfIGnSHTYHglytgrthq7iKkvFIcDXZqy4oEh2EzcS7ecqZZeb37Mu8M6BRiwHf4yQ36PItyeUxE119AEgJWJYBgOs6uK7zZEw1UgLr659JpUzm5z+Sy2WwLIPV1Zmks0lhy3w0OjrCzs4XfL+JYRjs7n7l6qqddDYp+grYtsnaWhbHGSEIfjM+nmZlZRqAWi0gCG7Z3JxFiIiNjV88PHQHFvoxL3ahVMpke3uOdNpmYeHTk7mDgzOiqMPS0iH39/3DK+tCrutQKEzh+7fk8xPP5vP5Cc7PBYXCVO9gq+DfbaOeJyiXT3Bdh2q1/my+UvGZnHQol0/wPJFkxhfpK2DbJqVSlpubO46OLtjfPyUM24Rhm729U46PQ66v7yiVsti2ukJKPSW2tmYZG0tTrwviOCaT+UCzGVEs/nx1g6F4SggRsbj4g0ajRaPRYnn5kMvL4bgHpCpgWQadTtzrNp4nemOvkXQFpG7iv0EfH1aZ8IPg3bdRowvD8SvfyLuvgBZQjRZQjRZQjRZQjRZQjRZQjRbQ/O/8Ad1dlScRDb9lAAAAAElFTkSuQmCC",UA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAATUlEQVRYhe3XMQGAMBAEwQ8mkYoU5AQRKaZgR8FteTOx1tzP1iNOXHrAqQK0ArQCtAK0ArQCtAK0td/pD0gFaAVoBWgFaAVoBWgF5O8+aE4FIZp93sIAAAAASUVORK5CYII=",US:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAD7UlEQVRYhe2V3U+TZxjGf4/0bfEtpRUGtWDLqDqiotOxKdAC4ubmHMvkgMwtYdGZaIwGs4/sT9iR7miOuMSNxGwaPGAfZtPpRMz8WBYGspYdGKEtYvmwKF2pvH2lzw4cBztbAmnTrL/z68515b6v3JAlS5aMRrxT1Tq4WMPqY8G+4kQ8tljz/guGgFq4Zu+7Ozj99c/E4xotLQ1cv+5ndPQ+1dVrAbh5c5DS0qeorV3H2bM9qKqJt95+kS+/OA/AvD4ZG1mDSKV9EF5PmywpKSQajeN0FTMWniKZTOJy2QkGxwEoK7MTCk2wZIlguaOAkZFJ8i1L/zUoHJ7i4711uJdbUxrAABCJRMnPV7FZzQzduYeuz+FyFTM4GADA5SrG7w+gKDnYrGbuTz4kEolSVmYHIBgcR0pJkWczJRXOlAYQ9XVH5Hvvt/DZ8W959EijtXU71675GBoK07D1WQB6rtzC7Xbg8VRy6tRFli41cejwG3xy7CwA8/r9BXFWmGRqA3g9bVIIQWFhPs9VrebiT70YjQpNTVvo6roGQHOzh3PnfiWR0Nn+chW/994mEomyrvJpBAKfbxiA1slbLNdT2uEnG3C6inn4IIaq5qIoOYyPP8TpLGJq6i8ACgosjIxMYrfb0PU54o80bDYzM7FZpIQ8Sy6jd+9z9KNdrHIVpTSAIZmUeD3r6ey8wszMLI2NG5mbSxIIjFFZWQ6AzzeM3b6Migon3d39CCFoeq2a06cvA7Bjxwt0dl4hb2U51lR3wOtpkwBut4P6+g10dFxAVU0cOryLY0ef3PgHH7Zw/NNviMc19ux5hatXBxgaCrO1cSMC6O7uB2B/TpgSkUhtgDrvEblz5xYuX+5D03TqGzbg+2OY6ekYq1
2164avQAC3b9/Fas2jcn05V3sGMJkUtm3bxPnzvwFPNnDpUi9vjvamvAMGKSWh0ASzswmWLcsjGBhD03QsFpWpSBQAi0VF03SCgTFsNjMPHsQIhSZQlBwAQqEJEonH1H7VzjOrSlIbAMDvH6bc7WDTxpV0df1Cbq6R1taXOHHiHAAHDjTR0XGBYHCc5mYvff138PuHqalZB8CNG36klBjyzCjW/JQGEHXeI/Lgwdc5efJHNE1n9+5GenoGCIcj1NSs/cfgIA5HIQ0NGzhzphuTSWHfvldpb/8egHl9Ok5IeD1t0mzOJR7XkFJiNCpIKdH1xxiNCgCJhI6iGBBCkEjoCCFQVRMzM7MAzOvT8geklKl9nYuMQZ+OptvDghDfuZ/P7A2oztJ0e1gQmd+Bad+f6fawIDK/A0Wezen2sCAyvwP3friUbg8LIvM7gOTzdJvIkiXL/5i/AX+CliGg//NrAAAAAElFTkSuQmCC",UY:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAADBElEQVRYhe2XW2wMURiAv2m33dXq6kU1Zl3bIr1IS4n7PfUghETwIohE4kFEwgNeJB4Qgj71QcIDFbdECHErIqtJRYuqVds2qVbXttUL292Zvc6MJxusRqTRMdLvdc45+f6c///nPzCMvgiapml6SwyGOL0FBsuAAYQDMgCf3tegqSoAAckzNFZ/gGmgD8+u7GHR1jO01V7EYjHz6s5xCkv3YkmeEbPW3ePnwt3Wv+k5IDEBNNrPMXn2OkL9bbhqT/LZ9YaQtx6Pq4qMCRV0Nj5BVTXEvGXRPW2dMvvL64dU/BsxRSx96aDy9HLyFm/EaS9D8o0iJy+JoF8hSVxFv7uOZbueIAhCdE+1o5f5Ox4OuTx8VwMByUPDo9MocitTFm6h/v5JzIkRlHAPYfkj7S0+JNcVMnNXcO/UEl7eOqKL8M/8cAOOeydwOS4j9zWhaVayc3zkFiQSiUBrUwinI0SmmErJpvOkTSiNHhIIKbi7/foG0NlcTee7mxBx4+uoRo10kTc9EVWDoF/FbBG4cSnIaHEc6eOmkWYrYsqCnSSnibqIfyNaxFk5c4iPN9HRXInP34C3u495i+NpaQ6RaI5DVQQKi+MYJY7FNmMzCdYi3eXhpxRSlTBvrq/ntd1O9lSIBBRy8xMIhwU+vA8hBWyYBC/BiBVx+gZK1h4GoNcT4vGLLn0DCAdlnl/bh3lkKlm2MdgrDjEixUrmaA/t7clYrTKqYqJobTkTSzbhbqxCnLYQ+Ee6UII5iQWby8meuZ66BxUs3X4WVeknKT2frIn5yFIc87dd4u3jMoJSX1Reb2JGCbm/j9UHa0hOH0OqOBNLRjFjC1Yxa81unE8vsnL3QzwdTXq4/pIBp1FHZRkpmZPwdr3FVriONFsBdbePUrz6QMxayR/B2eb967K/4rfjtLe3nZSM8QBomvbDH/hfwPDvAdML52e9HQaFwNzLhr6B//dFZhSEq48+GDqFDN+FDJ9CppaPPr0dBsVwG9UbwwcgHDvfYOgUGm6jemP4AIbRm6/6BEMU95x97QAAAABJRU5ErkJggg==",VN:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAIAAABAJy5dAAAABmJLR0QA/wD/AP+gvaeTAAAB0klEQVRYhe2WPUvDUBSG35u0Tb9MG4q0qTiKuugPEEWtKCIqgoijooOjgouLu6DOLu7OggoO/gh1UrAVwe8qmn6RNr0OrQpWDLm5RZG80+Xcw8vDuck5h5y1NOMvSfhtgK9ygMzkAJnJATITHyBX1HBFDS5WfICUeS08p3Gx4gMUSOSDiTwXK5d9C+Kj7qYSAMFHy3li041DhULTGRCAQJ7K2nfjACSP56qHiYx9N7tARKKeVr1y9rQWiZfaNbSwfgiIracbhnMgAAUASgkhFOJnCjWAShCopGkH/tvlCMr1AAIABAfzsY00kcwrQYvkbkXRdgOW/C0/WebQd9EVLxx7fk7Tz93J7rhVGhYgAOVX4Woy+rgWxrdlonjaki9HYsYTizn7R/283VA4+aZOhVNPejPEbGvjLxMhtRdrw1JbkYi14foDBQdyxP3+ZgaoUe3RxE0DA7lfAFJmq22wdO1K9seTPaqeqg4iZYa9Q7ICCZA6dACZPX8yoZZuRONBvBxSX3aCAKRO3YYxk+TRLChuFyM3SxF8LEIU96vK9UIjypDHGOcaI5AQoKleVdv3115lj7ypPlXwM84Qy5263vqnOzVHOUBmcoDM5ACZ6c8BvQEgWYMeEe8fGQAAAABJRU5ErkJggg==",ZA:"iVBORw0KGgoAAAANSUhEUgAAADAAAAAkCAYAAADPRbkKAAAABmJLR0QA/wD/AP+gvaeTAAAC9ElEQVRYhe2YS0hUYRTHf9d7bRwfFJbvMQ0UF1pUioI4IFgLI3qBm2ihgtsog2pTjblIyFq1KSSnB7WMVkVvjDTEVCy1KLJMLCp8zCsdnfu1mhjn4UzOU/C3u5eP757/+Z/vnG8G1oguEqdqhftLJU7mhP4QLbuPoFHiEXNzzBivYbp7E1Q1GnH6RKaq0OD+UhWCV19HuDfcQ3luETmpGWjLKtCWljM31I9qMkUhVO94FeDkl3WWzr7HLDgWqcovRpOVTcregwjVwfzwEAgP8yKOrOgLDCqSzwWqEHSNveP+SA8VuUVkp6bHlBvywDEMveZEvtvjl1340zLD9b5H2Ozz6LeUoMnKIXnPPoTFjP3DaITC9UQSD3ViQYXLE2mc/ZyBXfh2w0lxRh7GumbKdIUAzA8N8vvCORYnvoU7Xg9kfYnGUJClULXexv5NJgJxw3k2YsEN+dZTm2FyykH1tgQ2JzlozJwiSRF0zSTh8HM2lnSqjZloK/VoSysiejZkwPDm4wJ3ntsoyV9HYXbwbkSyU8mAAWDWKrj9zEZI3Ijg3JAAjxTlpct0HE9l1w4NAEOWBBre6+g3a/1u6D7FVZuVWWMHiz8mQx48+BAAIEnQVJtEe9MGUrQSwXaqcOFTgBN3N/rNWupHdby1JvjdXImTOV1dx4HiypAE6w2/AsDTDbuQaB1Lp208jcUA3AgnAQlwEszZCBf/ulAgeOtUDVnTIKDblMhyd6pwERfsBpIQJCtq8ButEOV/FnsrofpRHQOW6JVQQAJi+RD7FRDrbdSngGAHWUlGHp0RGGReBQRT6+5XCbPFTuulbr6Mz4Y2cuf3XB9CnfWXrydoPPqAT2PTYQkeXASEMuu2Pwucb+/m4pVeVDW812llNWbdFelJW5qo2R6aWj/Z8oKrNwYj+m/Lin7URzvrriirMetLYirtKwhomm7NzMdY18zOnAIgull3RfEXvHOanqk5zDpZiWiHCYRlrxKxVOu+8Cogmn19jdXGX6jH7NbSLYD+AAAAAElFTkSuQmCC"};function s1(t){if(!t)return null;const n=x3[t.toUpperCase()];return n?"data:image/png;base64,"+n:null}function Gh(t){let n=2166136261;for(let r=0;r<t.length;r++)n^=t.charCodeAt(r),n=Math.imul(n,16777619);return(n>>>0)/4294967295}function L3(t,n){const[r,i]=m.useState(1);return m.useEffect(()=>{let s=!0,a=0;const o=()=>{var d;if(!s)return;const l=(d=t.current)==null?void 0:d.getScreenCTM();l&&l.a>0?i(l.a):a=requestAnimationFrame(o)};o();const c=new ResizeObserver(()=>o());return t.current&&c.observe(t.current),window.addEventListener("resize",o),()=>{s=!1,cancelAnimationFrame(a),c.disconnect(),window.removeEventListener("resize",o)}},[t,n]),r}function v3(){const{st:t,dispatch:n,scoped:r,connected:i,markRow:s,markedId:a,byId:o,lang:c,t:l}=it(),d=m.useRef(null),p=m.useRef(null),u=Mp.find(j=>j.key===t.continent),g=L3(d,t.continent),[f,L]=m.useState(new Map),[v,y]=m.useState(null);m.useEffect(()=>{const j=d.current;if(!j)return;const O=new Map;j.querySelectorAll("path[data-i2]").forEach(k=>{const _=k.dataset.i2;if(_)try{const N=k.getBBox();N.width>0&&O.set(_,{x:N.x,y:N.y,w:N.width,h:N.height})}catch{}}),L(O)},[t.continent,g]);const h=m.useMemo(()=>r.filter(j=>j.cc),[r]),b=m.useMemo(()=>{const j=new Map;return h.forEach(O=>j.set(O.cc,(j.get(O.cc)||0)+1)),j},[h]),x=m.useMemo(()=>h.map(j=>{const O=j.cc?f.get(j.cc):void 0;if(!O)return null;
2164const k=Gh(j.name||j.id||""),_=Gh((j.id||j.name||"")+"·y"),N=(k-.5)*Math.min(O.w*.55,60),I=(_-.5)*Math.min(O.h*.55,60);return{d:j,x:O.x+O.w/2+N,y:O.y+O.h/2+I}}).filter(j=>!!j),[h,f]),A=j=>g>0?j/g:j,w=m.useMemo(()=>Bo.map((j,O)=>({...j,n:r.filter(k=>vd(k)===O).length})),[r]),S=a?o.get(a):null,E=S?x.find(j=>j.d.id===S.id):null;return e.jsxs("div",{className:"mapzone",ref:p,children:[e.jsxs("svg",{ref:d,viewBox:u.viewBox,preserveAspectRatio:"xMidYMid meet",role:"img","aria-label":c==="fr"?u.fr:u.en,onMouseLeave:()=>{y(null),s(null)},children:[e.jsx("g",{children:u.countries.map((j,O)=>e.jsx("g",{className:"ct"+(j.i2&&b.get(j.i2)?"":" empty"),children:e.jsx("path",{d:j.d,"data-i2":j.i2||void 0})},O))}),e.jsx("g",{children:x.map(j=>{const O=Bo[vd(j.d)],k=!!Rt(j.d),_=i&&Lt(j.d);return e.jsxs("g",{className:"co"+(_?" done":""),onMouseEnter:N=>{var K,pe;const I=(K=p.current)==null?void 0:K.getBoundingClientRect(),ce=(pe=d.current)==null?void 0:pe.createSVGPoint();if(ce&&d.current&&I){ce.x=j.x,ce.y=j.y;const ee=ce.matrixTransform(d.current.getScreenCTM());y({x:ee.x-I.left,y:ee.y-I.top,label:j.d.name+" · "+(Dn(j.d.cc,c)||j.d.countryLabel||"")})}s(j.d.id)},onMouseLeave:()=>{y(null),s(null)},onClick:()=>n({type:"popup",id:j.d.id}),children:[e.jsx("circle",{className:"h",cx:j.x,cy:j.y,r:A(Math.max(11,O.px+7))}),e.jsx("circle",{className:"v",cx:j.x,cy:j.y,r:A(O.px),fill:O.c,stroke:k?"#DC2626":"#ffffff",strokeWidth:A(k?2.2:1.3)})]},j.d.id||j.d.name)})}),E&&e.jsx("circle",{className:"ring on",cx:E.x,cy:E.y,r:A(13),fill:"none",stroke:"#0F172A",strokeWidth:A(2)})]}),e.jsx("div",{className:"hov"+(v?" on":""),style:v?{left:v.x,top:v.y}:void 0,children:v==null?void 0:v.label}),e.jsx("div",{className:"legend",children:w.map((j,O)=>e.jsxs("span",{children:[e.jsx("i",{style:{"--c":j.c}}),c==="fr"?j.fr:j.en," ",e.jsx("b",{children:j.n})]},O))}),r.some(j=>!j.cc)&&e.jsx("div",{className:"legend",style:{left:"auto",right:10},children:e.jsxs("span",{children:["🌐 ",l.notLocated," ",e.jsx("b",{children:r.filter(j=>!j.cc).length})]})})]})}const b3={exa_similar:{fr:"Chasseur de sosies",en:"Lookalike hunter"},websets:{fr:"Jumeaux de vos meilleures cibles",en:"Twins of your best targets"},exa_semantic:{fr:"Lecture du web en langage naturel",en:"Plain-language web search"},hunter:{fr:"Dénicheur hors radar",en:"Off-radar finder"},backfill:{fr:"Rattrapage des mailles du filet",en:"Safety-net sweep"},rss:{fr:"Lecteur de presse sectorielle",en:"Trade-press reader"},editorial:{fr:"Oreille des médias experts",en:"Expert-media ear"},daily_news:{fr:"Veille du jour sur votre thèse",en:"Daily thesis watch"},google_news:{fr:"Balayage de l’actualité mondiale",en:"World-news sweep"},google_alerts:{fr:"Sentinelle mots-clés",en:"Keyword sentinel"},linkedin_posts:{fr:"Écoute des dirigeants qui s’expriment",en:"Founder-voice listener"},hackernews:{fr:"Pouls des communautés tech",en:"Tech-community pulse"},github:{fr:"Détecteur d’activité développeurs",en:"Developer-activity detector"},fundraising:{fr:"Radar levées de fonds",en:"Fresh-funding radar"},crunchbase_search:{fr:"Sonde de la base mondiale des startups",en:"Global startup probe"},linkedin_jobs:{fr:"Radar recrutement",en:"Hiring radar"},departs:{fr:"Guetteur de départs chez les concurrents",en:"Competitor-exodus scout"},pappers_fr:{fr:"Œil sur les registres français",en:"French-registry eye"},bodacc:{fr:"Vigie des cessions & liquidations",en:"Business-sale lookout"},local:{fr:"Arpenteur ville par ville",en:"City-by-city walker"},manual:{fr:"Vos propres pistes",en:"Your own leads"},make:{fr:"Moteurs cousus main pour vous",en:"Hand-built engines for you"},unknown:{fr:"Pipeline interne Stan",en:"Stan’s internal pipeline"},ma:{fr:"Flux des deals signés",en:"Signed-deals stream"},memo:{fr:"Déjà analysées par Proplace",en:"Already analysed by Proplace"},note:{fr:"Sociétés issues de nos recherches",en:"From our research notes"},media:{fr:"Actualités",en:"News"},tribunes:{fr:"Analyses & tribunes",en:"Analysis & op-eds"},listes:{fr:"Listes & classements",en:"Lists & rankings"},evenements:{fr:"Événements",en:"Events"},partenariats:{fr:"Partenariats & contrats",en:"Partnerships & contracts"},produits:{fr:"Produits & lancements",en:"Products & launches"},regul:{fr:"Réglementaire & litiges",en:"Regulation & disputes"},marche:{fr:"Bourse & marchés",en:"Markets & listings"},edito:{fr:"Edito du jour",en:"Today's editorial"},nominations:{fr:"Nominations & prises de poste",en:"Appointments & new roles"},recrutements:{fr:"Sociétés qui recrutent",en:"Companies hiring"}};function Ln(t,n){const r=Ii(t),i=b3[r];return i?i[n]:ud(t,n)}function bd(t,n){const r=new Map(xb.map((i,s)=>[i,s]));return[...t].sort((i,s)=>{const a=r.get(Js(i))??99,o=r.get(Js(s))??99;return a!==o?a-o:Ln(i,n).localeCompare(Ln(s,n))})}function y3(){const{st:t,dispatch:n,dossiers:r,t:i,lang:s,connected:a,contName:o}=it(),c=t.filters,l=m.useMemo(()=>r.filter(L=>L.continent===t.continent),[r,t.continent]),d=L=>l.filter(v=>L!=="country"&&c.country.length&&!c.country.includes(v.cc||"")?!1:Rp(v,c,a,L==="country"?void 0:L)),p=m.useMemo(()=>{const L=d("win"),v=y=>L.filter(h=>(h.date?Math.max(0,Math.floor((Date.now()-Date.parse(h.date))/864e5)):9999)<=y).length;return[v(0),v(7),v(30),L.length]},[l,c,a]),u=m.useMemo(()=>
2164{if(!a)return null;const L=d("status"),v={all:L.length,todo:0,retenu:0,pending:0,ecarte:0};return L.forEach(y=>{v[Yt(y)]+=1}),v},[l,c,a]),g=c.sector.length+c.country.length+c.engine.length+c.stage.length+(c.signalOnly?1:0)+(c.win!=="all"?1:0)+(a&&c.status!=="all"?1:0),f=(L,v,y,h="fbtn")=>e.jsxs("button",{type:"button",className:h,"aria-expanded":t.openFacet===L,onClick:()=>n({type:"openFacet",facet:L}),children:[v,e.jsx("span",{className:"sp"}),y>0&&e.jsx("span",{className:"n",children:y}),e.jsx("span",{className:"cv",children:"▸"})]});return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:"frail",children:[e.jsx("span",{className:"cap",children:i.period}),e.jsx("div",{className:"dates",children:["1","7","30","all"].map((L,v)=>e.jsxs("button",{type:"button","aria-pressed":c.win===L,onClick:()=>n({type:"filters",patch:{win:L}}),children:[e.jsx("span",{className:"rd"}),i.dates[v],e.jsx("span",{className:"dn",children:p[v]})]},L))}),a&&u&&e.jsxs("div",{className:"statusf",children:[e.jsx("span",{className:"cap",children:i.statusCap}),[["all",i.statusAll],["todo",i.statusTodo],["retenu",i.statusKeep],["pending",i.statusPending],["ecarte",i.statusDrop]].map(([L,v])=>e.jsxs("button",{type:"button","aria-pressed":c.status===L,onClick:()=>n({type:"filters",patch:{status:L}}),children:[v,e.jsx("b",{children:u[L]??0})]},L))]}),e.jsx("span",{className:"cap",children:i.refine}),e.jsxs("div",{className:"fgrid",children:[e.jsxs("button",{type:"button",className:"fbtn fsig","aria-expanded":t.openFacet==="sig",onClick:()=>n({type:"openFacet",facet:"sig"}),children:[i.fSignal,e.jsx("span",{className:"sp"}),c.signalOnly&&e.jsx("span",{className:"n",children:c.signalEngines.length||"✓"}),e.jsx("span",{className:"cv",children:"▸"})]}),f("sec",i.fSector,c.sector.length),f("pay",i.fCountry,c.country.length),f("det",i.fEngine,c.engine.length),f("sta",i.fStage,c.stage.length)]}),e.jsx("span",{className:"grow"}),e.jsxs("div",{className:"frow",children:[g>0&&e.jsxs("button",{type:"button",className:"resetbtn on",title:i.clearTitle(l.length,o),onClick:()=>n({type:"reset"}),children:[e.jsx("span",{className:"rot",children:"↺"}),e.jsx("span",{children:i.clear(g)})]}),e.jsx("button",{type:"button",className:"alertbtn",onClick:()=>n({type:"modal",modal:"alert"}),children:i.alertBtn})]})]}),t.openFacet&&e.jsx(j3,{poolFor:d})]})}function j3({poolFor:t}){const{st:n,dispatch:r,t:i,lang:s}=it(),a=n.filters,o=n.openFacet,{title:c,cols:l,options:d}=m.useMemo(()=>{if(o==="sig"){const L=t("signal").filter(h=>Rt(h)),v=new Map;L.forEach(h=>{const b=h.engine||"";v.set(b,(v.get(b)||0)+1)});const y=[{v:"*",label:i.fpSigAll,n:L.length,html:!0,on:a.signalOnly&&!a.signalEngines.length},...bd([...v.keys()],s).map(h=>({v:h,label:zr(h)+" "+Ln(h,s),n:v.get(h)||0,html:!1,on:a.signalOnly&&a.signalEngines.includes(h)}))];return{title:i.fpSigTitle,cols:2,options:y}}if(o==="sec"){const L=t("sector"),v=new Map;return L.forEach(y=>{y.sector&&v.set(y.sector,(v.get(y.sector)||0)+1)}),{title:i.fSector.toUpperCase(),cols:3,options:[...v.entries()].sort((y,h)=>h[1]-y[1]).map(([y,h])=>({v:y,label:y,n:h,html:!1,on:a.sector.includes(y)}))}}if(o==="pay"){const L=t("country"),v=new Map;return L.forEach(y=>{y.cc&&v.set(y.cc,(v.get(y.cc)||0)+1)}),{title:i.fCountry.toUpperCase(),cols:3,options:[...v.entries()].sort((y,h)=>h[1]-y[1]).map(([y,h])=>({v:y,label:Dn(y,s)||y,n:h,html:!1,on:a.country.includes(y)}))}}if(o==="det"){const L=t("engine"),v=new Map;return L.forEach(y=>{y.engine&&v.set(y.engine,(v.get(y.engine)||0)+1)}),{title:i.fEngine.toUpperCase(),cols:2,options:bd([...v.keys()],s).map(y=>({v:y,label:zr(y)+" "+Ln(y,s)+' <span style="color:var(--dim);font-size:10px">· '+fb(Js(y),s)+"</span>",n:v.get(y)||0,html:!0,on:a.engine.includes(y)}))}}const g=t("stage"),f=new Map;return g.forEach(L=>{L.stage&&f.set(L.stage,(f.get(L.stage)||0)+1)}),{title:i.fStage.toUpperCase(),cols:2,options:[...f.entries()].sort((L,v)=>v[1]-L[1]).map(([L,v])=>({v:L,label:L,n:v,html:!1,on:a.stage.includes(L)}))}},[o,n,s]),p=g=>{if(o==="sig"){if(g==="*")r({type:"filters",patch:{signalOnly:!(a.signalOnly&&!a.signalEngines.length),signalEngines:[]}});else{const L=a.signalEngines.includes(g)?a.signalEngines.filter(v=>v!==g):[...a.signalEngines,g];r({type:"filters",patch:{signalOnly:!0,signalEngines:L}})}return}r({type:"toggleFacet",facet:o==="sec"?"sector":o==="pay"?"country":o==="det"?"engine":"stage",value:g})},u=()=>{r(o==="sig"?{type:"filters",patch:{signalOnly:!1,signalEngines:[]}}:{type:"clearFacet",facet:o==="sec"?"sector":o==="pay"?"country":o==="det"?"engine":"stage"})};return e.jsxs("div",{className:"fpanel on",children:[e.jsxs("div",{className:"ph",children:[e.jsx("b",{children:c}),e.jsx("span",{className:"sp"}),e.jsx("button",{type:"button",onClick:u,children:i.fpNone}),e.jsx("button",{type:"button",onClick:()=>r({type:"openFacet",facet:null}),children:i.fpClose})]}),e.jsx("div",{className:"fcols"+(l===2?" two":""),children:d.map(g=>e.jsxs("button",{type:"button",className:"opt","aria-pressed":g.on,onClick:()=>p(g.v),children:[e.jsx("span",{className:"bx"}),g.html?e.jsx("span",{className:"l",dangerouslySetInnerHTML:{__html:g.label}}):e.jsx("span",{className:"l",children:g.label}),e.jsx("span",{className:"n",children:g.n})]},g.v))}),e.jsxs("div",{className:"pf",children:[e.jsx("span",{className:"t",children:i.alertReady}),e.jsx("button",{type:"button",className:"alertbtn",onClick:()=>r({type:"modal",modal:"alert"}),children:i.alertCreate})]})]})}const Wh=/^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;function w3({cards:t}){const{t:n,connected:r,token:i,askEvaluate:s,sessTally:a,dispatch:o,evalBusy:c}=it(),[l,d]=m.useState(""),[p,u]=m.useState(!1),[g,f]=m.useState(""),[L,v]=m.useState(!1),[y,h]=m.useState(""),[b,x]=m.useState([]),A=m.useRef(!1),w=l.trim()?Wh.test(l.trim())?n.evalUrl:n.evalName:n.evalWaiting,S=m.useMemo(()=>g.split(`
2165`).map(k=>
2165k.trim()).filter(Boolean).slice(0,15),[g]),E=b.length?b:t,j=()=>{const k=l.trim();k&&(s(null,k),d(""))},O=async()=>{if(!r){s(null,S[0]||"");return}if(!S.length||L)return;v(!0),A.current=!1;const k=[];for(let _=0;_<S.length&&!A.current;_++){h(n.evaluating(_+1,S.length,S[_]));const N=await Ix(i,S[_],"atelier");if(k.unshift({name:N.company||S[_],verdict:N.verdict,reason:N.reason||"",remaining:N.remaining??null}),x([...k]),N.verdict==="quota"){k.unshift({name:"",verdict:"quota",reason:n.quota(S.length-_-1),remaining:0}),x([...k]);break}}h(""),f(""),v(!1)};return e.jsxs("div",{className:"demand",children:[e.jsxs("div",{className:"drow",children:[e.jsxs("span",{className:"dfield",children:[e.jsx("input",{value:l,placeholder:n.evalPh,autoComplete:"off",maxLength:200,onChange:k=>d(k.target.value),onKeyDown:k=>{k.key==="Enter"&&j()}}),e.jsx("span",{className:"detect"+(Wh.test(l.trim())?" url":""),children:w})]}),e.jsxs("button",{type:"button",className:"evalbtn"+(c?" loading":""),disabled:c,onClick:j,children:[e.jsx("span",{className:"fill"}),n.evalGo]}),e.jsx("button",{type:"button",className:"dmulti",onClick:()=>u(!p),children:n.evalMulti})]}),p&&e.jsxs("div",{className:"bulk on",children:[e.jsx("textarea",{value:g,placeholder:n.bulkPh,onChange:k=>f(k.target.value.split(`
2166`).slice(0,15).join(`
2167`))}),e.jsxs("div",{className:"side",children:[e.jsxs("button",{type:"button",className:"evalbtn"+(L?" loading":""),style:{justifyContent:"center"},disabled:L||!S.length,onClick:()=>{O()},children:[e.jsx("span",{className:"fill"}),L&&y?y:n.evalList]}),e.jsx("span",{className:"hint",children:n.bulkCount(S.length)})]})]}),E.slice(0,1).map((k,_)=>{const N=k.verdict==="kept",I=k.verdict==="quota",ce=N?"var(--brand)":I?"var(--bolt)":"var(--red)",K=N?"var(--brand-l)":I?"#FEF3C7":"#FEF2F2";return e.jsxs("div",{className:"result on",style:{"--c":ce,"--bgc":K},children:[e.jsx("span",{className:"vv",children:e.jsx("span",{className:"vp",children:N?"✓ "+n.kept:I?"⏳":"✗ "+n.dropped})}),k.name&&e.jsx("span",{className:"rn",children:k.name}),e.jsx("span",{className:"rr",children:k.reason?e.jsxs(e.Fragment,{children:[e.jsx("b",{children:n.why})," ",k.reason]}):null}),!I&&e.jsx("button",{type:"button",className:"go",onClick:()=>o({type:"modal",modal:"space"}),children:n.seeSpace(N?n.statusKeep.replace("✅ ",""):n.statusDrop.replace("❌ ",""))})]},_)}),r&&(a.kept+a.dropped>0||E.length>0)&&e.jsxs("div",{className:"tally",children:[e.jsx("span",{dangerouslySetInnerHTML:{__html:n.session(a.kept,a.dropped)}})," ","·"," ",e.jsx("a",{onClick:()=>o({type:"modal",modal:"space"}),children:n.seeMySpace})]})]})}function k3(){const{st:t,dispatch:n,base:r,t:i,lang:s,connected:a,contName:o,askEvaluate:c,markRow:l,markedId:d,byId:p}=it(),u=m.useMemo(()=>Pp(r,t.sort),[r,t.sort]),g=m.useMemo(()=>u.filter(S=>!(a&&Lt(S))),[u,a]),f=u.length-g.length,L=a&&(t.filters.status==="retenu"||t.filters.status==="ecarte"||t.filters.status==="pending"),v=u,y=m.useMemo(()=>(a?u.filter(S=>Yt(S)==="todo"):u).map(S=>S.id),[u,a]),h=m.useMemo(()=>u.filter(S=>Rt(S)&&!(a&&Lt(S))).length,[u,a]),b=t.filters.win==="1"?0:t.filters.win==="7"?1:t.filters.win==="30"?2:3,x=L?t.filters.status==="retenu"?i.keptByStan:t.filters.status==="ecarte"?i.droppedByStan:i.pendingByStan:i.toSend,A=L?u.length:a?y.length:u.length,w=(S,E,j,O)=>e.jsxs("button",{type:"button","data-s":S,className:j,"aria-sort":t.sort.key===S?t.sort.dir===1?"ascending":"descending":"none",style:O?{justifyContent:"flex-end"}:void 0,onClick:()=>n({type:"sort",key:S}),children:[E,e.jsx("span",{className:"ar",children:t.sort.key===S&&t.sort.dir===1?"▴":"▾"})]});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"listhead",children:[e.jsxs("span",{className:"main",children:[e.jsx("b",{children:A})," ",e.jsx("span",{children:x})]}),e.jsx("span",{className:"dot",children:"·"}),e.jsx("span",{className:"ctx",children:t.pileMode?i.pileCtx(u.length,f):i.listCtx(o,i.wins[b],a?f:0)}),!t.pileMode&&e.jsxs("span",{className:"groupbar",style:{marginLeft:"auto",display:"flex",gap:4,alignItems:"center",flex:"none"},children:[e.jsx("span",{className:"gl",style:{fontSize:8,letterSpacing:".16em",color:"var(--dim)"},children:i.groupBy}),e.jsx("button",{type:"button",className:"abtn","aria-pressed":t.groupBy==="engine",style:t.groupBy==="engine"?Qh:void 0,onClick:()=>n({type:"groupBy",groupBy:"engine"}),children:i.gEngine}),e.jsx("button",{type:"button",className:"abtn","aria-pressed":t.groupBy==="none",style:t.groupBy==="none"?Qh:void 0,onClick:()=>n({type:"groupBy",groupBy:"none"}),children:i.gNone})]}),t.pileMode&&e.jsx("button",{type:"button",className:"exitpile",onClick:()=>n({type:"pile",on:!1}),children:i.exitPile}),y.length>0&&!L&&e.jsxs("button",{type:"button",className:"chain",onClick:()=>n({type:"chainStart",queue:y}),children:[e.jsx("span",{className:"b",children:"▶"})," ",i.chainN(y.length)]})]}),h>0&&!t.filters.signalOnly&&!t.pileMode&&e.jsxs("div",{className:"sigstrip",children:[e.jsx("span",{className:"t",dangerouslySetInnerHTML:{__html:i.sigStrip(h)}}),e.jsx("span",{className:"s",children:i.sigStripSub}),e.jsx("button",{type:"button",onClick:()=>n({type:"filters",patch:{signalOnly:!0,signalEngines:[]}}),children:i.sigStripGo})]}),e.jsxs("div",{className:"cols",children:[e.jsx("span",{}),w("country",i.colCountry),w("name",i.colName),w("amount",i.colAmount,"h-amt",!0),w("stage",i.colStage,"h-stade"),w("signal",i.colSignal,"h-sig"),e.jsx("span",{})]}),e.jsxs("div",{className:"list",children:[v.length===0&&e.jsx("div",{className:"void",children:L?i.voidStatus:i.void}),v.length>0&&t.groupBy==="engine"&&!t.pileMode?e.jsx(A3,{list:v}):v.length>0&&e.jsx(a1,{list:v,groupKey:"flat"})]}),(d&&p.get(d),null),void 0]})}const Qh={background:"var(--ink)",color:"#fff",borderColor:"var(--ink)"};function A3({list:t}){const{lang:n,t:r,dispatch:i,connected:s}=it(),a=m.useMemo(()=>{const o=new Map;return t.forEach(c=>{const l=c.engine||"unknown",d=o.get(l)||[];d.push(c),o.set(l,d)}),bd([...o.keys()],n).map(c=>
2167({key:c,items:o.get(c)}))},[t,n]);return e.jsx(e.Fragment,{children:a.map(o=>{const c=o.items.filter(l=>!(s&&Lt(l))).length;return e.jsxs(m.Fragment,{children:[e.jsxs("div",{className:"grp-h",children:[e.jsx("span",{className:"ic",children:zr(o.key)}),e.jsxs("span",{children:[e.jsx("span",{className:"t",children:Ln(o.key,n)}),e.jsxs("div",{className:"s",children:[o.items.length," · ",Do(o.key,n)]})]}),c>0&&e.jsxs("button",{type:"button",className:"go",onClick:()=>i({type:"chainStart",queue:o.items.filter(l=>!(s&&Lt(l))).map(l=>l.id)}),children:["▶ ",r.chain.replace("⏩ ","")," (",c,")"]})]}),e.jsx(a1,{list:o.items,groupKey:o.key})]},o.key)})})}function a1({list:t,groupKey:n}){const{st:r,dispatch:i,t:s,lang:a}=it(),o=r.shown[n]||po;return e.jsxs(e.Fragment,{children:[t.slice(0,o).map(c=>e.jsx(S3,{d:c},c.id||c.name)),t.length>o&&e.jsx("button",{type:"button",className:"moregrp",onClick:()=>i({type:"more",group:n,by:po}),children:s.more(Math.min(po,t.length-o),t.length-o)}),void 0]})}function S3({d:t}){const{st:n,dispatch:r,t:i,lang:s,connected:a,askEvaluate:o,markRow:c,markedId:l,evalBusy:d}=it(),p=Bo[vd(t)],u=a&&Lt(t),g=u?Yt(t):null,f=Rt(t);return e.jsxs("div",{className:"row"+(l===t.id?" on":""),onMouseEnter:()=>c(t.id),onMouseLeave:()=>c(null),onClick:()=>r({type:"popup",id:t.id}),children:[e.jsx("span",{className:"pt",style:{"--c":p.c}}),e.jsx(l1,{o:t}),e.jsxs("span",{className:"nd",children:[e.jsx("span",{className:"rnm",title:t.name,children:t.name}),e.jsx("span",{className:"rds",title:t.tagline||t.headline||"",children:t.tagline||t.headline||t.reasoning||""})]}),e.jsx("span",{className:"c-amt"+(t.amountEur?"":" none"),children:t.amountEur?Br(t.amountEur,s):"—"}),e.jsx("span",{className:"c-stade",children:(t.stage||"").toUpperCase()}),e.jsx("span",{className:"c-sig",children:f?e.jsxs(e.Fragment,{children:[e.jsx(ml,{o:t}),e.jsx(gl,{o:t,src:!0})]}):e.jsxs("span",{className:"mo",children:[zr(t.engine)," ",Ln(t.engine,s)]})}),e.jsx("span",{onClick:L=>L.stopPropagation(),children:u?e.jsxs("span",{className:"verdict",title:t.reasoning||"",style:{"--c":g==="retenu"?"var(--brand)":g==="pending"?"var(--bolt)":"var(--red)"},children:[g==="retenu"?"✓ "+i.kept:g==="pending"?"📞 "+i.pending:"✗ "+i.dropped,typeof t.score=="number"&&t.score>0&&e.jsx("b",{children:t.score})]}):e.jsxs("button",{type:"button",className:"rev",disabled:d,onClick:()=>o(t),children:[e.jsx("span",{className:"fill"}),i.evalGo]})}),void 0]})}function E3(){const{st:t,dispatch:n,byId:r,t:i,lang:s,connected:a,askEvaluate:o,doAnalyse:c,doDecide:l,evalBusy:d}=it(),p=t.popupId?r.get(t.popupId):null;if(!p)return null;const u=Rt(p),g=a&&Lt(p),f=g?Yt(p):null;return Vn.createPortal(e.jsxs("div",{className:"atl",children:[e.jsx("style",{children:N3}),e.jsxs("div",{className:"pop on atl-pop-center",onClick:L=>L.stopPropagation(),children:[e.jsxs("div",{className:"ph",children:[e.jsxs("div",{style:{flex:1},children:[e.jsx("h3",{children:p.name}),e.jsx("span",{className:"id",children:i.detected(i.daysAgo(br(p.date)),Ln(p.engine,s))})]}),e.jsx("button",{type:"button",className:"x",onClick:()=>n({type:"popup",id:null}),children:"×"})]}),e.jsxs("div",{className:"pb",children:[e.jsxs("div",{className:"tags",children:[p.cc&&e.jsx("span",{className:"hi",children:(Dn(p.cc,s)||p.countryLabel||"").toUpperCase()}),p.sector&&e.jsx("span",{children:p.sector.toUpperCase()}),p.stage&&e.jsx("span",{children:p.stage.toUpperCase()}),typeof p.amountEur=="number"&&p.amountEur>0&&e.jsx("span",{children:Br(p.amountEur,s)})]}),(p.tagline||p.headline)&&e.jsxs("div",{className:"fld",children:[e.jsx("span",{className:"l",children:i.desc}),e.jsx("p",{children:p.tagline||p.headline})]}),e.jsxs("div",{className:"fld",children:[e.jsx("span",{className:"l",children:i.how}),e.jsxs("p",{children:[zr(p.engine)," ",e.jsx("b",{children:Ln(p.engine,s)})," — ",Do(p.engine,s),p.noteTitle&&e.jsxs(e.Fragment,{children:[" · ",p.noteTitle]})]}),u?e.jsxs("p",{style:{marginTop:9},children:[e.jsx(ml,{o:p,lg:!0})," ",e.jsx(gl,{o:p,src:!0}),e.jsxs("span",{style:{display:"block",marginTop:5,fontSize:"11.5px",color:"var(--muted)"},children:[i.signaledOn(n1(u,s))," · ",i.win7(r1(u,s))]})]}):e.jsx("p",{style:{marginTop:5,fontSize:"11.5px",color:"var(--dim)"},children:i.noSignal})]}),(p.reasoning||p.summary)&&e.jsxs("div",{className:"fld",children:[e.jsx("span",{className:"l",children:g?i.verdictCap:i.memo}),e.jsx("p",{className:"memo",children:p.reasoning||""})]}),g&&e.jsxs("div",{className:"fld",children:[e.jsxs("p",{style:{color:f==="retenu"?"var(--brand-d)":f==="pending"?"var(--bolt)":"var(--red)",fontWeight:700},children:[f==="retenu"?"✓ "+i.kept:f==="pending"?"📞 "+i.pending:"✗ "+i.dropped,typeof p.score=="number"&&p.score>0?" · "+i.score(p.score):""]}),f==="pending"&&e.jsxs("div",{style:{display:"flex",gap:8,marginTop:8,alignItems:"center",flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:12,color:"var(--muted)"},children:i.callHint}),e.jsx("button",{type:"button",className:"abtn p",onClick:()=>l(p,!0),children:i.callKeep}),e.jsx("button",{type:"button",className:"abtn",onClick:()=>l(p,!1),children:i.callDrop})]}),f==="retenu"&&!p.memoUrl&&e.jsx("button",{type:"button",className:"abtn p",style:{marginTop:8},onClick:()=>c(p),children:i.analyse}),p.memoUrl&&e.jsx("a",{className:"abtn",style:{display:"inline-block",marginTop:8},href:p.memoUrl,target:"_blank",rel:"noopener noreferrer",children:"📗 Mémo →"})]})]}),!g&&e.jsx("div",{className:"pf",children:e.jsxs("button",{type:"button",className:"evalbtn",style:{width:"100%",justifyContent:"center"},disabled:d,onClick:()=>{o(p)},children:[e.jsx("span",{className:"fill"}),i.evalArrow]})})]}),e.jsx("div",{className:"atl-pop-veil",onClick:()=>n({type:"popup",id:null})})]}),document.body)}const N3=`
2168.atl-pop-veil{position:fixed;inset:0;z-index:59;background:rgba(15,23,42,.25)}
2169.atl .pop.atl-pop-center{position:fixed;left:50%;
2169top:50%;transform:translate(-50%,-50%);z-index:60;width:min(400px,calc(100vw - 24px))}
2170`;function C3(){const{st:t,dispatch:n,byId:r,t:i,lang:s,connected:a,askEvaluate:o,evalBusy:c}=it(),l=t.chain.queue.map(g=>r.get(g)).filter(g=>!!g),d=t.chain.idx,p=l[d],u=d>=l.length;return Vn.createPortal(e.jsx("div",{className:"atl",children:e.jsx("div",{className:"modal on",children:e.jsxs("div",{className:"fcard",children:[e.jsxs("div",{className:"fh",children:[e.jsx("span",{className:"c",children:u?i.finished:`${d+1} / ${l.length}`}),e.jsx("span",{className:"p",children:e.jsx("i",{style:{width:(u?100:d/Math.max(1,l.length)*100)+"%"}})}),e.jsx("button",{type:"button",className:"x",onClick:()=>n({type:"modal",modal:null}),children:"×"})]}),e.jsx("div",{className:"fb",children:u||!p?e.jsxs("div",{className:"fin",children:[e.jsx("div",{className:"em",children:"🏁"}),e.jsx("div",{className:"t",children:i.chainDone}),e.jsx("div",{className:"s",children:i.chainDoneSub(l.length)})]}):e.jsxs(e.Fragment,{children:[e.jsx("h2",{children:p.name}),e.jsx("div",{className:"sub",children:[Dn(p.cc,s)||p.countryLabel,p.sector,p.stage,i.daysAgo(br(p.date))].filter(Boolean).map(g=>String(g).toUpperCase()).join(" · ")}),e.jsxs("div",{className:"tags",children:[e.jsx("span",{className:"hi",children:Ln(p.engine,s).toUpperCase()}),typeof p.amountEur=="number"&&p.amountEur>0&&e.jsx("span",{children:Br(p.amountEur,s)})]}),Rt(p)&&e.jsxs("div",{style:{marginBottom:12},children:[e.jsx(ml,{o:p,lg:!0})," ",e.jsx(gl,{o:p,src:!0})]}),(p.tagline||p.headline)&&e.jsxs("div",{className:"fld",children:[e.jsx("span",{className:"l",children:i.desc}),e.jsx("p",{children:p.tagline||p.headline})]}),p.reasoning&&e.jsxs("div",{className:"fld",children:[e.jsx("span",{className:"l",children:i.memo}),e.jsx("p",{className:"memo",children:p.reasoning})]}),a&&Lt(p)&&e.jsxs("div",{className:"vbox",style:{"--c":Yt(p)==="retenu"?"var(--brand)":Yt(p)==="pending"?"var(--bolt)":"var(--red)",marginTop:12},children:[e.jsx("span",{className:"vt",children:Yt(p)==="retenu"?"✓ "+i.kept:Yt(p)==="pending"?"📞 "+i.pending:"✗ "+i.dropped}),e.jsx("span",{className:"vd",children:p.reasoning||""})]})]})}),e.jsxs("div",{className:"ff",children:[!u&&p&&!(a&&Lt(p))&&e.jsxs("button",{type:"button",className:"evalbtn"+(c?" loading":""),style:{flex:1,justifyContent:"center",padding:15,fontSize:15},disabled:c,onClick:()=>{o(p)},children:[e.jsx("span",{className:"fill"}),i.launchEval]}),e.jsx("button",{type:"button",className:"abtn",style:{flex:"0 0 130px"},onClick:()=>n(u?{type:"modal",modal:null}:{type:"chainNext"}),children:u?i.closeBtn:i.skip})]})]})})}),document.body)}function _3(){const{st:t,dispatch:n,t:r,lang:i,scoped:s,contName:a}=it(),[o,c]=m.useState(""),[l,d]=m.useState(!1),[p,u]=m.useState(!1),g=t.filters,f=m.useMemo(()=>s.filter(h=>Rt(h)).length,[s]),L=g.win==="1"?0:g.win==="7"?1:g.win==="30"?2:3,v=async()=>{if(!(!/.+@.+\..+/.test(o)||p)){u(!0);try{await fetch(`${_e}/mes-secteurs/subscribe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:o.trim(),sectors:g.sector,countries:g.country,source:"atelier",website:""})}),d(!0)}finally{u(!1)}}},y=[[r.amRows.continent,a],[r.amRows.since,r.amSince[L]],[r.amRows.signal,g.signalOnly?r.amOnlyOpen:r.amAnySignal],[r.amRows.engines,g.engine.length?g.engine.map(h=>Ln(h,i)).join(", "):r.amAllEngines],[r.amRows.sectors,g.sector.length?g.sector.join(", "):r.amAllSectors],[r.amRows.countries,g.country.length?g.country.map(h=>Dn(h,i)||h).join(", "):r.amAllCountries],[r.amRows.stages,g.stage.length?g.stage.join(", "):r.amAllStages]];return Vn.createPortal(e.jsx("div",{className:"atl",children:e.jsx("div",{className:"modal on",children:e.jsxs("div",{className:"mcard",children:[e.jsxs("div",{className:"mh",children:[e.jsx("span",{className:"no g",children:"🔔"}),e.jsx("h2",{children:r.alertTitle}),e.jsx("button",{type:"button",className:"x",onClick:()=>n({type:"modal",modal:null}),children:"×"})]}),e.jsx("div",{className:"mb",children:l?e.jsxs("div",{className:"fin",children:[e.jsx("div",{className:"em",children:"🔔"}),e.jsx("div",{className:"t",children:r.amOk}),e.jsx("div",{className:"s",dangerouslySetInnerHTML:{__html:r.amOkSub(o)}})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"crit",children:y.map(([h,b])=>e.jsxs("div",{className:"r",children:[e.jsx("span",{className:"k",children:h}),e.jsx("span",{className:"v",dangerouslySetInnerHTML:{__html:b}})]},h))}),e.jsxs("div",{className:"mfield",children:[e.jsx("input",{type:"email",placeholder:r.amMail,autoComplete:"email",value:o,onChange:h=>c(h.target.value),onKeyDown:h=>{h.key==="Enter"&&v()}}),e.jsxs("button",{type:"button",className:"evalbtn"+(p?" loading":""),style:{padding:"12px 18px"},onClick:()=>void v(),children:[e.jsx("span",{className:"fill"}),r.amActivate]})]}),e.jsx("p",{className:"mnote",dangerouslySetInnerHTML:{__html:r.amNote(s.length,f)}}),e.jsx("p",{className:"mnote",children:r.amHonest}),e.jsx("p",{className:"mnote",style:{borderLeft:"3px solid var(--red)",paddingLeft:11,color:"#9F5A5A"},dangerouslySetInnerHTML:{__html:r.amUrgency}})]})})]})})}),document.body)}function T3(){const{st:t,dispatch:n,dossiers:r,t:i,connected:s}=it(),a=m.useMemo(()=>s?r.filter(p=>Lt(p)):[],[r,s]),o=m.useMemo(()=>Pp(a.filter(p=>Yt(p)==="retenu"),{key:"signal",dir:-1}),[a]),c=m.useMemo(()=>a.filter(p=>Yt(p)==="ecarte"),[a]),l=t.spaceTab==="retenu"?o:c,d=t.spaceTab==="retenu"?"var(--brand)":"var(--red)";return Vn.createPortal(e.jsx("div",{className:"atl",children:e.jsx("div",{className:"modal on",children:e.jsxs("div",{className:"mcard",children:[e.jsxs("div",{className:"mh",children:[e.jsx("h2",{children:i.spaceTitle}),e.jsx("button",{type:"button",className:"x",onClick:()=>n({type:"modal",modal:null}),children:"×"})]}),e.jsxs("div",{className:"mb",children:[e.jsxs("div",{className:"sp-tabs",children:[e.jsxs("button",{type:"button",className:"sp-tab",style:{"--c":"var(--brand)"},"aria-selected":t.spaceTab==="retenu",onClick:()=>n({type:"spaceTab",tab:"retenu"}),children:["✓ ",i.statusKeep.replace("✅ ","")," ",e.jsx("b",{children:o.length})]}),e.jsxs("button",{type:"button",className:"sp-tab",style:{"--c":"var(--red)"},"aria-selected":t.spaceTab==="ecarte",onClick:()=>n({type:"spaceTab",tab:"ecarte"}),children:["✗ ",i.statusDrop.replace("❌ ","")," ",e.jsx("b",{children:c.length})]})]}),l.length===0&&e.jsx("div",{className:"sp-empty",children:i.spEmpty}),l.slice(0,40).map(p=>e.jsxs("div",{className:"sp-row",children:[e.jsx("span",{className:"sc",style:{"--c":d},children:typeof p.score=="number"&&p.score>0?p.score:"—"}),e.jsxs("span",{children:[e.jsx("div",{className:"nm",children:p.name}),e.jsx("div",{className:"rr",children:p.reasoning||p.tagline||""})]})]}
2170,p.id)),e.jsx("p",{className:"mnote",dangerouslySetInnerHTML:{__html:i.spNote}})]})]})})}),document.body)}const o1=m.createContext(null),it=()=>{const t=m.useContext(o1);if(!t)throw new Error("AtelierCtx manquant");return t};function ml({o:t,lg:n}){const{lang:r}=it(),i=Rt(t);return i?e.jsxs("span",{className:"sig"+(n?" sig-lg":""),title:Yh(i,r),children:[i.emoji," ",Yh(i,r)]}):null}function gl({o:t,src:n}){const{lang:r,t:i}=it(),s=Rt(t);if(!s)return null;const a=d3(s),o=p3(s);return e.jsxs("em",{className:"sigwin"+(o?" hot":""),title:i.signaledOn(n1(s,r))+" · "+i.win7(r1(s,r)),children:[e.jsx("span",{className:"gg",children:Array.from({length:7},(c,l)=>e.jsx("i",{className:l<a?"on":""},l))}),e.jsx("span",{className:"lb",children:o?i.lastDay:i.daysLeft(Math.max(0,s.left??0))}),n&&s.url&&e.jsx("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",title:i.seeSource,onClick:c=>c.stopPropagation(),children:"↗"})]})}function l1({o:t}){const{lang:n}=it(),r=s1(t.cc),i=t.cc?Dn(t.cc,n)||t.countryLabel||t.cc:t.countryLabel||"—";return e.jsx("span",{className:"c-flag",title:i||void 0,children:r?e.jsx("img",{src:r,width:24,height:18,alt:i||""}):e.jsx("span",{className:"em",children:"🌐"})})}function q3(){const{scoped:t,dossiers:n,st:r,t:i,dispatch:s,contName:a}=it(),o=m.useMemo(()=>{const l=n.filter(d=>d.continent===r.continent&&Rt(d));return Pp(l,{key:"signal",dir:-1}).slice(0,30)},[n,r.continent]),c=l=>o.map(d=>(Rt(d),e.jsxs("button",{type:"button",className:"tk"+(Lt(d)?" spent":""),onClick:()=>s({type:"popup",id:d.id}),title:d.name+(d.tagline?" — "+d.tagline:""),children:[e.jsx(ml,{o:d}),e.jsxs("span",{className:"who",children:[e.jsx(l1,{o:d}),e.jsx("span",{className:"co",children:d.name})]}),typeof d.amountEur=="number"&&d.amountEur>0&&e.jsx("span",{className:"am",children:F3(d.amountEur)}),d.sector&&e.jsx("span",{className:"mt",children:d.sector}),e.jsx(gl,{o:d}),e.jsx("span",{className:"tkgo",children:"→"})]},l+(d.id||d.name))));return e.jsxs("div",{className:"ticker",children:[e.jsxs("span",{className:"lbl",children:[e.jsx("i",{}),i.live,e.jsx("span",{className:"cnt",children:o.length})]}),e.jsx("div",{className:"win",children:o.length?e.jsxs("div",{className:"run",children:[c(0),c(1)]}):e.jsx("div",{className:"run",style:{animation:"none"},children:e.jsx("span",{className:"tk quiet",children:i.liveQuiet(a)})})})]})}function F3(t){return t>=1e9?(t/1e9).toFixed(1).replace(".0","").replace(".",",")+" Md€":t>=1e6?Math.round(t/1e6)+" M€":Math.round(t/1e3)+" k€"}function O3(){const{dossiers:t,connected:n,t:r,st:i,dispatch:s}=it(),a=m.useMemo(()=>t.filter(p=>br(p.date)===0),[t]),o=m.useMemo(()=>n?t.filter(p=>Yt(p)==="todo"):a.filter(p=>!Lt(p)),[t,a,n]),c=a.length-a.filter(p=>!Lt(p)).length,l=a.length?Math.min(100,c/a.length*100):100;let d;return n?d=o.length?r.goalTodo(o.length):r.goalCleared:a.length?c===0?d=r.goalSourced(a.length):c>=a.length?d=r.goalCleared:d=r.goalDone(c,a.length):d=r.goalSourced(0),e.jsxs("div",{className:"goal",children:[e.jsx("span",{className:"gtxt",dangerouslySetInnerHTML:{__html:d}}),e.jsx("div",{className:"pbar",children:e.jsx("i",{style:{width:l+"%"}})}),o.length>0&&e.jsx("button",{type:"button",className:"pilebtn",onClick:()=>{s(n?{type:"filters",patch:{status:"todo"}}:{type:"pile",on:!0})},children:i.pileMode||n&&i.filters.status==="todo"?r.goalContinue(o.length):r.goalTreat}),e.jsx("span",{className:"gspace"})]})}function M3(){const{dossiers:t,st:n,dispatch:r,connected:i,lang:s,t:a}=it(),[o,c]=m.useState(!1),l=m.useMemo(()=>{const d={};return t.forEach(p=>{p.continent&&Rp(p,n.filters,i)&&(d[p.continent]=(d[p.continent]||0)+1)}),d},[t,n.filters,i]);return e.jsxs("div",{className:"conts",children:[Jx.map(d=>{const p=Mp.find(u=>u.key===d);return e.jsxs("button",{type:"button",className:"cbtn","aria-selected":n.continent===d,onClick:()=>
2170r({type:"continent",key:d}),children:[s==="fr"?p.fr:p.en,e.jsx("span",{className:"n",children:l[d]||0})]},d)}),e.jsx("span",{className:"side",children:e.jsx("button",{type:"button",onClick:()=>{var d;c(!o),(d=document.getElementById("atl-stage"))==null||d.classList.toggle("folded")},children:o?a.showMap:a.hideMap})})]})}function c1({demo:t=!1}){const{lang:n}=ae(),r=Jy[n],i=s3(t,n),[s,a]=m.useReducer(g3,void 0,()=>m3("europe")),[o,c]=m.useState(null),[l,d]=m.useState(null),[p,u]=m.useState({kept:0,dropped:0}),[g,f]=m.useState(!1),[,L]=m.useState(0),v=m.useRef([]),y=i.session.token||"",h=i.connected,b=m.useMemo(()=>{const N=new Map;return i.dossiers.forEach(I=>{I.id&&N.set(I.id,I)}),N},[i.dossiers]),x=m.useMemo(()=>i.dossiers.filter(N=>f3(N,s,h)),[i.dossiers,s,h]),A=m.useMemo(()=>s.pileMode?i.dossiers.filter(N=>br(N.date)===0):x,[x,s.pileMode,i.dossiers]),w=Mp.find(N=>N.key===s.continent),S=n==="fr"?w.fr:w.en,E=(N,I)=>{N&&(I.verdict==="kept"?N.verdict=N.verdict||"MATCH":I.verdict==="ruled_out"&&(N.verdict="NO MATCH"),I.reason&&(N.reasoning=I.reason),L(ce=>ce+1))},j=(N,I)=>{const ce=((N==null?void 0:N.name)||I||"").trim();if(!h){d({kicker:ce});return}!ce||g||(f(!0),(async()=>{try{const K=await Ix(y,ce,"atelier"),pe={name:K.company||ce,verdict:K.verdict,reason:K.reason||"",remaining:K.remaining??null};v.current=[pe,...v.current].slice(0,8),K.verdict==="kept"&&u(ee=>({...ee,kept:ee.kept+1})),K.verdict==="ruled_out"&&u(ee=>({...ee,dropped:ee.dropped+1})),E(N||i.dossiers.find(ee=>(ee.name||"").toLowerCase()===ce.toLowerCase()),pe)}finally{f(!1)}})())},O=N=>{if(!h){d({kicker:N.name});return}ly(y,"analysis_request",N.name||"","")},k=(N,I)=>{h&&(iy(y,{status:I?"Validé":"Écarté",airtable_id:N.airtableId,check_id:N.checkId,company:N.name}),N.ceoStatus=I?"Validé":"Écarté",L(ce=>ce+1))},_={st:s,dispatch:a,t:r,lang:n,connected:h,token:y,dossiers:i.dossiers,scoped:x,base:A,byId:b,contName:S,askEvaluate:j,doAnalyse:O,doDecide:k,sessTally:p,markRow:c,markedId:o,evalBusy:g};return m.useEffect(()=>{const N=I=>{I.key==="Escape"&&(a({type:"popup",id:null}),a({type:"modal",modal:null}),a({type:"openFacet",facet:null}))};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[]),e.jsx(o1.Provider,{value:_,children:e.jsxs("div",{className:"atl",children:[e.jsx("style",{children:e3}),e.jsxs("div",{className:"app",children:[e.jsx(q3,{}),e.jsx(O3,{}),e.jsx(M3,{}),e.jsx("div",{className:"fzone",children:e.jsxs("div",{className:"stage",id:"atl-stage",children:[e.jsx(v3,{}),e.jsx(y3,{})]})}),e.jsx(w3,{cards:v.current}),e.jsx(k3,{}),i.loading&&e.jsx("div",{className:"void",children:r.loading}),i.error&&!i.loading&&e.jsxs("div",{className:"void",children:[r.loadError," ",e.jsx("button",{type:"button",className:"abtn",onClick:i.refresh,children:r.retry})]})]}),s.popupId&&e.jsx(E3,{}),s.modal==="chain"&&e.jsx(C3,{}),s.modal==="alert"&&e.jsx(_3,{}),s.modal==="space"&&e.jsx(T3,{}),l&&e.jsx(Qr,{variant:"acquirer",initialCompany:Zh().co,initialWebsite:Zh().site,onClose:()=>d(null)})]})})}function Zh(){try{return{co:localStorage.getItem("ppmap:acquirer")||"",site:localStorage.getItem("ppmap:acquirerSite")||""}}catch{return{co:"",site:""}}}const Kh="v2",Jh=t=>t==="v1"||t==="v2";function d1(){if(typeof window>"u")return Kh;let t=null,n=!1;try{const i=new URLSearchParams(window.location.search);t=i.get("ui"),n=i.get("embed")==="1"}catch{}if(t==="reset"&&(ft("ui",""),t=null),Jh(t))return n||ft("ui",t),t;const r=fn("ui","");return Jh(r)?r:Kh}const R3=m.lazy(()=>Vr(()=>import("./AtelierV2Section-Cua_IQbO.js"),__vite__mapDeps([0,1,2,3,4])));function P3(){const{lang:t}=ae(),n=t==="fr",r=m.useRef(null),[i,s]=m.useState(!1),a=d1();return m.useEffect(()=>{const o=r.current;if(!o)return;const c=new IntersectionObserver(l=>{l[0]&&l[0].isIntersecting&&(s(!0),c.disconnect())},{rootMargin:"600px"});return c.observe(o),()=>c.disconnect()},[]),e.jsxs("section",{className:"df",id:"demo",children:[e.jsx("style",{children:I3}),e.jsxs("p",{className:"df-cap",children:["↓ ",n?"Voici l’atelier d’évaluation — les sociétés sourcées ce matin par nos moteurs, en direct.":"Here is the evaluation workshop — companies sourced this morning by our engines, live."]}),e.jsxs("div",{className:"df-frame",ref:r,children:[e.jsxs("div",{className:"df-bar",children:[e.jsx("i",{}),e.jsx("i",{}),e.jsx("i",{}),e.jsxs("span",{children:["proplace.co/",e.jsx("b",{children:"carte"})]})]}),e.jsx("div",{className:"df-body",children:i?a==="v2"?e.jsx(m.Suspense,{fallback:e.jsx("div",{className:"df-wait",children:"…"}),children:e.jsx(R3,{demo:!0})}):e.jsx(c1,{demo:!0}):e.jsx("div",{className:"df-wait",children:"…"})})]})]})}const I3=`
2171.df{max-width:1180px;margin:0 auto;padding:8px 24px 56px}
2172.df-cap{text-align:center;font-size:14px;font-weight:700;margin:0 0 14px}
2173.df-frame{border:1px solid var(--ink,#0A0A0A);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(10,10,10,.16);background:#fff}
2174.df-bar{display:flex;align-items:center;gap:6px;background:#ECECE8;border-bottom:1px solid #DFDFD9;padding:9px 14px}
2175.df-bar i{width:10px;height:10px;border-radius:99px;background:#CFCFC8}
2176.df-bar span{margin-left:10px;background:#fff;border:1px solid #E2E2DC;color:#555;font-size:11.5px;padding:3px 12px;border-radius:8px}
2177.df-bar b{color:var(--green-dk,#15884a)}
2178.df-body{--atelier-h:min(720px,82vh)}
2179.df-wait{height:min(720px,82vh);display:flex;align-items:center;justify-content:center;
2179color:var(--mid,#999)}
2180@media(max-width:700px){.df-body{--atelier-h:560px}.df-wait{height:560px}}
2181`;function D3(){const{lang:t}=ae(),n=t==="fr",r=()=>{var s;window.dispatchEvent(new CustomEvent("ppmap:open-gate")),(s=document.getElementById("carte"))==null||s.scrollIntoView({behavior:"smooth",block:"start"})},i=n?"Voir un aperçu de deal flow →":"See a deal flow preview →";return e.jsxs("section",{className:"ps",id:"pricing",children:[e.jsx("style",{children:z3}),e.jsx("p",{className:"ps-eyebrow",children:n?"TARIFS":"PRICING"}),e.jsx("h2",{children:n?"Commencez gratuitement.":"Start for free."}),e.jsxs("div",{className:"ps-grid",children:[e.jsxs("div",{className:"ps-card",children:[e.jsx("b",{children:n?"Essai":"Trial"}),e.jsx("p",{className:"ps-price",children:"0 €"}),e.jsx("p",{className:"ps-ben",children:n?"Vos premières cibles aujourd’hui, en autonomie.":"Your first targets today, on your own."}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Donnez votre site web : Stan déduit seul vos critères et lance le sourcing":"Give your website: Stan derives your criteria on its own and starts sourcing"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Vos premières cibles, retenues ✅ ou écartées ❌, avec la raison":"Your first targets, kept ✅ or discarded ❌, with the reason"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"3 crédits offerts par jour : générez jusqu’à 3 mémos chiffrés à la demande":"3 free credits a day: generate up to 3 quantified memos on demand"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Un aperçu de votre deal flow personnalisé : triez, validez, écartez en un clic":"A preview of your personalised deal flow: sort, validate, discard in one click"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Sans carte bancaire, sans engagement":"No credit card, no commitment"]})]}),e.jsx("button",{type:"button",onClick:r,children:i})]}),e.jsxs("div",{className:"ps-card main",children:[e.jsx("b",{children:"Standard"}),e.jsx("p",{className:"ps-price",children:n?"5 000 € setup + 3 000 € / trimestre":"€5,000 setup + €3,000 / quarter"}),e.jsx("p",{className:"ps-ben",children:n?"Nous pilotons Stan. Vous n’avez qu’à trancher.":"We drive Stan. All you do is decide."}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Votre deal flow personnalisé, débloqué et affiné par nos soins":"Your personalised deal flow, unlocked and refined by us"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Stan tourne chaque nuit : nouvelles cibles retenues ou écartées selon vos critères — en illimité":"Stan runs every night: new targets kept or discarded against your criteria — unlimited"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Chaque matin, 3 mémos sur les meilleures cibles du jour : synergies chiffrées, verdict argumenté — relus par nous":"Every morning, 3 memos on the day’s best targets: quantified synergies, argued verdict — reviewed by us"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Votre brief Stan quotidien : toute l’actualité M&A et levées de fonds de votre marché, l’ensemble des décisions autonomes de Stan, et les 3 mémos du jour":"Your daily Stan brief: all the M&A and fundraising news of your market, every autonomous decision Stan made, and the day’s 3 memos"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Tous les lundis, nous vous présentons uniquement les meilleurs dossiers à trancher — et affinons Stan grâce à vos retours":"Every Monday, we present only the best files for you to decide — and refine Stan with your feedback"]})]}),e.jsx("button",{type:"button",onClick:r,children:i})]}),e.jsxs("div",{className:"ps-card",children:[e.jsx("b",{children:n?"Entreprise":"Enterprise"}),e.jsx("p",{className:"ps-price",children:n?"15 000 € setup + 9 000 € / trimestre":"€15,000 setup + €9,000 / quarter"}),e.jsx("p",{className:"ps-ben",children:n?"Votre équipe M&A externalisée, sans compteur.":"Your outsourced M&A team, no meter."}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Tout le Standard, en illimité":"Everything in Standard, unlimited"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Stan s’intègre à vos outils de deal flow — et évalue vos dossiers déjà en cours":"Stan plugs into your deal-flow tools — and evaluates your ongoing files"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"10 mémos instantanés générés chaque jour + mémos instantanés illimités à la demande":"10 instant memos generated every day + unlimited instant memos on demand"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"3 mémos détaillés par jour à la demande":"3 detailed memos a day on demand"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"}
2181)," ",n?"Plusieurs stratégies d’acquisition en parallèle (multi-verticales)":"Several acquisition strategies in parallel (multi-vertical)"]}),e.jsxs("li",{children:[e.jsx("i",{children:"✓"})," ",n?"Corporate Developer joignable 24/7 : il personnalise vos mémos et peut approcher les cibles en votre nom, jusqu’à ce que vous preniez le relais":"Corporate Developer reachable 24/7: personalising your memos and able to approach targets on your behalf, until you take over"]})]}),e.jsx("button",{type:"button",onClick:r,children:i})]})]})]})}const z3=`
2182.ps{max-width:1000px;margin:0 auto;padding:56px 24px 64px;text-align:center}
2183.ps-eyebrow{font-size:12px;font-weight:600;color:var(--green-dk,#12A150);margin:0 0 10px}
2184.ps h2{font-size:clamp(26px,3.6vw,38px);font-weight:800;margin:0 0 34px;letter-spacing:-.02em}
2185.ps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left}
2186.ps-card{border:1px solid var(--line,#E3E8F0);background:#fff;padding:26px 24px;display:flex;flex-direction:column;gap:14px;border-radius:16px;text-align:left}
2187.ps-card.main{border:2px solid var(--ink,#16233A);box-shadow:0 14px 40px rgba(10,10,10,.08)}
2188.ps-card b{font-size:19px;font-weight:800;letter-spacing:-.01em;min-height:24px}
2189.ps-price{font-size:16.5px;font-weight:800;margin:0;min-height:42px}
2190.ps-ben{font-size:14px;font-weight:700;color:var(--green-dk,#12A150);margin:0;line-height:1.45;min-height:42px}
2191.ps-card ul{margin:0;padding:0;display:grid;gap:9px;flex:1;align-content:start}
2192.ps-card li{list-style:none;display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:1.55;color:var(--sub,#444)}
2193.ps-card li i{flex:0 0 18px;width:18px;height:18px;border-radius:99px;background:var(--green,#12A150);color:#fff;font-style:normal;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
2194.ps-card button,.ps-card a{border:none;background:var(--green,#12A150);color:#fff;font-size:13.5px;font-weight:800;padding:12px 10px;cursor:pointer;font-family:inherit;border-radius:10px;text-align:center;text-decoration:none;white-space:nowrap}
2195.ps-card button:hover,.ps-card a:hover{background:var(--green-dk,#0E7F3F)}
2196.ps-note{font-size:12.5px;color:var(--mid,#777);max-width:620px;margin:22px auto 0}
2197@media(max-width:860px){.ps-grid{grid-template-columns:1fr}}
2198`,B3={en:{strategyCta:"Schedule your strategy call"},fr:{strategyCta:"Planifier votre appel stratégique"}};function U3({eyebrow:t,heading:n,subcopy:r}){const{lang:i}=ae(),s=B3[i],[a,o]=m.useState(!1);return e.jsxs("div",{className:"section",style:{paddingTop:40,paddingBottom:40},children:[e.jsxs("div",{className:"wrap",style:{textAlign:"center"},children:[t&&e.jsx("div",{style:{fontSize:11,fontWeight:700,letterSpacing:".18em",textTransform:"uppercase",color:"var(--green)",marginBottom:10},children:t}),e.jsx("h3",{style:{fontSize:22,fontWeight:800,letterSpacing:"-.01em",color:"var(--ink)",margin:"0 0 10px",lineHeight:1.3},children:n}),e.jsx("p",{style:{fontSize:15,color:"var(--sub)",lineHeight:1.7,margin:"0 auto 18px",maxWidth:560},children:r}),e.jsx("button",{className:"btn",style:{borderRadius:12},onClick:()=>o(!0),children:s.strategyCta})]}),a&&e.jsx(Pi,{onClose:()=>o(!1)})]})}const V3={en:{cta1:{eyebrow:"See it on your market",heading:"Want Stan to run on a real target in your sector?",subcopy:"In 45 minutes, we run a live analysis of a target you pick. Full memo, financial model, synergies quantified — generated on screen while we talk. You leave with a concrete opportunity and zero commitment."}},fr:{cta1:{eyebrow:"Voyez-le sur votre marché",heading:"Vous voulez voir Stan tourner sur une cible réelle de votre secteur ?",subcopy:"En 45 minutes, nous lançons l’analyse en direct d’une cible que vous choisissez. Mémo complet, modèle financier, synergies chiffrées — générés à l’écran pendant que nous échangeons. Vous repartez avec une opportunité concrète, sans aucun engagement."}}};function H3(){ht({en:{title:"Proplace — Home (v1 archive)",description:"Archived previous version of the Proplace home page."},fr:{title:"Proplace — Accueil (archive v1)",description:"Version précédente archivée de la page d’accueil Proplace."}});const{lang:t}=ae(),n=V3[t],[r,i]=m.useState(!1),[s,a]=m.useState(""),[o,c]=m.useState("");return m.useEffect(()=>{try{ha()}catch{}},[]),m.useEffect(()=>{const l=document.createElement("meta");return l.name="robots",l.content="noindex,nofollow",document.head.appendChild(l),()=>{try{document.head.removeChild(l)}catch{}}},[]),m.useEffect(()=>{const l=()=>{try{a(localStorage.getItem("ppmap:acquirer")||""),c(localStorage.getItem("ppmap:acquirerSite")||"")}catch{}i(!0)};return window.addEventListener("ppmap:open-gate",l),()=>window.removeEventListener("ppmap:open-gate",l)},[]),e.jsxs("div",{children:[e.jsx(zn,{}),e.jsx(Wy,{}),e.jsx(P3,{}),e.jsx("hr",{className:"div"}),e.jsx(U3,{eyebrow:n.cta1.eyebrow,heading:n.cta1.heading,subcopy:n.cta1.subcopy}),e.jsx("hr",{className:"div"}),e.jsx(D3,{}),e.jsx(Nt,{}),r&&e.jsx(Qr,{variant:"acquirer",initialCompany:s,initialWebsite:o,onClose:()=>i(!1)})]})}const Y3=`.home2{
2199  --brand:#0E8A4F; --brand-d:#0A6B3D; --brand-l:#E4F2EA;
2200  --blue:#1E5FCC; --bolt:#F59E0B; --red:#DC2626;
2201  --panel:#FFFFFF; --panel2:#F8FAFC;
2201 --panel3:#F1F5F9;
2202  --line:#E2E8F0; --line2:#CBD5E1;
2203  --ink:#0F172A; --muted:#64748B; --dim:#94A3B8;
2204  --sea:#E4EDF3; --land:#FFFFFF; --landline:#B2C2D0; --empty:#F1F5F9; --emptyline:#DCE4EB;
2205  --rail:240px;
2206  --page:1340px;
2207  --r:5px;        
2208  --rs:3px;       
2209  --ra:8px;       
2210  --rb:12px;      
2211  
2212  --p0:#E7EBF0; --p1:#E7F3EC; --p2:#C4E0D0; --p3:#7FC0A0; --p4:#0E8A4F;
2213  --p5:#DC2626; --pv:#334155; --pf:#F59E0B;
2214  
2215  --d0:#94A3B8; --d1:#9BD1B4; --d2:#5FB98C; --d3:#2E9A66; --d4:#0A6B3D;
2216  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
2217  --body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
2218}
2219.home2,.home2 *{box-sizing:border-box}
2220.home2,.home2{margin:0;height:auto;overflow-x:hidden;scroll-behavior:smooth}
2221.home2{background:var(--panel2);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
2222.home2 button,.home2 input,.home2 textarea{font-family:inherit}
2223.home2,.home2 *{scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
2224.home2 ::-webkit-scrollbar{width:11px;height:11px}
2225.home2 ::-webkit-scrollbar-track{background:transparent}
2226.home2 ::-webkit-scrollbar-thumb{background:var(--line2);border-radius:6px;border:3px solid var(--panel);background-clip:padding-box}
2227.home2 ::-webkit-scrollbar-thumb:hover{background:var(--muted);border-width:2px}
2228.home2 .wrap{max-width:var(--page);margin:0 auto;padding:0 30px}
2229.home2 .nav{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:14px;height:56px;
2230  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
2231.home2 .nav .lg{font-weight:700;font-size:17px;letter-spacing:-.02em}
2232.home2 .nav .lg i{color:var(--brand);font-style:normal}
2233.home2 .nav .sp{flex:1}
2234.home2 .nav a{font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
2235.home2 .nav .cta{background:var(--brand);color:#fff;border-radius:99px;padding:8px 16px}
2236.home2 .nav .lang{display:flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
2237.home2 .nav .lang span{padding:4px 9px;font-size:11px;font-weight:600;color:var(--muted)}
2238.home2 .nav .lang span.on{background:var(--ink);color:#fff}
2239.home2 .hero{text-align:center;padding:54px 0 30px}
2240.home2 .hero h1{margin:0 0 10px;font-size:clamp(32px,5.2vw,52px);line-height:1.06;font-weight:700;letter-spacing:-.035em}
2241.home2 .hero .sub{font-size:16px;font-weight:600;color:var(--muted);margin-bottom:24px}
2242.home2 .hero .sub b{color:var(--brand-d)}
2243.home2 .hero .cue{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;
2244  border:1px solid var(--line2);border-radius:99px;padding:10px 20px;background:var(--panel);cursor:pointer}
2245.home2 .hero .cue:hover{border-color:var(--ink)}
2246.home2 .hero .cue b{color:var(--ink)}
2247.home2 .hero .cue .ar{animation:home2-bob 1.8s infinite}
2248@keyframes home2-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
2249.home2 .leadin{padding:0 0 12px;text-align:center;font-size:14px;color:var(--muted)}
2250.home2 .leadin b{color:var(--ink)}
2251.home2 .sec{padding:56px 0}
2252.home2 .sec.alt{background:var(--panel2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
2253.home2 .sec h2{margin:0 0 18px;font-size:clamp(24px,2.5vw,34px);font-weight:700;letter-spacing:-.03em;max-width:none;line-height:1.15;text-wrap:balance}
2254.home2 .sec p{font-size:15px;line-height:1.65;color:var(--muted);max-width:74ch;margin:0 0 14px}
2255.home2 .sec p b{color:var(--ink)}
2256.home2 .claim{font-size:19px;font-weight:700;text-align:center;margin:26px 0 0}
2257.home2 .frieze{display:flex;align-items:stretch;margin:22px 0 6px}
2258.home2 .frieze .fs{flex:1;min-width:0;padding:11px 12px 11px 24px;background:var(--c);color:var(--tc,#fff);
2259  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%,13px 50%);margin-left:-13px}
2260.home2 .frieze .fs:first-child{margin-left:0;padding-left:14px;
2261  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%)}
2262.home2 .frieze .fs .l{font-family:var(--mono);font-size:7.5px;letter-spacing:.14em;opacity:.85}
2263.home2 .frieze .fs .d{font-size:12px;font-weight:600;margin-top:2px}
2264.home2 .logos{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap;opacity:.5;
2265  font-weight:700;font-size:17px;color:var(--muted);letter-spacing:-.01em}
2266.home2 .team{text-align:center;font-size:13px;font-style:italic;color:var(--dim);max-width:80ch;margin:22px auto 0}
2267.home2 .foot{background:#0B1220;color:#8FA6BC;padding:34px 0;font-size:13px}
2268.home2 .foot .wrap{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
2269.home2 .foot b{color:#fff}
2270.home2 .foot .sp{flex:1}
2271.home2 .unlock{background:var(--ink);color:#fff;padding:16px 0}
2272.home2 .unlock .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
2273.home2 .unlock b{font-size:15px;font-weight:700}
2274.home2 .unlock span{font-size:13px;color:#9FB6CA;flex:1;
2274min-width:200px}
2275.home2 .unlock button{background:var(--brand);color:#fff;border:0;border-radius:99px;padding:11px 20px;font-size:13.5px;font-weight:700;cursor:pointer}
2276.home2 .pageonly[hidden]{display:none}
2277.home2 .memospec{background:var(--panel);border:1px solid var(--line2);border-radius:var(--ra);padding:12px 20px;
2278  font-size:14px;font-weight:700;cursor:pointer;margin-top:8px}
2279.home2 .memospec:hover{border-color:var(--ink)}
2280.home2 .bigcta{background:var(--ink);color:#fff;border:0;border-radius:var(--ra);padding:13px 22px;font-size:14px;font-weight:700;cursor:pointer}
2281.home2 .cmp{width:100%;border-collapse:collapse;margin:8px 0 6px;font-size:13.5px}
2282.home2 .cmp th,.home2 .cmp td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left}
2283.home2 .cmp thead th{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--dim);font-weight:700}
2284.home2 .cmp td:first-child{color:var(--muted);width:32%}
2285.home2 .cmp .hi{background:var(--brand-l);font-weight:700;color:var(--brand-d)}
2286.home2 .cmp thead .hi{color:var(--brand-d)}
2287.home2 .closer{font-size:15px;font-weight:600;color:var(--ink)!important;margin:14px 0 0}
2288.home2 .obj{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:20px}
2289.home2 .ob{background:var(--panel);border:1px solid var(--line);border-radius:var(--rb);padding:17px}
2290.home2 .ob .q{font-weight:700;font-size:14.5px;margin-bottom:7px}
2291.home2 .ob p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
2292.home2 .mspec{border:1px solid var(--line);border-radius:var(--rb);padding:18px;background:var(--panel2)}
2293.home2 .mspec .mh2{font-size:14.5px;font-weight:700;margin-bottom:14px}
2294.home2 .mspec .mlb{font-family:var(--mono);font-size:8px;letter-spacing:.16em;color:var(--dim);margin:14px 0 6px}
2295.home2 .mspec .mv{font-size:16px;font-weight:800;color:var(--brand-d)}
2296.home2 .mspec .mv span{font-size:12.5px;font-weight:600;color:var(--muted)}
2297.home2 .mspec ul{margin:0;padding:0;list-style:none}
2298.home2 .mspec li{position:relative;padding-left:16px;font-size:13px;color:var(--muted);margin-bottom:7px;line-height:1.55}
2299.home2 .mspec li::before{content:"—";position:absolute;left:0;color:var(--brand)}
2300.home2 .mspec p{font-size:13px;color:var(--muted);margin:0;line-height:1.55}
2301.home2 .msyn{width:100%;border-collapse:collapse;font-size:13px}
2302.home2 .msyn td{padding:7px 0;border-bottom:1px solid var(--line);color:var(--muted)}
2303.home2 .msyn td:last-child{text-align:right;font-family:var(--mono);font-weight:700;color:var(--ink)}
2304.home2 .msyn .tot td{border-bottom:0;font-weight:700;color:var(--ink);padding-top:10px}
2305.home2 .msyn .tot td:last-child{color:var(--brand-d);font-size:15px}
2306@media (max-width:760px){
2307.home2 .hero{padding:34px 0 22px}
2308.home2 .cmp td:first-child{width:38%}
2309.home2 .sec{padding:38px 0}
2310.home2 .frieze{flex-direction:column}
2311.home2 .frieze .fs,.home2 .frieze .fs:first-child{clip-path:none;margin:0 0 3px;padding:9px 12px;border-radius:var(--r)}}
2312@keyframes home2-pulse2{0%,100%{opacity:1}50%{opacity:.35}}
2313@keyframes home2-blink{0%,100%{opacity:1}50%{opacity:.2}}
2314@keyframes home2-roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
2315.home2 g.co{cursor:pointer;transition:opacity .16s}
2316.home2 g.co circle.h{fill:#000;fill-opacity:0;pointer-events:all}
2317.home2 g.co circle.v{pointer-events:none;stroke:#fff;stroke-opacity:.92}
2318.home2 g.co.off{opacity:.05;pointer-events:none}
2319.home2 g.co.done circle.v{fill-opacity:.32;stroke-opacity:.4}
2320.home2 g.co:hover circle.v{stroke:var(--ink);stroke-opacity:1}
2321@keyframes home2-spin{from{transform:rotate(0)}to{transform:rotate(-360deg)}}
2322@keyframes home2-pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}100%{box-shadow:0 0 0 12px rgba(22,163,74,0)}}
2323@keyframes home2-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
2324@keyframes home2-up{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-46px)}}
2325@media (prefers-reduced-motion:reduce){
2326.home2,.home2 *{transition:none!important;animation:none!important}}
2327@keyframes home2-bump{0%{transform:translateY(0)}30%{transform:translateY(-4px)}100%{transform:translateY(0)}}
2328@keyframes home2-fade{0%{opacity:0;transform:translateY(4px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1}100%{opacity:0}
2328}
2329.home2{font-size:15px}
2330.home2 .hero{padding:70px 0 34px;text-align:center}
2331.home2 .hero h1{font-size:clamp(34px,5.4vw,56px);line-height:1.03;letter-spacing:-.04em;margin:0 0 14px}
2332.home2 .hero .sub{font-size:17px;margin-bottom:10px}
2333.home2 .hero .claim2 b{font-weight:800;color:var(--ink)}
2334.home2 .claim2{font-size:20px;font-weight:600;letter-spacing:-.018em;margin:0 auto 26px;max-width:none;line-height:1.35;text-wrap:balance;color:var(--muted)}
2335.home2 .hero .cue{font-size:15.5px;padding:12px 24px}
2336.home2 .leadin{padding:0 0 16px;font-size:15px;max-width:none}
2337.home2 .sec{padding:76px 0}
2338.home2 .sec h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.03em;line-height:1.15;margin:0 0 20px;max-width:none;text-wrap:balance}
2339.home2 .sec p{font-size:16px;line-height:1.72;max-width:none;margin:0 0 18px;color:var(--muted)}
2340.home2 .sec p.big{font-size:19px;line-height:1.6;color:var(--ink);font-weight:500;max-width:44ch}
2341.home2 .two-col{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
2342.home2 .claim{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:34px 0 0;text-align:center}
2343.home2 .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);
2344  border:1px solid var(--line);border-radius:var(--rb);overflow:hidden;margin:26px 0 6px}
2345.home2 .kpi{background:var(--panel);padding:20px 22px}
2346.home2 .kpi b{display:block;font-size:34px;font-weight:800;letter-spacing:-.035em;line-height:1}
2347.home2 .kpi span{display:block;font-size:13px;color:var(--muted);margin-top:7px;line-height:1.45}
2348.home2 .kpi.hi b{color:var(--brand-d)}
2349.home2 .frieze{margin:26px 0 10px}
2350.home2 .logos{gap:44px;font-size:19px}
2351.home2 .team{font-size:14px;max-width:none;text-align:left;font-style:normal;color:var(--muted)}
2352.home2 .cmp{font-size:14.5px}
2353.home2 .cmp th,.home2 .cmp td{padding:14px 16px}
2354.home2 .obj{gap:20px;margin-top:26px}
2355.home2 .ob{padding:22px}
2356.home2 .ob .q{font-size:15.5px;margin-bottom:9px}
2357.home2 .ob p{font-size:13.5px;line-height:1.65}
2358@media (max-width:860px){
2359.home2 .two-col{grid-template-columns:1fr;gap:26px}
2360.home2 .sec{padding:48px 0}}
2361.home2 .promise{display:flex;align-items:stretch;justify-content:center;gap:28px;margin-top:26px;flex-wrap:wrap}
2362.home2 .promise span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:13px;color:var(--muted)}
2363.home2 .promise b{font-size:31px;font-weight:800;color:var(--ink);letter-spacing:-.035em;line-height:1.05}
2364.home2 .promise i{width:1px;background:var(--line)}
2365.home2 .reject{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;margin-top:22px}
2366.home2 .rj{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--red);
2367  border-radius:0 var(--rb) var(--rb) 0;padding:16px 18px}
2368.home2 .rj b{font-size:15px;font-weight:700}
2369.home2 .rj .rt{font-size:9.5px;font-weight:700;background:#FEE2E2;color:#B91C1C;border-radius:var(--rs);
2370  padding:2px 7px;margin-left:8px;vertical-align:2px}
2371.home2 .rj p{font-size:13px;color:var(--muted);margin:9px 0 0;line-height:1.6}
2372.home2 .vs{border:1px solid var(--line);border-radius:var(--rb);overflow:hidden;background:var(--panel)}
2373.home2 .vsh,.home2 .vsr{display:grid;grid-template-columns:1.1fr 1fr 1fr;align-items:center}
2374.home2 .vsh{background:var(--panel2);border-bottom:1px solid var(--line)}
2375.home2 .vsh span{padding:12px 16px;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--dim);font-weight:700}
2376.home2 .vsh .hi,.home2 .vsr .hi{background:var(--brand-l)}
2377.home2 .vsh .hi{color:var(--brand-d)}
2378.home2 .vsr{border-bottom:1px solid var(--line)}
2379.home2 .vsr:last-child{border-bottom:0}
2380.home2 .vsr span{padding:13px 16px;font-size:13.5px;color:var(--muted)}
2381.home2 .vsr span:first-child{color:var(--ink);font-weight:600}
2382.home2 .vsr .hi{color:var(--brand-d);font-weight:700}
2383@media (max-width:720px){
2384.home2 .vsh,.home2 .vsr{grid-template-columns:1fr}
2385.home2 .vsh span:first-child{display:none}}
2386.home2 .sec.cred{text-align:center}
2387.home2 .credlbl{font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;color:var(--dim);margin-bottom:20px}
2388.home2 .logos{display:flex;align-items:center;justify-content:center;gap:44px;flex-wrap:wrap;opacity:.42;
2389  font-weight:700;font-size:19px;color:var(--ink);letter-spacing:-.01em}
2390.home2 .credtxt{font-size:14px;color:var(--muted);max-width:72ch;margin:24px auto 0;line-height:1.7}
2391.home2 .credq{font-size:19px;font-weight:600;color:var(--ink);max-width:44ch;margin:18px auto 0;
2392  letter-spacing:-.015em;line-height:1.4}
2393.home2 .qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:0 44px;margin-top:8px}
2394.home2 .qai{padding:20px 0;border-top:1px solid var(--line)}
2395.home2 .qai h3{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
2396.home2 .qai p{margin:0;font-size:13.5px;line-height:1.7;color:var(--muted)}
2397.home2 .leadin b{color:var(--ink);font-weight:700}
2398.home2 .leadin .li2{display:block;margin-top:5px;color:var(--dim)}
2399.home2 .sec .ctr{text-align:center;max-width:78ch;margin-left:auto;margin-right:auto;text-wrap:balance}
2400.home2 .sec.alt .ctr,.home2 .sec .ctr{margin-bottom:22px}
2401.home2 .cov3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:26px}
2402.home2 .cv{border:1px solid var(--line);border-radius:var(--rb);padding:20px;background:var(--panel)}
2403.home2 .cv b{display:block;font-size:30px;font-weight:800;letter-spacing:-.035em;color:var(--brand-d);line-height:1}
2404.home2 .cv span{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:6px 0 9px}
2405.home2 .cv p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
2406.home2 .vskick{text-align:center;font-size:16px;color:var(--muted);max-width:74ch;margin:0 auto 24px;text-wrap:balance}
2407.home2 .vskick b{color:var(--ink);font-weight:700}
2408.home2 .vsfoot{text-align:center;font-size:15px;font-weight:600;color:var(--ink);max-width:60ch;
2409  margin:24px auto 0;text-wrap:balance}
2410.home2 .steps3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px}
2411.home2 .s3{border:1px solid var(--line);border-radius:var(--rb);padding:20px;background:var(--panel)}
2412.home2 .s3 b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);
2413  color:#fff;font-size:12.5px;font-weight:700;margin-bottom:11px}
2414.home2 .s3 span{display:block;font-size:15px;font-weight:700;margin-bottom:6px}
2415.home2 .s3 p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
2416.home2 .mini{font-size:12.5px;color:var(--dim);margin-top:11px}
2417.home2 .cov3 .cv p{font-size:12.5px}
2418.home2 .vs{max-width:900px;margin:0 auto}
2419.home2 .lead-l{text-align:left;max-width:none;font-size:17px;color:var(--muted);margin:0 0 6px;text-wrap:balance}
2420.home2 .lead-l.vskick{font-size:17px;margin-bottom:22px}
2421.home2 .sec .lead-l.big{font-size:17px;margin-bottom:24px}
2422.home2 .dec3{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-top:26px}
2423.home2 .d3{border:1px solid var(--line);border-radius:var(--rb);padding:20px;background:var(--panel);display:flex;flex-direction:column}
2424.home2 .d3h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
2425.home2 .d3h b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);
2426  color:#fff;font-size:12px;font-weight:700;flex:none}
2427.home2 .d3h span{font-size:16px;font-weight:700;letter-spacing:-.015em}
2428.home2 .d3>p{font-size:13.5px;line-height:1.6;color:var(--muted);margin:0 0 16px}
2429.home2 .mock{margin-top:auto;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel2)}
2430.home2 .mkfun{display:flex;background:var(--panel)}
2431.home2 .mkst{flex:1;padding:7px 6px;text-align:center;border-right:1px solid var(--line)}
2432.home2 .mkst:last-child{border-right:0}
2433.home2 .mkst{font-family:var(--mono);font-size:6.5px;letter-spacing:.1em;color:var(--dim);display:block}
2434.home2 .mkst b{display:block;font-family:var(--body);font-size:14px;font-weight:800;color:var(--ink);margin-top:2px}
2435.home2 .mkst.on{background:#FFF8ED;box-shadow:inset 0 3px 0 #D97706}
2436.home2 .mkst.on,.home2 .mkst.on b{color:#B45309}
2437.home2 .mkrow{display:flex;align-items:center;gap:9px;padding:10px 11px;border-top:1px solid var(--line);background:var(--panel)}
2438.home2 .mkrow .fl{width:16px;height:11px;border-radius:2px;background:linear-gradient(90deg,#0055A4 33%,#fff 33% 66%,#EF4135 66%)}
2439.home2 .mkrow b{font-size:13px}
2440.home2 .mkv{font-size:9.5px;font-weight:700;background:#E4F2EA;color:var(--brand-d);border-radius:var(--rs);padding:2px 7px}
2441.home2 .mkw{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--panel3);
2442  border-radius:var(--rs);padding:2px 6px}
2443.home2 .mock.pick{background:#FFFBEB;border-color:#F5DFA8;padding:13px}
2444.home2 .pkh{font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#B45309;font-weight:700;margin-bottom:7px}
2445.home2 .pkq{font-size:12.5px;font-weight:600;margin-bottom:11px}
2446.home2 .pkb{display:flex;gap:9px}
2447.home2 .pk-oui,.home2 .pk-non{flex:1;border-radius:var(--ra);padding:11px;font-size:14px;font-weight:800;cursor:default;border:2px solid}
2448.home2 .pk-oui{background:var(--brand);border-color:var(--brand);color:#fff}
2449.home2 .pk-non{background:#fff;border-color:var(--red);color:var(--red)}
2450.home2 .pkn{display:flex;gap:9px;margin-top:7px}
2451.home2 .pkn span{flex:1;font-size:10.5px;line-height:1.4;color:var(--muted);text-align:center}
2452.home2 .mock.cond{background:var(--panel);padding:14px}
2453.home2 .cd1{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
2454.home2 .cd1:nth-child(3){border-bottom:0}
2455.home2 .cdi{min-width:44px;text-align:center;font-family:var(--mono);font-size:12px;font-weight:800;color:#B45309;
2456  background:#FFF8ED;border-radius:var(--rs);padding:4px 8px}
2457.home2 .cdar{text-align:center;color:var(--dim);font-size:14px;margin:4px 0}
2458.home2 .cdout{background:var(--ink);color:#fff;border-radius:var(--r);padding:10px;text-align:center;
2459  font-size:12.5px;font-weight:700}
2460.home2 .mods{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0 20px}
2461.home2 .mod{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--ra);
2462  padding:0 14px;height:40px;background:var(--panel);position:relative}
2463.home2 .mod .ml{position:absolute;top:-7px;left:11px;background:var(--panel);padding:0 6px;
2464  font-family:var(--mono);
2464font-size:7px;letter-spacing:.16em;color:var(--dim)}
2465.home2 .mod .mb{width:46px;height:5px;background:var(--panel3);border-radius:99px;overflow:hidden}
2466.home2 .mod .mb i{display:block;height:100%;background:var(--brand)}
2467.home2 .mod b{font-size:14px;font-weight:800;letter-spacing:-.02em}
2468.home2 .mod .mdv{width:1px;height:16px;background:var(--line)}
2469.home2 .mod .mt{font-size:12px;color:var(--muted)}
2470.home2 .mod .mg{font-size:12px;font-weight:600;color:var(--brand-d)}
2471.home2 .covgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}
2472.home2 .cvbox{border:1px solid var(--line);border-radius:var(--rb);padding:18px;background:var(--panel2)}
2473.home2 .cvh{display:flex;align-items:baseline;gap:12px;margin-bottom:9px}
2474.home2 .cvh b{font-size:16px;font-weight:700}
2475.home2 .cvp{margin-left:auto;font-size:24px;font-weight:800;color:var(--brand-d);letter-spacing:-.03em}
2476.home2 .cvbar{height:9px;background:var(--panel3);border-radius:99px;overflow:hidden;margin-bottom:12px}
2477.home2 .cvbar i{display:block;height:100%;background:linear-gradient(90deg,#3FB584,var(--brand));border-radius:99px}
2478.home2 .cvchips{display:flex;gap:7px;flex-wrap:wrap}
2479.home2 .cc{font-size:12px;font-weight:600;border-radius:99px;padding:5px 12px}
2480.home2 .cc.ok{background:#E4F2EA;color:var(--brand-d)}
2481.home2 .cc.todo{background:#FFF7ED;color:#B45309}
2482.home2 .cc.neu{background:var(--panel3);color:var(--muted)}
2483.home2 .cvrates{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}
2484.home2 .cr{flex:1;min-width:70px;border:1px solid var(--line);background:var(--panel);border-radius:var(--r);
2485  padding:7px;text-align:center;font-size:12.5px;font-weight:700}
2486.home2 .cr em{display:block;font-style:normal;font-size:10px;font-weight:400;color:var(--dim);margin-top:2px}
2487.home2 .cr.on{background:var(--brand);border-color:var(--brand);color:#fff}
2488.home2 .cr.on em{color:rgba(255,255,255,.8)}
2489.home2 .cov3{margin-top:22px}
2490.home2 .vs.big2{max-width:none}
2491.home2 .vs.big2 .vsr span{padding:16px 20px;font-size:15px}
2492.home2 .vs.big2 .vsh span{padding:14px 20px;font-size:9.5px}
2493.home2 .vs.big2 .vsr .hi,.home2 .vs.big2 .vsh .hi{font-size:15.5px}
2494.home2 .eyeb{display:inline-flex;align-items:center;gap:9px;font-family:var(--body);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-d);background:var(--brand-l);border-radius:99px;padding:8px 16px 8px 14px;margin-bottom:18px}
2495.home2 .lead-w{text-align:left;max-width:none;font-size:19px;line-height:1.5;color:var(--muted);
2496  margin:0 0 26px;text-wrap:pretty}
2497.home2 .vs.big3{max-width:none;border-radius:var(--rb)}
2498.home2 .vs.big3 .vsh,.home2 .vs.big3 .vsr{grid-template-columns:1.05fr 1fr 1fr}
2499.home2 .vs.big3 .vsh span{padding:16px 22px;font-size:11px;letter-spacing:.1em}
2500.home2 .vs.big3 .vsh span:nth-child(2),.home2 .vs.big3 .vsh .hi{font-family:var(--body);font-size:17px;
2501  font-weight:700;letter-spacing:-.02em;text-transform:none;color:var(--ink)}
2502.home2 .vs.big3 .vsh .hi{color:var(--brand-d)}
2503.home2 .vs.big3 .vsr span{padding:18px 22px;font-size:15.5px}
2504.home2 .vs.big3 .vsr span:first-child{font-size:14px;color:var(--muted);font-weight:500}
2505.home2 .vs.big3 .vsr .hi{font-size:16px}
2506@media (max-width:760px){
2507.home2 .vs.big3 .vsr span{padding:13px 15px;font-size:14px}}
2508.home2 .learn{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;margin-top:24px}
2509.home2 .lrnb{border:1px solid var(--line);border-radius:var(--rb);padding:20px;background:var(--panel)}
2510.home2 .lrnb .lrni{display:inline-flex;align-items:center;gap:6px;font-size:18px;background:var(--panel2);
2511  border-radius:var(--r);padding:7px 12px;margin-bottom:12px}
2512.home2 .lrnb b{display:block;font-size:15px;font-weight:700;margin-bottom:7px}
2513.home2 .lrnb p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}
2514.home2 .eyeb{display:flex;align-items:center;gap:10px;font-family:var(--body);font-size:12px;font-weight:700;
2515  letter-spacing:.02em;color:var(--brand-d);text-transform:none;margin-bottom:13px}
2516.home2 .eyeb i{display:block;width:7px;height:7px;background:var(--brand);border-radius:50%;flex:none}
2517.home2 .cvbox.solo{max-width:none;margin-top:24px}
2518.home2 .cvbox.solo .cvh b{font-size:19px}
2519.home2 .cvbox.solo .cvp{font-size:30px}
2520.home2 .cc.mat{background:var(--brand);color:#fff}
2521.home2 .dec3.four{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
2522.home2 .mkfield{display:flex;align-items:center;gap:8px;padding:11px 12px;background:var(--panel);
2523  border-bottom:1px solid var(--line);font-size:13px}
2524.home2 .mkfield span{font-weight:600;flex:1}
2525.home2 .mkfield em{font-style:normal;font-family:var(--mono);font-size:7.5px;letter-spacing:.12em;color:var(--brand-d);
2526  background:var(--brand-l);border-radius:var(--rs);padding:3px 7px}
2527.home2 .mkangles{display:flex;flex-wrap:wrap;gap:5px;padding:11px 12px}
2528.home2 .mkangles span{font-size:11px;background:var(--panel);border:1px solid var(--line);border-radius:99px;
2529  padding:4px 10px;color:var(--muted)}
2530.home2 .mkr2{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);
2531  background:var(--panel);flex-wrap:wrap}
2532.home2 .mkr2:last-child{border-bottom:0}
2533.home2 .mkr2 b{font-size:12.5px;flex:none}
2534.home2 .mkm{display:inline-block;width:auto;height:auto;font-size:9px;font-weight:700;border-radius:var(--rs);padding:3px 8px;white-space:nowrap;flex:none;line-height:1.3}
2535.home2 .mkm.mk-ok{background:var(--brand);color:#fff}
2536.home2 .mkm.mk-no{background:var(--red);color:#fff}
2537.home2 .mkr2 em{font-style:normal;font-size:11px;color:var(--dim);width:100%}
2538.home2 .mkcov{padding:13px 12px;background:var(--panel)}
2539.home2 .mkl{display:block;font-family:var(--mono);font-size:7.5px;letter-spacing:.14em;color:var(--dim);margin-bottom:4px}
2540.home2 .mkcov b{font-size:23px;font-weight:800;letter-spacing:-.03em}
2541.home2 .mkb{display:block;height:5px;background:var(--panel3);border-radius:99px;overflow:hidden;margin:9px 0 5px}
2542.home2 .mkb i{display:block;height:100%;background:var(--brand)}
2543.home2 .mkcov em{font-style:normal;font-size:11px;color:var(--muted)}
2544.home2 .mkbtn{width:100%;background:var(--panel);border:0;border-top:1px solid var(--line);padding:10px;
2545  font-size:11.5px;font-weight:600;color:var(--ink);cursor:default}
2546.home2 .mkmemo{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel)}
2547.home2 .mkmemo b{font-size:13px}
2548.home2 .mksc{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:700}
2549.home2 .mktabs{display:flex;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel)}
2550.home2 .mktabs span{padding:7px 9px;font-family:var(--mono);font-size:6.5px;letter-spacing:.1em;color:var(--dim)}
2551.home2 .mktabs .on{color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--blue)}
2552.home2 .mkbody{padding:11px 12px;font-size:11.5px;color:var(--muted)}
2553.home2 .mkbody b{color:var(--brand-d)}
2554.home2 .mkmore{padding:9px 12px;border-top:1px solid var(--line);background:#EEF3FD;color:var(--blue);
2555  font-size:11px;font-weight:600}
2556.home2 .sec.alt .eyeb{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
2557.home2 .already{margin-top:24px;border:1px solid var(--line);border-left:3px solid var(--brand);
2558  border-radius:0 var(--rb) var(--rb) 0;padding:18px 22px;background:var(--panel2)}
2559.home2 .already b{display:block;font-size:16px;font-weight:700;margin-bottom:8px}
2560.home2 .already p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:none}
2561.home2 .already p+p{margin-top:11px}
2562.home2 .vok,.home2 .vno{display:inline-block;font-size:10px;font-weight:700;border-radius:var(--rs);
2563  padding:2px 7px;white-space:nowrap;vertical-align:1px;line-height:1.3}
2564.home2 .vok{background:var(--brand);color:#fff}
2565.home2 .vno{background:var(--red);color:#fff}
2566.home2 .lrnb.hi{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
2567.home2 .lrnb.hi .lrni{background:var(--brand-l)}
2568.home2 .d3h .vok{font-size:12px;vertical-align:2px}
2569.home2 .mkl2{display:flex;align-items:center;gap:9px;padding:8px 12px;border-bottom:1px solid var(--line);
2570  background:var(--panel);font-size:12px;color:var(--muted)}
2571.home2 .mkl2>span:first-child{font-size:14px;background:var(--panel2);border-radius:var(--rs);padding:3px 8px}
2572.home2 .mkl2 em{margin-left:auto;font-style:normal;font-size:10.5px;color:var(--dim);white-space:nowrap}
2573.home2 .mkgain{padding:12px}
2574.home2 .mkgain .mkb{margin:7px 0 5px}
2575.home2 .mkgain em{font-style:normal;font-size:10.5px;color:var(--dim)}
2576.home2 #after .sec{padding:76px 0;background:none;border:0;position:relative}
2577.home2 #after .sec.alt{background:none}
2578.home2 #after .sec::before{content:"";position:absolute;top:0;left:30px;right:30px;height:1px;
2579  background:rgba(15,23,42,.09)}
2580.home2 #after .sec:first-child::before{display:none}
2581.home2 .eyeb{display:block;background:none;box-shadow:none;padding:0;margin:0 0 14px;
2582  font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.2em;
2583  text-transform:uppercase;color:var(--dim)}
2584.home2 .eyeb i,.home2 .eyeb .eyn{display:none}
2585.home2 .sec.alt .eyeb{background:none;box-shadow:none}
2586.home2 #pName{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
2587.home2 #pMemo{border:0;border-left:2px solid var(--line2);border-radius:0;background:none;
2588  padding:2px 0 2px 13px;margin-top:6px;font-size:13px;line-height:1.6;color:var(--muted);font-style:italic}
2589.home2 #pMemo,.home2 .pop .memo{background:none!important;box-shadow:none!important;border:0;
2590  border-left:2px solid var(--line2);border-radius:0;padding:1px 0 1px 13px;margin-top:5px;
2591  font-size:13px;line-height:1.6;color:var(--muted);font-style:italic}
2592.home2 #rdvM .mcard{width:min(760px,100%)}
2593.home2 #rdvM .mb{padding:0 22px 22px}
2594.home2 .urlcta{margin-top:30px;border:1px solid var(--line);border-radius:var(--rb);padding:26px 28px;
2595  background:var(--panel);box-shadow:0 1px 2px rgba(15,23,42,.04)}
2596.home2 .urlcta .uh{font-size:21px;font-weight:700;letter-spacing:-.025em;margin-bottom:14px}
2597.home2 .ur{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
2598.home2 .uf{display:flex;align-items:center;gap:10px;flex:1 1 300px;min-width:0;height:52px;padding:0 16px;
2599  border:1px solid var(--line2);border-radius:var(--ra);background:var(--panel);font-size:16px}
2600.home2 .uf:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(15,23,42,.06)}
2601.home2 .uf input{flex:1;min-width:0;border:0;outline:none;font-size:16px;background:none;font-family:var(--body)}
2602.home2 .uf input.shake{animation:home2-shk .42s}
2603@keyframes home2-shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
2604.home2 .ub{flex:none;height:52px;padding:0 26px;border:0;border-radius:var(--ra);background:var(--brand);
2605  color:#fff;font-size:15px;font-weight:700;cursor:pointer;white-space:nowrap}
2606.home2 .ub:hover{background:var(--brand-d)}
2607.home2 .usug{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
2608.home2 .usg{border:1px solid var(--line);background:var(--panel2);border-radius:99px;padding:5px 12px;
2609  font-size:12.5px;color:var(--muted);cursor:pointer}
2610.home2 .usg:hover{border-color:var(--ink);color:var(--ink)}
2611.home2 .ud{font-size:14px;line-height:1.65;color:var(--muted);margin:16px 0 0;max-width:82ch}
2612.home2 .ud .ok2{color:var(--brand-d);font-weight:600}
2613.home2 .ud .no2{color:var(--red);font-weight:600}
2614.home2 .ud b{color:var(--ink)}
2615.home2 .ctac{margin-top:30px;text-align:center}
2616.home2 .ctac .mini{margin-top:12px}
2617.home2 #ask{padding:44px 0 8px;background:none}
2618.home2 .askh{margin:0 0 20px;font-size:clamp(23px,2.6vw,32px);font-weight:700;letter-spacing:-.03em;
2619  line-height:1.15;max-width:26ch;text-wrap:balance}
2620.home2 #ask .ur{max-width:620px}
2621.home2 #ask .ud{margin-top:16px}
2622.home2 .urlcta{border:0;background:none;box-shadow:none;padding:0;margin:0}
2623.home2 #ask .wrap{text-align:center}
2624.home2 .askh{margin:0 auto 22px;max-width:30ch}
2625.home2 #ask .ur{max-width:620px;margin:0 auto;justify-content:center}
2626.home2 #ask .usug{justify-content:center}
2627.home2 #ask .ud{margin:16px auto 0;max-width:78ch;text-align:center}
2628.home2 .askh{max-width:none;margin:0 auto 22px;font-size:clamp(19px,2.25vw,30px);letter-spacing:-.032em;
2629  line-height:1.14;text-wrap:balance;white-space:normal}
2630.home2 #ask .ud{max-width:none;margin:16px auto 0;font-size:clamp(12.5px,1.05vw,14px);line-height:1.6;
2631  text-wrap:balance}
2632@media (max-width:1180px){
2633.home2 .askh,.home2 #ask .ud{text-wrap:pretty}}
2634.home2 .askh{max-width:none;margin:0 auto 22px;font-size:min(30px,2.4vw);letter-spacing:-.032em;
2635  line-height:1.15;text-wrap:balance}
2636.home2 #ask .ud{max-width:none;margin:16px auto 0;font-size:min(14px,1.15vw);line-height:1.6;text-wrap:balance}
2637@media (min-width:1120px){
2638.home2 .askh,.home2 #ask .ud{white-space:nowrap;text-wrap:nowrap}}
2639@media (max-width:1119px){
2640.home2 .askh{font-size:clamp(19px,2.9vw,27px)}
2641.home2 #ask .ud{font-size:13px}}
2642.home2 .chrono{max-width:620px;margin:0 auto 22px;display:flex;flex-direction:column;align-items:center;gap:9px}
2643.home2 .chv{font-family:var(--mono);font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--ink);
2644  font-variant-numeric:tabular-nums}
2645.home2 .chb{display:block;width:100%;height:5px;background:var(--panel3);border-radius:99px;overflow:hidden}
2646.home2 .chb i{display:block;height:100%;width:0;background:var(--brand);border-radius:99px;transition:width .9s linear}
2647.home2 .chm{display:flex;gap:0;width:100%;justify-content:space-between}
2648.home2 .chm b{font-size:11px;font-weight:500;color:var(--line2);transition:color .3s;white-space:nowrap}
2649.home2 .chm b.on{color:var(--brand-d);font-weight:600}
2650.home2 .chn{font-size:11px;color:var(--dim)}
2651.home2 #after[data-sep]{border-top:1px solid rgba(15,23,42,.09);margin-top:46px}
2652.home2 #after>.sec:first-child{padding-top:70px}
2653.home2 .askend{padding-bottom:70px}
2654.home2 .askend .wrap{text-align:center}
2655.home2 .askh2{margin:0 auto 22px;font-size:min(30px,2.4vw);font-weight:700;letter-spacing:-.032em;
2656  line-height:1.15;max-width:none;text-wrap:balance}
2657.home2 .askend .ur{max-width:620px;margin:0 auto;justify-content:center}
2658.home2 .askend .usug{justify-content:center}
2659.home2 .askend .ud{margin:16px auto 0;max-width:none;text-align:center;font-size:min(14px,1.15vw)}
2660@media (min-width:1120px){
2661.home2 .askh2,.home2 .askend .ud{white-space:nowrap}}
2662@media (max-width:1119px){
2663.home2 .askh2{font-size:clamp(19px,2.9vw,27px)}
2664.home2 .askend .ud{font-size:13px;white-space:normal}}
2665@media (max-width:680px){
2666.home2 .chm b{font-size:9.5px}}
2667.home2 .askend .chrono{margin:26px auto 0}
2668.home2 .reject.one{display:block;max-width:none}
2669.home2 .reject.one .rj{border:1px solid var(--line);border-left:3px solid var(--red);
2670  border-radius:0 var(--rb) var(--rb) 0;padding:22px 26px;background:var(--panel)}
2671.home2 .reject.one .rjh{display:flex;align-items:center;gap:11px;margin-bottom:11px}
2672.home2 .reject.one .rjh b{font-size:20px;font-weight:700;letter-spacing:-.02em}
2673.home2 .rjv{font-size:10.5px;font-weight:700;color:#fff;background:var(--red);border-radius:var(--rs);padding:4px 10px}
2674.home2 .reject.one .rj p{font-size:15px;line-height:1.7;color:var(--muted);margin:0}
2675.home2 .rjs{color:var(--ink);font-weight:600}
2676.home2 .rjfoot{margin:18px 0 0;font-size:16px;font-weight:600;letter-spacing:-.015em}
2677.home2 .dec3.one{grid-template-columns:minmax(0,620px)}
2678.home2 .mkyn{display:flex;gap:10px;padding:16px}
2679.home2 .mkyn span{flex:1;text-align:center;border-radius:var(--ra);padding:14px;font-size:16px;font-weight:700;color:#fff}
2680.home2 .mkyn .y{background:var(--brand)}
2681.home2 .mkyn .n{background:var(--red)}
2682.home2 .mkwhy{padding:12px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);background:var(--panel)}
2683.home2 .mkwhy em{font-style:normal;color:var(--ink);font-weight:600}
2684.home2 #after .sec .eyeb{display:inline-flex;margin-left:auto;margin-right:auto}
2685.home2 #after .sec > .wrap > .eyeb,.home2 #after .sec > .wrap > h2,.home2 #after .sec > .wrap > .lead-l,.home2 #after .sec > .wrap > .lead-w,.home2 #after .sec > .wrap > .sub2{text-align:center}
2686.home2 #after .sec > .wrap > h2{max-width:22ch;margin-left:auto;margin-right:auto;text-wrap:balance}
2687.home2 #after .sec > .wrap > .lead-l,.home2 #after .sec > .wrap > .lead-w{max-width:72ch;margin-left:auto;margin-right:auto;text-wrap:pretty}
2688.home2 #after .sec > .wrap{text-align:center}
2689.home2 #after .dec3,.home2 #after .cov3,.home2 #after .learn,.home2 #after .reject,.home2 #after .prices,.home2 #after .mk,.home2 #after .cvbox,.home2 #after .memo,.home2 #after .vs,.home2 #after .qa{text-align:left}
2690.home2 #after .d3,.home2 #after .cv,.home2 #after .lrnb,.home2 #after .rj,.home2 #after .price{text-align:left}
2691.home2 #after .dec3.one{justify-content:center;margin-left:auto;margin-right:auto}
2692.home2 #after .ctac,.home2 #after .cta-wrap{text-align:center}
2693.home2 #after .cvbox{margin-left:auto;margin-right:auto}
2694.home2 .promise{justify-content:center}
2695.home2 #after .sec > .wrap > h2{max-width:none;font-size:min(34px,2.62vw);letter-spacing:-.038em;
2696  line-height:1.12;margin-left:auto;margin-right:auto}
2697@media (min-width:1120px){
2698.home2 #after .sec > .wrap > h2{white-space:nowrap}}
2699@media (max-width:1119px){
2700.home2 #after .sec > .wrap > h2{font-size:clamp(21px,3.1vw,30px);text-wrap:balance}}
2701.home2 #after .sec > .wrap > .big{font-size:min(27px,2.1vw);font-weight:500;color:var(--muted);
2702  letter-spacing:-.02em;line-height:1.3;max-width:none;margin:14px auto 0;text-align:center}
2703.home2 #after .sec > .wrap > .big b{color:var(--ink);font-weight:700}
2704@media (min-width:1120px){
2705.home2 #after .sec > .wrap > .big{white-space:nowrap}}
2706.home2 .proof{display:flex;flex-direction:column;align-items:center;gap:38px;margin-top:36px}
2707.home2 .pcard{width:min(760px,100%);background:var(--panel);border:1px solid rgba(15,23,42,.07);
2708  border-radius:22px;padding:34px 38px 32px;text-align:left;
2709  box-shadow:0 1px 2px rgba(15,23,42,.04), 0 22px 50px -28px rgba(15,23,42,.28)}
2710.home2 .pctop{display:flex;align-items:center;gap:14px;margin-bottom:22px}
2711.home2 .pcl{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:var(--dim);font-weight:600}
2712.home2 .pcv{margin-left:auto;font-size:11.5px;font-weight:700;color:#fff;background:var(--red);
2713  border-radius:99px;padding:6px 14px;letter-spacing:.01em}
2714.home2 .pcname{font-size:36px;font-weight:700;letter-spacing:-.04em;line-height:1}
2715.home2 .pcdesc{font-size:15.5px;color:var(--muted);margin-top:8px}
2716.home2 .pcq{position:relative;margin:26px 0 0;padding:22px 24px 22px 46px;border-radius:14px;
2717  background:var(--panel2);font-size:18px;line-height:1.72;color:var(--muted);
2718  border:1px solid rgba(15,23,42,.05)}
2719.home2 .pcq::before{content:"“";position:absolute;
2719left:16px;top:12px;font-size:52px;line-height:1;
2720  color:var(--line2);font-family:Georgia,serif}
2721.home2 .pcq b{color:var(--ink);font-weight:600}
2722.home2 .pcfoot{margin:0;font-size:clamp(19px,1.9vw,25px);font-weight:500;color:var(--muted);
2723  line-height:1.42;letter-spacing:-.02em;text-align:center}
2724.home2 .pcfoot b{display:block;color:var(--ink);font-weight:700}
2725.home2 .answer{margin-top:30px;text-align:center}
2726.home2 .ansbig{display:block;font-size:clamp(52px,7vw,96px);font-weight:700;letter-spacing:-.055em;
2727  line-height:.96;color:var(--ink)}
2728.home2 .anssub{margin:20px auto 0;max-width:64ch;font-size:clamp(16px,1.35vw,19px);line-height:1.65;
2729  color:var(--muted)}
2730.home2 .anssub b{color:var(--ink);font-weight:600}
2731.home2{
2732  --surf-b:1px solid rgba(15,23,42,.07);
2733  --surf-r:20px;
2734  --surf-s:0 1px 2px rgba(15,23,42,.04), 0 22px 50px -30px rgba(15,23,42,.26);
2735  --surf-h:0 1px 2px rgba(15,23,42,.05), 0 30px 62px -30px rgba(15,23,42,.34);
2736}
2737.home2 #after .d3,.home2 #after .cv,.home2 #after .lrnb,.home2 #after .price,.home2 #after .cvbox,.home2 #after .memo,.home2 #after .rj,.home2 #after .s3,.home2 #after .qai,.home2 #after .mock,.home2 .kpi,.home2 .urlcta{
2738  border:var(--surf-b);border-radius:var(--surf-r);background:var(--panel);
2739  box-shadow:var(--surf-s);transition:box-shadow .22s ease, transform .22s ease}
2740.home2 #after .d3:hover,.home2 #after .cv:hover,.home2 #after .lrnb:hover,.home2 #after .price:hover,.home2 .kpi:hover{
2741  box-shadow:var(--surf-h);transform:translateY(-2px)}
2742.home2 #after .mock{border-radius:14px;box-shadow:none;border:1px solid rgba(15,23,42,.06);
2743  background:var(--panel2);overflow:hidden}
2744.home2 #after .d3 .mock,.home2 #after .cv .mock{margin-top:18px}
2745.home2 #after .d3,.home2 #after .cv,.home2 #after .lrnb{padding:28px}
2746.home2 #after .price{padding:30px}
2747.home2 .kpi{padding:26px}
2748.home2 #after .qai{padding:26px;border-top:var(--surf-b)}
2749.home2 #after .lrnb.hi{border-color:rgba(14,138,79,.35);
2750  box-shadow:0 0 0 4px rgba(14,138,79,.07), var(--surf-s)}
2751.home2 #after .rj{border-left:3px solid var(--red);border-radius:0 var(--surf-r) var(--surf-r) 0}
2752.home2 #after .mk a{border:var(--surf-b);border-radius:12px;background:var(--panel);
2753  box-shadow:0 1px 2px rgba(15,23,42,.03);transition:box-shadow .2s,border-color .2s}
2754.home2 #after .mk a:hover{box-shadow:var(--surf-s);border-color:rgba(15,23,42,.14)}
2755.home2 .promise{border:var(--surf-b);border-radius:var(--surf-r);background:var(--panel);
2756  box-shadow:var(--surf-s);padding:26px 10px}
2757.home2 .promise i{background:rgba(15,23,42,.08)}
2758.home2 .uf{border:var(--surf-b);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
2759.home2 .uf:focus-within{border-color:rgba(15,23,42,.24);box-shadow:0 0 0 4px rgba(15,23,42,.05)}
2760.home2 .ub{border-radius:14px;box-shadow:0 2px 4px rgba(14,138,79,.22), 0 10px 24px -12px rgba(14,138,79,.6)}
2761.home2 .bigcta{border-radius:14px;box-shadow:0 2px 4px rgba(15,23,42,.12), 0 14px 30px -14px rgba(15,23,42,.55)}
2762.home2 .promise{border:0;box-shadow:none;background:none;padding:26px 0}
2763.home2 .promise i{background:var(--line)}
2764.home2 .kpis .kpi{border:0;box-shadow:none;background:none;padding:18px 0;transform:none}
2765.home2 .kpis .kpi:hover{box-shadow:none;transform:none}
2766.home2 .kpis{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
2767  padding:6px 0;margin:26px auto 0}
2768.home2 .kpis .kpi+.kpi{border-left:1px solid var(--line);padding-left:26px}
2769.home2 .pricenote,.home2 .pricefoot,.home2 .priceleg,.home2 #tarifs .note,.home2 #tarifs .legal{
2770  border:0!important;box-shadow:none!important;background:none!important;padding:0!important}
2771.home2 #after .under{border:0!important;box-shadow:none!important;background:none!important;
2772  padding:0!important;margin-top:26px;text-align:center;font-size:14px;color:var(--muted);
2773  line-height:1.65;max-width:74ch;margin-left:auto;margin-right:auto}
2774.home2 #after .under b{color:var(--ink);font-weight:600}
2775.home2 #after .under .ment{margin-top:10px;font-size:12px;color:var(--dim);line-height:1.6}
2776.home2 .kpi{border:0!important;box-shadow:none!important;background:none!important;padding:18px 0!important}
2777.home2 .kpi:hover{box-shadow:none!important;transform:none!important}
2778.home2 .covwrap{margin-top:34px;display:flex;flex-direction:column;align-items:center;gap:30px}
2779.home2 .covgauge{width:min(720px,100%)}
2780.home2 .covtop{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}
2781.home2 .covtop b{font-size:clamp(46px,5vw,68px);font-weight:700;letter-spacing:-.055em;line-height:1}
2782.home2 .covtop em{font-style:normal;font-size:19px;color:var(--muted);font-weight:500}
2783.home2 .covtop span{margin-left:auto;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--dim)}
2784.home2 .covbar{height:12px;border-radius:99px;background:var(--panel3);overflow:hidden;
2785  box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}
2786.home2 .covbar i{display:block;height:100%;border-radius:99px;
2787  background:linear-gradient(90deg,var(--brand),#3ECF8E)}
2788.home2 .covlbl{display:flex;justify-content:space-between;margin-top:10px;font-size:13px;color:var(--muted)}
2789.home2 .covline{font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--muted);
2790  max-width:66ch;text-align:center;margin:0}
2791.home2 .covline b{color:var(--ink);font-weight:700}
2792.home2 .kpis{background:none!important;gap:0!important;border:0!important;
2793  border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;
2794  border-radius:0!important;padding:4px 0!important;margin:30px auto 0!important;
2795  max-width:none;box-shadow:none!important;overflow:visible}
2796.home2 .kpis .kpi{border:0!important;background:none!important;box-shadow:none!important;
2797  padding:20px 24px!important;text-align:center}
2798.home2 .kpis .kpi+.kpi{box-shadow:inset 1px 0 0 var(--line)!important}
2799.home2 .kpis .kpi b{display:block;font-size:clamp(30px,3vw,42px);font-weight:700;letter-spacing:-.05em;line-height:1}
2800.home2 .kpis .kpi span{display:block;margin-top:9px;font-size:13.5px;color:var(--muted);line-height:1.4}
2801.home2 #after .sec .eyeb{display:flex;flex-direction:column;align-items:center;gap:11px;
2802  background:none;box-shadow:none;padding:0;margin:0 auto 20px;
2803  font-family:var(--body);font-size:12.5px;font-weight:600;letter-spacing:.2em;
2804  text-transform:uppercase;color:var(--brand-d);line-height:1}
2805.home2 #after .sec .eyeb i{display:block;width:30px;height:2px;background:var(--brand);
2806  border-radius:2px;flex:none;margin:0}
2807.home2 #after .sec .eyeb .eyn{display:none}`,G3=`
2808.home2{background:#F8FAFC}
2809.home2-appwrap{max-width:1240px;margin:0 auto;padding:0 30px}
2810.home2-app{background:#fff;border:1px solid #E2E8F0}
2811@media (max-width:1400px){.home2-appwrap{max-width:none;padding:0}.home2-app{border-left:0;border-right:0}}
2812`,W3={hero:{h1:"Nous trouvons vos prochaines cibles à acquérir.",subPre:"Avec ",subB:"Stan",subPost:", notre AI Corporate Developer.",claimPre:"Votre Corporate Developer ne vous demandera que ",claimB:"5 à 10 décisions par mois",claimPost:", tranchées depuis votre téléphone. Le reste, Stan s'en occupe.",cue:"Commencez par en évaluer une ",promise:[["5–10","décisions par mois"],["489","dossiers traités sans vous"],["2 min","par décision, sur téléphone"]]},leadin:{b:"Voici les cibles de nos clients : plus de 1 000 sociétés rachetables, entrées de ce matin comprises.",rest:" Les vôtres restent à faire.",li2:"Choisissez une société, cliquez Évaluer — Stan étudie votre présence en ligne et en déduit vos critères."},chrono:{ready:"PRÊT",milestones:[[8,"site lu"],[16,"critères posés"],[32,"marché criblé"],[45,"premiers mémos"]],note:"démonstration accélérée · 45 min réelles"},ask:{h2:"Ces cibles sont celles de nos clients. Les vôtres se construisent en quarante-cinq minutes.",placeholder:"votre-entreprise.fr",cta:"Voir mon deal flow →",ud1:"Stan lit votre présence en ligne, en déduit vos critères d'acquisition, puis vous rend chaque matin les sociétés ",udOk:"retenues",udAnd:" et ",udNo:"écartées",ud2:", avec leurs motifs. ",udB:"Trois analyses offertes."},askend:{h2:"Vous avez lu jusqu'ici. Vos cibles tiennent en une adresse.",placeholder:"votre-entreprise.fr",cta:"Générer mon deal flow →",ud1:"Quarante-cinq minutes avec un Corporate Developer. Vous repartez avec vos premières sociétés ",udOk:"retenues",ud2:", leurs motifs, et ",udB:"trois mémos chiffrés",ud3:"."},tri:{h2:"Sur 495 sociétés rachetables, une poignée mérite votre décision.",bigPre:"Ce qui a de la valeur n'est pas la liste. ",bigB:"C'est le tri.",kpis:[["495","sociétés sur votre marché"],["45","retenues par Stan, avec la raison"],["23","analysées, mémo chiffré à l'appui"],["5–10","arrivent jusqu'à votre décision"]],p1a:"Stan élimine 87 % du travail avant qu'il n'atteigne votre bureau. Et il écrit pourquoi : chaque société écartée porte son motif, en une phrase. ",p1b:"C'est ce qu'aucune base de données ne fait",p1c:" — une base vous donne une liste, elle ne vous dit jamais ce qu'elle a éliminé pour vous, ni pourquoi.",frieze:[["RETENUES AU CRIBLE","Retenues"],["MÉMO PRODUIT","Analysées"],["VOTRE DÉCISION","À trancher"],["VOS OUI","Validées"]],p2a:"Chaque lundi, vous recevez votre shortlist, ",p2b:"annotée par votre Corporate Developer",p2c:" : uniquement les dossiers qui méritent un arbitrage. Vous répondez oui ou non. Vos oui affinent Stan pour la semaine suivante.",claim:"Stan travaille. Nous vérifions. Vous décidez."},mecanique:{eyeb:"La mécanique",h2:"Une décision tient en deux boutons.",lead:"Le dossier part le jour où il entre. Notification, mémo, oui ou non.",d3t:"Deux boutons, une ligne de motif",d3pA:"OUI part en approche, NON part en écartées avec sa raison. ",d3pB:"Rien d'autre ne vous est demandé.",d3pC:" Et si vous ne tranchez pas, Stan groupe les dossiers en attente et vous appelle.",mockYes:"✓ OUI",mockNo:"✗ NON",whyPre:"Pourquoi ? ",whyEm:"hors fourchette de valorisation",lead2:"Et chaque lundi matin, un email vous dit ce qui vous attend — ou que la semaine est calme."},couverture:{eyeb:"La couverture",h2:"Toutes les sociétés que vous pourriez racheter. Pas un échantillon.",pct:"18 %",pctLbl:"de votre marché déjà criblé",count:"250 SUR ~1 400",lblLeft:"Aujourd'hui",lblRight:"+12 nouvelles s
2812ociétés par mois",lineB1:"1 pour 1",line1:" — chaque société retenue obtient son analyse chiffrée. Pas les plus grosses : ",lineB2:"toutes",line2:"."},preuve:{eyeb:"La preuve du tri",h2:"L'onglet que personne d'autre ne vous montre.",p1a:"Une base de données vous donne une liste et vous laisse la trier. Stan vous donne aussi ",p1b:"ce qu'il a écarté, et pourquoi",p1c:". C'est ce qui sépare un annuaire d'un analyste : vous pouvez contester une décision, donc vous pouvez lui faire confiance.",pcl:"CRIBLE · CRITÈRE A",pcv:"✗ Écartée",pcname:"Instinctdigital",pcdesc:"Solutions de reporting numérique pour sociétés de gestion",pcqA:"Un service logiciel — ",pcqB:"et non",pcqC:" un courtage en assurance, un conseil en risques, un placement d'assurance d'entreprise ou une intermédiation financière pour clients corporate.",footA:"Une société écartée sans motif,",footB:"c'est une société qu'on n'a pas lue."},concurrent:{eyeb:"Le vrai concurrent",h2:"Qui, chez vous, est capable de couvrir l'ensemble des cibles rachetables ?",big:"Personne.",subA:"Pas faute de compétence — faute de nuits.",subB:"Votre concurrent n'est pas un autre logiciel : c'est le fait que personne ne regarde."},cred:{lbl:"Là où notre équipe a déployé du capital",logos:["partech","ARDIAN","Google","MIRAKL","leboncoin"],txt:"À tous les stades d'investissement — Seed, Venture, Growth, LBO, M&A — pour des grands comptes, des startups de premier plan et des fonds de référence.",q:"Stan applique ce jugement à votre marché, chaque nuit, sans se fatiguer."},demarrage:{eyeb:"Le démarrage",h2:"Quarante-cinq minutes, et il tourne.",leadA:"Stan lit votre présence en ligne et en déduit trois angles d'acquisition ; vous les corrigez ; il crible votre marché pendant l'appel. ",leadB:"Vous repartez avec vos premières sociétés retenues, leur
2812s motifs et trois mémos chiffrés.",leadC:" Ensuite, chaque 👍 et chaque OUI rapprochent son crible du vôtre.",cta:"Planifier votre appel",mini:"Sans engagement · trois analyses offertes"},tarifs:{eyeb:"Les offres",h2:"Une couverture totale, et un tri fait comme vous le feriez.",lead:"Les trois offres criblent le même marché et rendent les mêmes verdicts. Seul change le nombre de mémos produits chaque matin — donc le délai avant d'avoir un avis sur chaque cible retenue."}},Q3={hero:{h1:"We find your next acquisition targets.",subPre:"With ",subB:"Stan",subPost:", our AI Corporate Developer.",claimPre:"Your Corporate Developer will only ask you for ",claimB:"5 to 10 decisions a month",claimPost:", made from your phone. Stan takes care of the rest.",cue:"Start by evaluating one ",promise:[["5–10","decisions a month"],["489","files handled without you"],["2 min","per decision, on your phone"]]},leadin:{b:"Here are our clients' targets: more than 1,000 acquirable companies, this morning's entries included.",rest:" Yours are still to be built.",li2:"Pick a company, click Evaluate — Stan studies your online presence and derives your criteria."},chrono:{ready:"READY",milestones:[[8,"site read"],[16,"criteria set"],[32,"market screened"],[45,"first memos"]],note:"accelerated demo · 45 real minutes"},ask:{h2:"These targets are our clients'. Yours take forty-five minutes to build.",placeholder:"your-company.com",cta:"See my deal flow →",ud1:"Stan reads your online presence, derives your acquisition criteria, then hands you each morning the companies ",udOk:"kept",udAnd:" and ",udNo:"discarded",ud2:", with their reasons. ",udB:"Three free analyses."},askend:{h2:"You've read this far. Your targets fit in one address.",placeholder:"your-company.com",cta:"Generate my deal flow →",ud1:"Forty-five minutes with a Corporate Developer. You leave with your first companies ",udOk:"kept",ud2:", their reasons, and ",udB:"three quantified memos",ud3:"."},tri:{h2:"Out of 495 acquirable companies, a handful deserves your decision.",bigPre:"What has value is not the list. ",bigB:"It's the sorting.",kpis:[["495","companies on your market"],["45","kept by Stan, with the reason"],["23","analysed, quantified memo attached"],["5–10","reach your decision"]],p1a:"Stan eliminates 87% of the work before it reaches your desk. And he writes down why: every discarded company carries its reason, in one sentence. ",p1b:"That's what no database does",p1c:" — a database gives you a list; it never tells you what it eliminated for you, nor why.",frieze:[["KEPT AT SCREENING","Kept"],["MEMO PRODUCED","Analysed"],["YOUR DECISION","To decide"],["YOUR YESES","Validated"]],p2a:"Every Monday, you receive your shortlist, ",p2b:"annotated by your Corporate Developer",p2c:": only the files that deserve a call. You answer yes or no. Your yeses refine Stan for the following week.",claim:"Stan works. We check. You decide."},mecanique:{eyeb:"The mechanics",h2:"A decision fits in two buttons.",lead:"The file goes out the day it comes in. Notification, memo, yes or no.",d3t:"Two buttons, one line of reason",d3pA:"YES goes to approach, NO goes to discarded with its reason. ",d3pB:"Nothing else is asked of you.",d3pC:" And if you don't decide, Stan groups the pending files and calls you.",mockYes:"✓ YES",mockNo:"✗ NO",whyPre:"Why? ",whyEm:"outside the valuation range",lead2:"And every Monday morning, an email tells you what awaits you — or that the week is quiet."},couverture:{eyeb:"The coverage",h2:"Every company you could acquire. Not a sample.",pct:"18%",pctLbl:"of your market already screened",count:"250 OF ~1,400",lblLeft:"Today",lblRight:"+12 new companies a month",lineB1:"1 for 1",line1:" — every kept company gets its quantified analysis. Not the biggest ones: ",lineB2:"all of them",line2:"."},preuve:{eyeb:"The proof of sorting",h2:"The tab nobody else shows you.",p1a:"A database gives you a list and leaves the sorting to you. Stan also gives you ",p1b:"what he discarded, and why",p1c:". That's what separates a directory from an analyst: you can challenge a decision, so you can trust it.",pcl:"SCREENING · CRITERION A",pcv:"✗ Discarded",pcname:"Instinctdigital",pcdesc:"Digital reporting solutions for asset management companies",pcqA:"A software service — ",pcqB:"and not",pcqC:" an insurance brokerage, a risk consultancy, a corporate insurance placement or a financial intermediation for corporate clients.",footA:"A company discarded without a reason",footB:"is a company that was never read."},concurrent:{eyeb:"The real competitor",h2:"Who, in your company, can cover every acquirable target?",big:"Nobody.",subA:"Not for lack of skill — for lack of nights.",subB:"Your competitor isn't another piece of software: it's the fact that nobody is looking."},cred:{lbl:"Where our team has deployed capital",logos:["partech","ARDIAN","Google","MIRAKL","leboncoin"],txt:"At every investment stage — Seed, Venture, Growth, LBO, M&A — for large accounts, leading startups and reference funds.",q:"Stan applies that judgment to your market, every night, without tiring."},demarrage:{eyeb:"Getting started",h2:"Forty-five minutes, and it runs.",leadA:"Stan reads your online presence and derives three acquisition angles; you correct them; he screens your market during the call. ",leadB:"You leave with your first kept companies, their reasons and three quantified memos.",leadC:" Then every 👍 and every YES bring his screening closer to yours.",cta:"Book your call",mini:"No commitment · three free analyses"},tarifs:{eyeb:"The plans",h2:"Total coverage, and a sorting done the way you would do it.",lead:"All three plans screen the same market and return the same verdicts. Only the number of memos produced each morning changes — hence the wait before having an opinion on every kept target."}},cn={en:Q3,fr:W3};function Z3(){const{lang:t}=ae(),n=cn[t],r=()=>{var i;(i=document.getElementById("atelier"))==null||i.scrollIntoView({behavior:"smooth"})};return e.jsxs("div",{id:"heroSec",children:[e.jsxs("div",{className:"wrap hero",children:[e.jsx("h1",{children:n.hero.h1}),e.jsxs("div",{className:"sub",children:[n.hero.subPre,e.jsx("b",{children:n.hero.subB}),n.hero.subPost]}),e.jsxs("div",{className:"claim2",children:[n.hero.claimPre,e.jsx("b",{children:n.hero.claimB}),n.hero.claimPost]}),e.jsxs("button",{className:"cue",onClick:r,children:[n.hero.cue,e.jsx("span",{className:"ar",children:"↓"})]}),e.jsx("div",{className:"promise",children:n.hero.promise.map(([i,s],a)=>e.jsxs(m.Fragment,{children:[a>0&&e.jsx("i",{}),e.jsxs("span",{children:[e.jsx("b",{children:i}),s]})]},s))})]}),e.jsxs("div",{className:"wrap leadin",id:"leadin",children:[e.jsx("b",{children:n.leadin.b}),n.leadin.rest,e.jsx("span",{className:"li2",children:n.leadin.li2})]})]})}const K3=m.lazy(()=>Vr(()=>import("./AtelierV2Section-Cua_IQbO.js"),__vite__mapDeps([0,1,2,3,4]))),nc="min(880px,86vh)";function J3(){const t=m.useRef(null),[n,r]=m.useState(!1);return m.useEffect(()=>{const i=t.current;if(!i)return;const s=new IntersectionObserver(a=>{a[0]&&a[0].isIntersecting&&(r(!0),s.disconnect())},{rootMargin:"600px"});return s.observe(i),()=>s.disconnect()},[]),e.jsxs(e.Fragment,{children:[e.jsx("div",{id:"atelier"}),e.jsx("div",{className:"home2-appwrap",ref:t,children:e.jsx("div",{className:"home2-app",style:{"--atelier-h":nc},children:n?e.jsx(m.Suspense,{fallback:e.jsx("div",{style:{height:nc}}),children:e.jsx(K3,{demo:!0})}):e.jsx("div",{style:{height:nc}})})})]})}let vs=0,rs;const Ga=new Set;function $3(t){return Ga.add(t),rs||(rs=setInterval(()=>{vs+=1,vs>52&&(vs=0),Ga.forEach(n=>n())},1e3)),()=>{Ga.delete(t),!Ga.size&&rs&&(clearInterval(rs),rs=void 0,vs=0)}}const $h=()=>vs;function Xh(){const{lang:t}=ae(),n=cn[t].chrono,r=m.useSyncExternalStore($3,$h,$h),i=Math.max(0,45-r);return e.jsxs("div",{className:"chrono",children:[e.jsx("span",{className:"chv",children:i?`${String(i).padStart(2,"0")}:00`:n.ready}),e.jsx("span",{className:"chb",children:e.jsx("i",{style:{width:`${Math.min(100,r/45*100)}%`}})}),e.jsx("span",{className:"chm",children:n.milestones.map(([s,a])=>e.jsx("b",{"data-at":s,className:r>=s?"on":void 0,children:a},s))}),e.jsx("span",{className:"chn",children:n.note})]})}function em({variant:t}){const{lang:n}
2812=ae(),r=cn[n];return t==="mid"?e.jsx("div",{id:"ask",children:e.jsxs("div",{className:"wrap",children:[e.jsx("h2",{className:"askh",children:r.ask.h2}),e.jsx(Xh,{}),e.jsx(ta,{placeholder:r.ask.placeholder,cta:r.ask.cta}),e.jsxs("p",{className:"ud",children:[r.ask.ud1,e.jsx("b",{className:"ok2",children:r.ask.udOk}),r.ask.udAnd,e.jsx("b",{className:"no2",children:r.ask.udNo}),r.ask.ud2,e.jsx("b",{children:r.ask.udB})]})]})}):e.jsx("div",{className:"sec askend",children:e.jsxs("div",{className:"wrap",children:[e.jsx("h2",{className:"askh2",children:r.askend.h2}),e.jsx(ta,{placeholder:r.askend.placeholder,cta:r.askend.cta}),e.jsxs("p",{className:"ud",children:[r.askend.ud1,e.jsx("b",{className:"ok2",children:r.askend.udOk}),r.askend.ud2,e.jsx("b",{children:r.askend.udB}),r.askend.ud3]}),e.jsx(Xh,{})]})})}function X3(){const{lang:t}=ae(),n=cn[t].tri;return e.jsx("div",{className:"sec",children:e.jsxs("div",{className:"wrap",children:[e.jsx("h2",{children:n.h2}),e.jsxs("p",{className:"big",children:[n.bigPre,e.jsx("b",{children:n.bigB})]}),e.jsx("div",{className:"kpis",children:n.kpis.map(([r,i],s)=>e.jsxs("div",{className:s===3?"kpi hi":"kpi",children:[e.jsx("b",{children:r}),e.jsx("span",{children:i})]},i))}),e.jsxs("p",{children:[n.p1a,e.jsx("b",{children:n.p1b}),n.p1c]}),e.jsx("div",{className:"frieze",children:n.frieze.map(([r,i],s)=>e.jsxs("div",{className:"fs",style:s<3?{"--c":`var(--p${s+1})`,"--tc":"var(--ink)"}:{"--c":"var(--p4)"},children:[e.jsx("div",{className:"l",children:r}),e.jsx("div",{className:"d",children:i})]},r))}),e.jsxs("p",{children:[n.p2a,e.jsx("b",{children:n.p2b}),n.p2c]}),e.jsx("div",{className:"claim",children:n.claim})]})})}function e5(){const{lang:t}=ae(),n=cn[t].mecanique;return e.jsx("div",{className:"sec",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),n.eyeb]}),e.jsx("h2",{children:n.h2}),e.jsx("p",{className:"lead-l",children:n.lead}),e.jsx("div",{className:"dec3 one",children:e.jsxs("div",{className:"d3",children:[e.jsxs("div",{className:"d3h",children:[e.jsx("b",{children:"1"}),e.jsx("span",{children:n.d3t})]}),e.jsxs("p",{children:[n.d3pA,e.jsx("b",{children:n.d3pB}),n.d3pC]}),e.jsxs("div",{className:"mock",children:[e.jsxs("div",{className:"mkyn",children:[e.jsx("span",{className:"y",children:n.mockYes}),e.jsx("span",{className:"n",children:n.mockNo})]}),e.jsxs("div",{className:"mkwhy",children:[n.whyPre,e.jsx("em",{children:n.whyEm})]})]})]})}),e.jsx("p",{className:"lead-l",style:{marginTop:26,fontSize:14},children:n.lead2})]})})}function t5(){const{lang:t}=ae(),n=cn[t].couverture;return e.jsx("div",{className:"sec",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),n.eyeb]}),e.jsx("h2",{children:n.h2}),e.jsxs("div",{className:"covwrap",children:[e.jsxs("div",{className:"covgauge",children:[e.jsxs("div",{className:"covtop",children:[e.jsx("b",{children:n.pct}),e.jsx("em",{children:n.pctLbl}),e.jsx("span",{children:n.count})]}),e.jsx("div",{className:"covbar",children:e.jsx("i",{style:{width:"18%"}})}),e.jsxs("div",{className:"covlbl",children:[e.jsx("span",{children:n.lblLeft}),e.jsx("span",{children:n.lblRight})]})]}),e.jsxs("p",{className:"covline",children:[e.jsx("b",{children:n.lineB1}),n.line1,e.jsx("b",{children:n.lineB2}),n.line2]})]})]})})}function n5(){const{lang:t}=ae(),n=cn[t].preuve;return e.jsx("div",{className:"sec",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),n.eyeb]}),e.jsx("h2",{children:n.h2}),e.jsxs("p",{children:[n.p1a,e.jsx("b",{children:n.p1b}),n.p1c]}),e.jsxs("div",{className:"proof",children:[e.jsxs("div",{className:"pcard",children:[e.jsxs("div",{className:"pctop",children:[e.jsx("span",{className:"pcl",children:n.pcl}),e.jsx("span",{className:"pcv",children:n.pcv})]}),e.jsx("div",{className:"pcname",children:n.pcname}),e.jsx("div",{className:"pcdesc",children:n.pcdesc}),e.jsxs("blockquote",{className:"pcq",children:[n.pcqA,e.jsx("b",{children:n.pcqB}),n.pcqC]})]}),e.jsxs("p",{className:"pcfoot",children:[n.footA,e.jsx("br",{}),e.jsx("b",{children:n.footB})]})]})]})})}function r5(){const{lang:t}=ae(),n=cn[t].concurrent;return e.jsx("div",{className:"sec alt",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),n.eyeb]}),e.jsx("h2",{children:n.h2}),e.jsxs("div",{className:"answer",children:[e.jsx("span",{className:"ansbig",children:n.big}),e.jsxs("p",{className:"anssub",children:[n.subA,e.jsx("br",{}),e.jsx("b",{children:n.subB})]})]})]})})}function i5(){const{lang:t}=ae(),n=cn[t].cred;return e.jsx("div",{className:"sec cred",children:e.jsxs("div",{className:"wrap",children:[e.jsx("div",{className:"credlbl",children:n.lbl}),e.jsx("div",{className:"logos",children:n.logos.map(r=>e.jsx("span",{children:r},r))}),e.jsx("p",{className:"credtxt",children:n.txt}),e.jsx("p",{className:"credq",children:n.q})]})})}function s5(){const{lang:t}=ae(),{openRdv:n}=pl(),r=cn[t].demarrage;return e.jsx("div",{className:"sec",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),r.eyeb]}),e.jsx("h2",{children:r.h2}),e.jsxs("p",{className:"lead-l",children:[r.leadA,e.jsx("b",{children:r.leadB}),r.leadC]}),e.jsxs("div",{className:"ctac",children:[e.jsx("button",{className:"bigcta",onClick:()=>n(),children:r.cta}),e.jsx("div",{className:"mini",children:r.mini})]})]})})}const a5={cards:[{name:"Essai",amount:"0 €",per:"Sans carte bancaire, sans engagement",gauge:{label:"DÉLAI AVANT COUVERTURE COMPLÈTE DU MARCHÉ",width:"28%",value:"~2 semaines",note:"3 mémos par jour à la demande — vos 45 retenues analysées en deux semaines"},li:[[{t:"Donnez votre site : Stan étudie toute votre présence en ligne, déduit vos critères et lance le sourcing"}
2812],[{t:"Votre marché criblé, sur autant d'angles que vous voulez suivre"}],[{t:"Chaque société "},{t:"retenue",k:"vok"},{t:" ou "},{t:"écartée",k:"vno"},{t:", avec la raison écrite"}],[{t:"Votre deal flow complet, dont les dix premières cibles en clair"}],[{t:"Le mémo de votre meilleure cible, offert",k:"b"}]],cta:"⚡ Évaluer une cible maintenant",action:"trial"},{hi:!0,badge:"Le plus choisi",name:"Standard",amount:"20 400 €",sYear:"/ an",per:"+ 5 000 € de mise en route, une fois",fine:{pre:"Payable à l'année — ",b:"18 360 €, soit −10 %",l2:"ou par trimestre — 5 100 €",l3:"Engagement 12 mois · tarifs HT"},gauge:{label:"DÉLAI AVANT COUVERTURE COMPLÈTE DU MARCHÉ",width:"74%",value:"au fil de l'eau",note:"3 instantanés chaque matin + 1 détaillé — le flux absorbé, l'arriéré résorbé"},li:[[{t:"Votre thèse calée avec nous, puis affinée chaque semaine"}],[{t:"Vos premiers dossiers retenus analysés dès la mise en route",k:"b"},{t:" — vous démarrez sans arriéré"}],[{t:"Stan tourne chaque nuit : chaque société de votre marché retenue ou écartée, avec la raison"}],[{t:"Pour chaque cible retenue, votre séquence d'approche rédigée à partir de son actualité"}],[{t:"Votre brief quotidien : l'actualité M&A et les levées de votre marché"}],[{t:"Chaque lundi, votre shortlist annotée : uniquement les dossiers à arbitrer"}]],cta:"Planifier votre appel stratégique",action:"rdv"},{name:"Entreprise",amount:"36 000 €",sYear:"/ an",per:"+ 15 000 € de mise en route, une fois",fine:{pre:"Payable à l'année — ",b:"32 400 €, soit −10 %",l2:"ou par trimestre — 9 000 €",l3:"Engagement 12 mois · tarifs HT"},gauge:{label:"DÉLAI AVANT COUVERTURE COMPLÈTE DU MARCHÉ",width:"100%",value:"aucune attente",note:"8 instantanés + 2 détaillés — marché entier couvert, sans jamais attendre"},li:[[{t:"Tout le Standard, plus :"}],[{t:"Stan s'intègre à vos outils de deal flow et évalue vos dossiers déjà en cours"}],[{t:"Jusqu'à 40 séquences d'approche rédigées par mois"}],[{t:"Un Corporate Developer joignable, qui relit vos dossiers sensibles"}]],cta:"Planifier votre appel stratégique",action:"rdv"}],under:{b:"Besoin de plus de mémos ?",rest:" Vos dossiers retenus en attente peuvent être analysés à tout moment, sans changer d'offre.",ment:"Tarifs HT. Reconduction tacite à l'issue des 12 mois, résiliable avec 3 mois de préavis. Indexation annuelle applicable."}},o5={cards:[{name:"Trial",amount:"0 €",per:"No credit card, no commitment",gauge:{label:"TIME TO FULL MARKET COVERAGE",width:"28%",value:"~2 weeks",note:"3 memos a day on demand — your 45 kept targets analysed in two weeks"},li:[[{t:"Give your site: Stan studies your entire online presence, derives your criteria and starts the sourcing"}],[{t:"Your market screened, on as many angles as you want to follow"}],[{t:"Every company "},{t:"kept",k:"vok"},{t:" or "},{t:"discarded",k:"vno"},{t:", with the reason in writing"}],[{t:"Your complete deal flow, with the first ten targets in the clear"}],[{t:"The memo of your best target, free",k:"b"}]],cta:"⚡ Evaluate a target now",action:"trial"},{hi:!0,badge:"The most chosen",name:"Standard",amount:"20 400 €",sYear:"/ year",per:"+ 5 000 € onboarding, one time",fine:{pre:"Payable yearly — ",b:"18 360 €, i.e. −10%",l2:"or per quarter — 5 100 €",l3:"12-month commitment · prices excl. VAT"},gauge:{label:"TIME TO FULL MARKET COVERAGE",width:"74%",value:"as-you-go",note:"3 snapshots every morning + 1 detailed — the flow absorbed, the backlog cleared"},li:[[{t:"Your thesis set with us, then refined every week"}],[{t:"Your first kept files analysed from onboarding",k:"b"},{t:" — you start with no backlog"}],[{t:"Stan runs every night: every company on your market kept or discarded, with the reason"}],[{t:"For every kept target, your outreach sequence drafted from its news"}],[{t:"Your daily brief: the M&A news and fundraises of your market"}],[{t:"Every Monday, your annotated shortlist: only the files left to arbitrate"}]],cta:"Book your strategy call",action:"rdv"},{name:"Enterprise",amount:"36 000 €",sYear:"/ year",per:"+ 15 000 € onboarding, one time",fine:{pre:"Payable yearly — ",b:"32 400 €, i.e. −10%",l2:"or per quarter — 9 000 €",l3:"12-month commitment · prices excl. VAT"},gauge:{label:"TIME TO FULL MARKET COVERAGE",width:"100%",value:"no wait",note:"8 snapshots + 2 detailed — the whole market covered, without ever waiting"},li:[[{t:"Everything in Standard, plus:"}],[{t:"Stan plugs into your deal-flow tools and evaluates your files already in progress"}],[{t:"Up to 40 outreach sequences drafted per month"}],[{t:"A reachable Corporate Developer, who re-reads your sensitive files"}]],cta:"Book your strategy call",action:"rdv"}],under:{b:"Need more memos?",rest:" Your kept files awaiting analysis can be analysed at any time, without changing plans.",ment:"Price
2812s excl. VAT. Tacit renewal at the end of the 12 months, cancellable with 3 months' notice. Annual indexation applicable."}},l5={en:o5,fr:a5};function c5(){const{lang:t}=ae(),{openRdv:n}=pl(),r=cn[t].tarifs;return e.jsx("div",{className:"sec",id:"tarifs",children:e.jsxs("div",{className:"wrap",children:[e.jsxs("div",{className:"eyeb",children:[e.jsx("i",{}),r.eyeb]}),e.jsx("h2",{children:r.h2}),e.jsx("p",{className:"lead-w",children:r.lead}),e.jsx(hl,{context:"home",copy:l5,onTrialCta:()=>{var i;return(i=document.getElementById("atelier"))==null?void 0:i.scrollIntoView({behavior:"smooth"})},onRdvCta:()=>n()})]})})}function d5(){return ht({en:{title:"Proplace — Home (v2 archive)",description:"Archived previous version of the Proplace home page."},fr:{title:"Proplace — Accueil (archive v2)",description:"Version précédente archivée de la page d’accueil Proplace."}}),m.useEffect(()=>{try{ha()}catch{}},[]),m.useEffect(()=>{const t=document.createElement("meta");return t.name="robots",t.content="noindex,nofollow",document.head.appendChild(t),()=>{try{document.head.removeChild(t)}catch{}}},[]),e.jsxs(ul,{children:[e.jsx("style",{children:Y3}),e.jsx("style",{children:G3}),e.jsx(zn,{}),e.jsx("div",{className:"home2",children:e.jsx(Z3,{})}),e.jsx(J3,{}),e.jsxs("div",{className:"home2",children:[e.jsx(em,{variant:"mid"}),e.jsxs("div",{id:"after","data-sep":"1",children:[e.jsx(X3,{}),e.jsx(e5,{}),e.jsx(t5,{}),e.jsx(n5,{}),e.jsx(r5,{}),e.jsx(i5,{}),e.jsx(s5,{}),e.jsx(c5,{}),e.jsx(em,{variant:"end"})]})]}),e.jsx(Nt,{})]})}const p5=`
2813@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
2814.home3{
2815  --brand:#0E8A4F; --brand-d:#0A6B3D; --brand-l:#E4F2EA;
2816  --red:#DC2626;
2817  --panel:#FFFFFF; --panel2:#F8FAFC; --panel3:#F1F5F9;
2818  --line:#E7EBF0; --line2:#CBD5E1;
2819  --ink:#0F172A; --muted:#5B6B7F; --dim:#94A3B8;
2820  --p1:#E7F3EC; --p2:#C4E0D0; --p3:#7FC0A0; --p4:#0E8A4F;
2821  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
2822  --body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
2823  --surf:0 1px 2px rgba(15,23,42,.04), 0 24px 54px -34px rgba(15,23,42,.30);
2824  --surf-h:0 1px 2px rgba(15,23,42,.05), 0 32px 66px -34px rgba(15,23,42,.38);
2825  background:var(--panel);color:var(--ink);font-family:var(--body);font-size:16px;
2826  line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
2827}
2828.home3,.home3 *{box-sizing:border-box}
2829.home3 button,.home3 input{font-family:inherit}
2830
2831/* ── gabarit ─────────────────────────────────────────────────────────────── */
2832.home3 .h3-wrap{max-width:1120px;margin:0 auto;padding:0 32px}
2833.home3 .h3-wrap.nar{max-width:840px}
2834.home3 .h3s{padding:104px 0;border-top:1px solid var(--line)}
2835.home3 .h3s.tint{background:var(--panel2)}
2836.home3 .h3s.center{text-align:center}
2837.home3 .h3s[id]{scroll-margin-top:80px}
2838
2839/* ── typographie ─────────────────────────────────────────────────────────── */
2840.home3 .h3-h1{margin:0;font-size:clamp(33px,5vw,58px);line-height:1.04;
2841  letter-spacing:-.042em;font-weight:700;text-wrap:balance}
2842.home3 .h3-h2{margin:0;font-size:clamp(25px,3.2vw,39px);line-height:1.13;
2843  letter-spacing:-.036em;font-weight:700;text-wrap:balance}
2844.home3 .h3-h2 .soft{color:var(--muted);font-weight:600}
2845.home3 .h3-lead{margin:24px 0 0;font-size:clamp(16.5px,1.35vw,19px);line-height:1.66;
2846  color:var(--muted);text-wrap:pretty}
2847.home3 .h3-lead b{color:var(--ink);font-weight:600}
2848.home3 .h3-p{margin:0;font-size:15.5px;line-height:1.72;color:var(--muted)}
2849.home3 .h3-p b{color:var(--ink);font-weight:600}
2850.home3 .h3-eyeb{display:flex;align-items:center;gap:12px;margin:0 0 18px;
2851  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.24em;
2852  text-transform:uppercase;color:var(--dim)}
2853.home3 .h3-eyeb::before{content:"";display:block;width:22px;height:2px;
2854  background:var(--brand);border-radius:2px;flex:none}
2855/* Rythme éditorial : l'en-tête de CHAQUE section est centré (chapeau, titre,
2856   chapô) ; seuls les blocs de contenu — entonnoir, cartes, tarifs — reprennent
2857   l'alignement à gauche, qui est celui de la lecture. */
2858.home3 .h3s>.h3-wrap>.h3-eyeb{justify-content:center}
2859.home3 .h3s>.h3-wrap>.h3-h2{text-align:center;margin-left:auto;margin-right:auto}
2860.home3 .h3s>.h3-wrap>.h3-lead{text-align:center;margin-left:auto;margin-right:auto;
2861  max-width:70ch}
2862.home3 .h3-pull{margin:0;font-size:clamp(18px,1.75vw,23px);line-height:1.52;
2863  letter-spacing:-.022em;font-weight:500;color:var(--ink);text-wrap:balance}
2864
2865/* ── le champ d'adresse (Home2/SiteField, restylé ici) ───────────────────── */
2866.home3 .h3-field{margin:42px auto 0;max-width:600px}
2867.home3 .h3-fieldlbl{margin:0 0 13px;font-family:var(--mono);font-size:10px;
2868  letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
2869.home3 .ur{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;justify-content:center}
2870.home3 .uf{display:flex;align-items:center;gap:11px;flex:1 1 260px;min-width:0;height:56px;
2871  padding:0 18px;border:1px solid rgba(15,23,42,.11);border-radius:14px;background:var(--panel);
2872  font-size:16px;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .18s,box-shadow .18s}
2873.home3 .uf:focus-within{border-color:rgba(15,23,42,.30);box-shadow:0 0 0 4px rgba(15,23,42,.05)}
2874.home3 .uf input{flex:1;min-width:0;border:0;outline:none;background:none;
2875  font-size:16.5px;color:var(--ink);letter-spacing:-.01em}
2876.home3 .uf input::placeholder{color:var(--dim)}
2877.home3 .uf input.shake{animation:h3-shk .42s}
2878@keyframes h3-shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
2879.home3 .uf.uf-err{border-color:#DC2626;box-shadow:0 0 0 4px rgba(220,38,38,.10)}
2880.home3 .uf-err-msg{margin:10px 0 0;font-size:13px;color:#DC2626;font-weight:500}
2881.home3 .ub{flex:none;height:56px;padding:0 26px;border:0;border-radius:14px;
2882  background:var(--brand);color:#fff;font-size:15.5px;font-weight:700;cursor:pointer;
2883  white-space:nowrap;letter-spacing:-.01em;
2884  box-shadow:0 2px 4px rgba(14,138,79,.20), 0 14px 28px -16px rgba(14,138,79,.75);
2885  transition:background .18s,transform .18s,box-shadow .18s}
2886.home3 .ub::after{content:"→";margin-left:10px;display:inline-block}
2887.home3 .ub:hover{background:var(--brand-d);transform:translateY(-1px);
2888  box-shadow:0 2px 4px rgba(14,138,79,.22), 0 18px 34px -16px rgba(14,138,79,.8)}
2889.home3 .ub:active{transform:none}
2890.home3 .usug{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap;justify-content:center}
2891.home3 .usg{border:1px solid var(--line);background:var(--panel2);border-radius:99px;
2892  padding:5px 13px;font-size:12.5px;color:var(--muted);cursor:pointer;transition:border-color .16s,color .16s}
2893.home3 .usg:hover{border-color:var(--ink);color:var(--ink)}
2894
2895/* ── hero ────────────────────────────────────────────────────────────────── */
2896.home3 .h3-hero{padding:88px 0 78px;text-align:center;border-top:0}
2897.home3 .h3-hero .h3-h1{max-width:980px;margin:0 auto}
2898.home3 .h3-hero .h3-lead{max-width:66ch;margin:28px auto 0}
2899.home3 .h3-steps{display:grid;grid-template-columns:1fr 1fr;max-width:900px;
2900  margin:52px auto 0;text-align:left;border-top:1px solid var(--line)}
2901.home3 .h3-step{padding:26px 30px}
2902.home3 .h3-step+.h3-step{border-left:1px solid var(--line)}
2903.home3 .h3-step b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;
2904  border:1px solid var(--line2);color:var(--muted);font-family:var(--mono);font-size:11px;
2905  font-weight:600;margin-bottom:13px}
2906.home3 .h3-step p{margin:0;font-size:14.5px;line-height:1.66;color:var(--muted)}
2907.home3 .h3-angles{display:flex;align-items:center;justify-content:center;gap:9px;
2908  flex-wrap:wrap;margin-top:40px}
2909@media (max-width:520px){
2910.home3 .h3-angles{flex-wrap:nowrap;gap:6px;margin-top:30px}
2911.home3 .h3-angle{padding:5px 10px;font-size:11px;white-space:nowrap}
2912}
2913.home3 .h3-angle{border:1px solid var(--line);border-radius:99px;padding:6px 15px;
2914  font-size:12.5px;font-weight:600;color:var(--ink);background:var(--panel2)}
2915
2916/* ── le tri : l'entonnoir ────────────────────────────────────────────────── */
2917.home3 .h3-funnel{margin:54px 0 0;display:flex;flex-direction:column;gap:12px}
2918.home3 .h3-fr{display:grid;grid-template-columns:104px minmax(0,1fr) minmax(0,1.02fr);
2919  gap:26px;align-items:center}
2920.home3 .h3-frail{font-family:var(--mono);font-size:9.5px;letter-spacing:.17em;
2921  text-transform:uppercase;color:var(--dim);text-align:right;line-height:1.4}
2922.home3 .h3-fbar{display:flex;align-items:center;height:64px;border-radius:11px;padding:0 22px;
2923  font-size:clamp(20px,2.1vw,29px);font-weight:700;letter-spacing:-.04em;color:var(--ink);
2924  font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;min-width:136px}
2925.home3 .h3-fr:nth-child(1) .h3-fbar{background:var(--p1)}
2926.home3 .h3-fr:nth-child(2) .h3-fbar{background:var(--p2)}
2927.home3 .h3-fr:nth-child(3) .h3-fbar{background:var(--p3)}
2928.home3 .h3-fr:nth-child(4) .h3-fbar{background:var(--p4);color:#fff;
2929  box-shadow:0 10px 26px -14px rgba(14,138,79,.85)}
2930.home3 .h3-flabel{font-size:14.5px;line-height:1.58;color:var(--muted)}
2931.home3 .h3-fr:nth-child(4) .h3-flabel{color:var(--ink);font-weight:600}
2932.home3 .h3-fcover{display:grid;grid-template-columns:104px minmax(0,1fr) minmax(0,1.02fr);
2933  gap:26px;align-items:center;margin-top:10px;padding-top:24px;border-top:1px solid var(--line)}
2934.home3 .h3-fcval{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
2935.home3 .h3-fcval b{font-size:clamp(20px,2.1vw,29px);font-weight:700;letter-spacing:-.04em;
2936  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
2937.home3 .h3-fcval em{font-style:normal;font-size:15px;font-weight:600;color:var(--muted)}
2938.home3 .h3-tri-p{max-width:74ch;margin:34px auto 0;text-align:center}
2939/* Le taux de MATCH est un DETAIL de la phrase du dessus : plus petit, plus pale. */
2940.home3 .h3-tri-note{max-width:84ch;margin:9px auto 0;text-align:center;
2941  font-size:12.5px;line-height:1.6;color:var(--dim)}
2942/* Chapo des PLANS : 2 lignes (le chapo generique plafonne a 70ch). */
2943.home3 .h3s>.h3-wrap>.h3-plans-lead{max-width:86ch}
2944.home3 .h3-tri-pull{margin:36px auto 0;padding-top:36px;border-top:1px solid var(--line);
2945  max-width:60ch;text-align:center}
2946
2947/* ── la décision ─────────────────────────────────────────────────────────── */
2948.home3 .h3-dec{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
2949  gap:24px;margin-top:50px;align-items:stretch;text-align:left}
2950.home3 .h3-card{background:var(--panel);border:1px solid rgba(15,23,42,.08);
2951  border-radius:20px;padding:30px;box-shadow:var(--surf)}
2952.home3 .h3-yn{display:grid;grid-template-columns:1fr 1fr;gap:14px}
2953.home3 .h3-btn{display:flex;align-items:center;justify-content:center;gap:11px;
2954  border-radius:14px;padding:24px 10px;color:#fff;
2955  font-size:19px;font-weight:800;letter-spacing:.04em}
2956.home3 .h3-btn svg{flex:none;display:block}
2957.home3 .h3-btn.y{background:var(--brand);box-shadow:0 10px 24px -14px rgba(14,138,79,.9)}
2958.home3 .h3-btn.n{background:var(--red);box-shadow:0 10px 24px -14px rgba(220,38,38,.85)}
2959.home3 .h3-route{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
2960.home3 .h3-route span{font-size:12.5px;line-height:1.5;color:var(--muted);text-align:center}
2961.home3 .h3-route span::before{content:"↓";display:block;margin-bottom:7px;
2962  color:var(--line2);font-size:14px}
2963.home3 .h3-decnote{margin:26px 0 0;padding-top:24px;border-top:1px solid var(--line);
2964  font-size:14px;line-height:1.72;color:var(--muted)}
2965.home3 .h3-revh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
2966  padding-bottom:20px;border-bottom:1px solid var(--line)}
2967.home3 .h3-revk{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;
2968  text-transform:uppercase;color:var(--brand-d);background:var(--brand-l);
2969  border-radius:99px;padding:6px 12px;font-weight:600}
2970.home3 .h3-revt{font-size:16px;font-weight:700;letter-spacing:-.022em}
2971/* La revue est une LISTE (plus de rails Stan/Nous/Vous) : puce verte, filets
2972   entre les points, dernier sans filet. */
2973.home3 .h3-revr{position:relative;margin:0;padding:14px 0 14px 20px;
2974  border-bottom:1px solid var(--line);font-size:13.8px;line-height:1.7;color:var(--muted)}
2975.home3 .h3-revr:last-child{border-bottom:0;padding-bottom:0}
2976.home3 .h3-revr::before{content:"";position:absolute;
2976left:2px;top:23px;
2977  width:6px;height:6px;border-radius:50%;background:var(--brand);opacity:.7}
2978
2979/* ── qui est Stan ────────────────────────────────────────────────────────── */
2980.home3 .h3-trip{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;
2981  margin:0 auto;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
2982.home3 .h3-trip span{padding:28px 16px;text-align:center;font-size:clamp(19px,2.2vw,27px);
2983  font-weight:700;letter-spacing:-.032em;line-height:1.15}
2984.home3 .h3-trip span+span{border-left:1px solid var(--line)}
2985.home3 .h3-stan-p{margin:34px auto 0;max-width:62ch}
2986.home3 .h3-logoswrap{margin:52px auto 0;max-width:780px}
2987.home3 .h3-logoslbl{margin:0 0 20px;font-family:var(--mono);font-size:9.5px;
2988  letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
2989/* mix-blend-mode:multiply — trust-logos.png porte des fonds BLANCS opaques
2990   (Ardian, Mirakl) qui se verraient comme des rectangles sur la section teintée. */
2991.home3 .h3-logos{display:block;width:100%;height:auto;opacity:.88;mix-blend-mode:multiply}
2992.home3 .h3-stan-pull{margin:52px auto 0;max-width:44ch}
2993.home3 .h3-closing{margin:22px auto 0;max-width:64ch;font-size:clamp(16px,1.4vw,18.5px);
2994  line-height:1.65;color:var(--muted);text-wrap:pretty}
2995.home3 .h3-closing b{color:var(--ink);font-weight:600}
2996
2997/* ── les plans : raffinements de la grille partagée .prc2 ────────────────── */
2998/* La grille est un bloc de LECTURE : elle reste alignée à gauche même quand
2999   l'en-tête de section est centré. */
3000.home3 .prc2{text-align:left}
3001.home3 .prc2 .prices{gap:20px;margin-top:40px;align-items:stretch}
3002.home3 .prc2 .price{display:flex;flex-direction:column;padding:30px;border-radius:20px;
3003  border:1px solid rgba(15,23,42,.08);box-shadow:var(--surf);
3004  transition:box-shadow .22s ease,transform .22s ease}
3005.home3 .prc2 .price:hover{transform:translateY(-3px);box-shadow:var(--surf-h)}
3006.home3 .prc2 .price.hi{border-color:rgba(14,138,79,.38);
3007  box-shadow:0 0 0 4px rgba(14,138,79,.07), var(--surf)}
3008.home3 .prc2 .price.hi:hover{box-shadow:0 0 0 4px rgba(14,138,79,.07), var(--surf-h)}
3009.home3 .prc2 .price .badge{top:-12px;padding:4px 13px;font-size:10.5px;letter-spacing:.01em}
3010.home3 .prc2 .price .p{font-size:clamp(28px,2.6vw,34px);letter-spacing:-.04em;margin:10px 0 4px}
3011.home3 .prc2 .price ul{flex:1 1 auto;margin-bottom:22px}
3012.home3 .prc2 .price li{font-size:13.5px;line-height:1.6;margin-bottom:11px}
3013.home3 .prc2 .price button{border-radius:12px;padding:14px;font-size:14px;
3014  transition:opacity .18s,transform .18s}
3015.home3 .prc2 .price button:hover{opacity:.9;transform:translateY(-1px)}
3016/* Les trois listes de puces démarrent à la MÊME hauteur : en-tête et jauge
3017   calés (l'Essai n'a ni mentions fines ni note de cadence). */
3018.home3 .prc2 .phead{min-height:184px}
3019.home3 .prc2 .q2{border-radius:10px;padding:14px 16px;margin-bottom:20px;
3020  min-height:118px;display:flex;flex-direction:column;justify-content:center}
3021/* Les deux mentions sous la grille tiennent chacune sur UNE ligne au-dessus de
3022   1180 px (demande Antoine) ; en dessous elles se replient normalement. */
3023.home3 .prc2 .under{border:0;background:none;padding:0;margin:34px auto 0;
3024  max-width:none;text-align:center;font-size:12.5px;line-height:1.7}
3025.home3 .prc2 .under .ment{margin-top:7px;font-size:11.5px}
3026@media (min-width:1180px){
3027.home3 .prc2 .under,.home3 .prc2 .under .ment{white-space:nowrap}
3028}
3029
3030/* ── la reprise ──────────────────────────────────────────────────────────── */
3031.home3 .h3-reprise{padding:96px 0 108px}
3032.home3 .h3-repcard{background:linear-gradient(175deg,#111E33 0%,#0B1220 100%);
3033  border-radius:28px;padding:clamp(46px,5vw,76px) clamp(26px,4vw,60px);text-align:center;
3034  box-shadow:0 30px 72px -44px rgba(11,18,32,.85)}
3035.home3 .h3-repcard .h3-h2{color:#fff;max-width:800px;margin:0 auto}
3036.home3 .h3-repcard .h3-lead{color:#9FB6CA;max-width:64ch;margin:26px auto 0}
3037.home3 .h3-repcard .h3-lead b{color:#fff}
3038.home3 .h3-repcard .uf{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.17);
3039  box-shadow:none}
3040.home3 .h3-repcard .uf:focus-within{border-color:rgba(255,255,255,.42);
3041  box-shadow:0 0 0 4px rgba(255,255,255,.07)}
3042.home3 .h3-repcard .uf input{color:#fff}
3043.home3 .h3-repcard .uf input::placeholder{color:rgba(255,255,255,.40)}
3044.home3 .h3-repcard .usg{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);
3045  color:#B8C6D6}
3046.home3 .h3-repcard .usg:hover{border-color:#fff;color:#fff}
3047
3048/* ── adaptations ─────────────────────────────────────────────────────────── */
3049@media (max-width:1000px){
3050.home3 .h3-dec{grid-template-columns:1fr}
3051.home3 .h3-fr,.home3 .h3-fcover{grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);gap:20px}
3052}
3053@media (max-width:820px){
3054.home3 .h3s{padding:66px 0}
3055.home3 .h3-hero{padding:58px 0 56px}
3056.home3 .h3-wrap{padding:0 22px}
3057.home3 .h3-hero .h3-h1{max-width:none}
3058.home3 .h3-steps{grid-template-columns:1fr;margin-top:42px}
3059.home3 .h3-step+.h3-step{border-left:0;border-top:1px solid var(--line)}
3060.home3 .h3-step{padding:22px 0}
3061.home3 .h3-fr,.home3 .h3-fcover{grid-template-columns:1fr;gap:9px}
3062.home3 .h3-fcover{margin-top:4px;padding-top:22px}
3063.home3 .h3-frail{text-align:left}
3064.home3 .h3-fbar{height:56px;padding:0 18px}
3065.home3 .h3-funnel{gap:22px}
3066.home3 .h3-trip{grid-template-columns:1fr}
3067.home3 .h3-trip span{padding:20px 12px}
3068.home3 .h3-trip span+span{border-left:0;border-top:1px solid var(--line)}
3069.home3 .h3-revr{grid-template-columns:1fr;gap:7px}
3070.home3 .h3-card{padding:24px}
3071.home3 .h3-reprise{padding:66px 0 76px}
3072.home3 .h3-repcard{border-radius:22px}
3073.home3 .ub{width:100%}
3074.home3 .prc2 .phead,.home3 .prc2 .q2{min-height:0}
3075}
3076@media (max-width:420px){
3077.home3 .h3-btn{font-size:17px;padding:20px 6px}
3078.home3 .h3-route span{font-size:11.5px}
3079}
3080@media (prefers-reduced-motion:reduce){
3081.home3 *{transition:none!important;animation:none!important}
3082}
3083`,u5=`
3084:root{
3085  --green:#4AC67F;--green-dk:#36a866;--red:#C0392B;--ink:#0A0A0A;--sub:#444;
3086  --mid:#777;--lite:#AAA;--line:#E8E8E4;--bg:#F6F6F3;--gp:#EFF9F4;--rp:#FEF5F4;
3087  --white:#FFF;
3088  --pp-green:#0E8A4F;--pp-green-h:#0A6B3D;--pp-green-p:#0A6B3D;
3089  --pp-green-tx:#0A6B3D;--pp-green-bg:#E4F2EA;--pp-green-chip:#E4F2EA;
3090  --pp-green-bd:#C4E0D0;--pp-green-soft:#7FC0A0;
3091  --pp-navy:#0B1220;--pp-navy-h:#111E33;
3092  --pp-ink:#0F172A;--pp-ink-2:#5B6B7F;
3092--pp-ink-3:#64748B;--pp-ink-4:#94A3B8;
3093  --pp-ink-5:#CBD5E1;
3094  --pp-line:#E7EBF0;--pp-line-in:#EEF2F7;--pp-line-in2:#F1F5F9;
3095  --pp-line-dash:#CBD5E1;--pp-line-strong:#CBD5E1;
3096  --pp-bg:#FFFFFF;--pp-bg-zone:#F8FAFC;--pp-bg-page:#F1F5F9;--pp-bg-hover:#F8FAFC;
3097  --pp-body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
3098  --pp-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
3099  --font-sans:'Inter','Helvetica Neue',sans-serif;
3100  --pp-r-s:8px;--pp-r-m:10px;--pp-r-l:14px;--pp-r-xl:16px;--pp-r-pill:8px;
3101  --pp-sh-cta:none;--pp-sh-step:none;
3102}
3103/* le globe du champ d'adresse : il était rendu par le composant, que le
3104   restyle a nettoyé (la pastille verte l'a remplacé). On le remet par la
3105   feuille, pour ne pas rouvrir un composant vivant au nom d'une archive. */
3106.home3 .uf::before{content:"🌐";margin-right:2px}
3107`;function h5(){return ht({en:{title:"Proplace — Home (before the v3 restyle)",description:"Archived look of the Proplace home page, kept for comparison."},fr:{title:"Proplace — Accueil (avant le restyle v3)",description:"Apparence archivée de la page d’accueil Proplace, conservée pour comparaison."}}),m.useEffect(()=>{try{ha()}catch{}},[]),m.useEffect(()=>{const t=document.createElement("meta");return t.name="robots",t.content="noindex,nofollow",document.head.appendChild(t),()=>{try{document.head.removeChild(t)}catch{}}},[]),e.jsxs(ul,{children:[e.jsx("style",{children:u5}),e.jsx("style",{children:p5}),e.jsx(zn,{}),e.jsxs("main",{className:"home3",children:[e.jsx(Vx,{}),e.jsx(Hx,{}),e.jsx(Gx,{}),e.jsx(Wx,{}),e.jsx(Qx,{}),e.jsx(Zx,{})]}),e.jsx(Nt,{})]})}const m5="https://alexandre-79537--sourcing-agent-fastapi-app.modal.run/newsletter/subscribe",p1={en:{title:"Subscribe to the daily newsletter",sub:"Every day: M&A deals and fundraisings in France & Europe — key figures, press sources, in-depth analysis. Free, one-click unsubscribe.",placeholder:"[email protected]",submit:"Subscribe →",sending:"Subscribing…",ok:"Done! You will receive the newsletter from the next edition.",err:"Something went wrong — please try again in a few seconds.",points:["📰 Every M&A deal and fundraising of the day, all sectors.","📊 Key market figures: volumes, amounts, moving sectors.","🧠 The daily in-depth analysis, with its press sources.","📩 One email a day, free, unsubscribe in one click."],sectors:"Or follow only YOUR sector — 36 daily sector newsletters (in French):",sectorsLink:"choose your sector →"},fr:{title:"S'abonner à la newsletter quotidienne",sub:"Chaque jour : les opérations M&A et levées de fonds en France & Europe — chiffres clés, sources presse, analyse de fond. Gratuit, désinscription en un clic.",placeholder:"[email protected]",submit:"S'abonner →",sending:"Inscription en cours…",ok:"C'est noté ! Vous recevrez la newsletter dès la prochaine édition.",err:"Une erreur est survenue — réessayez dans quelques secondes.",points:["📰 Toutes les opérations M&A et levées de fonds du jour, tous secteurs.","📊 Les chiffres clés du marché : volumes, montants, secteurs qui bougent.","🧠 L'analyse de fond quotidienne, avec ses sources presse.","📩 Un email par jour, gratuit, désinscription en un clic."],sectors:"Ou uniquement VOTRE secteur — 36 newsletters sectorielles quotidiennes :",sectorsLink:"choisir votre secteur →"}};function fl(t="general"){const{lang:n}=ae(),r=p1[n],[i,s]=m.useState("idle"),[a,o]=m.useState("");return{state:i,errMsg:a,submit:async(l,d="")=>{if(!l.trim()||i==="sending")return!1;s("sending");try{const u=await(await fetch(m5,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:l.trim(),sector:t,website:d})})).json().catch(()=>null);return u&&u.ok?(s("ok"),!0):(o(n==="fr"&&u&&u.error?u.error:r.err),s("err"),!1)}catch{return o(r.err),s("err"),!1}},copy:r}}function g5({showPoints:t=!0}){const{lang:n}=ae(),r=p1[n],[i,s]=m.useState(""),[a,o]=m.useState(""),{state:c,errMsg:l,submit:d}=fl("general");async function p(u){u.preventDefault(),await d(i,a)&&s("")}return e.jsxs("div",{className:"signup-box",style:{textAlign:"left",background:"#fff"},children:[e.jsx("span",{className:"signup-icon","aria-hidden":"true",children:"📬"}),e.jsx("div",{className:"signup-title",children:r.title}),e.jsx("p",{className:"signup-sub",children:r.sub}),e.jsxs("form",{className:"signup-form",onSubmit:p,noValidate:!0,children:[e.jsx("input",{type:"email",required:!0,value:i,onChange:u=>s(u.target.value),placeholder:r.placeholder,"aria-label":r.placeholder}),e.jsx("input",{type:"text",name:"website",value:a,onChange:u=>o(u.target.value),tabIndex:-1,autoComplete:"off","aria-hidden":"true",style:{position:"absolute",left:-9999,height:0,width:0,border:0,padding:0}}),e.jsx("button",{className:"signup-submit",type:"submit",disabled:c==="sending",children:c==="sending"?r.sending:r.submit})]}),e.jsx("p",{"aria-live":"polite",style:{minHeight:18,margin:"10px 0 0",fontSize:13,color:c==="err"?"#C0353A":"var(--green-dk, #0E7F3F)"},children:c==="ok"?r.ok:c==="err"?l:""}),t&&e.jsx("ul",{style:{listStyle:"none",padding:0,margin:"14px 0 0"},children:r.points.map((u,g)=>e.jsx("li",{style:{fontSize:13,color:"var(--mid, #5a6678)",margin:"0 0 7px",lineHeight:1.5},children:u},g))}),e.jsxs("p",{style:{fontSize:13,color:"var(--mid, #5a6678)",margin:"14px 0 0",lineHeight:1.5},children:[r.sectors," ",e.jsx("a",{href:`https://proplace.co/${n}/newsletter`,style:{color:"var(--green-dk, #0E7F3F)",fontWeight:600},children:r.sectorsLink})]})]})}const f5={en:{eyebrow:"Newsletter"},fr:{eyebrow:"Newsletter"}};function x5({showHeading:t=!1}){const{lang:n}
3107=ae(),r=f5[n];return e.jsx("div",{className:"section",style:{background:"#fff"},children:e.jsxs("div",{className:"wrap-wide",style:{maxWidth:640,margin:"0 auto",padding:"0 24px"},children:[t&&e.jsx("span",{className:"eyebrow",style:{textAlign:"center"},children:r.eyebrow}),e.jsx(g5,{showPoints:!1})]})})}const L5="https://images.fillout.com/orgid-7761/flowpublicid-ia2sy4nraa/widgetid-default/wpEdW7PTbzRFH48JHVPYHy/pasted-image-1774872761823.png",v5="https://images.fillout.com/orgid-7761/flowpublicid-ia2sy4nraa/widgetid-default/wsqAvNgW5kGM4Uhh5Co9DQ/pasted-image-1774872844342.jpg",b5="https://images.fillout.com/orgid-7761/flowpublicid-ia2sy4nraa/widgetid-default/oEFBYGkMzFkbPpqop5JfXM/pasted-image-1774874615754.png",y5={en:{nav:[{id:"how",label:"Method"},{id:"memo",label:"The memo"},{id:"proof",label:"Proof"},{id:"founder",label:"Team"},{id:"pricing",label:"Pricing"},{id:"faq",label:"FAQ"}],badge:"Outbound B2B Edition",heroTitle:e.jsxs(e.Fragment,{children:["From Signal to ",e.jsx("em",{children:"Signature."})]}),heroSub:e.jsx(e.Fragment,{children:"Stan finds the accounts about to buy — and writes you the way in."}),heroNote:"Not a cold list. A reason to reach out and the exact angle, on the accounts that should be your customers. New qualified accounts, each with a ready-to-send sales memo, in your inbox every morning.",ctaPrimary:"Set up my engine",ctaSecondary:"See Stan run on your account (45 min)",sigEyebrow:"Buying signals · examples",sigTitle:e.jsxs(e.Fragment,{children:["Stan reads the buying signals ",e.jsx("em",{children:"before they hit your competitors’ CRMs."})]}),sigLead:"You get a reply when you land the week something changed. Stan watches ~15 channels and turns each change into a reason to reach out — months before the rest of the market notices.",sigNote:"Illustrative examples — not live data.",signals:[{icon:"💸",tag:"Funding · Series B",txt:"Just raised €40M to expand internationally: new budget, new pressure, new urgency.",meta:"Source: funding feed."},{icon:"🧑‍💼",tag:"Key hire",txt:"Hired a first VP Revenue from a logo you already serve: a champion who knows your category.",meta:"Source: LinkedIn job-change signal."},{icon:"🚀",tag:"Launch",txt:"Shipped a new product line into a vertical your tool was built for.",meta:"Source: changelog + press."},{icon:"⚖️",tag:"New regulation",txt:"A rule just made their current setup non-compliant: a deadline you can solve.",meta:"Source: sector-media engine."},{icon:"🔁",tag:"Leadership change",txt:"New CEO from an account you closed last year: relationship warm from day one.",meta:"Source: decision-maker tracking."},{icon:"🛠",tag:"Tech stack",txt:"Spun up the exact tool you displace: the window to switch them is open, now.",meta:"Source: stack-detection engine."}],sigFoot:"Each signal becomes a sales memo: who to contact, why now, and the angle that earns a reply.",whatEyebrow:"What is Stan",whatTitle:e.jsxs(e.Fragment,{children:["Your best rep’s research — ",e.jsx("em",{children:"on every account, every morning."})]}),whatP1:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Stan watches everything that moves in your market"})," and qualifies every account with the rigour of a great rep prepping for a call. On every match it hands you a one-page memo: the trigger, the angle that crosses their situation with your offer, the competitor you displace, who to call, and a ready-to-send sequence."]}),whatP2:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"You stay in control — without the busywork."})," Most days: a short prospect brief, nothing to do. When Stan finds a top-fit account with an active trigger, you answer ",e.jsx("strong",{children:"YES"})," or ",e.jsx("strong",{children:"NO"})," — from the email, the memo, anywhere. Two minutes."]}),whatP3:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"YES"})," → Stan writes the approach sequence and pushes it to your sending tool. ",e.jsx("strong",{children:"NO"})," → Stan encodes the rejection and tightens your ICP. Every decision makes tomorrow’s prospects sharper."]}
3107),whatP4:e.jsxs(e.Fragment,{children:["It doesn’t replace your SDR or your sending tool. It hands them the one thing they’re missing: ",e.jsx("strong",{children:"the right account, the trigger, and the angle."})]}),stat1n:"~15",stat1:"sourcing channels scanned every morning",stat2n:"52×",stat2:"ICP-thesis updates per year — versus a frozen list",stat3n:"1 deal",stat3:"and Stan pays for itself: one signature covers your setup + first quarter (€9,500)",stat4n:"2ⁿᵈ Mon",stat4:"go-live: thesis built, engine wired, first memos",whyEyebrow:"Why Stan",whyTitle:e.jsxs(e.Fragment,{children:["A €60–80K SDR vs. €1,500/month.",e.jsx("br",{}),"Live by the 2nd Monday."]}),whyIntro:"A human SDR is capped by their hours, their list and their patience. Stan researches every account on your market with the same rigour — every day, indefinitely.",thHuman:"Human SDR / prospecting",thStan:"Stan — AI prospecting engine",whyRows:[{k:"Sourcing",a:"Scrolls Apollo and LinkedIn a few hours a day. A static list — the accounts everyone else is also emailing.",b:"~15 channels every morning. Accounts surfaced the week a trigger fires."},{k:"Research",a:"A few minutes per account, then a generic template. Quality drops with fatigue.",b:"A full sales memo in minutes, zero variation. The same depth on account #1 and #500."},{k:"Targeting",a:"A frozen list, bought once. It never learns from who replied or closed.",b:"A living ICP thesis, rewritten every week from your YES/NO."},{k:"Time",a:"Up to 80% of the week lost to research and CRM hygiene.",b:"Zero research time. Your team spends its hours talking to prospects."},{k:"Cost",a:"€60–80K/year all-in — plus a 3-month ramp and churn.",b:"€1,500/month + a one-time €5,000 setup. Live by the 2nd Monday. Unlimited accounts."}],howEyebrow:"How it works",howTitle:e.jsxs(e.Fragment,{children:["From what you sell to ",e.jsx("em",{children:"who to contact, why, and how."})]}),howLead:"Stan doesn’t start from a generic template. It starts from your offer — encoded once, executed every day, sharpened every week.",steps:[{num:"Step 1 · Once",title:"Your growth thesis",desc:"In one hour we turn what you sell (site, product, pricing, customers) into your ICPs: vertical, decision-maker persona, geography, and the exact problem you solve.",outTitle:"The output",out:e.jsxs(e.Fragment,{children:["A living ICP thesis — ",e.jsx("strong",{children:"your prospecting brain, versioned."})]})},{num:"Step 2 · Daily",title:"Qualified accounts",desc:"The engine sources continuously across ~15 channels. Every company passes a strict gate — MATCH or NO MATCH — with the reasoning shown. No noise reaches you.",outTitle:"The output",out:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"A scored shortlist"})," in your dashboard — filterable by vertical, geography and trigger."]})},{num:"Step 3 · Daily",title:"A sales memo on every match",desc:"Each MATCH triggers a full memo, then one of four verdicts.",outTitle:"The output",out:e.jsxs(e.Fragment,{children:["A decision-grade memo + sequence — ",e.jsx("strong",{children:"only the CALLs reach you."})]})}],verdictsTitle:"Stan’s four verdicts — only one needs you",verdicts:[{cls:"call",label:"CALL",color:"var(--green-dk)",p:"Strong ICP + active trigger. Surfaced to you with a YES / NO and the sequence already written."},{cls:"consider",label:"CONSIDER",color:"#b9651a",p:"Good fit, one fact missing. Stan waits, then flips to CALL or PASS. No input needed."},{cls:"monitor",label:"MONITOR",color:"#2371a5",p:"Right ICP, no trigger yet. 90-day checkpoint. No input needed."},{cls:"pass",label:"PASS",color:"var(--red)",p:"Out of ICP. The thesis tightens for next week. No input needed."}],verdictsFoot:e.jsxs(e.Fragment,{children:["Three of the four are handled autonomously. Your only job: ",e.jsx("strong",{children:"YES or NO on the CALLs."})," Even if you don’t open a single email this week, nothing slips through."]}),memoEyebrow:"The sales memo",memoTitle:e.jsxs(e.Fragment,{children:["What lands on every prospect. ",e.jsx("em",{children:"Not a data sheet — an attack brief."})]}),anat:[{k:"The trigger",p:"The event that creates urgency now."},{k:"The crossed use case",p:"Their situation × your capability → the value unlocked."},{k:"The competitor to displace",p:"The tool likely in place + the gap you enter through."},{k:"The proof to draw",p:"The single most relevant logo / case study for THIS prospect."},{k:"Decision-maker & committee",p:"Who to contact; on a large account: champion / buyer / blockers."},{k:"Discovery & objections",p:"Questions, likely objections and the answers."},{k:"The approach sequence",p:"3 ready-to-send messages, tuned to each channel, asserting only verified facts."},{k:"The verdict",p:"CALL · CONSIDER · MONITOR · PASS — at a glance, with the reasoning."}],memoFoot:e.jsx(e.Fragment,{children:"You get it all in a dedicated interface (leads view + thesis editor), and the sequence pushes straight to your sending tool — Lemlist, Instantly, La Growth Machine, GetSales…"}),memoLock:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"We never push you an account to contact without its memo."})," The dashboard shows the shortlist Stan qualifies continuously; what’s surfaced for action — every CALL — always comes with its trigger, its angle and its sequence. Stan doesn’t sell contact volume: it sells reasons to reach out, ready to run."]}),ritualEyebrow:"The daily ritual",ritualTitle:"Stan runs everything. You answer YES or NO — only when it matters.",ritualP1:e.jsxs(e.Fragment,{children:["Stan sources, qualifies and drafts every day — without asking anything from you. When it finds a high-fit account with an active trigger, it lands in your daily brief. ",e.jsx("strong",{children:"YES or NO — whenever you have two minutes."})]}),ritualP2:e.jsxs(e.Fragment,{children:["No time this week? The CONSIDER and MONITOR accounts keep maturing on their own — ",e.jsx("strong",{children:"nothing is lost."})," Your open CALLs simply wait at the top of Monday’s brief."]}),yesLabel:"✓ YES",yesBody:e.jsx(e.Fragment,{children:"Stan writes the sequence and pushes it to your sending tool. The winning angles feed back in."}),noLabel:"✗ NO",noBody:e.jsx(e.Fragment,{children:"Stan encodes the rejection pattern. One line of reasoning makes it converge on this ICP markedly faster."}),imgAlt:"Daily prospect brief — mobile preview",tl1t:"Every day",tl1h:"Daily prospect brief",tl1p:"Sourced, qualified, drafted. Most days: no input. When Stan finds a top fit: YES · NO in one click.",tl2t
3107:"Monday",tl2h:"Weekly command center",tl2p:e.jsxs(e.Fragment,{children:["Every YES / NO is processed. ",e.jsx("strong",{children:"YES"})," reinforces what works; ",e.jsx("strong",{children:"NO"})," rewrites the targeting. The logic that produces next week’s prospects."]}),tl3t:"3 months",tl3h:"A list that can’t be copied",tl3p:e.jsx(e.Fragment,{children:"Your ICP thesis mirrors who actually replies and buys. Not a tool you rent; an asset you build."}),flyEyebrow:"The compounding advantage",flyH2:"52 ICP updates a year, versus a list you buy once.",flyBody1:e.jsx(e.Fragment,{children:"Classic outbound buys a static list and burns it. Reply rates fall as the list ages, and nothing learns from who actually answered."}),flyBody2:e.jsxs(e.Fragment,{children:["Stan rewrites your ICP thesis every week from your real YES/NO. After a few months your target list is ",e.jsx("strong",{children:"structurally irreplicable."})]}),flyManualHead:"Classic outbound",flyManual:["Static list, bought once","Generic, copy-paste sequences","No reason “why now”","Reps spend the week searching","Reply rate decays over time"],flyStanHead:"Stan — Outbound B2B",flyStan:["ICP thesis updated 52× / year","~15 channels scanning every morning","An explicit trigger per account","Reps focus on the conversation","Precision compounds every week"],flyStats:[{n:"~15",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Channels read every morning"})," — weak signals, hires, launches, registries, GitHub, Exa."]})},{n:"52×",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"ICP updates per year."})," Each Monday’s targeting is sharper than last week’s."]})},{n:"3mo",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Until your target list is structurally irreplicable"})," — built on compounded decisions."]})},{n:"0",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Research hours for your reps."})," Their time goes to the conversation, not the lookup."]})}],proofEyebrow:"The proof · measured every Monday",proofTitle:"The real KPI is pipeline. The YES rate is our leading indicator of targeting.",proofIntro:e.jsxs(e.Fragment,{children:["Stan surfaces only the highest-fit accounts (the CALLs). You answer YES or NO. Your ",e.jsx("strong",{children:"YES rate"})," measures how closely Stan targets like you — a quality indicator, not the promise. ",e.jsx("strong",{children:"What you measure is qualified meetings and pipeline attributable to Stan."})," Simple rule: over a year, a single closed deal pays for Stan."]}),proofCaption:"Target YES-rate trajectory — your real curve is reported to you every Monday:",proofSteps:[{pct:"20–30%",period:"Month 1",desc:"Stan runs on the thesis as you wrote it. Many solid accounts don’t match your tacit judgment yet. Every NO is highly informative."},{pct:"60–70%",period:"Month 2",desc:"Dozens of YES/NO have rewritten the sourcing and qualification. Stan recognises the accounts you reject without you spelling it out."},{pct:"~85%",period:"Month 3",desc:"Nearly every account surfaced is one you’d approach. Stan’s targeting mirrors yours."}],proofFoot:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Ammunition from month one."})," During calibration (M1–M2), while the YES rate climbs, Stan deliberately surfaces the ",e.jsx("strong",{children:"top of the CALL range"})," so you have pipeline to work right away — not only once the gate is perfectly tuned. You don’t hit an air pocket while the engine learns."]}),chartY:"YES rate",chartGoLive:"Go-live",chartX:"Months since go-live",wp1t:"Month 1",wp1v:"~25% YES",wp2t:"Month 2",wp2v:"~65% YES",wp3t:"Month 3",wp3v:"~85% YES",chartAria:"Target YES-rate trajectory, from about 25% 
3107in month 1 to about 85% by month 3",archEyebrow:"Plug & Play architecture",archTitle:"Standalone, or wired to your sending tool.",archDesc:"Use Stan’s own interface, or push every sequence straight to Lemlist, Instantly, La Growth Machine, GetSales or your CRM. Stan supplies the targets and the angle; your stack does the sending.",whoEyebrow:"Who it’s for",whoTitle:"Built for teams that sell a high-value offer — where a single closed deal pays for Stan.",whoIntro:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"The entry bar: a new customer is worth at least ~€10K (contract, first year or LTV)."})," At that level, a single closed deal covers everything you put in — your setup and first quarter, €9,500 — and every deal after is net. Below that, you’d need to stack several deals to break even: it’s probably not for you, and we’ll tell you straight on the call."]}),who:[{h:"Founders & CEOs who still sell",p:"You close the big logos yourself. Stan hands you a daily shortlist with an active trigger and the exact angle."},{h:"CROs & VPs of Sales",p:"You don’t need more leads; you need reps in conversations. Stan removes the research time."},{h:"Heads of Growth / Demand Gen",p:"Trade volume blasts for a living ICP thesis that learns from who replies. Every account comes with a reason “why now”."},{h:"SDR / BDR teams",p:"Each rep starts the day with pre-researched accounts and ready sequences. They prospect on day one."},{h:"Outbound & lead-gen agencies",p:"Thesis-grade targeting for every client without hiring a research team."},{h:"Consulting & B2B services firms",p:"Long, consultative cycles where the angle is everything. Stan finds the trigger and the value angle before you reach out."}],founderEyebrow:"Why trust us",founderName:"Alexandre G. Busson",founderRole:"Founder & CEO · Proplace · ex-Ardian, Partech, Leboncoin M&A",founderRows:[{co:"Ardian — LBO Analyst",desc:"Sourcing, screening and deep diligence on dozens of European companies — separating signal from noise at scale."},{co:"Partech Ventures — Senior Associate",desc:"Sourcing and qualifying European startups pre-seed → Series B. Hundreds of accounts read, the right ones found early."},{co:"Leboncoin — M&A Director",desc:"End-to-end target sourcing, outreach and negotiation. The craft of reaching the right decision-maker with the right angle — productised in Stan."}],founderQuote:"« The future of B2B prospecting is autonomous — inspired by the seller, not a replacement for them. Stan captures what you know about your buyer and deploys it, account by account, every day. »",secEyebrow:"Security & Compliance",secTitle:"Built on trusted infrastructure.",secIntro:e.jsx(e.Fragment,{children:"Your thesis, your pipeline, your prospects. We treat your data like the strategic asset it is — encrypted, proxied server-side, and running on SOC 2-certified platforms."}),secInherited:"Inherited from our providers",sec:[{h:"SOC 2-certified infrastructure",p:"Data and memos stored on Airtable (SOC 2 Type II, ISO 27001); compute on Modal (SOC 2 Type II). We operate as your GDPR data processor."},{h:"Encryption in transit & at rest",p:"TLS 1.3 in transit, AES-256 at rest. API credentials in Modal’s secret vault."},{h:"Server-side data access",p:"Every read/write is proxied through our backend. No database credentials reach the client; each account is isolated."},{h:"Authenticated endpoints",p:"Token required, Proplace domains only (CORS). Shared links use 256-bit tokens."},{h:"AI without training exposure",p:"Providers on enterprise terms that bar training on your prompts."},{h:"SOC 2 & ISO 27001 roadmap",p:"Security program in progress, formal certification planned as Proplace scales."}],pricingEyebrow:"Pricing",pricingTitle:e.jsxs(e.Fragment,{children:["One engine. One price. ",e.jsx("em",{children:"Profitable from the first deal."})]}),pricingLead:"Built for offers where a single closed deal pays for Stan. A complete, self-contained edition — no Proplace+ option.",priceTag:"engine · complete edition",priceName:"Proplace OS — Outbound B2B Edition",priceTagline:"Your targeted-prospecting engine.",priceSetup:"Setup €5,000 — one time. We hand-build your ICP thesis, calibrate the gate to your judgment, and wire your sending tool. No second setup, ever.",priceAmount:"€1,500",pricePeriod:e.jsx(e.Fragment,{children:"excl. VAT / month — quarterly billing, charged at go-live (the 2nd Monday)."}),priceCalc:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"The math is simple: €5,000 setup + €4,500 for your first quarter = €9,500."})," A single new closed customer covers all of it — and usually far more. After that, at €1,500/month, every deal is net."]}),priceCommit:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"No fixed-term commitment — quarterly auto-renewal."})," Stop whenever you want: the quarter already paid isn’t refunded (nor the setup), but nothing forces you to renew the next one. No money-back; your freedom is not renewing, whenever you decide."]}),priceGroup:"Included",priceFeats:["Your growth thesis, built for you — ICPs + a full map of your offer","Daily multi-channel sourcing (~15 channels)","A sales memo + ready sequence on every match","Dedicated interface + online thesis editor","Push to your sending tool / CRM","Weekly learning loop (YES / NO)"],priceN
3107ote:"No Proplace+ option — this edition stands on its own.",priceCta:"Set up my engine",tlEyebrow:"From call to go-live",tlH2:"Live by the 2nd Monday.",timeline:[{d:"Day 0",h:"Discovery call · 45 min",p:"Stan analyses one of your real target accounts live. We also check together that a new customer is worth enough for Stan to pay for itself from the first signature. No commitment."},{d:"Kickoff",h:"Setup · €5,000",p:"We map your offer and your existing customers into a first ICP thesis."},{d:"Thesis",h:"Encoding · 1h",p:"You explain what you sell and to whom. Stan derives your ICPs."},{d:"Calibration",h:"A few days",p:"1–2 thesis updates so the gate matches your judgment."},{d:"2nd Monday",h:"Go-live · €1,500/mo",p:"First sales memos in your inbox. Quarterly billing starts."},{d:"After",h:"It compounds",p:"The thesis versions up every week. Your list becomes irreplicable."}],impactEyebrow:"Impact",impactTitle:"What typically changes in 90 days.",impactNote:"Directional — based on how the engine is built, not a guarantee.",impact:[{n:"10×",h:"More accounts screened",p:"Cover your whole market — ~10× what one rep can research by hand — without adding headcount."},{n:"90%",h:"Less research time",p:"Your reps spend their hours selling, not list-building."},{n:"1 deal",h:"pays for everything",p:"A single closed customer covers your setup and first quarter (€9,500). Every deal after is net."},{n:"Every",h:"message carries an angle",p:"Every approach leads with a reason to reply; anything unverified is flagged before it’s sent."}],faqEyebrow:"FAQ",faqTitle:"The questions we get.",faq:[{q:"How is this different from Apollo or Clay?",a:"Apollo and Clay enrich a list you already built — you still decide who to target and what to say. Stan decides which accounts are worth it and why now, then writes the angle and the sequence. They’re the plumbing; Stan is the strategy."},{q:"How many meetings can I expect?",a:"Stan isn’t measured in prospect volume, but in actionable CALLs — high-fit accounts with a trigger and a ready sequence. You steer on what matters: qualified meetings and pipeline generated, not a lead counter. Deliberately tight: a handful of high-fit CALLs a day, not hundreds. During calibration (M1–M2), Stan surfaces the top of the range to give you ammunition right away; then it tightens as precision climbs."},{q:"Do you deliver contact lists?",a:"The product isn’t the list — it’s the memo. Your dashboard shows the shortlist Stan qualifies (some still under analysis), but nothing is pushed to you for action without its memo: every CALL comes with its trigger, angle and sequence. If you want raw contact volume to enrich yourself, Stan isn’t the right tool."},{q:"How big does a deal need to be to pay off?",a:"Do the math: your first quarter costs €9,500 (€5,000 setup + €4,500 subscription), and you’re then free to leave. As soon as a new customer is worth ~€10K+ (contract, first year or LTV), a single closed deal already covers everything — and usually far more. Beyond that, every signature is net. If your deals are worth a few hundred euros, it takes too many to pay off: we’ll tell you straight on the call rather than sell you something that won’t hold."},{q:"Does it replace my SDR?",a:"No — it arms them. They stop searching and focus on the conversation."},{q:"Does it replace my sending tool?",a:"No. Stan supplies the targets, the angle and the sequence; your tool (Lemlist, Instantly, GetSales…) does the sending."},{q:"Why a €5,000 setup?",a:"It’s bespoke engineering, not onboarding: we reverse-engineer what you sell into a working sourcing-and-qualification thesis and tune it against real accounts before go-live. Done once, never repeated."},{q:"Is there a commitment?",a:"No fixed term. Billing is quarterly, with tacit renewal: stop whenever you want, no justification. The current quarter and the setup aren’t refunded — that’s work already done — but you’re never bound to renew the next quarter. That’s the “guarantee”: the freedom not to renew, not a refund."},{q:"What if a prospect doesn’t fit?",a:"You click NO; the engine learns and tightens your ICP for next week."},{q:"My data / my offer?",a:"Your thesis is private and editable anytime. Providers are on enterprise terms that bar training their models on your prompts."},{q:"Time to launch?",a:"Go-live on the 2nd Monday: thesis built, engine wired, first memos."},{q:"Is there a Proplace+ for outbound?",a:"No. This edition is self-contained — one engine, one price, no add-on."}],ctaEyebrow:"Get started",ctaH:e.jsxs(e.Fragment,{children:["Give your outbound ",e.jsx("em",{children:"a reason to reply."})]}),ctaP:e.jsxs(e.Fragment,{children:["In 45 minutes, we run Stan live on one of your real target accounts — trigger, 
3107crossed use case, ready sequence, on screen. We also confirm together that a customer is worth enough for Stan to pay for itself from the first signature.",e.jsx("br",{}),"You leave with a concrete prospect and the exact angle. Zero commitment."]}),ctaBtn:"Set up my engine",ctaNote:"Or contact: "},fr:{nav:[{id:"how",label:"Méthode"},{id:"memo",label:"Le mémo"},{id:"proof",label:"Preuve"},{id:"founder",label:"Équipe"},{id:"pricing",label:"Tarifs"},{id:"faq",label:"FAQ"}],badge:"Édition Outbound B2B",heroTitle:e.jsxs(e.Fragment,{children:["Du signal à la ",e.jsx("em",{children:"signature."})]}),heroSub:e.jsx(e.Fragment,{children:"Stan trouve les comptes prêts à acheter — et vous écrit comment les aborder."}),heroNote:"Pas une liste froide. Une raison de contacter et l’angle exact, sur les entreprises qui devraient devenir vos clientes. De nouveaux comptes qualifiés, chacun avec son mémo de vente prêt à envoyer, dans votre boîte mail chaque matin.",ctaPrimary:"Configurer mon moteur",ctaSecondary:"Voir Stan tourner sur un de vos comptes (45 min)",sigEyebrow:"Signaux d’achat · exemples",sigTitle:e.jsxs(e.Fragment,{children:["Stan lit les signaux d’achat ",e.jsx("em",{children:"avant qu’ils n’arrivent dans le CRM de vos concurrents."})]}),sigLead:"On obtient une réponse quand on arrive la semaine exacte où quelque chose a changé chez le prospect. Stan surveille une quinzaine de canaux et transforme chaque changement en raison de contacter — des mois avant que le marché ne le remarque.",sigNote:"Exemples illustratifs — pas des données en direct.",signals:[{icon:"💸",tag:"Levée · Série B",txt:"Vient de lever 40 M€ pour s’internationaliser : nouveau budget, nouvel enjeu, nouvelle urgence.",meta:"Source : flux des levées."},{icon:"🧑‍💼",tag:"Recrue clé",txt:"Recrute un premier VP Revenue venu d’un logo que vous servez déjà : un champion qui connaît votre catégorie.",meta:"Source : signal changement de poste LinkedIn."},{icon:"🚀",tag:"Lancement",txt:"Lance une gamme dans une verticale pour laquelle votre outil a été pensé.",meta:"Source : changelog + presse."},{icon:"⚖️",tag:"Nouvelle réglementation",txt:"Une règle rend leur dispositif actuel non conforme : une échéance que vous savez résoudre.",meta:"Source : moteur médias sectoriels."},{icon:"🔁",tag:"Changement de direction",txt:"Nouveau CEO issu d’un compte signé l’an dernier : relation déjà chaude.",meta:"Source : suivi des décideurs."},{icon:"🛠",tag:"Stack technique",txt:"Vient de déployer l’outil exact que vous remplacez : la fenêtre pour les faire basculer est ouverte, maintenant.",meta:"Source : moteur de détection de stack."}],sigFoot:"Chaque signal devient un mémo de vente : qui contacter, pourquoi maintenant, et l’angle qui déclenche la réponse.",whatEyebrow:"Qu’est-ce que Stan",whatTitle:e.jsxs(e.Fragment,{children:["La recherche de votre meilleur commercial — ",e.jsx("em",{children:"sur chaque compte, chaque matin."})]}),whatP1:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Stan surveille tout ce qui bouge sur votre marché"})," et qualifie chaque compte avec la rigueur d’un excellent commercial qui prépare son rendez-vous. Sur chaque match, il vous remet un mémo d’une page : le déclencheur, l’angle qui croise leur situation et votre offre, le concurrent à déloger, qui appeler, et une séquence prête à envoyer."]}),whatP2:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Vous gardez le contrôle — sans la corvée."})," La plupart du temps : un brief court, rien à faire. Quand Stan trouve un compte à fort potentiel avec un déclencheur actif, vous répondez ",e.jsx("strong",{children:"OUI"})," ou ",e.jsx("strong",{children:"NON"})," — depuis l’email, le mémo, n’importe où. Deux minutes."]}),whatP3:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"OUI"})," → Stan rédige la séquence d’approche et la pousse vers votre outil d’envoi. ",e.jsx("strong",{children:"NON"})," → Stan encode le rejet et resserre votre ICP. Chaque décision rend les prospects du lendemain plus précis."]}),whatP4:e.jsxs(e.Fragment,{children:["Il ne remplace ni votre SDR ni votre outil d’envoi. Il leur donne ce qui leur manque : ",e.jsx("strong",{children:"le bon compte, le déclencheur, et l’angle."})]}),stat1n:"~15",stat1:"canaux de sourcing scrutés chaque matin",stat2n:"52×",stat2:"mises à jour de votre thèse ICP par an — contre une liste figée",stat3n:"1 deal",stat3:"et Stan est remboursé : une seule signature couvre votre mise + premier trimestre (9 500 €)",
3107stat4n:"2ᵉ lun.",stat4:"go-live : thèse construite, moteur branché, premiers mémos",whyEyebrow:"Pourquoi Stan",whyTitle:e.jsxs(e.Fragment,{children:["Un SDR à 60–80K€ vs 1 500€/mois.",e.jsx("br",{}),"Opérationnel dès le 2ᵉ lundi."]}),whyIntro:"Un SDR humain est limité par ses heures, sa liste et sa patience. Stan fait la recherche sur chaque compte de votre marché avec la même rigueur — chaque jour, indéfiniment.",thHuman:"SDR / prospection humaine",thStan:"Stan — prospecteur augmenté par l’IA",whyRows:[{k:"Sourcing",a:"Scrolle Apollo et LinkedIn quelques heures par jour. Une liste figée — les comptes que tout le monde démarche aussi.",b:"~15 canaux chaque matin. Les comptes remontent la semaine exacte où un signal se déclenche."},{k:"Recherche",a:"Quelques minutes par compte, puis un template générique. La qualité chute avec la fatigue.",b:"Un mémo de vente complet en quelques minutes, zéro variation. La même profondeur sur le compte n°1 et le n°500."},{k:"Ciblage",a:"Une liste figée, achetée une fois. Elle n’apprend jamais de qui a répondu ou signé.",b:"Une thèse d’ICP vivante, réécrite chaque semaine sur vos OUI/NON."},{k:"Temps",a:"Jusqu’à 80 % de la semaine engloutis par la recherche et l’entretien du CRM.",b:"Zéro temps de recherche. Votre équipe passe ses heures à parler aux prospects."},{k:"Coût",a:"60–80K€/an chargé — plus 3 mois de montée en puissance et le turnover.",b:"1 500€/mois + 5 000€ de mise en route unique. Opérationnel dès le 2ᵉ lundi. Comptes illimités."}],howEyebrow:"Comment ça marche",howTitle:e.jsxs(e.Fragment,{children:["De ce que vous vendez à ",e.jsx("em",{children:"qui contacter, pourquoi, et comment."})]}),howLead:"Stan ne part pas d’un template générique. Il part de votre offre — encodée une fois, exécutée chaque jour, affinée chaque semaine.",steps:[{num:"Étape 1 · Une fois",title:"Votre thèse de croissance",desc:"En une heure, on transforme ce que vous vendez (site, produit, tarifs, clients) en vos ICP : verticale, persona décideur, géographie, et le problème exact que vous résolvez.",outTitle:"Le résultat",out:e.jsxs(e.Fragment,{children:["Une thèse d’ICP vivante — ",e.jsx("strong",{children:"votre cerveau de prospection, versionné."})]})},{num:"Étape 2 · Chaque jour",title:"Des comptes qualifiés",desc:"Le moteur source en continu sur ~15 canaux. Chaque entreprise franchit un filtre strict — MATCH ou NO MATCH — avec le raisonnement affiché. Aucun bruit ne vous parvient.",outTitle:"Le résultat",out:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Une liste courte notée"})," dans votre tableau de bord — filtrable par verticale, géographie et déclencheur."]})},{num:"Étape 3 · Chaque jour",title:"Un mémo de vente sur chaque match",desc:"Chaque MATCH déclenche un mémo complet, puis l’un des quatre verdicts.",outTitle:"Le résultat",out:e.jsxs(e.Fragment,{children:["Un mémo prêt à décider + une séquence — ",e.jsx("strong",{children:"seuls les CALL vous parviennent."})]})}],verdictsTitle:"Les quatre verdicts — un seul requiert votre attention",verdicts:[{cls:"call",label:"CALL",color:"var(--green-dk)",p:"ICP fort + déclencheur actif. Remonté avec un OUI / NON et la séquence déjà rédigée."},{cls:"consider",label:"CONSIDER",color:"#b9651a",p:"Bon profil, un fait manquant. Stan attend, puis bascule en CALL ou PASS. Aucune action."},{cls:"monitor",label:"MONITOR",color:"#2371a5",p:"Bon ICP, pas encore de déclencheur. Point de contrôle à 90 jours. Aucune action."},{cls:"pass",label:"PASS",color:"var(--red)",p:"Hors ICP. La thèse se resserre pour la semaine suivante. Aucune action."}],verdictsFoot:e.jsxs(e.Fragment,{children:["Trois des quatre sont traités en autonomie. Votre seul rôle : ",e.jsx("strong",{children:"OUI ou NON sur les CALL."})," Même si vous n’ouvrez pas un seul email cette semaine, rien ne passe à travers."]}),memoEyebrow:"Le mémo de vente",memoTitle:e.jsxs(e.Fragment,{children:["Ce qui arrive sur chaque prospect. ",e.jsx("em",{children:"Pas une fiche de données — un brief d’attaque."})]}),anat:[{k:"Le déclencheur",p:"L’événement qui crée l’urgence maintenant."},{k:"Le cas d’usage croisé",p:"Leur situation × votre capacité → la valeur débloquée."},{k:"Le concurrent à déloger",p:"L’outil probablement en place + la faille par laquelle entrer."},{k:"La preuve à dégainer",p:"Le logo / cas client le plus pertinent pour CE prospect."},{k:"Le décideur & le comité",p:"Qui contacter ; sur un grand compte : champion / acheteur / bloqueurs."},{k:"Découverte & objections",p:"Questions, objections probables et réponses."},{k:"La séquence d’approche",p:"3 messages prêts à envoyer, adaptés au canal, qui n’affirment que des faits vérifiés."},{k:"Le verdict",p:"CALL · CONSIDER · MONITOR · PASS, d’un coup d’œil, avec le raisonnement."}],memoFoot:e.jsx(e.Fragment,{children:"Vous récupérez tout dans une interface dédiée (vue leads + éditeur de thèse), et la séquence se pousse vers votre outil d’envoi — Lemlist, Instantly, La Growth Machine, GetSales…"}),memoLock:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"On ne vous pousse jamais un compte à contacter sans son mémo."})," Le tableau de bord affiche la shortlist que Stan qualifie en continu ; ce qui vous remonte pour action — chaque CALL — arrive toujours avec son déclencheur, son angle et sa séquence. Stan ne vend pas du volume de contacts : il vend des raisons de contacter, prêtes à exécuter."]}),ritualEyebrow:"Le rituel quotidien",ritualTitle:"Stan pilote tout. Vous répondez OUI ou NON — uniquement quand cela compte.",ritualP1:e.jsxs(e.Fragment,{children:["Stan détecte, qualifie et rédige chaque jour — sans rien vous demander. Lorsqu’il déniche un compte à fort potentiel avec un déclencheur actif, il arrive dans votre brief quotidien. ",e.jsx("strong",{children:"OUI ou NON — dès que vous avez deux minutes."})]}),ritualP2:e.jsxs(e.Fragment,{children:["Pas le temps cette semaine ? Les comptes CONSIDER et MONITOR continuent de mûrir tout seuls — ",e.jsx("strong",{children:"rien ne se perd."})," Vos CALL en attente patientent en haut du brief du lundi."]}),yesLabel:"✓ OUI",yesBody:e.jsx(e.Fragment,{children:"Stan rédige la séquence et la pousse vers votre outil d’envoi. Les angles gagnants reviennent en boucle."}),noLabel:"✗ NON",noBody:e.jsx(e.Fragment,{children:"Stan encode le motif de rejet. Une ligne de raisonnement le fait converger bien plus vite sur cet ICP."}),imgAlt:"Brief de prospection quotidien — aperçu mobile",tl1t:"Chaque jour",tl1h:"Brief de prospection",tl1p:"Sourcé, qualifié, rédigé. La plupart du temps : aucune action. Quand Stan déniche un compte à fort potentiel : OUI · NON en un clic.",tl2t
3107:"Lundi",tl2h:"Centre de commande hebdo",tl2p:e.jsxs(e.Fragment,{children:["Chaque OUI / NON est traité. ",e.jsx("strong",{children:"OUI"})," renforce ce qui marche ; ",e.jsx("strong",{children:"NON"})," réécrit le ciblage. La logique qui produit les prospects de la semaine suivante."]}),tl3t:"3 mois",tl3h:"Une liste impossible à copier",tl3p:e.jsx(e.Fragment,{children:"Votre thèse ICP reflète qui répond et achète vraiment. Pas un outil que vous louez ; un actif que vous construisez."}),flyEyebrow:"L’avantage qui grossit tout seul",flyH2:"52 mises à jour d’ICP par an, contre une liste achetée une fois.",flyBody1:e.jsx(e.Fragment,{children:"L’outbound classique achète une liste figée et la brûle. Les taux de réponse chutent à mesure que la liste vieillit, et rien n’apprend de qui a vraiment répondu."}),flyBody2:e.jsxs(e.Fragment,{children:["Stan réécrit votre thèse ICP chaque semaine sur vos vrais OUI/NON. Au bout de quelques mois, votre liste de cibles est ",e.jsx("strong",{children:"structurellement inimitable."})]}),flyManualHead:"Outbound classique",flyManual:["Liste figée, achetée une fois","Séquences génériques, copiées-collées","Aucune raison « pourquoi maintenant »","Les SDR passent la semaine à chercher","Le taux de réponse décline avec le temps"],flyStanHead:"Stan — Outbound B2B",flyStan:["Thèse ICP mise à jour 52× / an","~15 canaux qui scannent chaque matin","Un déclencheur explicite par compte","Les SDR se concentrent sur la conversation","La précision s’accumule chaque semaine"],flyStats:[{n:"~15",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Canaux lus chaque matin"})," — signaux faibles, recrutements, lancements, registres, GitHub, Exa."]})},{n:"52×",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Mises à jour d’ICP par an."})," Le ciblage de chaque lundi est plus affûté que celui de la semaine dernière."]})},{n:"3 mois",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Avant que votre liste devienne structurellement inimitable"})," — bâtie sur des décisions cumulées."]})},{n:"0",d:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Heure de recherche pour vos commerciaux."})," Leurs heures vont à la conversation, pas à la recherche."]})}],proofEyebrow:"La preuve · mesurée chaque lundi",proofTitle:"Le vrai KPI, c’est le pipeline. Le taux de OUI est notre indicateur avancé de ciblage.",proofIntro:e.jsxs(e.Fragment,{children:["Stan ne fait remonter que les comptes à plus fort potentiel (les CALL). Vous répondez OUI ou NON. Votre ",e.jsx("strong",{children:"taux de OUI"})," mesure à quel point Stan cible comme vous — c’est un indicateur de qualité, pas la promesse. ",e.jsx("strong",{children:"Ce que vous mesurez, vous, c’est les RDV qualifiés et les deals attribuables à Stan."})," Règle simple : sur un an, un seul deal signé rembourse Stan."]}),proofCaption:"Trajectoire cible du taux de OUI — votre courbe réelle vous est rapportée chaque lundi :",proofSteps:[{pct:"20–30%",period:"Mois 1",desc:"Stan tourne sur la thèse telle que vous l’avez écrite. Beaucoup de comptes solides ne collent pas encore à votre jugement tacite. Chaque NON est très instructif."},{pct:"60–70%",period:"Mois 2",desc:"Des dizaines de OUI/NON ont déjà réécrit le sourcing et la qualification. Stan reconnaît les comptes que vous rejetez sans que vous l’expliquiez."},{pct:"~85%",period:"Mois 3",desc:"Presque chaque compte remonté est un que vous approcheriez. Le ciblage de Stan reflète le vôtre."}],proofFoot:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Munitions dès le premier mois."})," Pendant le calibrage (M1-M2), pendant que le taux de OUI monte, Stan remonte délibérément le ",e.jsx("strong",{children:"haut de la fourchette"})," de CALL pour vous donner de quoi remplir le pipeline tout de suite — pas seulement une fois le filtre parfaitement réglé. Vous ne subissez pas un trou d’air le temps que le moteur apprenne."]}),chartY:"Taux de OUI",chartGoLive:"Go-live",chartX:"Mois depuis le go-live",wp1t:"Mois 1",wp1v:"~25 % OUI",wp2t:"Mois 2",wp2v:"~65 % OUI",wp3t:"Mois 3",wp3v:"~85 % OUI",chartAria:"Trajectoire cible du taux de OUI, d’environ 25 % au mois 1 à environ 85 % au mois 3",archEyebrow:"Architecture prête à l’emploi",archTitle:"Autonome, ou branché sur votre outil d’envoi.",archDesc:"Utilisez l’interface de Stan, ou poussez chaque séquence directement vers Lemlist, Instantly, La Growth Machine, GetSales ou votre CRM. Stan fournit les cibles et l’angle ; votre stack se charge de l’envoi.",whoEyebrow:"À qui ça s’adresse",whoTitle:"Conçu pour les équipes qui vendent une offre à forte valeur — où un seul deal signé rembourse Stan.",whoIntro:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Le critère d’entrée : un nouveau client vous rapporte au moins ~10 K€ (contrat, première année ou LTV)."})," À ce niveau, un seul deal signé suffit à rembourser tout ce que vous avez engagé — votre mise en route et votre premier trimestre, soit 9 500 € — et chaque deal suivant est du net. En dessous, il faut empiler plusieurs deals pour rentrer dans vos frais : ce n’est probablement pas pour vous, et on vous le dira franchement à l’appel."]}),who:[{h:"Fondateurs & CEO qui vendent encore",p:"Vous signez vous-même les gros logos. Stan vous remet chaque jour une shortlist avec déclencheur actif et angle exact."},{h:"CRO & VP Sales",p:"Vous ne voulez pas plus de leads ;
3107 vous voulez vos commerciaux en conversation. Stan supprime le temps de recherche."},{h:"Head of Growth / Demand Gen",p:"Finissez-en avec l’arrosage de masse : un ICP vivant qui apprend de qui répond. Chaque compte arrive avec une raison « pourquoi maintenant »."},{h:"Équipes SDR / BDR",p:"Chaque commercial démarre la journée avec des comptes recherchés et des séquences prêtes. Il prospecte dès le jour 1."},{h:"Agences outbound & lead-gen",p:"Du ciblage de niveau thèse pour chaque client sans monter un banc de recherche."},{h:"Cabinets de conseil & services B2B",p:"Cycles longs et consultatifs où l’angle fait tout. Stan trouve le déclencheur et cadre la valeur avant votre premier contact."}],founderEyebrow:"Pourquoi nous faire confiance",founderName:"Alexandre G. Busson",founderRole:"Fondateur & CEO · Proplace · ex-Ardian, Partech, M&A Leboncoin",founderRows:[{co:"Ardian — Analyste LBO",desc:"Sourcing, screening et diligence sur des dizaines d’entreprises européennes : séparer le signal du bruit à grande échelle."},{co:"Partech Ventures — Senior Associate",desc:"Sourcing et qualification de startups du pre-seed à la Série B. Des centaines de comptes lus, les bons trouvés tôt."},{co:"Leboncoin — Directeur M&A",desc:"Sourcing de cibles, approche et négociation de bout en bout. L’art d’atteindre le bon décideur avec le bon angle — productisé dans Stan."}],founderQuote:"« Le futur de la prospection B2B est autonome — inspiré par le commercial, pas substitué à lui. Stan capture ce que vous savez de votre acheteur et le déploie, compte par compte, chaque jour. »",secEyebrow:"Sécurité & Conformité",secTitle:"Bâti sur une infrastructure de confiance.",secIntro:e.jsx(e.Fragment,{children:"Votre thèse, votre pipeline, vos prospects. Nous traitons vos données comme l’actif stratégique qu’elles sont — chiffrées, relayées côté serveur, exécutées sur des plateformes certifiées SOC 2."}),secInherited:"Hérité de nos prestataires",sec:[{h:"Infrastructure certifiée SOC 2",p:"Données et mémos stockés sur Airtable (SOC 2 Type II, ISO 27001) ; calculs sur Modal (SOC 2 Type II). Nous agissons comme votre sous-traitant au sens du RGPD."},{h:"Chiffrement en transit & au repos",p:"TLS 1.3 en transit, AES-256 au repos. Identifiants d’API dans le coffre à secrets de Modal."},{h:"Accès aux données côté serveur",p:"Chaque lecture/écriture est relayée par notre backend. Aucun identifiant de base n’atteint le client ; chaque compte est isolé."},{h:"Points d’accès authentifiés",p:"Jeton requis, domaines Proplace uniquement (CORS). Liens partagés en jetons 256 bits."},{h:"IA sans exposition à l’entraînement",p:"Fournisseurs sur offres entreprise qui interdisent d’entraîner sur vos prompts."},{h:"Feuille de route SOC 2 & ISO 27001",p:"Programme de sécurité en construction, certification formelle prévue à mesure que Proplace se développe."}],pricingEyebrow:"Tarifs",pricingTitle:e.jsxs(e.Fragment,{children:["Un seul moteur. Un seul tarif. ",e.jsx("em",{children:"Rentable dès le premier deal."})]}),pricingLead:"Pensé pour les offres où un seul deal signé rembourse Stan. Une édition complète et autonome — sans option Proplace+.",priceTag:"moteur · édition complète",priceName:"Proplace OS — Édition Outbound B2B",priceTagline:"Votre moteur de prospection ciblée.",priceSetup:"Mise en route 5 000 € — une seule fois. On construit à la main votre thèse d’ICP, on calibre le gate sur votre jugement, et on branche votre outil d’envoi. Plus jamais de frais d’installation.",priceAmount:"1 500 €",pricePeriod:e.jsx(e.Fragment,{children:"HT / mois — paiement trimestriel, débité au go-live (le 2ᵉ lundi)."}),priceCalc:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Le calcul est simple : 5 000 € de mise en route + 4 500 € pour votre premier trimestre = 9 500 €."})," Un seul nouveau client signé rembourse l’ensemble — et fait généralement bien plus. Ensuite, à 1 500 €/mois, chaque deal est du net."]}),priceCommit:e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Sans engagement de durée — reconduction tacite par trimestre."})," Vous arrêtez quand vous voulez : le trimestre déjà réglé n’est pas remboursé (ni la mise en route), mais rien ne vous oblige à renouveler le suivant. Pas de money-back ; votre liberté, c’est de ne pas reconduire, quand vous le décidez."]}),priceGroup:"Inclus",priceFeats:["Construction de votre thèse de croissance — ICP + cartographie de votre offre","Sourcing quotidien multi-canal (~15 canaux)","Un mémo de vente + séquence prête sur chaque match","Interface dédiée + éditeur de thèse en ligne","Push vers votre outil d’envoi / CRM","Boucle d’apprentissage hebdomadaire (OUI / NON)"],priceN
3107ote:"Sans option Proplace+ — cette édition est complète à elle seule.",priceCta:"Configurer mon moteur",tlEyebrow:"De l’appel au go-live",tlH2:"En route dès le 2ᵉ lundi.",timeline:[{d:"Jour 0",h:"Appel de cadrage · 45 min",p:"Stan analyse un de vos comptes cibles réels en direct. On vérifie aussi ensemble qu’un nouveau client vaut assez pour que Stan soit rentable dès la première signature. Sans engagement."},{d:"Lancement",h:"Mise en route · 5 000 €",p:"On cartographie votre offre et vos clients en une première thèse ICP."},{d:"Thèse",h:"Encodage · 1h",p:"Vous expliquez ce que vous vendez et à qui. Stan en dérive vos ICP."},{d:"Calibrage",h:"Quelques jours",p:"1 à 2 mises à jour pour que le filtre colle à votre jugement."},{d:"2ᵉ lundi",h:"Go-live · 1 500 €/mois",p:"Premiers mémos dans votre boîte. La facturation trimestrielle démarre."},{d:"Ensuite",h:"Ça s’accumule",p:"La thèse monte en version chaque semaine. Votre liste devient inimitable."}],impactEyebrow:"Impact",impactTitle:"Ce qui change, en général, en 90 jours.",impactNote:"Ordres de grandeur — liés à la conception du moteur, pas une garantie.",impact:[{n:"10×",h:"De comptes passés au crible",p:"Couvrez tout votre marché, ~10× ce qu’un commercial traite à la main, sans étoffer vos effectifs."},{n:"90%",h:"De temps de recherche en moins",p:"Vos commerciaux passent leurs heures à vendre, pas à bâtir des listes."},{n:"1 deal",h:"rembourse tout",p:"Un seul client signé couvre votre mise en route et votre premier trimestre (9 500 €). Chaque deal suivant est du net."},{n:"Chaque",h:"message porte un angle",p:"Chaque approche s’ouvre sur une raison de répondre ; tout fait non vérifié est signalé avant l’envoi."}],faqEyebrow:"FAQ",faqTitle:"Les questions qu’on nous pose.",faq:[{q:"Encore un Apollo / Clay ?",a:"Non. Apollo et Clay enrichissent une liste que vous avez déjà construite — c’est encore vous qui choisissez qui cibler et quoi dire. Stan choisit quels comptes en valent la peine et pourquoi maintenant, puis écrit l’angle et la séquence. Eux, c’est la tuyauterie ; Stan, c’est la stratégie."},{q:"Combien de RDV puis-je en attendre ?",a:"Stan ne se mesure pas en volume de prospects, mais en CALL actionnables — des comptes à fort potentiel, avec déclencheur et séquence prête. Vous pilotez sur ce qui compte vraiment : RDV qualifiés et pipeline généré, pas un compteur de leads. Volontairement resserré : quelques CALL à fort potentiel par jour, pas des centaines. Pendant le calibrage (M1-M2), Stan remonte le haut de fourchette pour vous donner des munitions tout de suite ; ensuite il resserre à mesure que la précision monte."},{q:"Vous livrez des listes de contacts ?",a:"Le produit, ce n’est pas la liste — c’est le mémo. Votre tableau de bord montre la shortlist des comptes que Stan qualifie (certains encore en cours d’analyse), mais rien ne vous est poussé pour action sans son mémo : chaque CALL arrive avec son déclencheur, son angle et sa séquence. Si vous cherchez du volume de contacts à enrichir vous-même, Stan n’est pas le bon outil."},{q:"Quelle taille de deal faut-il pour que ce soit rentable ?",a:"Faites le calcul : votre premier trimestre coûte 9 500 € (5 000 € de mise en route + 4 500 € d’abonnement), et vous êtes ensuite libre de partir. Dès qu’un nouveau client vaut ~10 K€+ (contrat, première année ou LTV), un seul deal signé rembourse déjà tout — et fait généralement bien plus. Au-delà, chaque signature est du net. Si vos deals valent quelques centaines d’euros, il en faut trop pour rentabiliser : on vous le dira franchement à l’appel plutôt que de vous vendre quelque chose qui ne tiendra pas."},{q:"Ça remplace mon SDR ?",a:"Non, ça l’arme. Il arrête de chercher et se concentre sur la conversation."},{q:"Ça remplace mon outil d’envoi ?",a:"Non. Stan fournit les cibles, l’angle et la séquence ; votre outil (Lemlist, Instantly, GetSales…) se charge de l’envoi."},{q:"Pourquoi 5 000 € de mise en route ?",a:"C’est de l’ingénierie sur mesure, pas de l’onboarding : on transforme ce que vous vendez en une thèse de sourcing et de qualification opérationnelle, calibrée sur de vrais comptes avant le go-live. Fait une fois, jamais répété."},{q:"Y a-t-il un engagement ?",a:"Pas de durée imposée. La facturation est trimestrielle, avec reconduction tacite : vous pouvez arrêter quand vous voulez, sans justification. Le trimestre en cours et la mise en route ne sont pas remboursés — 
3107c’est du travail déjà réalisé — mais vous n’êtes jamais tenu de renouveler le trimestre suivant. La « garantie », c’est ça : la liberté de ne pas reconduire, pas un remboursement."},{q:"Et si un prospect ne correspond pas ?",a:"Vous cliquez NON ; le moteur apprend et resserre votre ICP pour la semaine suivante."},{q:"Mes données / mon offre ?",a:"Votre thèse est privée et éditable à tout moment. Nos fournisseurs sont sur des offres entreprise qui interdisent d’entraîner leurs modèles sur vos prompts."},{q:"Délai de mise en route ?",a:"Go-live au 2ᵉ lundi : thèse construite, moteur branché, premiers mémos."},{q:"Y a-t-il un Proplace+ pour l’outbound ?",a:"Non. Cette édition est complète à elle seule — un moteur, un tarif, sans option."}],ctaEyebrow:"Commencer",ctaH:e.jsxs(e.Fragment,{children:["Donnez à votre outbound ",e.jsx("em",{children:"une raison de répondre."})]}),ctaP:e.jsxs(e.Fragment,{children:["En 45 minutes, on fait tourner Stan en direct sur un de vos comptes cibles réels — déclencheur, cas d’usage croisé, séquence prête, à l’écran. On valide aussi ensemble qu’un client vaut assez pour que Stan soit rentable dès la première signature.",e.jsx("br",{}),"Vous repartez avec un prospect concret et l’angle exact. Sans aucun engagement."]}),ctaBtn:"Configurer mon moteur",ctaNote:"Ou contactez : "}};function j5(){ht({en:{title:"Proplace OS — Outbound B2B Edition",description:"The same Stan engine, aimed at your next customers: it finds the B2B accounts about to buy and writes the sales memo — trigger, crossed use case, and the exact angle. A single closed deal pays for Stan. Live by the 2nd Monday."},fr:{title:"Proplace OS — Édition Outbound B2B",description:"Le même moteur Stan, braqué sur vos prochains clients : il trouve les comptes B2B prêts à acheter et rédige le mémo de vente — déclencheur, cas d’usage croisé, et l’angle exact. Un seul deal signé rembourse Stan. Opérationnel dès le 2ᵉ lundi."}});const{lang:t}=ae(),n=y5[t],[r,i]=m.useState(!1),s=()=>i(!0);return e.jsxs("div",{children:[e.jsx("style",{children:w5}),e.jsx(zn,{items:n.nav}),e.jsx("div",{id:"hero",children:e.jsxs("div",{className:"wrap-wide",style:{textAlign:"center"},children:[e.jsx("img",{src:"/logo.png",className:"hero-logo",style:{marginBottom:18,display:"block",marginLeft:"auto",marginRight:"auto"},alt:"Proplace"}),e.jsx("span",{className:"ob-badge",children:n.badge}),e.jsx("h1",{className:"hero-title ob-hero-title",children:n.heroTitle}),e.jsx("p",{className:"ob-hero-promise",children:n.heroSub}),e.jsx("p",{className:"hero-note",style:{maxWidth:620,margin:"0 auto 24px",lineHeight:1.7},children:n.heroNote}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:12},children:[e.jsx("button",{className:"btn",style:{width:"100%",maxWidth:380,justifyContent:"center"},onClick:s,children:n.ctaPrimary}),e.jsx("button",{className:"btn outline",style:{width:"100%",maxWidth:380,justifyContent:"center"},onClick:s,children:n.ctaSecondary})]})]})}),e.jsx("div",{className:"section",id:"signals",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.sigEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:14},children:n.sigTitle}),e.jsx("p",{className:"ob-lead",style:{marginBottom:6},children:n.sigLead}),e.jsx("p",{className:"ob-sig-note",children:n.sigNote}),e.jsx("div",{className:"ob-sig-grid",children:n.signals.map(a=>e.jsxs("div",{className:"ob-sig",children:[e.jsxs("div",{className:"ob-sig-top",children:[e.jsx("span",{className:"ob-sig-icon",children:a.icon}),e.jsx("span",{className:"ob-sig-tag",children:a.tag})]}),e.jsx("p",{className:"ob-sig-txt",children:a.txt}),e.jsx("div",{className:"ob-sig-meta",children:a.meta})]},a.tag))}),e.jsx("p",{className:"ob-memo-foot",children:n.sigFoot})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"stan",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.whatEyebrow}),e.jsxs("div",{className:"stan-grid",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"stan-h",children:n.whatTitle}),e.jsxs("div",{className:"stan-body",children:[e.jsx("p",{children:n.whatP1}),e.jsx("p",{children:n.whatP2}),e.jsx("p",{children:n.whatP3}),e.jsx("p",{children:n.whatP4})]})]}),e.jsx("div",{children:e.jsxs("div",{className:"stan-stats",children:[e.jsxs("div",{className:"ss",children:[e.jsx("span",{className:"ss-n",children:n.stat1n}),e.jsx("span",{className:"ss-l",children:n.stat1})]}),e.jsxs("div",{className:"ss",children:[e.jsx("span",{className:"ss-n",children:n.stat2n}),e.jsx("span",{className:"ss-l",children:n.stat2})]}),e.jsxs("div",{className:"ss",children:[e.jsx("span",{className:"ss-n",children:n.stat3n}),e.jsx("span",{className:"ss-l",children:n.stat3})]}),e.jsxs("div",{className:"ss",children:[e.jsx("span",{className:"ss-n",children:n.stat4n}),e.jsx("span",{className:"ss-l",children:n.stat4})]})]})})]})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"why",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.whyEyebrow}),e.jsx("h2",{className:"h2",children:n.whyTitle}),e.jsx("p",{style:{fontSize:16,color:"var(--sub)",lineHeight:1.75,maxWidth:640,marginBottom:32},children:n.whyIntro}),e.jsxs("table",{className:"ct",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{}),e.jsx("th",{className:"th-m",children:n.thHuman}),e.jsx("th",{className:"th-s",children:n.thStan})]})}),e.jsx("tbody",{children:n.whyRows.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:a.k}),e.jsx("td",{className:"td-m",children:a.a}),e.jsx("td",{className:"td-s",children:a.b})]},a.k))})]})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"how",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.howEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:12},children:n.howTitle}),e.jsx("p",{className:"ob-lead",style:{marginBottom:28},children:n.howLead}),e.jsx("div",{className:"ob-steps",children:n.steps.map(a=>e.jsxs("div",{className:"mod",children:[e.jsx("div",{className:"mod-num",children:a.num}),e.jsx("div",{className:"mod-title",children:a.title}),e.jsx("div",{className:"mod-desc",children:a.desc}),e.jsxs("div",{className:"mod-out",children:[e.jsx("span",{className:"mod-out-title",children:a.outTitle}),e.jsx("div",{className:"mod-out-row",children:a.out})]})]},a.title))}),e.jsx("div",{className:"ob-verdicts-head",children:n.verdictsTitle}),e.jsx("div",{className:"verdicts ob-verdicts4",children:n.verdicts.map(a=>e.jsxs("div",{className:`vd ${a.cls}`,children:[e.jsx("div",{className:"vd-label",style:{color:a.color},children:a.label}),e.jsx("p",{children:a.p})]},a.label))}),e.jsx("p",{className:"ob-memo-foot",children:n.verdictsFoot})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"memo",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.memoEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:24},children:n.memoTitle}),e.jsx("div",{className:"ob-anat-grid",children:n.anat.map(a=>e.jsxs("div",{className:"ob-anat",children:[e.jsx("span",{className:"ob-anat-k",children:a.k}),e.jsx("p",{className:"ob-anat-p",children:a.p})]},a.k))}),e.jsx("p",{className:"ob-memo-foot",children:n.memoFoot}),e.jsx("div",{className:"ob-call",children:n.memoLock})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.ritualEyebrow}),e.jsxs("div",{className:"daily-grid",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"h2",children:n.ritualTitle}),e.jsx("p",{style:{fontSize:15,color:"var(--sub)",lineHeight:1.8,marginBottom:14},children:n.ritualP1}),e.jsx("p",{style:{fontSize:15,color:"var(--sub)",lineHeight:1.8,marginBottom:22},children:n.ritualP2}),e.jsxs("div",{className:"verdicts",children:[e.jsxs("div",{className:"vd call",children:[e.jsx("div",{className:"vd-label",children:n.yesLabel}),e.jsx("p",{children:n.yesBody})]}),e.jsxs("div",{className:"vd pass",children:[e.jsx("div",{className:"vd-label",children:n.noLabel}),e.jsx("p",{children:n.noBody})]})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"tl",children:[e.jsxs("div",{className:"tl-row",children:[e.jsx("span",{className:"tl-time",children:n.tl1t}),e.jsxs("div",{children:[e.jsx("div",{className:"tl-h",children:n.tl1h}),e.jsx("p",{className:"tl-p",children:n.tl1p})]})]}),e.jsxs("div",{className:"tl-row",children:[e.jsx("span",{className:"tl-time",children:n.tl2t}),e.jsxs("div",{children:[e.jsx("div",{className:"tl-h",children:n.tl2h}),e.jsx("p",{className:"tl-p",children:n.tl2p})]})]}),e.jsxs("div",{className:"tl-row",children:[e.jsx("span",{className:"tl-time",children:n.tl3t}),e.jsxs("div",{children:[e.jsx("div",{className:"tl-h",children:n.tl3h}),e.jsx("p",{className:"tl-p",children:n.tl3p})]})]})]}),e.jsx("div",{style:{marginTop:16},children:e.jsx("img",{src:L5,alt:n.imgAlt,style:{maxWidth:"100%",display:"block",border:"1px solid var(--line)"}})})]})]})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.flyEyebrow}),e.jsxs("div",{className:"fw-grid",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"h2",children:n.flyH2}),e.jsx("p",{className:"fw-body",children:n.flyBody1}),e.jsx("p",{className:"fw-body",children:n.flyBody2}),e.jsxs("div",{className:"fw-cmp",children:[e.jsxs("div",{className:"fw-col",children:[e.jsx("span",{className:"fw-col-h r",children:n.flyManualHead}),n.flyManual.map(a=>e.jsx("div",{className:"fw-li",children:a},a))]}),e.jsxs("div",{className:"fw-col good",children:[e.jsx("span",{className:"fw-col-h g",children:n.flyStanHead}),n.flyStan.map(a=>e.jsx("div",{className:"fw-li",children:a},a))]})]})]}),e.jsx("div",{className:"fw-stats",children:n.flyStats.map((a,o)=>e.jsxs("div",{className:`fw-s${o===2?" hl":""}`,children:[e.jsx("span",{className:"fw-big",children:a.n}),e.jsx("div",{className:"fw-det",children:a.d})]},o))})]})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"proof",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.proofEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:10},children:n.proofTitle}),e.jsx("p",{className:"ob-lead",style:{marginBottom:18},children:n.proofIntro}),e.jsx("p",{className:"ob-proof-caption",children:n.proofCaption}),e.jsx("div",{style:{width:"100%",overflowX:"auto"},children:e.jsxs("svg",{viewBox:"0 0 820 280",width:"100%",preserveAspectRatio:"xMidYMid meet",style:{display:"block",maxWidth:820,margin:0},role:"img","aria-label":n.chartAria,children:[e.jsxs("g",{stroke:"#E3E8F0",strokeWidth:"1",children:[e.jsx("line",{x1:"70",y1:"30",x2:"780",y2:"30"}),e.jsx("line",{x1:"70",y1:"80",x2:"780",y2:"80"}),e.jsx("line",{x1:"70",y1:"130",x2:"780",y2:"130"}),e.jsx("line",{x1:"70",y1:"180",x2:"780",y2:"180"}),e.jsx("line",{x1:"70",y1:"230",x2:"780",y2:"230"})]}),e.jsxs("g",{fontSize:"11",fill:"#4B5E78",fontFamily:"Inter, sans-serif",children:[e.jsx("text",{x:"58",y:"34",textAnchor:"end",children:"100%"}),e.jsx("text",{x:"58",y:"84",textAnchor:"end",children:"75%"}),e.jsx("text",{x:"58",y:"134",textAnchor:"end",children:"50%"}),e.jsx("text",{x:"58",y:"184",textAnchor:"end",children:"25%"}),e.jsx("text",{x:"58",y:"234",textAnchor:"end",children:"0%"})]}),e.jsx("text",{x:"20",y:"130",fontSize:"11",fontWeight:"700",fill:"#1B2F4E",textAnchor:"middle",transform:"rotate(-90 20 130)",fontFamily:"Inter, sans-serif",children:n.chartY}),e.jsx("line",{x1:"70",y1:"230",x2:"780",y2:"230",stroke:"#8FA0B8",strokeWidth:"1.5"}),[0,1,2,3,4,5,6].map(a=>{const o=70+a/6*710;return e.jsxs("g",{children:[e.jsx("line",{x1:o,y1:"230",x2:o,y2:"235",stroke:"#8FA0B8",strokeWidth:"1.5"}),e.jsx("text",{x:o,y:"252",fontSize:"11",fill:"#4B5E78",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:a===0?n.chartGoLive:`M${a}`})]},a)}),e.jsx("text",{x:"425",y:"272",fontSize:"11",fontWeight:"700",fill:"#1B2F4E",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.chartX}),e.jsx("path",{d:"M 70 210 C 160 198, 220 128, 425 108 C 585 92, 700 56, 780 44 L 780 56 C 700 70, 585 104, 425 122 C 220 142, 160 210, 70 222 Z",fill:"#12A150",fillOpacity:"0.14",stroke:"none"}),e.jsx("path",{d:"M 70 202 C 160 190, 230 120, 425 100 C 585 84, 700 60, 780 50",fill:"none",stroke:"#12A150",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"2 7"}),e.jsxs("g",{children:[e.jsx("rect",{x:"130",y:"138",width:"120",height:"32",rx:"4",fill:"#ffffff",stroke:"#C9D6E6"}),e.jsx("text",{x:"190",y:"152",fontSize:"11",fontWeight:"800",fill:"#1B2F4E",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp1t}),e.jsx("text",{x:"190",y:"165",fontSize:"11",fontWeight:"600",fill:"#0E7F3F",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp1v}),e.jsx("circle",{cx:"188",cy:"180",r:"6",fill:"#fff",stroke:"#12A150",strokeWidth:"2.5"}),e.jsx("circle",{cx:"188",cy:"180",r:"2.5",fill:"#12A150"})]}),e.jsxs("g",{children:[e.jsx("rect",{x:"368",y:"52",width:"120",height:"32",rx:"4",fill:"#ffffff",stroke:"#C9D6E6"}),e.jsx("text",{x:"428",y:"66",fontSize:"11",fontWeight:"800",fill:"#1B2F4E",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp2t}),e.jsx("text",{x:"428",y:"79",fontSize:"11",fontWeight:"600",fill:"#0E7F3F",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp2v}),e.jsx("circle",{cx:"425",cy:"100",r:"7",fill:"#fff",stroke:"#12A150",strokeWidth:"2.5"}),e.jsx("circle",{cx:"425",cy:"100",r:"2.5",fill:"#12A150"})]}),e.jsxs("g",{children:[e.jsx("rect",{x:"660",y:"14",width:"120",height:"32",rx:"4",fill:"#E7F6EE",stroke:"#12A150"}),e.jsx("text",{x:"720",y:"28",fontSize:"11",fontWeight:"800",fill:"#0E7F3F",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp3t}),e.jsx("text",{x:"720",y:"41",fontSize:"11",fontWeight:"700",fill:"#0E7F3F",textAnchor:"middle",fontFamily:"Inter, sans-serif",children:n.wp3v}),e.jsx("circle",{cx:"780",cy:"50",r:"7",fill:"#fff",stroke:"#12A150",strokeWidth:"2.5"}),e.jsx("circle",{cx:"780",cy:"50",r:"2.5",fill:"#12A150"})]})]})}),e.jsx("div",{className:"ob-conv-row",children:n.proofSteps.map((a,o)=>e.jsxs("div",{className:`ob-conv-step${o===2?" hl":""}`,children:[e.jsx("div",{className:"ob-conv-pct",children:a.pct}),e.jsx("div",{className:"ob-conv-period",children:a.period}),e.jsx("div",{className:"ob-conv-desc",children:a.desc})]}
3107,a.period))}),e.jsx("div",{className:"ob-call",style:{marginTop:22},children:n.proofFoot})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"architecture",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.archEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:12},children:n.archTitle}),e.jsx("p",{style:{fontSize:16,color:"var(--sub)",lineHeight:1.75,maxWidth:640,marginBottom:0},children:n.archDesc}),e.jsx("div",{style:{marginTop:28},children:e.jsx("img",{src:b5,alt:"Architecture : autonome ou connecté",style:{maxWidth:"100%",height:"auto",display:"block"}})})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.whoEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:14},children:n.whoTitle}),e.jsx("div",{className:"ob-call",style:{marginBottom:28},children:n.whoIntro}),e.jsx("div",{className:"serve-grid",children:n.who.map(a=>e.jsxs("div",{className:"sc",children:[e.jsx("div",{className:"sc-h",children:a.h}),e.jsx("p",{className:"sc-p",children:a.p})]},a.h))})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"founder",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.founderEyebrow}),e.jsxs("div",{className:"founder-grid",style:{marginTop:28},children:[e.jsx("div",{children:e.jsx("img",{src:v5,alt:n.founderName,className:"founder-photo ob-founder-photo"})}),e.jsxs("div",{children:[e.jsx("div",{className:"founder-name",children:n.founderName}),e.jsx("div",{className:"founder-role",children:n.founderRole}),e.jsx("div",{className:"f-rows",children:n.founderRows.map(a=>e.jsxs("div",{className:"f-row",children:[e.jsx("span",{className:"f-co",children:a.co}),e.jsx("span",{className:"f-desc",children:a.desc})]},a.co))}),e.jsx("div",{className:"founder-quote",children:n.founderQuote})]})]})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"security",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.secEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:12},children:n.secTitle}),e.jsx("p",{style:{fontSize:14,color:"var(--sub)",lineHeight:1.75,maxWidth:640,marginBottom:28},children:n.secIntro}),e.jsxs("div",{className:"ob-sec-badges",children:[e.jsx("span",{className:"ob-sec-inherited",children:n.secInherited}),["SOC 2 Type II","ISO 27001"].map(a=>e.jsx("span",{className:"ob-sec-badge",children:a},a))]}),e.jsx("div",{className:"impact-grid impact-grid-3",children:n.sec.map(a=>e.jsxs("div",{className:"imp",children:[e.jsx("span",{className:"imp-h",children:a.h}),e.jsx("p",{className:"imp-p",children:a.p})]},a.h))})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"pricing",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.pricingEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:12},children:n.pricingTitle}),e.jsx("p",{className:"pricing-lead",style:{maxWidth:640},children:n.pricingLead}),e.jsx("div",{className:"ob-price-wrap",children:e.jsxs("div",{className:"pc feat",children:[e.jsx("span",{className:"pc-tag",children:n.priceTag}),e.jsx("div",{className:"pc-name",children:n.priceName}),e.jsx("div",{className:"pc-tagline",children:n.priceTagline}),e.jsx("div",{className:"pc-price",children:n.priceAmount}),e.jsx("span",{className:"pc-period",children:n.pricePeriod}),e.jsx("div",{className:"pc-outreach",children:n.priceSetup}),e.jsx("div",{className:"ob-price-calc",children:n.priceCalc}),e.jsx("div",{className:"pgroup",children:n.priceGroup}),e.jsx("div",{className:"pfeats",children:n.priceFeats.map(a=>e.jsx("div",{className:"pfi",children:a},a))}),e.jsx("div",{className:"ob-price-commit",children:n.priceCommit}),e.jsx("div",{className:"pc-note",children:n.priceNote}),e.jsx("div",{className:"pc-cta",children:e.jsx("button",{className:"btn",onClick:s,children:n.priceCta})})]})})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.tlEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:24},children:n.tlH2}),e.jsx("div",{className:"tl6",children:n.timeline.map(a=>e.jsxs("div",{className:"tl6-s",children:[e.jsx("span",{className:"tl6-d",children:a.d}),e.jsx("div",{className:"tl6-h",children:a.h}),e.jsx("p",{className:"tl6-p",children:a.p})]},a.d))})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",style:{background:"var(--bg)"},children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.impactEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:4},children:n.impactTitle}),e.jsx("p",{className:"ob-impact-note",children:n.impactNote}),e.jsx("div",{className:"impact-grid",children:n.impact.map(a=>e.jsxs("div",{className:"imp",children:[e.jsx("span",{className:"imp-n",children:a.n}),e.jsx("span",{className:"imp-h",children:a.h}),e.jsx("p",{className:"imp-p",children:a.p})]},a.h))})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",id:"faq",children:e.jsxs("div",{className:"wrap-wide",children:[e.jsx("span",{className:"eyebrow",children:n.faqEyebrow}),e.jsx("h2",{className:"h2",style:{marginBottom:28},children:n.faqTitle}),e.jsx("div",{className:"ob-faq",children:n.faq.map(a=>e.jsxs("div",{className:"ob-faq-item",children:[e.jsx("div",{className:"ob-faq-q",children:a.q}),e.jsx("p",{className:"ob-faq-a",children:a.a})]},a.q))})]})}),e.jsx("hr",{className:"div"}),e.jsx("div",{className:"section",style:{textAlign:"center"},children:e.jsxs("div",{className:"wrap",children:[e.jsx("span",{className:"eyebrow",style:{textAlign:"center"},children:n.ctaEyebrow}),e.jsx("h2",{className:"cta-h",children:n.ctaH}),e.jsx("p",{className:"cta-p",children:n.ctaP}),e.jsx("button",{className:"btn",onClick:s,children:n.ctaBtn}),e.jsxs("p",{className:"cta-note",children:[n.ctaNote,e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"})," · +33 (0)6 83 10 72 86"]})]})}),e.jsx("hr",{className:"div"}),e.jsx(x5,{}),e.jsx(Nt,{}),r&&e.jsx(Pi,{onClose:()=>i(!1)})]})}const w5=`
3108.ob-badge {
3109  display: inline-block;
3110  font-size:12px; font-weight:600;
3111  color: var(--green-dk); background: var(--gp);
3112  border: 1px solid #cfe8da; border-radius: 22px;
3113  padding: 5px 14px; margin-bottom: 14px;
3114}
3115.ob-hero-title { max-width: 820px; margin-left: auto; margin-right: auto; }
3116.ob-hero-promise { font-size: clamp(17px, 2.4vw, 21px); font-weight: 700; color: var(--ink); line-height: 1.4; max-width: 640px; margin: 14px auto 16px; letter-spacing: -.01em; }
3117.ob-lead { font-size: 16px; color: var(--sub); line-height: 1.75; max-width: 720px; margin: 0; }
3118.ob-memo-foot { font-size: 14px; color: var(--mid); line-height: 1.7; margin-top: 20px; max-width: 760px; }
3119.ob-memo-foot strong { font-weight: 600; color: var(--ink); }
3120
3121/* consistent heading width across sections */
3122.section .h2 { max-width: 860px; }
3123
3124/* emphasis callout (memo lock, proof ammunition, ICP gate) */
3125.ob-call { margin-top: 18px; padding: 16px 20px; border-left: 3px solid var(--green); background: var(--gp); font-size: 14.5px; color: var(--sub); line-height: 1.7; max-width: 820px; }
3126.ob-call strong { font-weight: 700; color: var(--ink); }
3127
3128/* live signals */
3129.ob-sig-note { font-size: 12px; color: var(--lite); font-style: italic; margin: 0 0 24px; }
3130.ob-sig-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
3131.ob-sig { background: var(--white); padding: 18px 18px 16px; }
3132.ob-sig-top { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
3133.ob-sig-icon { font-size: 18px; line-height: 1; }
3134.ob-sig-tag { font-size:12px; font-weight:600; color: var(--green-dk); background: var(--gp); padding: 3px 8px; border-radius: 3px; }
3135.ob-sig-txt { font-size: 13.5px; color: var(--sub); line-height: 1.6; margin: 0 0 10px; }
3136.ob-sig-meta { font-size: 11px; color: var(--lite); border-top: 1px solid var(--line); padding-top: 8px; line-height: 1.45; }
3137
3138/* steps */
3139.ob-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
3140
3141/* verdicts 4-up */
3142.ob-verdicts-head { font-size:12px; font-weight:600; color: var(--lite); margin: 38px 0 12px; }
3143.ob-verdicts4 { grid-template-columns: 1fr 1fr 1fr 1fr; margin-top: 0; }
3144
3145/* memo anatomy */
3146.ob-anat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
3147.ob-anat { background: var(--white); padding: 18px 20px; }
3148.ob-anat-k { font-size:12px; font-weight:600; color: var(--green); display: block; margin-bottom: 6px; }
3149.ob-anat-p { font-size: 13.5px; color: var(--sub); line-height: 1.65; margin: 0; }
3150
3151/* proof */
3152.ob-proof-caption { font-size: 12px; color: var(--lite); font-style: italic; margin: 0 0 18px; }
3153.ob-conv-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-top: 22px; }
3154.ob-conv-step { background: var(--bg); border: 1px solid var(--line); border-left: 3px solid var(--green); padding: 14px 16px; }
3155.ob-conv-step.hl { background: #E7F6EE; border-color: #12A150; border-left-color: #12A150; }
3156.ob-conv-pct { font-size: 22px; font-weight: 900; color: var(--green); letter-spacing: -.02em; line-height: 1.1; }
3157.ob-conv-step.hl .ob-conv-pct { color: #0E7F3F; }
3158.ob-conv-period { font-size:12px; font-weight:600; color: var(--mid); margin: 4px 0 8px; }
3159.ob-conv-desc { font-size: 12.5px; color: var(--sub); line-height: 1.55; }
3160
3161/* founder */
3162.ob-founder-photo { height: auto; aspect-ratio: 180 / 222; object-fit: cover; object-position: center top; display: block; }
3163
3164/* security badges */
3165.ob-sec-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 28px; }
3166.ob-sec-inherited { font-size:12px; font-weight: 600; color: var(--lite); margin-right: 6px; }
3167.ob-sec-badge { display: inline-flex; align-items: center; font-size:12px; font-weight: 500; color: var(--sub); border: 1px solid var(--line); border-radius: 999px; padding: 4px 12px; background: var(--white); }
3168
3169/* pricing single */
3170.ob-price-wrap { max-width: 480px; margin: 6px auto 0; }
3171.ob-price-wrap .pc.feat { border-top-width: 3px; }
3172.ob-price-calc { background: var(--gp); border: 1px solid #cfe8da; border-radius: 4px; padding: 13px 15px; margin: 0 0 16px; font-size: 13px; color: var(--sub); line-height: 1.6; }
3173.ob-price-calc strong { color: var(--green-dk); font-weight: 700; }
3174.ob-price-commit { font-size: 12px; color: var(--mid); line-height: 1.6; border-top: 1px solid var(--line); padding-top: 12px; margin-bottom: 4px; }
3175.ob-price-commit strong { color: var(--ink); font-weight: 600; }
3176
3177/* impact */
3178.ob-impact-note { font-size: 12px; color: var(--lite); font-style: italic; margin: 0 0 22px; }
3179
3180/* faq */
3181.ob-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
3182.ob-faq-item { background: var(--white); padding: 20px 22px; }
3183.ob-faq-q { font-size: 14.5px; font-weight: 700; color: var(--ink); margin-bottom: 7px; }
3184.ob-faq-a { font-size: 13.5px; color: var(--sub); line-height: 1.7; margin: 0; }
3185
3186.cta-note a { color: var(--green); text-decoration: none; }
3187.cta-note a:hover { text-decoration: underline; }
3188
3189@media (max-width: 960px) {
3190  .ob-verdicts4 { grid-template-columns: 1fr 1fr; }
3191  .ob-sig-grid { grid-template-columns: 1fr 1fr; }
3192}
3193@media (max-width: 768px) {
3194  .ob-sig-grid { grid-template-columns: 1fr; }
3195  .ob-steps { grid-template-columns: 1fr; }
3196  .ob-verdicts4 { grid-template-columns: 1fr 1fr; }
3197  .ob-anat-grid { grid-template-columns: 1fr; }
3198  .ob-conv-row { grid-template-columns: 1fr; }
3199  .ob-faq { grid-template-columns: 1fr; }
3200}
3201`,ni=[{id:"01",label:"Strategy",cadence:"Day 7",title:"Stan learns how you think. Then executes it at scale.",tagline:"1 hour. Your acquisition DNA — encoded, deployed, evolving.",yourTime:"1 hour, once",deliverable:"Fund Thesis JSON v5.3 — stored in Airtable, edited by the CEO on analysis.proplace.co/thesis/?fund=<slug> (Pydantic-validated before every PATCH)."},{id:"02",label:"Sourcing",cadence:"Daily",title:"Stan scans. Stan filters. Only what matters reaches you.",tagline:"6–18 months before the market. Every day. Zero effort from you.",yourTime:"0 — fully automated",deliverable:"Sourcing Dashboard — matches filterable by angle, sector, geography, signal type."},{id:"03",label:"Qualification",cadence:"Daily",title:"From signal to strategic asset.",tagline:"Stan qualifies everything autonomously. You answer YES or NO on the best — once a week if needed. Each decision makes the system more precise. YES rate and MATCH rate measure the convergence — every Monday.",yourTime:"~2 min / top pick · ~15 min / week",deliverable:"Daily 4 PM brief + memo HTML on analysis.proplace.co/<slug> + Deal Flow Dashboard."},{id:"04",label:"Deal Intelligence",cadence:"On demand",title:"Deal Intelligence Dashboard",tagline:"All your deals. Any output. For any stakeholder.",yourTime:"On demand — natural language",deliverable:"proplace.co/chat/?fund=<slug> — 6 packaged actions + free-text queries, shareable outputs."},{id:"05",label:"Weekly Evolution",cadence:"Every Monday",title:"Stan gets smarter. Without you doing anything.",tagline:"52× thesis updates/year. 6 months until your deal flow is structurally irreplicable.",yourTime:"0 — reads your decisions automatically",deliverable:"Monday email — decisions summary, thesis mutations, intelligence report, portfolio health."}],k5=[{code:"vc-seed",name:"VC Pre-Seed / Seed",desc:"ARR trajectory, team-thesis fit, pre-revenue OK."},{code:"vc-growth",name:"VC Venture / Growth",desc:"ARR measurable, NRR >130%, burn <1.5×."},{code:"ma-strategic",name:"M&A Strategic",desc:"Dynamic synergies (revenue, cost, structural, defensive — 8+ types) extracted from the qualitative memo. Y1-Y5 cascade discounted at WACC."},{code:"ma-lbo",name:"M&A LBO",desc:"Leverage effect. IRR 20–30%, MOIC 2.5–4×."}],A5=[{emoji:"🌐",name:"SSL / CRT",detail:"Certificate Transparency logs — catches domains before any public presence."}
3201,{emoji:"⚖️",name:"Pappers FR",detail:"French legal registry — new SARL/SAS filings, NAF codes, founder identity."},{emoji:"💻",name:"GitHub",detail:"New repos + contributor graphs — tech traction months before Series A."},{emoji:"🟠",name:"Hacker News",detail:"Show HN, Ask HN, Who-is-hiring — signals weighted by upvotes + thesis keywords."},{emoji:"💼",name:"LinkedIn Posts",detail:"Founder and exec posts matching thesis semantic patterns."},{emoji:"🎯",name:"LinkedIn Jobs",detail:"Hiring signals — weekly calendar of role + city pairs aligned with each angle."},{emoji:"💰",name:"Fundraising",detail:"Announced rounds across trackers — filtered by stage, geography, sector."},{emoji:"📰",name:"RSS",detail:"Sector-specific feeds — thesis-calibrated keyword gate."},{emoji:"🔔",name:"Google Alerts",detail:"Programmatic Google News RSS from boolean queries — runs every query daily, 24h window."},{emoji:"🔍",name:"Google News",detail:"Real-time news monitoring on thesis keywords and competitors."},{emoji:"🏦",name:"VC Portfolios",detail:"Known VC portfolio companies — backfill and lookalike seeds, all 68 sources scanned daily."},{emoji:"🏢",name:"Crunchbase Search",detail:"Daily city + industry + employee-band signature aligned with each angle."},{emoji:"🧠",name:"Exa Semantic",detail:"Neural search — predicts companies semantically matching your thesis."},{emoji:"🔗",name:"Exa Lookalike",detail:"Seeded by your competitor anchors — finds structurally similar targets."},{emoji:"✅",name:"Exa Websets",detail:"Verification-first sourcing — Exa verifies each candidate against your thesis criteria server-side. MATCH rate 60–80% vs 5–15% on other engines."},{emoji:"📋",name:"Manual Paste",detail:"On-demand — paste any company URL or name, get an instant MATCH/NO MATCH verdict using the same gate as the daily engines. Cached so duplicates return instantly."},{emoji:"🔁",name:"Find Similar to Qualified",detail:"On-demand — pick any CALL/CONSIDER/MONITOR/MATCH company in your portfolio, get 5 fresh similar candidates evaluated through the same gate. Toggle to exclude already-known domains."}],S5=[{label:"Angle",detail:"Which thesis angle is triggered and how strongly."},{label:"Market",detail:"Size, timing, consolidation dynamics, regulatory tailwinds."},{label:"Timing",detail:"Execution window — before competitors or regulatory pressure closes it."},{label:"Company",detail:"Moat strength, data advantage, integration complexity."},{label:"Founder",detail:"Domain fit, execution track record, enterprise exposure."},{label:"Thesis fit",detail:"Strategic alignment with your active mandate."}],E5=[{icon:"🔍",name:"Analysis & Qualification",kind:"required",tasks:[{task:"AI memo generated automatically",required:!0},{task:"Validate or override AI verdict",required:!0},{task:"Market sizing verified with recent sources",required:!1}]},{icon:"✉️",name:"Founder Outreach",kind:"required",tasks:[{task:"Personalised outreach email sent",required:!0},{task:"30-min meeting scheduled",required:!0}]},{icon:"📞",name:"Discovery & Qualification",kind:"required",tasks:[{task:"Call prep completed",required:!0},{task:"ARR verified (bank statements)",required:!0},{task:"3 founder reference calls",required:!1}]},{icon:"📝",name:"Term Sheet & Exclusivity",kind:"required",tasks:[{task:"LOI generated and reviewed by lawyer",required:!0},{task:"Financial model validated (IRR · MOIC)",required:!0}]},{icon:"🏛",name:"Investment Committee",kind:"required",tasks:[{task:"Board brief prepared 48h in advance",required:!0},{task:"5-page IC slides generated",required:!0}]},{icon:"🔬",name:"Due Diligence",kind:"required",tasks:[{task:"Legal, financial & tech DD mandated",required:!0},{task:"Cap table verified (shareholders + BSPCE)",required:!0}]},{icon:"📈",name:"Portfolio Management",kind:"ongoing",tasks:[{task:"100-day plan shared post-closing",required:!0},{task:"Fair value calculated and documented",required:!1},{task:"Quarterly LP update sent",required:!1}]}],N5=[{icon:"🗺",name:"Parcours",desc:"7-phase roadmap. Check off required and optional tasks per phase. Progress persists to Airtable."},{icon:"💬",name:"Chat",desc:"Select any text in the memo to pre-fill a question. Stan can edit the memo via JSON — edits commit back to GitHub."},{icon:"⚡",name:"Skills",desc:"20+ packaged outputs. Click to run — result saved to Outputs tab and to Airtable."},{icon:"📁",name:"Outputs",desc:"All saved skill results, shareable via permanent tokens. Restorable to the memo at any time."},{icon:"🕒",name:"History",desc:"Memo snapshots + full edit history. One-click restore to any previous version."}],C5=[{emoji:"📞",title:"Call prep",example:'"Prepare distinct briefs for my meetings with Duna, Payhawk…"'},{emoji:"📊",title:"Board synthesis",example:'"A 1-page comparative board note on Duna, Payhawk, Unleash…"'},{emoji:"✉️",title:"Outreach email",example:'"Draft distinct outreach emails for the CEOs of Duna, Payhawk…"'},{emoji:"⚠️",title:"Risk analysis",example:'"Analyse and compare risks on Duna, ElectricTwin, Ivo…"'},{emoji:"⚖️",title:"Deal comparison",example:'"Compare Duna, Payhawk, Unleash, ElectricTwin on EBITDA, team…"'},{emoji:"📈",title:"Pipeline report",example:`"Generate a pipeline report for my LP on this week's targets…"`}],_5=[{emoji:"⚖️",title:"Angle weights shift",desc:"Angles with strong CALL signals gain weight. Weak angles lose priority."},{emoji:"🚫",title:"Hard filters tighten",desc:"Repeated PASS patterns become encoded rejection rules."},{emoji:"🔍",title:"Sourcing queries update",desc:"Exa queries and sector keywords evolve toward your best MATCHes."},{emoji:"🎯",title:"Benchmarks evolve",desc:"Your CALL decisions become new lookalike seeds for E
3201xa Similar."}],T5=[{emoji:"⚡",rhythm:"Per deal · On demand",title:"Ad hoc analysis email",desc:"Sent after each one-click analysis: SWOT, GP verdict, key competitors, link to the full memo. YES or NO directly from the email."},{emoji:"📬",rhythm:"Daily · 4 PM",title:"Daily deal flow brief",desc:"Stan's daily report — sourced, filtered, tracked. Most days: no input required. When Stan identifies a top pick: YES · NO button directly in the email."},{emoji:"📅",rhythm:"Monday · 4 PM",title:"Monday · 4 PM · Weekly command center",desc:"Before 4 PM: your Corporate Developer calls you — only if top picks are still open. One question per unanswered deal. YES or NO. By the time this email arrives, the loop is closed. CLOSE — every top pick from the past 7 days: YES → outreach status + thesis impact note · NO → CEO_VETO logged, angle mutation confirmed, thesis updated. OPEN — new top picks from this morning: YES · NO + note field if you have context. THESIS UPDATE: YES rate this week + trend vs last week · MATCH rate this week · Fund Thesis vX.X · N mutations applied · Per-angle performance table · What changed and why. Stan's autonomous work this week — one number, no action required."}],q5=[{key:"redflag",title:"Red Flag Audit",task:"t3",category:"Analysis",summary:"Systematic risk audit per memo block: criticality, explanation, mitigant, global score 1-10."},{key:"market",title:"Market Sizing",task:"t4",category:"Analysis",summary:"Verified TAM/SAM/SOM with sources, year, and reality-check vs deck claims."},{key:"competitive",title:"Analyse Concurrentielle",task:"t5",category:"Analysis",summary:"8–10 real competitors with positioning, funding, strengths/weaknesses, magic quadrant."},{key:"techaudit",title:"Audit Technique",task:null,category:"Analysis",summary:"Stack detection, tech debt, scalability assessment, 10 CTO DD questions."},{key:"email",title:"Email d'approche",task:"t6",category:"Outreach",summary:"Natural-tone CEO outreach: 5 sentences max, no acquisition mention, partnership angle, includes subject."},{key:"callprep",title:"Call Prep",task:"t11",category:"Outreach",summary:"Brief: 3 key questions, 2 traps to avoid, precise call goal, no-go negotiation points."},{key:"loi",title:"Draft LOI",task:"t17",category:"Term Sheet",summary:"Non-binding Letter of Intent: parties, valuation, structure (% + earn-out), CPs, exclusivity, NDA."},{key:"exec",title:"Executive Summary",task:"t22",category:"IC",summary:"1-page IC summary: hook quote, 4 KPIs grid (ARR/EV/Multiple/IRR), thesis bullets, risks, recommendation."},{key:"slides",title:"Slides Comité IC",task:null,category:"IC",summary:"5-slide deal brief: Cover · Market · Thesis fit · Financials · Recommendation."},{key:"techdd",title:"Questions DD Technique",task:null,category:"DD",summary:"10 CTO questions across 4 categories: Architecture, Tech Debt, Security, Team & Process."},{key:"refcheck",title:"Questions de Référence",task:null,category:"DD",summary:"10 founder reference questions across 5 categories: Execution, Leadership, Blind spots, Projections, Key questions."},{key:"custref",title:"Customer Reference Calls",task:null,category:"DD",summary:"5 customer reference questions: daily usage, differentiation, dependency, missing features, NPS."},{key:"lp",title:"Version LP Board-Ready",task:null,category:"Reporting",summary:"Board/LP version of memo in English, sensitive valuation data filtered, formal tone, PDF-ready."},{key:"fairvalue",title:"Fair Value",task:null,category:"Portfolio",summary:"Thesis-multiple based fair value: EV estimate, ARR multiple, safety margin, recommendation (revalue/hold/depreciate)."},{key:"kpi",title:"Dashboard KPIs",task:null,category:"Portfolio",summary:"Portfolio Management KPI grid: ARR, NRR, Runway, Churn, Growth — using memo data."},{key:"board",title:"Notes Board Meeting",task:null,category:"Portfolio",summary:"Structured board notes: Decisions · A
3201ctions · Next steps · Key metrics · Attention points."},{key:"100days",title:"Plan 100 Jours",task:"t35",category:"Portfolio",summary:"Post-closing 100-day plan in 3 phases: D+0-30 integration, D+30-60 governance, D+60-100 synergies."},{key:"lp-update",title:"Update LP Trimestriel",task:null,category:"Portfolio",summary:"Quarterly LP update in English: KPIs (ARR/NRR/Runway), highlights, outlook, formal tone."}],F5={skills:q5},tm=F5.skills,O5={"01":{label:"Stratégie",cadence:"Jour 7",title:"Stan apprend votre façon de penser. Puis l’exécute à grande échelle.",tagline:"1 heure. Votre ADN d’acquisition — encodé, déployé, en évolution.",yourTime:"1 heure, une seule fois",deliverable:"JSON Fund Thesis v5.3 — stocké dans Airtable, édité par le CEO sur analysis.proplace.co/thesis/?fund=<slug> (validé par Pydantic avant chaque PATCH)."},"02":{label:"Sourcing",cadence:"Quotidien",title:"Stan scanne. Stan filtre. Seul l’essentiel vous parvient.",tagline:"6 à 18 mois avant le marché. Chaque jour. Zéro effort de votre part.",yourTime:"0 — entièrement automatisé",deliverable:"Dashboard de sourcing — matchs filtrables par angle, secteur, géographie, type de signal."},"03":{label:"Qualification",cadence:"Quotidien",title:"Du signal à l’actif stratégique.",tagline:"Stan qualifie tout de façon autonome. Vous répondez OUI ou NON sur les meilleurs — une fois par semaine si besoin. Chaque décision rend le système plus précis. Le taux de OUI et le taux de MATCH mesurent la convergence — chaque lundi.",yourTime:"~2 min / top pick · ~15 min / semaine",deliverable:"Brief quotidien 16h + mémo HTML sur analysis.proplace.co/<slug> + Deal Flow Dashboard."},"04":{label:"Deal Intelligence",cadence:"À la demande",title:"Deal Intelligence Dashboard",tagline:"Tous vos deals. N’importe quel livrable. Pour n’importe quel interlocuteur.",yourTime:"À la demande — langage naturel",deliverable:"proplace.co/chat/?fund=<slug> — 6 actions packagées + requêtes en texte libre, livrables partageables."},"05":{label:"Évolution hebdo",cadence:"Chaque lundi",title:"Stan devient plus pertinent. Sans rien faire de votre part.",tagline:"52× mises à jour de thèse / an. 6 mois avant que votre deal flow soit structurellement inimitable.",yourTime:"0 — lit vos décisions automatiquement",deliverable:"Email du lundi — résumé des décisions, mutations de thèse, rapport d’intelligence, santé du portefeuille."}},u1=t=>O5[t.id]??t,M5={"vc-seed":{name:"VC Pre-Seed / Seed",desc:"Trajectoire d’ARR, adéquation équipe-thèse, pré-revenu accepté."},"vc-growth":{name:"VC Venture / Growth",desc:"ARR mesurable, NRR > 130 %, burn < 1,5×."},"ma-strategic":{name:"M&A Stratégique",desc:"Synergies dynamiques (revenu, coût, structurelles, défensives — 8+ types) extraites du mémo qualitatif. Cascade A1-A5 actualisée au WACC."},"ma-lbo":{name:"M&A LBO",desc:"Effet de levier. TRI 20–30 %, MOIC 2,5–4×."}},R5=t=>M5[t.code]??t,P5={"SSL / CRT":"Logs de Certificate Transparency — repère les domaines avant toute présence publique.","Pappers FR":"Registre légal français — nouveaux dépôts SARL/SAS, codes NAF, identité des fondateurs.",GitHub:"Nouveaux dépôts + graphes de contributeurs — traction tech des mois avant une Série A.","Hacker News":"Show HN, Ask HN, Who-is-hiring — signaux pondérés par upvotes + mots-clés de thè
3201se.","LinkedIn Posts":"Posts de fondateurs et de dirigeants correspondant aux patterns sémantiques de la thèse.","LinkedIn Jobs":"Signaux de recrutement — calendrier hebdo de paires poste + ville alignées sur chaque angle.",Fundraising:"Levées annoncées sur les trackers — filtrées par stade, géographie, secteur.",RSS:"Flux sectoriels — gate de mots-clés calibré sur la thèse.","Google Alerts":"RSS Google News programmatique à partir de requêtes booléennes — chaque requête tourne chaque jour, fenêtre 24h.","Google News":"Veille presse en temps réel sur les mots-clés de thèse et les concurrents.","VC Portfolios":"Sociétés en portefeuille de VC connus — backfill et graines de lookalike, les 68 sources scannées chaque jour.","Crunchbase Search":"Signature quotidienne ville + industrie + tranche d’effectif alignée sur chaque angle.","Exa Semantic":"Recherche neuronale — prédit les sociétés correspondant sémantiquement à votre thèse.","Exa Lookalike":"Amorcé par vos anchors concurrents — trouve des cibles structurellement similaires.","Exa Websets":"Sourcing vérification-first — Exa vérifie chaque candidat contre vos critères de thèse côté serveur. Taux de MATCH 60–80 % vs 5–15 % sur les autres moteurs.","Manual Paste":"À la demande — collez une URL ou un nom de société, obtenez un verdict MATCH/NO MATCH instantané via le même gate que les moteurs quotidiens. Mis en cache pour que les doublons reviennent instantanément.","Find Similar to Qualified":"À la demande — choisissez une société CALL/CONSIDER/MONITOR/MATCH de votre portefeuille, obtenez 5 candidats similaires frais évalués par le même gate. Bascule pour exclure les domaines déjà connus."},I5={Fundraising:"Levées de fonds","VC Portfolios":"Portefeuilles VC","Find Similar to Qualified":"Similaires aux qualifiés"},D5=t=>({name:I5[t.name]??t.name,detail:P5[t.name]??t.detail}),z5={Angle:{label:"Angle",detail:"Quel angle de thèse est déclenché et avec quelle force."},Market:{label:"Marché",detail:"Taille, timing, dynamiques de consolidation, vents porteurs réglementaires."},Timing:{label:"Timing",detail:"Fenêtre d’exécution — avant que les concurrents ou la pression réglementaire ne la referment."},Company:{label:"Société",detail:"Force du moat, avantage de données, complexité d’intégration."},Founder:{label:"Fondateur",detail:"Adéquation au domaine, track record d’exécution, exposition entreprise."},"Thesis fit":{label:"Adéquation à la thèse",detail:"Alignement stratégique avec votre mandat actif."}},B5=t=>z5[t.label]??t,U5={Parcours:{name:"Parcours",desc:"Feuille de route en 7 phases. Cochez les tâches obligatoires et optionnelles par phase. La progression est persistée dans Airtable."},Chat:{name:"Chat",desc:"Sélectionnez n’importe quel texte du mémo pour pré-remplir une question. Stan peut éditer le mémo via JSON — les éditions sont commitées dans GitHub."},Skills:{name:"Skills",desc:"20+ livrables packagés. Cliquez pour lancer — le résultat est sauvegardé dans l’onglet Livrables et dans Airtable."},Outputs:{name:"Livrables",desc:"Tous les résultats de skills sauvegardés, partageables via tokens permanents. Restaurables dans le mémo à tout moment."},History:{name:"Historique",desc:"Snapshots du mémo + historique d’édition complet. Restauration en un clic vers n’importe quelle version précédente."}},V5=t=>U5[t.name]??t,H5={"Analysis & Qualification":{name:"Analyse & Qualification",tasks:["Mémo IA généré automatiquement","Valider ou outrepasser le verdict de l’IA","Taille de marché vérifiée avec des sources récentes"]},"Founder Outreach":{name:"Approche du fondateur",tasks:["Email d’approche personnalisé envoyé","Réunion de 30 min planifiée"]},"Discovery & Qualification":{name:"Discovery & Qualification",tasks:["Préparation d’appel terminée","ARR vérifié (relevés bancaires)","3 appels de référence fondateur"]},"Term Sheet & Exclusivity":{name:"Term Sheet & Exclusivité",tasks:["LOI générée et revue par un avocat","Modèle financier validé (TRI · MOIC)"]},"Investment Committee":{name:"Comité d’investissement",tasks:["Note board préparée 48h à l’avance","Slides IC de 5 pages générées"]}
3201,"Due Diligence":{name:"Due Diligence",tasks:["DD juridique, financière & tech mandatée","Cap table vérifiée (actionnaires + BSPCE)"]},"Portfolio Management":{name:"Gestion de portefeuille",tasks:["Plan 100 jours partagé post-closing","Fair value calculée et documentée","Update LP trimestriel envoyé"]}},Y5=t=>H5[t.name]??{name:t.name,tasks:t.tasks.map(n=>n.task)},G5={"Call prep":{title:"Préparation d’appel",example:"« Prépare des briefs distincts pour mes rendez-vous avec Duna, Payhawk… »"},"Board synthesis":{title:"Synthèse board",example:"« Une note board comparative d’1 page sur Duna, Payhawk, Unleash… »"},"Outreach email":{title:"Email d’approche",example:"« Rédige des emails d’approche distincts pour les CEO de Duna, Payhawk… »"},"Risk analysis":{title:"Analyse de risque",example:"« Analyse et compare les risques sur Duna, ElectricTwin, Ivo… »"},"Deal comparison":{title:"Comparaison de deals",example:"« Compare Duna, Payhawk, Unleash, ElectricTwin sur l’EBITDA, l’équipe… »"},"Pipeline report":{title:"Rapport pipeline",example:"« Génère un rapport pipeline pour mon LP sur les cibles de la semaine… »"}},W5=t=>G5[t.title]??t,Q5={"Angle weights shift":{title:"Les poids des angles bougent",desc:"Les angles à forts signaux CALL gagnent du poids. Les angles faibles perdent en priorité."},"Hard filters tighten":{title:"Les filtres durs se resserrent",desc:"Les patterns de PASS répétés deviennent des règles de rejet encodées."},"Sourcing queries update":{title:"Les requêtes de sourcing évoluent",desc:"Les requêtes Exa et les mots-clés sectoriels évoluent vers vos meilleurs MATCHs."},"Benchmarks evolve":{title:"Les benchmarks évoluent",desc:"Vos décisions CALL deviennent de nouvelles graines de lookalike pour Exa Similar."}},Z5=t=>Q5[t.title]??t,K5={"Ad hoc analysis email":{rhythm:"Par deal · À la demande",title:"Email d’analyse ponctuel",desc:"Envoyé après chaque analyse en un clic : SWOT, verdict GP, concurrents clés, lien vers le mémo complet. OUI ou NON directement depuis l’email."},"Daily deal flow brief":{rhythm:"Quotidien · 16h",title:"Brief de deal flow quotidien",desc:"Le rapport quotidien de Stan — sourcé, filtré, suivi. La plupart des jours : aucune action requise. Quand Stan identifie un top pick : bouton OUI · NON directement dans l’email."},"Monday · 4 PM · Weekly command center":{rhythm:"Lundi · 16h",title:"Lundi · 16h · Centre de commande hebdo",desc:"Avant 16h : votre Corporate Developer vous appelle — seulement si des top picks sont encore ouverts. Une question par deal sans réponse. OUI ou NON. Quand cet email arrive, la boucle est bouclée. CLÔTURE — chaque top pick des 7 derniers jours : OUI → statut d’approche + note d’impact sur la thèse · NON → CEO_VETO consigné, mutation d’angle confirmée, thèse mise à jour. OUVERT — nouveaux top picks de ce matin : OUI · NON + champ de note si vous avez du contexte. MISE À JOUR DE THÈSE : taux de OUI cette semaine + tendance vs la semaine dernière · taux de MATCH cette semaine · Fund Thesis vX.X · N mutations appliquées · tableau de performance par angle · ce qui a changé et pourquoi. Le travail autonome de Stan cette semaine — un chiffre, aucune action requise."}},J5=t=>K5[t.title]??t,$5={redflag:{title:"Audit Red Flags",category:"Analyse",summary:"Audit de risque systématique par bloc du mémo : criticité, explication, mitigant, score global 1-10."},market:{title:"Taille de marché",category:"Analyse",summary:"TAM/SAM/SOM vérifiés avec sources, année, et reality-check vs les claims du deck."},competitive:{title:"Analyse Concurrentielle",category:"Analyse",summary:"8–10 concurrents réels avec positionnement, financement, forces/faiblesses, magic quadrant."},techaudit:{title:"Audit Technique",category:"Analyse",summary:"Détection de stack, dette technique, évaluation de scalabilité, 10 questions DD pour CTO."},email:{title:"Email d’approche",category:"Approche",summary:"Approche CEO au ton naturel : 5 phrases max, pas de mention d’acquisition, angle partenariat, objet inclus."},callprep:{title:"Préparation d’appel",category:"Approche",summary:"Brief : 3 questions clés, 2 pièges à éviter, objectif d’appel précis, points de négo no-go."},loi:{title:"Rédaction LOI",category:"Term Sheet",summary:"Lettre d’intention non contraignante : parties, valorisation, structure (% + earn-out), CP, exclusivité, NDA."},exec:{title:"Executive Summary",category:"Comité d’investissement",summary:"Résumé IC d’1 page : citation accroche, grille de 4 KPIs (ARR/VE/Multiple/TRI), points de thè
3201se, risques, recommandation."},slides:{title:"Slides Comité IC",category:"Comité d’investissement",summary:"Brief deal en 5 slides : Couverture · Marché · Adéquation à la thèse · Financier · Recommandation."},techdd:{title:"Questions DD Technique",category:"Due Diligence",summary:"10 questions CTO sur 4 catégories : Architecture, Dette technique, Sécurité, Équipe & Process."},refcheck:{title:"Questions de Référence",category:"Due Diligence",summary:"10 questions de référence fondateur sur 5 catégories : Exécution, Leadership, Angles morts, Projections, Questions clés."},custref:{title:"Appels de Référence Clients",category:"Due Diligence",summary:"5 questions de référence client : usage quotidien, différenciation, dépendance, fonctionnalités manquantes, NPS."},lp:{title:"Version LP Board-Ready",category:"Reporting",summary:"Version board/LP du mémo en anglais, données de valorisation sensibles filtrées, ton formel, prête pour PDF."},fairvalue:{title:"Fair Value",category:"Portefeuille",summary:"Fair value basée sur le multiple de thèse : estimation de VE, multiple d’ARR, marge de sécurité, recommandation (revaloriser/garder/déprécier)."},kpi:{title:"Dashboard KPIs",category:"Portefeuille",summary:"Grille de KPIs de gestion de portefeuille : ARR, NRR, Runway, Churn, Croissance — à partir des données du mémo."},board:{title:"Notes Board Meeting",category:"Portefeuille",summary:"Notes board structurées : Décisions · A
3201ctions · Prochaines étapes · Métriques clés · Points d’attention."},"100days":{title:"Plan 100 Jours",category:"Portefeuille",summary:"Plan 100 jours post-closing en 3 phases : J+0-30 intégration, J+30-60 gouvernance, J+60-100 synergies."},"lp-update":{title:"Update LP Trimestriel",category:"Portefeuille",summary:"Update LP trimestriel en anglais : KPIs (ARR/NRR/Runway), faits marquants, perspectives, ton formel."}},X5=t=>$5[t.key]??{title:t.title,category:t.category,summary:t.summary};function h1(t){const n=t==="fr";return[{eyebrow:n?"Référence":"Reference",groups:[{id:"glossary",label:n?"Glossaire — 16 termes clés":"Glossary — 16 key terms",children:[{id:"g-angle",label:"Angle · Entry Filter · GP Synthétique"},{id:"g-matrix",label:n?"Strategic Fit Matrix · Verdicts · OUI/NON":"Strategic Fit Matrix · Verdicts · YES/NO"},{id:"g-ncl",label:n?"NCL · Moteur d’évolution hebdo · Hurdle":"NCL · Weekly Evolution Engine · Hurdle"},{id:"g-flags",label:"Flags · Anchors · Exa · Pappers FR"},{id:"g-override",label:n?"OVERRIDE · Profil sectoriel · Rotations":"OVERRIDE · Sector Profile · Rotations"}]}]},{eyebrow:"Introduction",groups:[{id:"intro",label:n?"Vue d’ensemble":"Overview",children:[{id:"intro-overview",label:n?"Ce qu’est Proplace":"What Proplace is"},{id:"intro-loop",label:n?"La boucle fermée en cinq étapes":"The five-step closed loop"},{id:"intro-truth",label:n?"Où vit la vérité":"Where the truth lives"}]}]},{eyebrow:n?"01 — Stratégie · Jour 7":"01 — Strategy · Day 7",groups:[{id:"step-01",label:n?"Stan apprend votre façon de penser. Puis l’exécute à grande échelle.":"Stan learns how you think. Then executes it at scale.",children:[{id:"s01-mode",label:n?"1.1 Vous choisissez votre mode — VC / M&A / LBO":"1.1 You choose your mode — VC / M&A / LBO"},{id:"s01-angles",label:n?"1.2 Vous définissez 1 à 6 angles de sourcing":"1.2 You define 1 to 6 sourcing angles"},{id:"s01-json",label:n?"1.3 Le JSON passe en production":"1.3 The JSON goes live"}]}]},{eyebrow:n?"02 — Sourcing · Quotidien":"02 — Sourcing · Daily",groups:[{id:"step-02",label:n?"Stan scanne. Stan filtre. Seul l’essentiel vous parvient.":"Stan scans. Stan filters. Only what matters reaches you.",children:[{id:"s02-engines",label:n?"2.1 Stan lit ce que personne d’autre ne voit — 17 moteurs (15 quotidiens + 2 à la demande)":"2.1 Stan reads what nobody else sees — 17 engines (15 daily + 2 on-demand)"},{id:"s02-filter",label:n?"2.2 Stan filtre sans pitié — votre thèse, vos lignes rouges":"2.2 Stan filters ruthlessly — your thesis, your hard stops"},{id:"s02-dashboard",label:n?"2.3 Les matchs arrivent dans votre dashboard":"2.3 Matches land in your dashboard"}]}]},{eyebrow:n?"03 — Qualification · Quotidien":"03 — Qualification · Daily",groups:[{id:"s03-memo",label:n?"Stan rédige le mémo":"Stan writes the memo",children:[{id:"s03-directives",label:n?"Pipeline du mémo (D01→D09)":"Memo pipeline (D01→D09)"},{id:"s03-financial",label:n?"Blocs financiers":"Financial blocks"},{id:"s03-decision-engine",label:n?"Comment Stan décide":"How Stan makes decisions"},{id:"s03-decision-jobs",label:n?"Jobs 1–3 (gates & calibrage)":"Jobs 1–3 (gates & calibration)"},{id:"s03-decision-modules",label:n?"Modules 0–5 (multi-angles, spécialistes)":"Modules 0–5 (multi-angle, specialists)"},{id:"s03-verdict-engine",label:"Verdict & Neural Command Line"}]},{id:"s03-override",label:n?"Votre interface — OUI ou NON sur les top picks":"Your interface — YES or NO on top picks",children:[{id:"s03-cd-call",label:n?"Décisions ouvertes — échéances intégrées, aucune décision perdue":"Open decisions — built-in deadlines, no decision ever lost"},{id:"s03-ceo-veto",label:n?"CEO_VETO — ce que le NON fait à la thèse":"CEO_VETO — what NO does to the thesis"},{id:"s03-convergence",label:n?"Le mécanisme de convergence — taux de OUI + taux de MATCH":"The convergence mechanism — YES rate + MATCH rate"},{id:"s03-monday",label:n?"L’email hebdo du lundi — centre de commande":"The Monday 
3201weekly email — command center"}]},{id:"s03-stan-intro",label:n?"Le deal est suivi jusqu’à la sortie":"The deal is tracked to exit",children:[{id:"s03-stan-tabs",label:n?"5 onglets — vue d’ensemble":"5 tabs — overview"},{id:"s03-tab-parcours",label:n?"Parcours — cycle de vie en 7 phases":"Parcours — 7-phase lifecycle"},{id:"s03-tab-chat",label:"Chat"},{id:"s03-tab-skills",label:n?"Skills (20+ livrables)":"Skills (20+ outputs)"},{id:"s03-tab-outputs",label:n?"Livrables":"Outputs"},{id:"s03-tab-history",label:n?"Historique":"History"},{id:"s03-stan-backend",label:n?"Backend & persistance":"Backend & persistence"}]}]},{eyebrow:n?"04 — Deal Intelligence · À la demande":"04 — Deal Intelligence · On demand",groups:[{id:"step-04",label:n?"Tous vos deals. N’importe quel livrable. Pour n’importe quel interlocuteur.":"All your deals. Any output. For any stakeholder.",children:[{id:"s04-app",label:n?"4.1 Le dashboard Deal Intelligence":"4.1 The Deal Intelligence Dashboard"},{id:"s04-actions",label:n?"4.2 6 actions packagées":"4.2 6 packaged actions"},{id:"s04-freetext",label:n?"4.3 Requêtes en texte libre":"4.3 Free-text queries"},{id:"s04-backend",label:n?"4.4 Backend & déploiement":"4.4 Backend & deployment"}]}]},{eyebrow:n?"05 — Évolution hebdo · Chaque lundi":"05 — Weekly Evolution · Every Monday",groups:[{id:"step-05",label:n?"Stan devient plus pertinent. Sans rien faire de votre part.":"Stan gets smarter. Without you doing anything.",children:[{id:"s05-decisions",label:n?"5.1 Stan lit chaque décision que vous avez prise":"5.1 Stan reads every decision you made"},{id:"s05-mutations",label:n?"5.2 Le JSON de la Fund Thesis mute":"5.2 The Fund Thesis JSON mutates"},{id:"s05-pipeline",label:n?"5.2.a Pipeline du moteur hebdo (7 étapes)":"5.2.a Weekly engine pipeline (7 steps)"},{id:"s05-ncl-structure",label:n?"5.2.b Structure de la NCL":"5.2.b NCL structure"},{id:"s05-rules",label:n?"5.2.c Règles de mutation par signal":"5.2.c Mutation rules per signal"},{id:"s05-priority",label:n?"5.2.d Règles de priorité & de seuil":"5.2.d Priority & threshold rules"},{id:"s05-frozen",label:n?"5.2.e Champs figés vs modifiables":"5.2.e Frozen vs updatable fields"},{id:"s05-rebalance",label:n?"5.2.f Cycle de vie & décroissance des flags":"5.2.f Flag lifecycle & decay"},{id:"s05-validation",label:n?"5.2.g Gate de validation":"5.2.g Validation gate"},{id:"s05-write-paths",label:n?"5.2.h Les 3 voies d’écriture":"5.2.h The 3 write paths"},{id:"s05-loop",label:n?"5.3 Le deal flow du lundi est déjà plus précis":"5.3 Monday's deal flow is already sharper"}]}]},{eyebrow:n?"Couche email":"Email layer",groups:[{id:"email",label:n?"Trois rythmes":"Three rhythms",children:[{id:"email-rhythms",label:n?"Ponctuel · Quotidien · Hebdo":"Ad hoc · Daily · Weekly"}]}]}]}const ej=h1("en"),nm=ej.flatMap(t=>t.groups.flatMap(n=>[n.id,...n.children.map(r=>r.id)])),tj={strategy:"step-01",sourcing:"step-02",qualification:"step-03",evolution:"step-05",convergence:"s03-convergence",override:"s03-override",mutations:"s05-rules",validation:"s05-validation","ncl-table":"g-ncl","email-layer":"email-rhythms","sourcing-config":"step-02","sourcing-filtre":"s02-filter","sourcing-moteurs":"s02-engines","semantic-filters":"s02-filter","scoring-weights":"s02-filter"};function nj(){const{lang:t,localizePath:n}=ae(),r=t==="fr",i=h1(t),[s,a]=m.useState(nm[0]),[o,c]=m.useState(!1);return ht({en:{title:"Proplace Documentation — The 5-step deal-flow pipeline",description:"Full Proplace documentation: every sourcing engine, qualification module, financial model, mutation rule and validation gate of the 5-step deal-flow pipeline."},fr:{title:"Documentation Proplace — Le pipeline deal flow en 5 étapes",description:"Documentation complète de Proplace : chaque moteur de sourcing, module de qualification, modèle financier, règle de mutation et gate de validation du pipeline en 5 étapes."}}),m.useEffect(()=>{const l=()=>{if(!window.location.hash)return;const d=window.location.hash.slice(1),p=tj[d]||d,u=document.getElementById(p);if(u){const g=u.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:g,behavior:"smooth"})}};return setTimeout(l,50),setTimeout(l,300),window.addEventListener("hashchange",l),()=>window.removeEventListener("hashchange",l)},[]),m.useEffect(()=>{const l=()=>{const d=nm.map(p=>{const u=document.getElementById(p);return u?{id:p,top:Math.abs(u.getBoundingClientRect().top-80)}:{id:p,top:Number.POSITIVE_INFINITY}});d.sort((p,u)=>p.top-u.top),d[0]&&a(d[0].id)};return window.addEventListener("scroll",l,{passive:!0}
3201),l(),()=>window.removeEventListener("scroll",l)},[]),e.jsxs("div",{className:"doc-page",children:[e.jsx("style",{children:rj}),e.jsxs("div",{className:"doc-topbar",children:[e.jsx("a",{href:n("/"),className:"pp-brand","aria-label":r?"Retour à l’accueil":"Back to home",children:e.jsx("img",{src:"/logo.png",alt:"Proplace",className:"pp-brand-logo"})}),e.jsx("span",{className:"doc-topbar-sep",children:"/"}),e.jsx("span",{className:"doc-topbar-context",children:r?"Documentation · pipeline en 5 étapes · v5.4":"Documentation · 5-step pipeline · v5.4"}),e.jsx("a",{href:n("/setup"),className:"doc-topbar-cta",children:r?"Ouvrir l’assistant (démo) →":"Open the wizard (demo) →"})]}),e.jsxs("div",{className:"doc-root",children:[e.jsx("button",{className:"doc-mobile-toggle",onClick:()=>c(l=>!l),"aria-label":r?"Afficher/masquer la navigation":"Toggle navigation",children:o?r?"✕ Fermer":"✕ Close":"☰ Menu"}),e.jsx("aside",{className:`doc-sidebar${o?" open":""}`,children:e.jsx("nav",{className:"doc-nav",children:i.map(l=>e.jsxs("div",{className:"doc-nav-section",children:[e.jsx("div",{className:"doc-nav-eyebrow",children:l.eyebrow}),l.groups.map(d=>e.jsxs("div",{className:"doc-nav-group",children:[e.jsx("a",{href:`#${d.id}`,className:`doc-nav-group-label${s===d.id?" active":""}`,onClick:()=>c(!1),children:d.label}),d.children.map(p=>e.jsx("a",{href:`#${p.id}`,className:`doc-nav-item${s===p.id?" active":""}`,onClick:()=>c(!1),children:p.label},p.id))]},d.id))]},l.eyebrow))})}),e.jsxs("main",{className:"doc-content",children:[e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"intro-overview",className:"doc-anchor"}),e.jsx("div",{className:"eyebrow",children:"Introduction"}),e.jsx("h1",{className:"doc-h1",children:r?"Proplace, de bout en bout.":"Proplace, end to end."}),e.jsx("p",{className:"doc-lead",children:r?e.jsx(e.Fragment,{children:"Proplace transforme une heure de stratégie — l’heure que vous passez à encoder votre thèse d’investissement dans l’assistant — en un moteur de deal flow quotidien et automatisé qui s’affine chaque lundi à partir de vos décisions. Cette documentation va plus loin que la page d’accueil : chaque moteur, chaque règle de mutation, chaque contrôle de validation, détaillés pour qu’un lecteur n’ayant jamais utilisé le système puisse suivre ce qui arrive réellement à chaque deal."}):e.jsx(e.Fragment,{children:"Proplace turns one hour of strategy — the hour you spend encoding your investment thesis in the wizard — into a daily, automated deal-flow engine that sharpens itself every Monday from your decisions. This documentation goes deeper than the homepage: every engine, every mutation rule, every validation check, spelled out so a reader who has never used the system can follow what actually happens to each deal."})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le produit s’organise autour de ",e.jsx("strong",{children:"cinq étapes en boucle fermée"})," — Stratégie, Sourcing, Qualification, Deal Intelligence, Évolution. L’étape 1 a lieu une seule fois (vous écrivez la thèse). Les étapes 2 à 4 tournent chaque jour en pilote automatique et vous demandent, au plus, un OUI ou un NON en un clic sur les opportunités à plus forte conviction. L’étape 5 tourne chaque lundi et réécrit la thèse à partir de vos OUI et de vos NON. La boucle redémarre alors, un peu plus précise chaque semaine."]}):e.jsxs(e.Fragment,{children:["The product is organised around ",e.jsx("strong",{children:"five steps in a closed loop"})," — Strategy, Sourcing, Qualification, Deal Intelligence, Evolution. Step 1 happens once (you write the thesis). Steps 2 to 4 run every day on autopilot and hand you, at most, a one-click YES or NO to give on the highest-conviction picks. Step 5 runs every Monday and rewrites the thesis from what you said YES and NO to. The loop then starts again, a little sharper every week."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Lisez de haut en bas pour le modèle mental complet, ou sautez au chapitre qui correspond à votre question. Chaque terme technique employé ci-dessous est défini dans le ",e.jsx("a",{href:"#glossary",children:"Glossaire"})," ","en bas de cette doc."]}):e.jsxs(e.Fragment,{children:["Read top to bottom for the full mental model, or jump to the chapter that matches your question. Every technical term used below is defined in the ",e.jsx("a",{href:"#glossary",children:"Glossary"})," at the bottom of this doc."]})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Comment lire cette doc.":"How to read this doc."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Chaque chapitre reflète une étape de la page d’accueil. Les sous-sections ajoutent le détail technique qui ne tient pas sur la page marketing — formes de JSON, ID de directives, endpoints backend, couches de persistance, règles de mutation. Les zones marquées ",e.jsx("code",{children:"MAKE PROMPT ZONE"})," sont des copies mot pour mot des prompts LLM tournant en production ;
3201 elles sont longues à dessein, pour qu’une nouvelle recrue ou un auditeur puisse lire la logique exacte sans accès Make.com."]}):e.jsxs(e.Fragment,{children:["Each chapter mirrors a step from the homepage. Sub-sections add the technical detail that doesn't fit on the marketing page — JSON shapes, directive IDs, backend endpoints, persistence layers, mutation rules. Zones marked ",e.jsx("code",{children:"MAKE PROMPT ZONE"})," are verbatim mirrors of the LLM prompts running in production; they are long on purpose, so a new hire or an auditor can read the exact logic without a Make.com login."]})})]}),e.jsx("span",{id:"intro-loop",className:"doc-anchor"}),e.jsx("h2",{className:"doc-h2",children:r?"La boucle fermée en cinq étapes":"The five-step closed loop"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Étape":"Step"}),e.jsx("th",{children:"Cadence"}),e.jsx("th",{children:r?"Votre temps":"Your time"}),e.jsx("th",{children:r?"Livrable":"Deliverable"})]})}),e.jsx("tbody",{children:ni.map(l=>{const d=r?u1(l):l;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("strong",{children:[l.id," — ",d.label]})}),e.jsx("td",{children:d.cadence}),e.jsx("td",{children:d.yourTime}),e.jsx("td",{children:d.deliverable})]},l.id)})})]}),e.jsx("span",{id:"intro-truth",className:"doc-anchor"}),e.jsx("h2",{className:"doc-h2",children:r?"Où vit la vérité":"Where the truth lives"}),e.jsx("p",{className:"doc-text",children:r?"Proplace s’appuie sur quatre sources de vérité. Savoir laquelle consulter évite la confusion quand le comportement change.":"Proplace runs on four sources of truth. Knowing which one to read prevents confusion when behaviour changes."}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Système":"System"}),e.jsx("th",{children:r?"Ce dont il est garant":"What it owns"}),e.jsx("th",{children:r?"Comment l’inspecter":"How to inspect"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Site proplace.co":"proplace.co website"})}),e.jsx("td",{children:r?"Narratif public, cadrage en 5 étapes, modes, moteurs, verdicts":"Public narrative, 5-step framing, modes, engines, verdicts"}),e.jsx("td",{children:r?"Lire la page d’accueil et cette doc":"Read the homepage and this doc"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Fund Thesis Builder"})}),e.jsx("td",{children:r?"Éditer le JSON fund_thesis v5.4 avec validation Pydantic en direct — la source unique de vérité dans Airtable":"Edit the fund_thesis v5.4 JSON with live Pydantic validation — the single source of truth in Airtable"}),e.jsxs("td",{children:[r?"Ouvrir":"Open"," ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Deal Intelligence Dashboard"})}),e.jsx("td",{children:r?"UI du pipeline, 6 actions packagées, blocs de décision":"Pipeline UI, 6 packaged actions, decision blocks"}),e.jsxs("td",{children:[r?"Ouvrir":"Open"," ",e.jsx("code",{children:"proplace.co/chat/?fund=<slug>"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"App Stan":"Stan app"})}),e.jsx("td",{children:r?"Sidebar du mémo, 5 onglets, 20+ skills, persistance":"Memo sidebar, 5 tabs, 20+ skills, persistence"}),e.jsxs("td",{children:[r?"Ouvrir n’importe quel mémo sur":"Open any memo on"," ",e.jsx("code",{children:"analysis.proplace.co"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Scénarios Make":"Make scenarios"})}),e.jsx("td",{children:r?"Directives de qualification, rapports spécialistes, NCL d’évolution":"Qualification directives, specialist reports, evolution NCL"}),e.jsxs("td",{children:[r?"Connecté à Make.com — contenu reproduit dans cette doc, marqué":"Logged into Make.com — content mirrored in this doc, marked"," ",e.jsx("code",{children:"MAKE PROMPT ZONE"})]})]})]})]})]}),e.jsxs("div",{className:"callout success",style:{margin:"24px 0"},children:[e.jsx("strong",{children:r?"Prêt à écrire votre thèse ?":"Ready to write your thesis?"}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Les clients éditent leur thè
3201se sur ",e.jsx("a",{href:"https://analysis.proplace.co/thesis/",children:e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})})," — un assistant en 13 sections (Identité + MATCH de sourcing + OUI de qualification par angle + 8 sections de config globale). Chaque sauvegarde passe par le validateur Pydantic v5.4 avant le PATCH Airtable — impossible d’écrire un JSON cassé. L’URL personnelle est livrée à l’onboarding. La page publique ",e.jsx("a",{href:n("/setup"),children:e.jsx("code",{children:"proplace.co/setup"})})," reste disponible comme démo statique (sans sauvegarde) pour que les prospects explorent l’assistant avant de signer."]}):e.jsxs(e.Fragment,{children:["Clients edit their thesis on ",e.jsx("a",{href:"https://analysis.proplace.co/thesis/",children:e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})})," — a wizard in 13 sections (Identity + Sourcing MATCH + Qualification YES per angle + 8 global-config sections). Every save goes through the Pydantic v5.4 validator before the Airtable PATCH — impossible to write a broken JSON. The personal URL is delivered at onboarding. The public page ",e.jsx("a",{href:n("/setup"),children:e.jsx("code",{children:"proplace.co/setup"})})," stays available as a static demo (no save) for prospects to explore the wizard before signing."]})}),e.jsx("p",{style:{marginTop:10},children:r?e.jsxs(e.Fragment,{children:["⚠ La colonne ",e.jsx("code",{children:"fund_thesis"})," dans Airtable ne doit jamais être éditée directement — passez toujours par l’app, qui valide avant d’écrire. Les champs figés (mode, hurdles, géographie) ne dérivent jamais d’eux-mêmes ; seules vos mutations hebdomadaires affinent les exa_queries, les flags et les anchors."]}):e.jsxs(e.Fragment,{children:["⚠ The ",e.jsx("code",{children:"fund_thesis"})," column in Airtable must never be edited directly — always go through the app, which validates before writing. Frozen fields (mode, hurdles, geography) never drift on their own; only your weekly mutations sharpen the exa_queries, flags and anchors."]})})]}),e.jsx(is,{step:ni[0]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"s01-mode",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"1.1 Vous choisissez votre mode — VC / M&A / LBO":"1.1 You choose your mode — VC / M&A / LBO"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Le mode est la première chose dont Stan a besoin. Il calibre tout l’aval : la formule du modèle financier (VC : ARR + multiple de sortie, LBO : cash-on-cash après dette, M&A stratégique : VAN des synergies) et les critères de qualification. À choisir une fois. Le mode est FIGÉ — le moteur hebdomadaire ne le change jamais. Si votre mandat évolue, retournez sur analysis.proplace.co/thesis/?fund=<slug> pour le changer."}):e.jsx(e.Fragment,{children:"The mode is the first thing Stan needs. It calibrates everything downstream: the financial model formula (VC: ARR + exit multiple, LBO: cash-on-cash post-debt, M&A Strategic: NPV of synergies) and the qualification criteria. Pick once. The mode is FROZEN — the weekly engine never changes it. If your mandate evolves, return to analysis.proplace.co/thesis/?fund=<slug> to switch."})}),e.jsx("div",{className:"grid-2",children:k5.map(l=>{const d=r?R5(l):l;return e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-h",children:d.name}),e.jsx("div",{className:"card-p",children:d.desc})]},l.code)})}),e.jsx("span",{id:"s01-angles",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"1.2 Vous définissez 1 à 6 angles de sourcing":"1.2 You define 1 to 6 sourcing angles"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un angle se configure à travers ",e.jsx("strong",{children:"4 zones de schéma"})," qui s’indexent toutes sur le même ",e.jsx("code",{children:"angle_id"})," : ",e.jsx("code",{children:"sourcing_config.angles[id]"}),", ",e.jsx("code",{children:"semantic_filters.angles[id]"}),", ",e.jsx("code",{children:"benchmarks.angles[id]"}),", ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),". Le CEO fixe les valeurs initiales dans l’assistant de thèse (",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),") ; le Weekly Evolution Engine (scénario Make ",e.jsx("code",{children:"3517126"}),") en mute un sous-ensemble chaque lundi à 16h UTC. L’angle pilote ensuite ",e.jsx("strong",{children:"deux pipelines indépendants"})," qui lisent des sous-ensembles différents du schéma — le sourcing le matin, la qualification dès qu’un candidat matche."]}):e.jsxs(e.Fragment,{children:["An angle is configured across ",e.jsx("strong",{children:"4 schema zones"})," that all key off the same ",e.jsx("code",{children:"angle_id"}),": ",e.jsx("code",{children:"sourcing_config.angles[id]"}),", ",e.jsx("code",{children:"semantic_filters.angles[id]"}),", ",e.jsx("code",{children:"benchmarks.angles[id]"}),", ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),". The CEO sets the initial values in the thesis wizard (",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),"); the Weekly Evolution Engine (Make scenario ",e.jsx("code",{children:"3517126"}),") mutates a subset every Monday 4 PM UTC. The angle then drives ",e.jsx("strong",{children:"two independent pipelines"})," that read different subsets of the schema — sourcing in the morning, qualification once a candidate matches."]})}),e.jsx("h4",{className:"doc-h4",children:r?"Pipeline de sourcing — ce qu’un angle fait chaque matin à 8h30 UTC":"Sourcing pipeline — what an angle does every morning at 8:30 AM UTC"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["L’endpoint Modal quotidien ",e.jsx("code",{children:"https://alexandre-79537--sourcing-agent-web-v3.modal.run"})," (scénario Make ",e.jsx("code",{children:"4950251"}),") exécute 15 moteurs en parallèle. Chaque candidat qu’ils font remonter passe par un évaluateur de gate unique qui décide MATCH ou NO MATCH."]}):e.jsxs(e.Fragment,{children:["The daily Modal endpoint ",e.jsx("code",{children:"https://alexandre-79537--sourcing-agent-web-v3.modal.run"})," (Make scenario ",e.jsx("code",{children:"4950251"}),") runs 15 engines in parallel. Each candidate they surface is passed through a single gate evaluator that decides MATCH or NO MATCH."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 1 — les moteurs font remonter des candidats":"Step 1 — engines surface candidates"}),e.jsx("p",{className:"doc-text",children:r?"Chaque moteur lit un champ par-angle différent :":"Each engine reads a different per-angle field:"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Moteur"
3201:"Engine"}),e.jsx("th",{children:r?"Champ par-angle lu":"Per-angle field read"}),e.jsx("th",{children:r?"Cardinalité / format":"Cardinality / format"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:"Exa Semantic"}),e.jsx("td",{children:e.jsx("code",{children:"exa_queries"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["exactement 7 phrases, chacune commençant par ",e.jsx("code",{children:'"Here is a "'})]}):e.jsxs(e.Fragment,{children:["exactly 7 phrases, each starts with ",e.jsx("code",{children:'"Here is a "'})]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Exa Similar"}),e.jsx("td",{children:e.jsx("code",{children:"competitor_anchors"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["min 10, max 20 entrées (doit inclure ",e.jsx("code",{children:"gold_anchor"}),")"]}):e.jsxs(e.Fragment,{children:["min 10, max 20 entries (must include ",e.jsx("code",{children:"gold_anchor"}),")"]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"LinkedIn Posts"}),e.jsx("td",{children:e.jsx("code",{children:"apify_linkedin_posts_queries"})}),e.jsx("td",{children:r?"exactement 4 requêtes":"exactly 4 queries"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"LinkedIn Jobs"}),e.jsx("td",{children:e.jsx("code",{children:"apify_linkedin_jobs_calendar"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["7 créneaux de la semaine ",e.jsxs("code",{children:["{","day, keywords, city","}"]})]}):e.jsxs(e.Fragment,{children:["7 weekday slots ",e.jsxs("code",{children:["{","day, keywords, city","}"]})]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Crunchbase Search"}),e.jsx("td",{children:e.jsx("code",{children:"apify_crunchbase_calendar"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["7 créneaux de la semaine ",e.jsxs("code",{children:["{","day, city, industry, employees","}"]})]}):e.jsxs(e.Fragment,{children:["7 weekday slots ",e.jsxs("code",{children:["{","day, city, industry, employees","}"]})]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Google Alerts"}),e.jsx("td",{children:e.jsx("code",{children:"google_alert_queries"})}),e.jsx("td",{children:r?"8–12 requêtes":"8–12 queries"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Pappers FR · Google News · RSS · HN · GitHub · CRT · Fundraising · Backfill"}),e.jsxs("td",{children:[e.jsx("code",{children:"sectors_plain"})," ",r?"(union à l’échelle du fonds de tous les angles)":"(fund-wide union of all angles)"," + ",e.jsx("code",{children:"cities"})," ",r?"partagés au fonds":"fund-shared"," · ",e.jsx("code",{children:"naf_codes"})," · ",e.jsx("code",{children:"founder_exodus_sources"})," · ",e.jsx("code",{children:"backfill_sources"})]}),e.jsxs("td",{children:[e.jsx("code",{children:"sectors_plain"})," ",r?"max 12 entrées":"max 12 entries"]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Exa Websets"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Même pool d’",e.jsx("code",{children:"exa_queries"}),", vérification d’abord"]}):e.jsxs(e.Fragment,{children:["Same ",e.jsx("code",{children:"exa_queries"})," pool, verification-first"]})}),e.jsx("td",{children:r?"Tourne en async avec les 14 autres":"Runs async alongside the other 14"})]})]})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les moteurs de pool (Exa Semantic, LinkedIn Posts) tirent proportionnellement au ",e.jsx("code",{children:"weight ∈ [1, 5]"})," de chaque angle. Les moteurs calendaires s’activent sur proportionnellement plus de semaines ISO. Les moteurs always-on scannent l’union à l’échelle du fonds."]}):e.jsxs(e.Fragment,{children:["Pool engines (Exa Semantic, LinkedIn Posts) draw weight-proportionally to each angle's ",e.jsx("code",{children:"weight ∈ [1, 5]"}),". Calendar engines activate during proportionally more ISO weeks. Always-on engines scan the fund-wide union."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 2 — un gate, deux couches (c’est la partie que la plupart ratent)":"Step 2 — one gate, two layers (this is the part most people miss)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque candidat remont
3201é par les 15 moteurs passe par ",e.jsx("code",{children:"execution/sourcing_v3/gate.py::evaluate_lead()"})," — un gate Gemini Flash unique. Il lit ",e.jsx("strong",{children:"à la fois"})," le ",e.jsx("code",{children:"single_gate"})," partagé au fonds ET le ",e.jsx("code",{children:"match_signal"})," + ",e.jsx("code",{children:"reject_signal"})," de chaque angle dans le même prompt :"]}):e.jsxs(e.Fragment,{children:["Every candidate surfaced by the 15 engines goes through ",e.jsx("code",{children:"execution/sourcing_v3/gate.py::evaluate_lead()"})," — a single Gemini Flash gate. It reads ",e.jsx("strong",{children:"both"})," the fund-shared ",e.jsx("code",{children:"single_gate"})," AND each angle's ",e.jsx("code",{children:"match_signal"})," + ",e.jsx("code",{children:"reject_signal"})," in the same prompt:"]})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsxs("strong",{children:["Couche 1 — ",e.jsx("code",{children:"single_gate"})," partagé au fonds"]})," : la prose maîtresse 2-STEP stockée dans ",e.jsx("code",{children:"sourcing_config.shared.single_gate"}),". STEP 1 est une question verticale (« cette société sert-elle [vertical cible] comme activité PRINCIPALE ? ») avec 4–6 rejets explicites de verticaux proches. STEP 2 est le dispatch d’angle. Si STEP 1 échoue → NO MATCH immédiat, STEP 2 est sauté. Augmenté de ",e.jsx("code",{children:"sourcing_config.shared.near_miss_examples"})," (sociétés taguées MATCH par erreur — alimenté via le bouton Airtable « ⚠ Flag FP »)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Couche 2 — critères par-angle"})," : pour chaque angle actif, ",e.jsx("code",{children:"sourcing_config.angles[id].match_signal"})," est injecté comme ",e.jsxs("code",{children:["[angle_id] ","{","match_signal","}"]})," dans la section MATCH CRITERIA du prompt, et ",e.jsx("code",{children:"reject_signal"})," dans REJECT CRITERIA. Le LLM du gate choisit l’angle dont le ",e.jsx("code",{children:"match_signal"})," colle le mieux — ou retourne NO MATCH si aucun ne colle."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsxs("strong",{children:["Layer 1 — fund-shared ",e.jsx("code",{children:"single_gate"})]}),": the master 2-STEP prose stored at ",e.jsx("code",{children:"sourcing_config.shared.single_gate"}),'. STEP 1 is a vertical question ("does this company serve [target vertical] as its PRIMARY activity?") with 4–6 explicit near-vertical rejections. STEP 2 is the angle dispatch. If STEP 1 fails → immediate NO MATCH, STEP 2 is skipped. Augmented with ',e.jsx("code",{children:"sourcing_config.shared.near_miss_examples"}),' (companies previously tagged MATCH by mistake — grown via the Airtable "⚠ Flag FP" button).']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Layer 2 — per-angle criteria"}),": for every active angle, ",e.jsx("code",{children:"sourcing_config.angles[id].match_signal"})," is injected as ",e.jsxs("code",{children:["[angle_id] ","{","match_signal","}"]})," in the prompt's MATCH CRITERIA section, and ",e.jsx("code",{children:"reject_signal"})," in REJECT CRITERIA. The gate LLM picks the angle whose ",e.jsx("code",{children:"match_signal"})," best fits — or returns NO MATCH if none does."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Sortie : MATCH (avec l’",e.jsx("code",{children:"angle_id"})," choisi) → le deal entre en qualification. NO MATCH → écarté, pas de mémo, pas de qualification."]}):e.jsxs(e.Fragment,{children:["Output: MATCH (with chosen ",e.jsx("code",{children:"angle_id"}),") → the deal enters qualification. NO MATCH → dropped, no memo, no qualification."]})}),e.jsx("h4",{className:"doc-h4",children:r?"Pipeline de qualification — ce qu’un angle fait dès qu’un MATCH arrive":"Qualification pipeline — what an angle does once a MATCH lands"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le scénario Make BP1 ",e.jsx("code",{children:"3345980"})," (149 modules) puis le BP2 ",e.jsx("code",{children:"3869328"})," (200 modules) prennent le relais. Ils lisent un sous-ensemble de la config d’angle différent du sourcing — narratif + patterns de flags + benchmarks, pas des listes de requêtes."]}):e.jsxs(e.Fragment,{children:["Make BP1 scenario ",e.jsx("code",{children:"3345980"})," (149 modules) then BP2 scenario ",e.jsx("code",{children:"3869328"})," (200 modules) take over. They read a different subset of the angle config than sourcing — narrative + flag patterns + benchmarks, not query lists."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 1 — détection d’angle du Module 0":"Step 1 — Module 0 angle detection"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Le Module 0 note chaque angle actif sur trois signaux qualitatifs (0–3 par angle, PAS un score de verdict numérique) :"}):e.jsx(e.Fragment,{children:"Module 0 scores each active angle on three qualitative signals (0–3 per angle, NOT a numeric verdict score):"})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 1 — adéquation du business model."})," OUI = 1 / NON = 0. Évalué contre ",e.jsx("code",{children:"match_signal"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 2 — adéquation du vocabulaire sectoriel."})," OUI = 1 / NON = 0. Évalué contre ",e.jsx("code",{children:"sectors_plain"})," + ",e.jsx("code",{children:"priority_flags"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 3 — adéquation du gap stratég
3201ique."})," OUI = 1 / NON = 0. Évalué contre ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),"."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 1 — business model match."})," YES = 1 / NO = 0. Read against ",e.jsx("code",{children:"match_signal"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 2 — sector vocabulary match."})," YES = 1 / NO = 0. Read against ",e.jsx("code",{children:"sectors_plain"})," + ",e.jsx("code",{children:"priority_flags"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Signal 3 — strategic gap match."})," YES = 1 / NO = 0. Read against ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),"."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un angle est DÉTECTÉ si ",e.jsx("code",{children:"total ≥ 1"}),". Jusqu’à 5 angles détectés passent dans le Module 1 en parallèle. Sortie : ",e.jsx("code",{children:"angle_scores"}),", ",e.jsx("code",{children:"angle_detection_evidence"}),", ",e.jsx("code",{children:"primary_angle"}),"."]}):e.jsxs(e.Fragment,{children:["An angle is DETECTED if ",e.jsx("code",{children:"total ≥ 1"}),". Up to 5 detected angles flow into Module 1 in parallel. Output: ",e.jsx("code",{children:"angle_scores"}),", ",e.jsx("code",{children:"angle_detection_evidence"}),", ",e.jsx("code",{children:"primary_angle"}),"."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 2 — analystes spécialistes Module 1A/1B/2/3 (budget de Q&R égal)":"Step 2 — Module 1A/1B/2/3 specialist analysts (equal Q&A budget)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Trois analystes tournent par angle détecté avec un ",e.jsx("strong",{children:"budget de questions K égal"})," pour que les angles faibles ne soient pas affamés par les plus forts :"]}):e.jsxs(e.Fragment,{children:["Three analysts run per detected angle with an ",e.jsx("strong",{children:"equal question budget K"})," so weak angles aren't starved by stronger ones:"]})}),e.jsxs("ul",{className:"doc-list",children:[e.jsx("li",{children:e.jsx("strong",{children:"Market & Timing"})}),e.jsx("li",{children:e.jsx("strong",{children:"Moat & Competition"})}),e.jsx("li",{children:e.jsx("strong",{children:"Founder Financial Health & Risk"})})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque analyste évalue implicitement le deal contre les ",e.jsx("code",{children:"green_flags"})," et ",e.jsx("code",{children:"red_flags"})," de l’angle. « ",e.jsx("strong",{children:"Déclenché"})," » (Fired) = l’analyste a observé le pattern décrit par le flag (chaîne ≤ 40 caractères) dans les preuves de la société. Le déclenchement n’est pas un appel API distinct — c’est une étape de raisonnement implicite dans la Q&R de l’analyste."]}):e.jsxs(e.Fragment,{children:["Each analyst implicitly evaluates the deal against the angle's ",e.jsx("code",{children:"green_flags"})," and ",e.jsx("code",{children:"red_flags"}),'. "',e.jsx("strong",{children:"Fired"}),`" = the analyst observed the pattern described by the flag (≤ 40-char string) in the company evidence. The firing isn't a separate API call — it's an implicit reasoning step inside the analyst's Q&A.`]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 3 — synthèse Module 3 + Avocat du Diable Module 4":"Step 3 — Module 3 synthesis + Module 4 Devil's Advocate"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le Module 3 synthétise les trois pistes d’analystes. Le Module 4 attaque la synthèse en Avocat du Diable et nomme ",e.jsx("strong",{children:"3 vérifications obligatoires"})," que le CEO devrait mener si le deal devient un CALL."]}):e.jsxs(e.Fragment,{children:["Module 3 synthesises the three analyst tracks. Module 4 attacks the synthesis as Devil's Advocate and names ",e.jsx("strong",{children:"3 mandatory verifications"})," the CEO should run if the deal becomes a CALL."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Étape 4 — verdict final du Module 5 (CALL · CONSIDER · MONITOR · PASS)":"Step 4 — Module 5 final verdict (CALL · CONSIDER · MONITOR · PASS)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le Module 5 lit la synthèse du Module 3, la critique du Module 4, le calibrage du Module 0, ",e.jsx("code",{children:"narrative_alpha.angles[primary_angle]"})," pour le paragraphe d’adéquation à la thèse, et le contrôle d’exclusion dure contre ",e.jsx("code",{children:"binary_gates.exclusions.*"})," (toute exclusion déclenchée → auto-PASS). Le verdict est du ",e.jsx("strong",{children:"pur raisonnement qualitatif LLM"})," sur ces entrées. Ce n’est PAS une formule de comptage de flags ni un score numérique."]}):e.jsxs(e.Fragment,{children:["Module 5 reads the Module 3 synthesis, Module 4 critique, Module 0 calibration, ",e.jsx("code",{children:"narrative_alpha.angles[primary_angle]"})," for the fit-to-thesis paragraph, and the hard-exclusion check against ",e.jsx("code",{children:"binary_gates.exclusions.*"})," (any tripped → auto-PASS). The verdict is ",e.jsx("strong",{children:"pure LLM qualitative reasoning"})," over those inputs. It is NOT a flag count formula and NOT a numeric score."]})}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?"Démystifier « scoring / flags / déclenché » — et pourquoi ce design compose semaine après semaine.":'Demystifying "scoring / flags / fired" — and why this design compounds week after week.'}),e.jsx("p",{children:e.jsx("strong",{children:r?"Ce que les termes veulent dire aujourd’hui :":"What the terms mean today:"})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Pas de score de verdict numérique en v5.4."})," ",e.jsx("code",{children:"scoring_weights"})," a été retiré. Le verdict du Module 5 est qualitatif, choisi par le LLM parmi CALL · CONSIDER · MONITOR · PASS d’après la synthèse des analystes + la critique de l’Avocat du Diable + l’adéquation au narratif."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Les flags sont des bibliothèques de patterns, pas des poids."})," Chaque ",e.jsx("code",{children:"green_flag"})," / ",e.jsx("code",{children:"red_flag"})," est une courte chaîne (≤ 40 caractères) décrivant un pattern que Stan cherche. Exemple : ",e.jsx("code",{children:'"founder previously sold to corporate"'})," (vert) ou ",e.jsx("code",{children:'"churn > 20% / year"'})," (rouge)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Chaque flag porte un registre à 7 champs :"})," ",e.jsxs("code",{children:["{","flag, type, times_fired, times_evaluated_without_firing, last_fired, decay_status, query_weight","}"]}),". Le CEO écrit le texte du ",e.jsx("code",{children:"flag"})," une fois ; Stan maintient la télémétrie."]}
3201),e.jsxs("li",{children:[e.jsx("strong",{children:"« Déclenché » = pattern observé pendant la qualification."})," Quand les analystes Module 1A/1B/3 évaluent un deal, ils vérifient implicitement si chaque pattern vert/rouge colle aux preuves de la société. Si oui, ",e.jsx("code",{children:"times_fired += 1"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"La télémétrie de déclenchement ne calcule PAS le verdict."})," C’est l’entrée du Weekly Evolution Engine — un fait que le reste de ce bloc existe pour expliquer."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"No numeric verdict score in v5.4."})," ",e.jsx("code",{children:"scoring_weights"})," was removed. The Module 5 verdict is qualitative, picked by the LLM from CALL · CONSIDER · MONITOR · PASS based on the analyst synthesis + Devil's critique + narrative fit."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Flags are pattern libraries, not weights."})," Each ",e.jsx("code",{children:"green_flag"})," / ",e.jsx("code",{children:"red_flag"})," is a short string (≤ 40 chars) that describes a pattern Stan looks for. Example: ",e.jsx("code",{children:'"founder previously sold to corporate"'})," (green) or ",e.jsx("code",{children:'"churn > 20% / year"'})," (red)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Each flag carries a 7-field registry:"})," ",e.jsxs("code",{children:["{","flag, type, times_fired, times_evaluated_without_firing, last_fired, decay_status, query_weight","}"]}),". The CEO writes the ",e.jsx("code",{children:"flag"})," text once; Stan maintains the telemetry."]}),e.jsxs("li",{children:[e.jsx("strong",{children:'"Fired" = pattern observed during qualification.'})," When Module 1A/1B/3 analysts evaluate a deal, they implicitly check whether each green/red flag pattern fits the company's evidence. If yes, ",e.jsx("code",{children:"times_fired += 1"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"The firing telemetry does NOT compute the verdict."})," It's the input to the Weekly Evolution Engine — a fact the rest of this callout exists to explain."]})]})}),e.jsx("p",{children:e.jsx("strong",{children:r?"Pourquoi ce design — un calibrage en boucle fermée qui affine sourcing et qualification semaine après semaine.":"Why the design — closed-loop calibration that sharpens sourcing and qualification week by week."})}),e.jsx("p",{children:r?"La télémétrie existe pour une seule raison : c’est le mécanisme par lequel Stan cesse d’être une thèse figée du jour 1 et devient un système qui compose avec chaque décision du CEO. Chaque lundi à 16h UTC, la télémétrie de déclenchement est lue par le Weekly Evolution Engine et remodèle le schéma pour les runs de la semaine suivante.":"The telemetry exists for one reason: it is the mechanism by which Stan stops being a frozen day-1 thesis and becomes a system that compounds with every CEO decision. Each Monday at 4 PM UTC the firing telemetry is read by the Weekly Evolution Engine and reshapes the schema for the next week's runs."}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Le sourcing s’affine."})," Les green flags déclenchés ≥ 3 fois avec ",e.jsx("code",{children:'query_weight = "high"'})," sont promus dans ",e.jsx("code",{children:"priority_flags"})," → ces chaînes deviennent des mots-clés d’inclusion obligatoires dans les requêtes Exa Semantic / LinkedIn Posts / Google Alerts de la semaine suivante, donc les moteurs quotidiens font remonter plus de deals ressemblant aux patterns que le raisonnement du CEO a réellement validés. Les signaux POISON (",e.jsx("code",{children:"times_fired ≥ 2"}),") ajoutent une clause à ",e.jsx("code",{children:"reject_signal"})," → le gate du lendemain matin rejette immédiatement les deals similaires, avant qu’un mémo complet ne soit construit. WATCHLIST ajoute un concurrent à ",e.jsx("code",{children:"competitor_anchors"})," → Exa Similar l’utilise comme nouvelle graine."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"La qualification s’affine."})," Les green flags jamais déclenchés (",e.jsx("code",{children:"times_evaluated_without_firing ≥ 20"}),") sont marqués ",e.jsx("code",{children:'decay_status = "review_pending"'})," et retirés de ",e.jsx("code",{children:"priority_flags"})," — les patterns morts cessent de polluer le raisonnement des analystes. Un CEO_VETO avec note extrait un ",e.jsx("code",{children:"TOXIC_KEYWORD"})," et réécrit directement ",e.jsx("code",{children:"narrative_alpha.angles[id]"})," — le raisonnement de qualification glisse vers le jugement réel du CEO, pas le narratif du jour 1. Les signaux CALL font tourner ",e.jsx("code",{children:"gold_anchor_pool"})," → les sociétés de référence positives restent à jour."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Les flags ne se suppriment jamais automatiquement."})," Ils restent dans le registre avec ",e.jsx("code",{children:'decay_status = "review_pending"'})," jusqu’à ce que le CEO les élague à la revue de setup trimestrielle — Stan ne jette jamais silencieusement un signal."]}
3201)]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Sourcing gets sharper."})," Green flags that fired ≥ 3 times with ",e.jsx("code",{children:'query_weight = "high"'})," get promoted into ",e.jsx("code",{children:"priority_flags"})," → those strings become mandatory inclusion keywords in next week's Exa Semantic / LinkedIn Posts / Google Alerts queries, so the daily engines surface more deals that look like the patterns the CEO's reasoning actually validated. POISON signals (",e.jsx("code",{children:"times_fired ≥ 2"}),") append a clause to ",e.jsx("code",{children:"reject_signal"})," → the next morning's gate rejects similar deals immediately, before a full memo is built. WATCHLIST adds a competitor to ",e.jsx("code",{children:"competitor_anchors"})," → Exa Similar uses it as a new seed."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Qualification gets sharper."})," Green flags that never fired (",e.jsx("code",{children:"times_evaluated_without_firing ≥ 20"}),") get marked ",e.jsx("code",{children:'decay_status = "review_pending"'})," and dropped from ",e.jsx("code",{children:"priority_flags"})," — dead patterns stop polluting the analysts' reasoning. CEO_VETO with a note extracts a ",e.jsx("code",{children:"TOXIC_KEYWORD"})," and rewrites ",e.jsx("code",{children:"narrative_alpha.angles[id]"})," directly — the qualification reasoning shifts to match the CEO's actual judgment, not the day-1 narrative. CALL signals rotate ",e.jsx("code",{children:"gold_anchor_pool"})," → the positive reference companies stay current."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Flags never auto-delete."})," They stay in the registry with ",e.jsx("code",{children:'decay_status = "review_pending"'})," until the CEO prunes them at the quarterly setup review — Stan never silently throws away signal."]})]})}),e.jsx("p",{children:r?"L’effet de composition dans le temps, c’est la montée du taux de OUI documentée dans la section « Pourquoi c’est important » : 20–30 % au mois 1 (Stan apprend) → 60–70 % au mois 3 (la thèse reflète le pattern du CEO) → 85 %+ au mois 6 (seuls les deals que le CEO validera lui parviennent). Sans la télémétrie de déclenchement, rien de cette composition n’a lieu — Stan sourcerait et qualifierait pour toujours sur les entrées initiales de l’assistant.":`The compound effect over time is the YES rate climb documented in the "Why this matters" section: 20–30% in month 1 (Stan is learning) → 60–70% in month 3 (thesis reflects the CEO's pattern) → 85%+ in month 6 (only deals the CEO will validate reach them). Without the firing telemetry, none of that compounding happens — Stan would source and qualify forever on the initial wizard inputs.`})]}),e.jsx("h4",{className:"doc-h4",children:r?"Matrice de clarté des champs par-angle":"Per-angle field clarity matrix"}),e.jsx("p",{className:"doc-text",children:r?"Pour chaque champ par-angle, exactement ce que chaque pipeline en fait — en clair, sans adjectifs cryptiques.":"For every per-angle field, exactly what each pipeline does with it — in plain English, no cryptic adjectives."}),e.jsx("div",{className:"doc-scroll",children:e.jsxs("table",{className:"doc-table doc-table-wide",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Ce que le pipeline SOURCING en fait":"What the SOURCING pipeline does with it"}),e.jsx("th",{children:r?"Ce que le pipeline QUALIFICATION en fait":"What the QUALIFICATION pipeline does with it"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"angle_id"})}
3201),e.jsx("td",{children:r?"Tague chaque candidat remonté avec l’angle qu’il a matché au gate, pour que l’Airtable + les rapports en aval filtrent par angle.":"Tags every surfaced candidate with the angle it matched at the gate, so downstream Airtable + reports can filter per angle."}),e.jsx("td",{children:r?"Route le deal vers le slot d’angle correspondant dans le Module 0 et propage le tag à travers les Modules 1–5 et l’en-tête du mémo.":"Routes the deal into the matching angle slot in Module 0 and propagates the tag through Modules 1–5 and the memo header."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"angle_name"})}),e.jsx("td",{children:r?"Utilisé dans le rapport quotidien + les logs des moteurs pour étiqueter quel angle a produit chaque candidat.":"Used in the daily report + engine logs to label which angle produced each candidate."}),e.jsx("td",{children:r?"Imprimé dans le bloc verdict et le titre du mémo.":"Printed in the verdict block and the memo title."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"weight"})," ∈ [1, 5]"]}),e.jsx("td",{children:r?"Les moteurs de pool (Exa Semantic, LinkedIn Posts) tirent les requêtes proportionnellement au poids ; les moteurs calendaires (LinkedIn Jobs, Crunchbase) s’activent sur proportionnellement plus de semaines ISO.":"Pool engines (Exa Semantic, LinkedIn Posts) draw queries proportionally to weight; calendar engines (LinkedIn Jobs, Crunchbase) activate during proportionally more ISO weeks."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le Module 0 l’utilise pour classer les angles détectés quand un deal en matche plusieurs — un poids plus élevé départage pour ",e.jsx("code",{children:"primary_angle"}),"."]}):e.jsxs(e.Fragment,{children:["Module 0 uses it to rank detected angles when one deal matches several — higher weight breaks ties for ",e.jsx("code",{children:"primary_angle"}),"."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"match_signal"})," ",r?"(prose, 10–800 car.)":"(prose, 10–800 chars)"]}),e.jsx("td",{children:r?"Injecté tel quel dans la section MATCH CRITERIA du prompt du gate, un bloc par angle.":"Injected verbatim into the gate prompt's MATCH CRITERIA section, one block per angle."}),e.jsx("td",{children:r?"Le Module 0 le lit comme le critère du Signal 1 (adéquation du business model).":"Module 0 reads it as the Signal 1 criterion (business model match)."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"reject_signal"})," ",r?"(max 10 clauses × 8 mots)":"(max 10 clauses × 8 words)"]}),e.jsx("td",{children:r?"Injecté tel quel dans la section REJECT CRITERIA du prompt du gate.":"Injected verbatim into the gate prompt's REJECT CRITERIA section."}),e.jsx("td",{children:r?"Le Module 0 le lit comme la définition du PASS — confirme un hard-block avant que les analystes ne tournent.":"Module 0 reads it as the PASS definition — confirms a hard-block before the analysts run."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"sectors_plain"})," (max 12)"]}),e.jsx("td",{children:r?"L’union à l’échelle du fonds de tous les angles pilote le filtrage par mots-clés dans Pappers FR, Google News, RSS, HN, GitHub, CRT.":"Fund-wide union of all angles drives keyword filtering in Pappers FR, Google News, RSS, HN, GitHub, CRT."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le Module 0 lit le ",e.jsx("code",{children:"sectors_plain"})," de l’angle comme la liste de vocabulaire du Signal 2."]}):e.jsxs(e.Fragment,{children:["Module 0 reads the angle's ",e.jsx("code",{children:"sectors_plain"})," as the Signal 2 vocabulary list."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"exa_queries"})," ",r?'(exactement 7, "Here is a ...")':'(exactly 7, "Here is a ...")']}),e.jsx("td",{children:r?"Entrée du moteur Exa Semantic — chaque phrase devient une recherche sémantique Exa.":"Exa Semantic engine input — each phrase becomes one Exa semantic search."}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"competitor_anchors"})," (min 10, max 20)"]}),e.jsx("td",{children:r?"Graines du moteur Exa Similar — Exa trouve des sosies de chaque anchor.":"Exa Similar engine seeds — Exa finds lookalikes of each anchor."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Pas lu directement. Le ",e.jsx("code",{children:"gold_anchor"})," doit y figurer pour qu’Exa Similar fasse remonter des sociétés voisines."]}):e.jsxs(e.Fragment,{children:["Not read directly. The ",e.jsx("code",{children:"gold_anchor"})," must appear here so Exa Similar surfaces companies adjacent to it."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"google_alert_queries"})," (8–12)"]}
3201),e.jsx("td",{children:r?"Entrée du moteur Google Alerts — chaque requête devient un abonnement d’alerte.":"Google Alerts engine input — each query becomes one alert subscription."}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"apify_linkedin_posts_queries"})," ",r?"(exactement 4)":"(exactly 4)"]}),e.jsx("td",{children:r?"Entrée du moteur LinkedIn Posts — Apify scrape les posts correspondant à chaque requête.":"LinkedIn Posts engine input — Apify scrapes posts matching each query."}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"apify_linkedin_jobs_calendar"})," ",r?"(7 créneaux de la semaine)":"(7 weekday slots)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le moteur LinkedIn Jobs choisit le créneau du jour ",e.jsxs("code",{children:["{","day, keywords, city","}"]})," et lance l’acteur Apify Jobs avec."]}):e.jsxs(e.Fragment,{children:["LinkedIn Jobs engine picks today's slot ",e.jsxs("code",{children:["{","day, keywords, city","}"]})," and runs the Apify Jobs actor with it."]})}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"apify_crunchbase_calendar"})," ",r?"(7 créneaux de la semaine)":"(7 weekday slots)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le moteur Crunchbase choisit le créneau du jour ",e.jsxs("code",{children:["{","day, city, industry, employees","}"]}),"."]}):e.jsxs(e.Fragment,{children:["Crunchbase engine picks today's slot ",e.jsxs("code",{children:["{","day, city, industry, employees","}"]}),"."]})}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"posts_weekly"})," · ",e.jsx("code",{children:"anchors_weekly"})," · ",e.jsx("code",{children:"exa_queries_weekly"})," ",r?"(rotation v6)":"(v6 rotation)"]}),e.jsx("td",{children:r?"Le lookup de rotation quotidienne choisit l’entrée du jour ; remplace les tableaux plats ci-dessus quand elle est présente.":"Daily rotation lookup picks today's weekday entry; supersedes the flat arrays above when present."}),e.jsx("td",{children:r?"Non lu.":"Not read."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"priority_flags"})," ",r?"(4–9, ≤ 40 car.)":"(4–9, ≤ 40 chars)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?"Le Module 0 les lit dans le set de vocabulaire du Signal 2 ; les analystes Module 1A/1B/3 les traitent comme des patterns obligatoires à vérifier.":"Module 0 reads them as part of the Signal 2 vocabulary set; Module 1A/1B/3 analysts treat them as mandatory patterns to check."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"green_flags"})," ",r?"(8 initial → jusqu’à 15, registre 7 champs)":"(8 initial → up to 15, 7-field registry)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Les analystes Module 1A/1B/3 évaluent implicitement chaque pattern contre les preuves de la société ; si observé, ",e.jsx("code",{children:"times_fired += 1"}),"."]}):e.jsxs(e.Fragment,{children:["Module 1A/1B/3 analysts implicitly evaluate each pattern against the company evidence; if observed, ",e.jsx("code",{children:"times_fired += 1"}),"."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"red_flags"})," ",r?"(4 initial → jusqu’à 8, registre 7 champs)":"(4 initial → up to 8, 7-field registry)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?"Comme green_flags mais pour les anti-patterns — un déclenchement produit un constat négatif.":"Same as green_flags but for anti-patterns — firing triggers a negative finding."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"narrative_alpha.angles[id]"})," ",r?"(100–200 mots, 5 éléments)":"(100–200 words, 5 elements)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?"Le Module 0 le lit comme le critère du Signal 3 (adéquation du gap stratég
3201ique) ; les Modules 1–5 l’utilisent pour cadrer la Q&R spécifique à l’angle et le paragraphe d’adéquation à la thèse du verdict.":"Module 0 reads it as the Signal 3 criterion (strategic gap match); Module 1–5 use it to frame the angle-specific Q&A and the verdict's fit-to-thesis paragraph."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"narrative_alpha.buyer_context"})," ",r?"(100–200 mots)":"(100–200 words)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?"Le Module 0 l’utilise comme contexte de calibrage ; le Module 5 l’utilise pour cadrer la section profil-investisseur du verdict.":"Module 0 uses it as calibration context; Module 5 uses it to frame the investor-profile section of the verdict."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"gold_anchor"})," + ",e.jsx("code",{children:"gold_anchor_pool"})," ","(3 slots)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Influence le sourcing indirectement — ",e.jsx("code",{children:"gold_anchor"})," doit figurer dans ",e.jsx("code",{children:"competitor_anchors"}),", pour qu’Exa Similar fasse remonter des sociétés proches."]}):e.jsxs(e.Fragment,{children:["Influences sourcing indirectly — ",e.jsx("code",{children:"gold_anchor"})," must appear in ",e.jsx("code",{children:"competitor_anchors"}),", so Exa Similar surfaces companies near it."]})}),e.jsx("td",{children:r?"Apparaît tel quel dans le mémo comme benchmark positif ; pas lu directement par le Module 5 pour le verdict.":"Surfaces verbatim in the memo as a positive benchmark; not read directly by Module 5 for the verdict."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"poison_anchor"})," + ",e.jsx("code",{children:"poison_anchor_characteristics"})," (5–7)"]}),e.jsx("td",{children:r?"Non lu.":"Not read."}),e.jsx("td",{children:r?"Apparaît tel quel dans le mémo comme benchmark d’anti-pattern ; pas lu directement par le Module 5 pour le verdict.":"Surfaces verbatim in the memo as an anti-pattern benchmark; not read directly by Module 5 for the verdict."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"binary_gates.exclusions.*"})}),e.jsx("td",{children:r?"Pas appliqué au gate en v5.4 (indicatif seulement).":"Not enforced at the gate in v5.4 (advisory only)."}),e.jsx("td",{children:r?"Contrôle d’exclusion dure du Module 5 — si une exclusion est déclenchée, le verdict est forcé à PASS quels que soient les constats des analystes.":"Module 5 hard-exclusion check — if any exclusion is tripped, the verdict is forced to PASS regardless of the analysts' findings."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"binary_gates.inclusions.geography"})," (FROZEN)"]}),e.jsx("td",{children:r?"Pré-filtre géographique appliqué aux moteurs (ex. Pappers FR ne tourne que si FR est dans la liste).":"Geographic pre-filter applied to the engines (e.g. Pappers FR only runs if FR is in the list)."}),e.jsx("td",{children:r?"Non lu.":"Not read."})]})]})]})}),e.jsx("h4",{className:"doc-h4",children:r?"Références des étapes de l’assistant":"Wizard step references"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["L’assistant sur ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})," collecte ces champs en quatre étapes :"]}):e.jsxs(e.Fragment,{children:["The wizard at ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})," collects these fields in four steps:"]})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Step 04 — Thesis Setup"})," : ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"angle_name"}),", ",e.jsx("code",{children:"weight"}),", ",e.jsx("code",{children:"match_signal"}),", ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"narrative_alpha.buyer_context"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 05 — Sourcing Setup"})," : tous les champs par-angle requête / calendrier / anchor + ",e.jsx("code",{children:"sectors_plain"})," + ",e.jsx("code",{children:"competitor_anchors"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 06b — Qualification Setup"})," : ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),", ",e.jsx("code",{children:"priority_flags"}),", ",e.jsx("code",{children:"green_flags"}),", ",e.jsx("code",{children:"red_flags"}),", ",e.jsx("code",{children:"gold_anchor"})," (+ pool slot[0] année + thesis_match), ",e.jsx("code",{children:"poison_anchor"}),", ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 09 — Financial Model"})," : au niveau du fonds — ",e.jsx("code",{children:"mode"}),", ",e.jsx("code",{children:"sector_profile"}),", hurdles par mode, ",e.jsx("code",{children:"acquirer_context"}
3201)," (M&A stratégique uniquement)."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Step 04 — Thesis Setup"}),": ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"angle_name"}),", ",e.jsx("code",{children:"weight"}),", ",e.jsx("code",{children:"match_signal"}),", ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"narrative_alpha.buyer_context"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 05 — Sourcing Setup"}),": all per-angle query / calendar / anchor fields + ",e.jsx("code",{children:"sectors_plain"})," + ",e.jsx("code",{children:"competitor_anchors"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 06b — Qualification Setup"}),": ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),", ",e.jsx("code",{children:"priority_flags"}),", ",e.jsx("code",{children:"green_flags"}),", ",e.jsx("code",{children:"red_flags"}),", ",e.jsx("code",{children:"gold_anchor"})," (+ pool slot[0] year + thesis_match), ",e.jsx("code",{children:"poison_anchor"}),", ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Step 09 — Financial Model"}),": fund-level — ",e.jsx("code",{children:"mode"}),", ",e.jsx("code",{children:"sector_profile"}),", hurdles per mode, ",e.jsx("code",{children:"acquirer_context"})," (M&A strategic only)."]})]})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Qui écrit quoi — matrice d’origine.":"Who writes what — origin matrix."}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"CEO uniquement (assistant, pas d’auto-mutation) :"})," ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"angle_name"}),", ",e.jsx("code",{children:"weight"}),", ",e.jsx("code",{children:"apify_linkedin_jobs_calendar"}),", ",e.jsx("code",{children:"apify_crunchbase_calendar"}),", ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),", ",e.jsx("code",{children:"narrative_alpha.buyer_context"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Le CEO fixe l’initial, le moteur hebdo étend :"})," ",e.jsx("code",{children:"match_signal"}),", ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"exa_queries"}),", ",e.jsx("code",{children:"google_alert_queries"}),", ",e.jsx("code",{children:"apify_linkedin_posts_queries"}),", ",e.jsx("code",{children:"sectors_plain"}),", ",e.jsx("code",{children:"competitor_anchors"}),", ",e.jsx("code",{children:"priority_flags"}),", ",e.jsx("code",{children:"green_flags"}),", ",e.jsx("code",{children:"red_flags"}),", ",e.jsx("code",{children:"gold_anchor"})," / ",e.jsx("code",{children:"gold_anchor_pool"}),", ",e.jsx("code",{children:"poison_anchor"})," / ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Stan uniquement (calendriers de rotation maintenus par le moteur hebdo) :"})," ",e.jsx("code",{children:"posts_weekly"}),", ",e.jsx("code",{children:"anchors_weekly"}),", ",e.jsx("code",{children:"exa_queries_weekly"}),"."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"CEO-only (wizard, no auto-mutation):"})," ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"angle_name"}),", ",e.jsx("code",{children:"weight"}),", ",e.jsx("code",{children:"apify_linkedin_jobs_calendar"}),", ",e.jsx("code",{children:"apify_crunchbase_calendar"}),", ",e.jsx("code",{children:"narrative_alpha.angles[id]"}),", ",e.jsx("code",{children:"narrative_alpha.buyer_context"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"CEO sets initial, weekly engine extends:"})," ",e.jsx("code",{children:"match_signal"}),", ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"exa_queries"}),", ",e.jsx("code",{children:"google_alert_queries"}),", ",e.jsx("code",{children:"apify_linkedin_posts_queries"}),", ",e.jsx("code",{children:"sectors_plain"}),", ",e.jsx("code",{children:"competitor_anchors"}),", ",e.jsx("code",{children:"priority_flags"}),", ",e.jsx("code",{children:"green_flags"}),", ",e.jsx("code",{children:"red_flags"}),", ",e.jsx("code",{children:"gold_anchor"})," / ",e.jsx("code",{children:"gold_anchor_pool"}),", ",e.jsx("code",{children:"poison_anchor"})," / ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Stan-only (rotation calendars maintained by the weekly engine):"})," ",e.jsx("code",{children:"posts_weekly"}),", ",e.jsx("code",{children:"anchors_weekly"}),", ",e.jsx("code",{children:"exa_queries_weekly"}),"."]})]})})]}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"Pour aller plus loin.":"Where to read more."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Pour les règles de mutation champ par champ (quel type de signal change quel champ à quel seuil), sautez à ",e.jsx("a",{href:"#s05-rules",children:"5.2.c — Règles de mutation par signal"}),". Pour la séquence complète des modules de qualification (jobs 1–3, modules 0–5, Avocat du Diable, Synergy Analyst), voir ",e.jsx("a",{href:"#s03-decision-modules",children:"Comment Stan décide"}),"."]}):e.jsxs(e.Fragment,{children:["For the field-by-field mutation rules (which signal type changes which field at which threshold), jump to ",e.jsx("a",{href:"#s05-rules",children:"5.2.c — Mutation rules per signal"}),". For the full qualification module sequence (jobs 1–3, modules 0–5, Devil's Advocate, Synergy Analyst), see ",e.jsx("a",{href:"#s03-decision-modules",children:"How Stan makes decisions"}),"."]})})]}),e.jsx("span",{id:"s01-json",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"1.3 Le JSON passe en production":"1.3 The JSON goes live"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Une fois validé, le JSON de la Fund Thesis est déployé dans Airtable. Le sourcing démarre le lendemain matin. Chaque étape en aval — requêtes de sourcing, scoring de qualification, modèle financier, évolution hebdomadaire — lit ce fichier unique. Changez la thèse, tout s’adapte au run suivant."}):e.jsx(e.Fragment,{children:"Once validated, the Fund Thesis JSON deploys to Airtable. Sourcing starts the next morning. Every downstream step — sourcing queries, qualification scoring, financial model, weekly evolution — reads from this single file. Change the thesis, everything adapts on the next run."})}),e.jsx("pre",{className:"doc-code",children:`{
3202  "version": "5.3",
3203  "fund_slug": "your-fund",
3204  "mode": "ma-strategic",
3205  "angles": [
3206    {
3207      "id": "a1",
3208      "name": "Logistics SaaS · EU consolidation",
3209      "sectors": ["logistics", "supply-chain"],
3210      "geographies": ["FR", "DE", "BE", "NL"],
3211      "stages": ["seed", "series-a"],
3212      "exa_queries": ["..."],
3213      "competitor_anchors": ["shippeo.com", "freightos.com"],
3214      "hard_filters": { ... },
3215      "narrative": "..."
3216    }
3217  ],
3218  "sourcing_config": { ... },
3219  "financial_model_config": { ... },
3220  "narrative_alpha": "..."
3221}`}),e.jsx(ss,{children:r?e.jsxs(e.Fragment,{children:["JSON de la Fund Thesis v5.4 — 8 clés de premier niveau. Stocké dans Airtable, éditable à tout moment par le CEO sur ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})," (validé Pydantic en direct)."]}):e.jsxs(e.Fragment,{children:["Fund Thesis JSON v5.4 — 8 top-level keys. Stored in Airtable, edited any time by the CEO on ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})," (Pydantic-validated live)."]})})]}),e.jsx(is,{step:ni[1]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"s02-engines",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"2.1 Stan lit ce que personne d’autre ne voit — 17 moteurs (15 quotidiens + 2 à la demande)":"2.1 Stan reads what nobody else sees — 17 engines (15 daily + 2 on-demand)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le moteur quotidien est un endpoint Modal, ",e.jsx("code",{children:"POST https://alexandre-79537--sourcing-agent-web-v3.modal.run"}),", déclenché par le scénario Make.com ",e.jsx("code",{children:"4950251"})," (module 1, auth Bearer, timeout 300 s). L’endpoint répond immédiatement avec ",e.jsx("code",{children:"status: started"})," et renvoie le rapport complet au webhook Make de façon asynchrone quand le balayage parallèle des moteurs se termine. Quinze moteurs tournent en parallèle dans ce seul appel, chacun calibré à vos angles de thè
3221se, chacun lisant un type de signal différent. ",e.jsx("strong",{children:"Exa Websets"})," est l’un des 15 : il se déclenche en async avec les 14 autres et rejoint les résultats quand les candidats « vérification d’abord » arrivent. Les moteurs de pool (Exa Semantic, LinkedIn Posts) tournent proportionnellement au poids ; les moteurs calendaires (LinkedIn Jobs, Crunchbase Search) activent un créneau par jour et par angle ; les moteurs always-on (Google News, Google Alerts, RSS, Pappers FR, CRT, GitHub, HN, Fundraising, Backfill) scannent tous les secteurs à l’échelle du fonds chaque matin. L’activation/désactivation d’un moteur est lue en direct dans la table Airtable ",e.jsx("code",{children:"engine_config"}),"."]}):e.jsxs(e.Fragment,{children:["The daily engine is a Modal endpoint, ",e.jsx("code",{children:"POST https://alexandre-79537--sourcing-agent-web-v3.modal.run"}),", kicked off by Make.com scenario ",e.jsx("code",{children:"4950251"})," (module 1, Bearer auth, 300 s timeout). The endpoint returns immediately with ",e.jsx("code",{children:"status: started"})," and posts the full report back to the Make webhook asynchronously when the parallel engine sweep finishes. Fifteen engines run in parallel inside that single call, each calibrated to your thesis angles, each reading a different signal type. ",e.jsx("strong",{children:"Exa Websets"})," is one of the 15: it fires async alongside the other 14 and joins the results when the verification-first candidates land. Pool engines (Exa Semantic, LinkedIn Posts) rotate weight-proportionally; calendar engines (LinkedIn Jobs, Crunchbase Search) activate one slot per day per angle; always-on engines (Google News, Google Alerts, RSS, Pappers FR, CRT, GitHub, HN, Fundraising, Backfill) scan all sectors fund-wide every morning. Engine on/off is read live from the Airtable ",e.jsx("code",{children:"engine_config"})," table."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Deux ",e.jsx("strong",{children:"moteurs à la demande"})," supplémentaires ne sont pas dans le pipeline quotidien — ils vivent derrière leurs propres routes Modal déclenchées depuis le dashboard analyste : ",e.jsx("strong",{children:"Manual Paste"})," évalue n’importe quelle URL ou nom de société contre le gate du fonds actif (mis en cache pour que les doublons reviennent instantanément), et ",e.jsx("strong",{children:"Find Similar to Qualified"})," prend n’importe quelle société CALL/CONSIDER/MONITOR/MATCH du portefeuille et lance une recherche de similarité Exa pour faire remonter 5 nouveaux candidats évalués. Même gate, même stockage Airtable que les moteurs quotidiens — ils apparaissent dans les mêmes rapports."]}):e.jsxs(e.Fragment,{children:["Two additional ",e.jsx("strong",{children:"on-demand engines"})," are not in the daily pipeline — they live behind their own Modal routes triggered from the analyst dashboard: ",e.jsx("strong",{children:"Manual Paste"})," evaluates any company URL or name against the active fund's gate (cached so duplicates return instantly), and ",e.jsx("strong",{children:"Find Similar to Qualified"})," takes any CALL/CONSIDER/MONITOR/MATCH company in the portfolio and runs Exa similarity search to surface 5 fresh evaluated candidates. Same gate, same Airtable storage as the daily engines — they show up in the same reports."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Ce que le callback async renvoie à Make : ",e.jsx("code",{children:"status"})," (success / error), ",e.jsx("code",{children:"leads_count"}),", ",e.jsx("code",{children:"email_html"})," (rapport HTML compact, < 200 Ko), ",e.jsx("code",{children:"full_logs"})," (tronqué à 500 Ko si plus gros), ",e.jsx("code",{children:"morning_publish"})," (statut de la publication du rapport quotidien). Le champ ",e.jsx("code",{children:"email_html"})," est ce qui alimente le pipeline daily-email ; ",e.jsx("code",{children:"full_logs"})," est archivé ; ",e.jsx("code",{children:"leads_count"})," pilote le branchement succès / erreur de Make."]}):e.jsxs(e.Fragment,{children:["What the async callback carries back to Make: ",e.jsx("code",{children:"status"})," (success / error), ",e.jsx("code",{children:"leads_count"}),", ",e.jsx("code",{children:"email_html"})," (compact HTML report, < 200 KB), ",e.jsx("code",{children:"full_logs"})," (truncated to 500 KB if larger), ",e.jsx("code",{children:"morning_publish"})," (status of the daily report publish). The ",e.jsx("code",{children:"email_html"})," field is what feeds the daily-email pipeline; ",e.jsx("code",{children:"full_logs"})," is archived; ",e.jsx("code",{children:"leads_count"})," drives Make's success / error branching."]})}),e.jsx("div",{className:"engine-list",children:A5.map(l=>{const d=r?D5(l):l;return e.jsxs("div",{className:"engine",children:[e.jsx("span",{className:"engine-emoji",children:l.emoji}),e.jsxs("div",{children:[e.jsx("div",{className:"engine-name",children:d.name}),e.jsx("div",{className:"engine-detail",children:d.detail})]})]},l.name)})}),e.jsx("span",{id:"s02-filter",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"2.2 Stan filtre sans pitié — votre thèse, vos lignes rouges":"2.2 Stan filters ruthlessly — your thesis, your hard stops"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Chaque candidat passe un gate strict unique — calibré à votre Fund Thesis, pas un filtre générique. Mauvaise géographie, mauvais stade, mauvais modèle : rejet instantané. Pas de temps perdu sur le bruit."}):e.jsx(e.Fragment,{children:"Every candidate passes a single str
3221ict gate — calibrated to your Fund Thesis, not a generic filter. Wrong geography, wrong stage, wrong model: instant rejection. No time wasted on noise."})}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"Un seul passage, pas d’agrégation.":"One pass, no aggregation."}),e.jsx("p",{children:r?"Le gate tourne par-candidat et par-angle. Une cible rejetée par l’Angle 1 peut tout de même matcher l’Angle 3.":"The gate runs per-candidate per-angle. A target rejected by Angle 1 may still match Angle 3."})]}),e.jsx("span",{id:"s02-dashboard",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"2.3 Les matchs arrivent dans votre dashboard":"2.3 Matches land in your dashboard"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Chaque MATCH est évalué contre vos angles de thèse et arrive dans votre Sourcing Dashboard — filtrable par secteur, géographie, type de signal et date. Les matchs validés alimentent immédiatement le moteur de qualification. Sourcé le matin, qualifié pour 16h."}):e.jsx(e.Fragment,{children:"Every MATCH is evaluated against your thesis angles and lands in your Sourcing Dashboard — filterable by sector, geography, signal type, and date. Validated matches immediately feed the qualification engine. Sourced in the morning, qualified by 4 PM."})}),e.jsx(ss,{children:r?"Sourcing Dashboard — tous les matchs, filtrables par angle, secteur, géographie et type de signal. Mis à jour quotidiennement.":"Sourcing Dashboard — all matches, filterable by angle, sector, geography, and signal type. Updated daily."})]}),e.jsx(is,{step:ni[2]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"s03-memo",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Stan rédige le mémo — Automatique · 0 min":"Stan writes the memo — Automatic · 0 min"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque MATCH déclenche un mémo d’investissement complet calibré à votre thèse. Le mémo est assemblé par l’endpoint Modal ",e.jsx("code",{children:"POST /build-memo"})," (dans ",e.jsx("code",{children:"modal_app.py"}),") — orchestré par Make BP2 (scénario ",e.jsx("code",{children:"3869328"}),", module ",e.jsx("code",{children:"1752"}),"). Le modèle financier (P&L sur 5 ans, unit economics, matrices de sensibilité, cap table) est construit par un endpoint séparé ",e.jsx("code",{children:"/build-model"})," (module 1687) et ses 18 tableaux HTML pré-rendus sont transmis à /build-memo pour injection telle quelle. Le classeur Excel est aussi un sous-produit de /build-model — exposé dans le mémo via le bouton « 📥 Download Interactive Excel Model »."]}):e.jsxs(e.Fragment,{children:["Every MATCH triggers a full investment memo calibrated to your thesis. The memo is assembled by the Modal endpoint ",e.jsx("code",{children:"POST /build-memo"})," (in ",e.jsx("code",{children:"modal_app.py"}),") — orchestrated by Make BP2 (scenario ",e.jsx("code",{children:"3869328"}),", module ",e.jsx("code",{children:"1752"}),"). The financial model (P&L 5-year, unit economics, sensitivity matrices, cap table) is built by a separate endpoint ",e.jsx("code",{children:"/build-model"}),' (module 1687) and its 18 pre-rendered HTML tables are forwarded into /build-memo for verbatim injection. The Excel workbook is also a byproduct of /build-model — exposed in the memo via the "📥 Download Interactive Excel Model" button.']})}),e.jsx("h4",{className:"doc-h4",children:r?"Ce que /build-memo fait réellement":"What /build-memo actually does"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Accepte à la fois du JSON et du form-data multipart (Make utilise le form-data car il échappe automatiquement la sortie LLM multi-lignes, supprimant le besoin d’échapper le JSON à la main). Le payload porte : ",e.jsx("strong",{children:"8 Parts générées par LLM"})," + ",e.jsx("strong",{children:"18 tableaux HTML financiers"})," (depuis /build-model) + plusieurs ",e.jsx("strong",{children:"champs de données brutes"})," qui contournent le LLM et sont rendus côté serveur. Ensuite :"]}):e.jsxs(e.Fragment,{children:["Accepts both JSON and multipart form-data (Make uses form-data because it auto-escapes multi-line LLM output, removing the need to JSON-escape manually). The payload carries: ",e.jsx("strong",{children:"8 LLM-generated Parts"})," + ",e.jsx("strong",{children:"18 financial HTML tables"})," (from /build-model) + several ",e.jsx("strong",{children:"raw data fields"})," that bypass the LLM and render server-side. Then:"]})}),e.jsx("ol",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Assainit chaque Part"})," via ",e.jsx("code",{children:"_sanitize_part()"})," : valide l’équilibre des balises HTML, retire les ",e.jsx("code",{children:"</body>"})," / ",e.jsx("code",{children:"</html>"})," / ",e.jsx("code",{children:"</div>"})," parasites, consigne chaque correction dans le log ",e.jsx("code",{children:"changes"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Rend la Part 2 (Value Chain) côté serveur"})," quand le JSON ",e.jsx("code",{children:"value_chain_data_raw"})," est fourni — court-circuite entièrement la Part 2 du LLM, supprime le mode d’échec acteur-perdu / colonne-orpheline. Retombe sur la Part 2 du LLM en cas d’erreur de parsing."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Découpe la Part 6 (bloc financier)"})," sur les marqueurs ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," et ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"})," émis par le module 1702, enveloppe chaque bloc interne dans ",e.jsx("code",{children:'<div class="section-container" id="financial-forecast | roi-analysis | cap-table">'})," avec le ",e.jsx("code",{children:'<h2 class="section-title">'})," traduit. Les marqueurs manquants se dégradent proprement (avertissement émis)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Normalise les alias de placeholder"})," que le LLM tronque parfois (ex. ",e.jsx("code",{children:"[[[REPLACE_WITH_ASS_HTML]]]"})," → ",e.jsx("code",{children:"[[[REPLACE_WITH_ASSUMPTIONS_HTML]]]"}),")."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Substitue chaque ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})]})," par le tableau correspondant du form-data. 18 placeholders × 18 tableaux."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Enveloppe tout placeholder orphelin"})," (un token inconnu inventé par le LLM) dans un encart jaune « ⚠ Tableau attendu non injecté (","{","orphan","}","). Voir l'Excel pour le détail. » — le CEO voit le manque plutôt qu’une chaîne de placeholder littérale."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Injecte des sections telles quelles depuis les champs bruts"})," quand fournis : ",e.jsx("code",{children:"gp_comment_raw"})," remplace la section Conviction ; ",e.jsx("code",{children:"synergy_data_raw"})," re-rend le Synergies Deep Dive côté serveur (les LLM tronquent au-delà de 3 items) ; ",e.jsx("code",{children:"profund_quick_analysis_claude_raw / *_2_raw / profund_full_analysis_claude_raw"})," remplacent les blocs Company / Market Summary ; les chaînes brutes ",e.jsx("code",{children:"value_prop_raw / product_raw / pricing_raw / team_raw / ceo_raw / swot_*_raw / defense_raw / offense_raw / kill_shot_raw / remediation_raw / fund_thesis_suggestion_raw"})," pilotent le Company Deep Dive, le SWOT, le plan d’action et l’External Growth Strategy."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Retire les sections gatées selon ",e.jsx("code",{children:"memo_type"})]})," (fast / quick / detailed)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Publie"})," sur GitHub (repo ",e.jsx("code",{children:"proplace-co/wargame"}),", fichier ",e.jsxs("code",{children:["{","slug","}","-v2.html"]}),", servi sur ",e.jsxs("code",{children:["https://analysis.proplace.co/","{","slug","}","-v2"]}),") et synchronise le verdict vers Airtable via ",e.jsx("code",{children:"_sync_status_profund_from_html()"}),"."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Sanitises every Part"})," via ",e.jsx("code",{children:"_sanitize_part()"}),": validates HTML tag balance, strips stray ",e.jsx("code",{children:"</body>"})," / ",e.jsx("code",{children:"</html>"})," / extra ",e.jsx("code",{children:"</div>"}),", records every fix in the ",e.jsx("code",{children:"changes"})," log."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Server-renders Part 2 (Value Chain)"})," when ",e.jsx("code",{children:"value_chain_data_raw"})," JSON is supplied — bypasses the LLM Part 2 entirely, kills the dropped-actor / orphan-column failure mode. Falls back to the LLM Part 2 on parse error."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Splits Part 6 (financial block)"})," on ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," and ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"})," markers emitted by module 1702, wraps each inner block in ",e.jsx("code",{children:'<div class="section-container" id="financial-forecast | roi-analysis | cap-table">'})," with the translated ",e.jsx("code",{children:'<h2 class="section-title">'}),". Missing markers degrade gracefully (warning emitted)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Normalises placeholder aliases"})," the LLM occasionally truncates (e.g. ",e.jsx("code",{children:"[[[REPLACE_WITH_ASS_HTML]]]"})," → ",e.jsx("code",{children:"[[[REPLACE_WITH_ASSUMPTIONS_HTML]]]"}),")."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Substitutes every ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})]})," with the corresponding table from the form-data. 18 placeholders × 18 tables."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Wraps any orphan placeholder"}),' (an unknown token the LLM invented) in a yellow "⚠ Tableau attendu non injecté (',"{","orphan","}",`). Voir l'Excel pour le détail." notice — the CEO sees the gap instead of a literal placeholder string.`]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Inject verbatim sections from raw fields"})," when provided: ",e.jsx("code",{children:"gp_comment_raw"})," swaps the Conviction section; ",e.jsx("code",{children:"synergy_data_raw"})," re-renders the Synergies Deep Dive server-side (LLMs truncate past 3 items); ",e.jsx("code",{children:"profund_quick_analysis_claude_raw / *_2_raw / profund_full_analysis_claude_raw"})," swap the Company / Market Summary blocks; the ",e.jsx("code",{children:"value_prop_raw / product_raw / pricing_raw / team_raw / ceo_raw / swot_*_raw / defense_raw / offense_raw / kill_shot_raw / remediation_raw / fund_thesis_suggestion_raw"})," raw strings drive the Company Deep Dive, SWOT, Action Plan and External Growth Strategy."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Strips gated sections per ",e.jsx("code",{children:"memo_type"})]})," (fast / quick / detailed)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Publishes"})," to GitHub (",e.jsx("code",{children:"proplace-co/wargame"})," repo, file ",e.jsxs("code",{children:["{","slug","}","-v2.html"]}),", served at ",e.jsxs("code",{children:["https://analysis.proplace.co/","{","slug","}","-v2"]}),") and syncs the verdict back to Airtable via ",e.jsx("code",{children:"_sync_status_profund_from_html()"}),"."]})]})}),e.jsx("h4",{className:"doc-h4",children:r?"Les 8 Parts narratives — chacune produite par un module LLM BP2 distinct":"The 8 narrative Parts — each produced by a separate BP2 LLM module"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Part"}),e.jsx("th",{children:r?"Module Make (modèle)":"Make module (model)"}),e.jsx("th",{children:r?"Ce qu’elle rend":"What it renders"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_1"})}),e.jsxs("td",{children:["1306 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?"Nav de la sidebar, badge d’en-tête, résumé du verdict, Market Sizing (TAM/SAM/SOM).":"Sidebar nav, header badge, verdict summary, Market Sizing (TAM/SAM/SOM)."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_2"})}),e.jsxs("td",{children:["1308 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})," ",r?e.jsxs(e.Fragment,{children:["(rendable côté serveur quand ",e.jsx("code",{children:"value_chain_data_raw"})," est fourni)"]}):e.jsxs(e.Fragment,{children:["(server-renderable when ",e.jsx("code",{children:"value_chain_data_raw"})," is supplied)"]})]}),e.jsx("td",{children:r?"Market Summary + Value Chain sur 6 étapes avec cartes d’acteurs.":"Market Summary + Value Chain across 6 stages with actor cards."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_3a"})}),e.jsx("td",{children:r?"suite de la chaîne 1308":"continuation of 1308 chain"}),e.jsx("td",{children:r?"Suite Market + intro Competition.":"Market continuation + Competition intro."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_3b"})}),e.jsxs("td",{children:["1653 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?"Competition Magic Quadrant, M&amp;
3221A Quadrant, scénarios stratégiques.":"Competition Magic Quadrant, M&amp;A Quadrant, strategic scenarios."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_4"})}),e.jsxs("td",{children:["1314 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?"Company Deep Dive, SWOT, plan d’action, synergies custom.":"Company Deep Dive, SWOT, Action Plan, custom synergies."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_5"})}),e.jsxs("td",{children:["1316 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?"Suite (mémos longs) + intro du modèle financier.":"Continuation (long memos) + Financial Model intro."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_6"})}),e.jsxs("td",{children:["1702 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Financial Forecast / ROI Analysis / Cap Table — 3 blocs de contenu internes séparés par ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," et ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"}),", chacun portant les placeholders ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})," pour les 18 tableaux financiers."]}):e.jsxs(e.Fragment,{children:["Financial Forecast / ROI Analysis / Cap Table — 3 inner content blocks separated by ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," and ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"}),", each carrying the ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})," placeholders for the 18 financial tables."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"part_9"})}),e.jsxs("td",{children:["1703 · ",e.jsx("code",{children:"google/gemini-2.5-flash"})]}),e.jsx("td",{children:r?"Sources, citations inline, clôture du mémo.":"Sources, inline citations, memo closing."})]})]})]}),e.jsxs("div",{className:"memo-grid",children:[e.jsxs("div",{className:"memo-col",children:[e.jsx("div",{className:"memo-h",children:r?"Marché":"Market"}),e.jsxs("ul",{className:"doc-list",children:[e.jsx("li",{children:"Market Sizing (TAM/SAM/SOM)"}),e.jsx("li",{children:r?"Value Chain & acteurs (6 étapes)":"Value Chain & Players (6 stages)"}),e.jsx("li",{children:"Competition Magic Quadrant"}),e.jsx("li",{children:r?"M&A Quadrant & scénarios":"M&A Quadrant & Scenarios"}),e.jsx("li",{children:r?"Scénarios stratégiques & synergies":"Strategic Scenarios & Synergies"})]})]}),e.jsxs("div",{className:"memo-col",children:[e.jsx("div",{className:"memo-h",children:r?"Société":"Company"}),e.jsxs("ul",{className:"doc-list",children:[e.jsx("li",{children:r?"Proposition de valeur & produit":"Value Proposition & Product"}),e.jsx("li",{children:"Business Model"}),e.jsx("li",{children:r?"Équipe & profil du CEO":"Team & CEO Profile"}),e.jsx("li",{children:r?"Analyse SWOT":"SWOT Analysis"}),e.jsx("li",{children:r?"Plan d’action":"Action Plan"})]})]}),e.jsxs("div",{className:"memo-col",children:[e.jsx("div",{className:"memo-h",children:"Synergies"}),e.jsx("ul",{className:"doc-list",children:e.jsx("li",{children:r?e.jsxs(e.Fragment,{children:["Synergies chiffrées vs votre portefeuille (rendues côté serveur depuis ",e.jsx("code",{children:"synergy_data_raw"}),")"]}):e.jsxs(e.Fragment,{children:["Quantified synergies vs your portfolio (server-rendered from ",e.jsx("code",{children:"synergy_data_raw"}),")"]})})})]}),e.jsxs("div",{className:"memo-col",children:[e.jsx("div",{className:"memo-h",children:r?"Financier & verdict":"Financial & Verdict"}),e.jsxs("ul",{className:"doc-list",children:[e.jsx("li",{children:r?e.jsxs(e.Fragment,{children:["Conviction finale (injectée côté serveur depuis ",e.jsx("code",{children:"gp_comment_raw"}),")"]}):e.jsxs(e.Fragment,{children:["Final Conviction (server-injected from ",e.jsx("code",{children:"gp_comment_raw"}),")"]})}),e.jsx("li",{children:r?"Financial Forecast (P&L 5 ans, cash flow)":"Financial Forecast (5y P&L, cash flow)"}),e.jsx("li",{children:"ROI Analysis (IRR · MOIC)"}),e.jsx("li",{children:r?"Bouton de téléchargement Excel":"Excel download button"}),e.jsx("li",{children:"Sources"})]})]})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Analyse en un clic.":"One-click analysis."}),e.jsx("p",{children:r?"Collez n’importe quelle URL ou nom de société. Stan exécute exactement la même chaîne /build-model + /build-memo contre votre Fund Thesis à la demande — hors du flux automatisé, en quelques minutes.":"Paste any URL or company name. Stan runs the exact same /build-model + /build-memo chain against your Fund Thesis on demand — outside the automated flow, in minutes."})]}),e.jsx("span",{id:"s03-directives",className:"doc-anchor"}),e.jsxs("h3",{className:"doc-h3",children:[r?"Pipeline du mémo (D01→D09)":"Memo pipeline (D01→D09)"," ",e.jsx("span",{className:"doc-tag",children:"MAKE PROMPT ZONE"})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le mémo est généré par 9 parties de directive séquentielles (D01→D09) tournant dans Make. Chaque partie a un rôle spécifique ; le type de mémo (",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," / ",e.jsx("code",{children:"detailed"}),") décide quels blocs s’affichent conditionnellement."]}):e.jsxs(e.Fragment,{children:["The memo is generated by 9 sequential directive parts (D01→D09) running in Make. Each part has a specific role; the memo type (",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," / ",e.jsx("code",{children:"detailed"}),") decides which blocks render conditionally."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Directive"}),e.jsx("th",{children:r?"Rôle":"Role"}),e.jsx("th",{children:r?"Sortie":"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D01"})}),e.jsx("td",{children:r?"Extraction de données telle quelle (TOTAL RECALL)":"Verbatim data extraction (TOTAL RECALL)"}),e.jsx("td",{children:r?"Schéma JSON : meta, marché, value chain, competition, scénarios, synergies, société":"JSON schema: meta, market, value chain, competition, scenarios, synergies, company"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D02"})}),e.jsx("td",{children:r?"Générateur HTML partie 1 — Sidebar & en-tête + Mar
3221ket Sizing":"HTML generator part 1 — Sidebar & Header + Market Sizing"}),e.jsx("td",{children:r?"En-tête HTML, nav de la sidebar, badge de verdict, bloc market sizing":"HTML head, sidebar nav, verdict badge, market sizing block"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D03"})}),e.jsx("td",{children:r?"Market Summary & Value Chain (6 étapes S1–S6)":"Market Summary & Value Chain (6 stages S1–S6)"}),e.jsx("td",{children:r?"Section marché HTML + cartes d’acteurs sur la value chain":"HTML market section + actor cards across value chain"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D04"})}),e.jsx("td",{children:r?"Competition, scénarios & synergies":"Competition, Scenarios & Synergies"}),e.jsx("td",{children:r?"Magic quadrant HTML, M&A quadrant, scénarios stratégiques":"HTML magic quadrant, M&A quadrant, strategic scenarios"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D05"})}),e.jsx("td",{children:r?"Company Summary, SWOT, plan d’action, synergies custom, sortie du modèle financier":"Company Summary, SWOT, Action Plan, Custom Synergies, Financial Model output"}),e.jsx("td",{children:r?"Section société HTML + grille SWOT + plan d’action 100 jours":"HTML company section + SWOT grid + 100-day action plan"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D06"})}),e.jsx("td",{children:r?"Suite de D05 (mémos longs)":"Continuation of D05 (long memos)"}),e.jsx("td",{children:r?"Suite HTML":"HTML continuation"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D07"})}),e.jsx("td",{children:r?"Prévision financière — 10 blocs":"Financial forecast — 10 blocks"}),e.jsx("td",{children:"P&L, cash flow, unit economics, returns"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D08"})}),e.jsx("td",{children:r?"Analyse de ROI":"ROI analysis"}),e.jsx("td",{children:r?"IRR · MOIC · matrice de sensibilité":"IRR · MOIC · sensitivity matrix"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D09"})}),e.jsx("td",{children:r?"Sources & pied de page":"Sources & footer"}),e.jsx("td",{children:r?"Citations inline, liste des sources":"Inline citations, source list"})]})]})]}),e.jsx("span",{id:"s03-financial",className:"doc-anchor"}),e.jsxs("h3",{className:"doc-h3",children:[r?"Modèle financier — Directive 07 · sensible à la thèse":"Financial model — Directive 07 · Thesis-aware"," ",e.jsx("span",{className:"doc-tag",children:"MAKE PROMPT ZONE"})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La Directive 07 est le modèle financier sensible à la thèse. Ce n’est PAS un tableur générique. C’est un endpoint Modal Python, ",e.jsx("code",{children:"POST /build-model"}),", invoqué depuis Make.com BP2 (scénario 3869328) par le module ",e.jsx("strong",{children:"1687"})," à ",e.jsx("code",{children:"https://alexandre-79537--sourcing-agent-fastapi-app.modal.run/build-model"})," avec un timeout de 300 s et auth Bearer. Le payload est construit en amont par les modules ",e.jsx("strong",{children:"1656 → 1693 → 1707"}),". L’endpoint applique des formules déterministes par mode (VC / LBO / M&A stratégique) et retourne un ",e.jsx("code",{children:"post_verdict"})," qui ",e.jsx("strong",{children:"confirme, nuance, challenge ou invalide"})," le verdict qualitatif du GP Synthétique. Il ne rend pas le CALL/PASS adressé au CEO — il le stress-teste."]}):e.jsxs(e.Fragment,{children:["Directive 07 is the thesis-aware financial model. It is NOT a generic spreadsheet. It is a Modal Python endpoint, ",e.jsx("code",{children:"POST /build-model"}),", invoked from Make.com BP2 (scenario 3869328) by module ",e.jsx("strong",{children:"1687"})," at ",e.jsx("code",{children:"https://alexandre-79537--sourcing-agent-fastapi-app.modal.run/build-model"})," with a 300 s timeout and Bearer auth. The payload is built upstream by modules ",e.jsx("strong",{children:"1656 → 1693 → 1707"}),". The endpoint applies deterministic formulas per mode (VC / LBO / M&A Strategic) and returns a ",e.jsx("code",{children:"post_verdict"})," that either ",e.jsx("strong",{children:"confirms, nuances, challenges or invalidates"})," the qualitative verdict from the GP Synthetique. It does not render the CEO-facing CALL/PASS — it stress-tests it."]})}),e.jsx("h4",{className:"doc-h4",children:r?"Chaîne d’appels — Make 1656 → 1693 → 1707 → 1687 → 1702 → 1752":"Call chain — Make 1656 → 1693 → 1707 → 1687 → 1702 → 1752"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Module"}),e.jsx("th",{children:r?"Rôle":"Role"}),e.jsx("th",{children:r?"Sortie":"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1656"})," · OpenRouter ",e.jsx("code",{children:"x-ai/grok-4.3"})," (json_mode, temperature 1, fallback on)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Financial Signal Extractor."})," Lit la prose qualitative accumulée en amont (pitch deck, site web, business model, page pricing, équipe, news, analyse profund) et produit un JSON structuré de signaux numériques sous une discipline stricte ",e.jsx("strong",{children:"source-ou-null"})," : chaque champ numérique doit citer une citation telle quelle dans un champ ",e.jsx("code",{children:"_source"}
3221)," apparié, ou être null. Interdit d’inventer, estimer, calculer ou extrapoler des nombres absents de l’entrée."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Financial Signal Extractor."})," Reads the qualitative prose accumulated upstream (pitch deck, website, business model, pricing page, team, news, profund analysis) and produces a structured JSON of numeric signals under a strict ",e.jsx("strong",{children:"source-or-null"})," discipline: every numeric field must cite a verbatim quote in a paired ",e.jsx("code",{children:"_source"})," field, or be null. Forbids inventing, estimating, computing or extrapolating numbers absent from the input."]})}),e.jsxs("td",{children:[e.jsx("code",{children:"arr_triangulation_eur"})," + method ∈ ","{"," ",e.jsx("code",{children:"pitch_deck_direct"})," · ",e.jsx("code",{children:"public_revenue_filing"})," · ",e.jsx("code",{children:"news_revenue_quote"})," · ",e.jsx("code",{children:"pricing_x_customers"})," · ",e.jsx("code",{children:"funding_implied"})," · ",e.jsx("code",{children:"no_source_available"})," ","}",", ",e.jsx("code",{children:"pricing_plan_low/high_eur_mo"}),", ",e.jsx("code",{children:"customer_count_estimate"}),", ",e.jsx("code",{children:"latest_valuation_eur"})," + ",e.jsx("code",{children:"last_funding_date"}),", ",e.jsx("code",{children:"arr_from_pitch"}),", ",e.jsx("code",{children:"annual_churn_estimate_pct"}),", ",e.jsx("code",{children:"nrr_estimate_pct"}),", ",e.jsx("code",{children:"logo_retention_pct"}),", ",e.jsx("code",{children:"revenue_growth_estimate_pct"}),", ",e.jsx("code",{children:"gross_margin_estimate_pct"}),", ",e.jsx("code",{children:"headcount_from_web"}),", ",e.jsx("code",{children:"opex_efficiency_signal"}),", green-flag ",e.jsx("code",{children:"signals[]"}),", and a ",e.jsx("code",{children:"synergy_signals"})," block (cross_sell_pct, upsell_pct, infra_saving_pct, ga_saving_pct, rd_sharing_pct, geo_expansion_arr)."]})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1693"})," · ",e.jsx("code",{children:"json:ParseJSON"})]}),e.jsx("td",{children:r?"Parse la chaîne JSON de 1656 pour que ses champs soient adressables comme variables en aval.":"Parses 1656's JSON string so its fields are addressable as variables downstream."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Même forme que 1656, désormais utilisable comme ",e.jsxs("code",{children:["{{","1693.arr_triangulation_eur","}}"]}),", etc."]}):e.jsxs(e.Fragment,{children:["Same shape as 1656, now usable as ",e.jsxs("code",{children:["{{","1693.arr_triangulation_eur","}}"]}),", etc."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1707"})," · ",e.jsx("code",{children:"json:CreateJSON"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Assemble le corps de la requête ",e.jsx("code",{children:"/build-model"}),"."]}):e.jsxs(e.Fragment,{children:["Assembles the body of the ",e.jsx("code",{children:"/build-model"})," request."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Six clés de premier niveau : ",e.jsx("code",{children:"memo"})," (fast · quick · detailed), ",e.jsx("code",{children:"company"})," ","{"," name, sector, ",e.jsx("code",{children:"raw_signals"}),", ",e.jsx("code",{children:"structured_signals"})," ","}",", ",e.jsx("code",{children:"deal_params"})," ","{"," debt_eur, entry_ev_eur, ownership_pct, check_size_eur ","}",", ",e.jsx("code",{children:"fund_thesis"})," (tableau complet ",e.jsx("code",{children:"fund_thesis (from fund_type 2)"}),"), ",e.jsx("code",{children:"gp_comment_raw"})," = ","{{","1201.gp_comment","}}",", ",e.jsx("code",{children:"synergy_signals"}),", ",e.jsx("code",{children:"financial_model_setup"})," = ","{{","1201.financial_model_setup","}}","."]}):e.jsxs(e.Fragment,{children:["Six top-level keys: ",e.jsx("code",{children:"memo"})," (fast · quick · detailed), ",e.jsx("code",{children:"company"})," ","{"," name, sector, ",e.jsx("code",{children:"raw_signals"}),", ",e.jsx("code",{children:"structured_signals"})," ","}",", ",e.jsx("code",{children:"deal_params"})," ","{"," debt_eur, entry_ev_eur, ownership_pct, check_size_eur ","}",", ",e.jsx("code",{children:"fund_thesis"})," (full ",e.jsx("code",{children:"fund_thesis (from fund_type 2)"})," array), ",e.jsx("code",{children:"gp_comment_raw"})," = ","{{","1201.gp_comment","}}",", ",e.jsx("code",{children:"synergy_signals"}),", ",e.jsx("code",{children:"financial_model_setup"})," = ","{{","1201.financial_model_setup","}}","."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1687"})," · ",e.jsx("code",{children:"http:MakeRequest"})," POST ",e.jsx("code",{children:"/build-model"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Envoie la requête à l’endpoint Modal ; body = ",e.jsxs("code",{children:["{{","1707.json","}}"]}),", auth Bearer, timeout 300 s."]}):e.jsxs(e.Fragment,{children:["Fires the request to the Modal endpoint; body = ",e.jsxs("code",{children:["{{","1707.json","}}"]}),", Bearer auth, 300 s timeout."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Retourne le JSON du modèle : 20 blocs HTML pré-rendus (voir plus bas), le verdict quant factuel ",e.jsx("code",{children:"thesis_alignment.financial_verdict"})," ∈ ","{"," HURDLES_PASSED · OUT_OF_HURDLE (stratégique) · CONFIRMED · MONITOR · CONSIDER · PASS (VC/LBO) ","}",", ",e.jsx("code",{children:"entry_validation"}),", ",e.jsx("code",{children:"deal_params_used"}),", ",e.jsx("code",{children:"returns"})," (dont ",e.jsx("code",{children:"hurdles_passed.all"}),", ",e.jsx("code",{children:"moic_total"}),", ",e.jsx("code",{children:"irr_total_pct"}),", ",e.jsx("code",{children:"gp_decision_used"}),", ",e.jsx("code",{children:"gp_conviction_coefficient"}),"), ",e.jsx("code",{children:"unit_economics"}),", ",e.jsx("code",{children:"projections"})," (15 ans), ",e.jsx("code",{children:"headcount_plan"}),", ",e.jsx("code",{children:"comp_data"}),", ",e.jsx("code",{children:"arr_data"}),", ",e.jsx("code",{children:"overrides_log"}),", ",e.jsx("code",{children:"excel_url"}),", et un objet structuré ",e.jsx("code",{children:"post_model_verdict"})," — voir l’encart « ce qui est mort vs vivant dans la réponse » plus bas."]}):e.jsxs(e.Fragment,{children:["Returns the model JSON: 20 pre-rendered HTML blocks (see below), the factual quant verdict ",e.jsx("code",{children:"thesis_alignment.financial_verdict"})," ∈ ","{"," HURDLES_PASSED · OUT_OF_HURDLE (strategic) · CONFIRMED · MONITOR · CONSIDER · PASS (VC/LBO) ","}",", ",e.jsx("code",{children:"entry_validation"}),", ",e.jsx("code",{children:"deal_params_used"}),", ",e.jsx("code",{children:"returns"})," (incl. ",e.jsx("code",{children:"hurdles_passed.all"}),", ",e.jsx("code",{children:"moic_total"}),", ",e.jsx("code",{children:"irr_total_pct"}),", ",e.jsx("code",{children:"gp_decision_used"}),", ",e.jsx("code",{children:"gp_conviction_coefficient"}),"), ",e.jsx("code",{children:"unit_economics"}),", ",e.jsx("code",{children:"projections"})," (15-year), ",e.jsx("code",{children:"headcount_plan"}),", ",e.jsx("code",{children:"comp_data"}),", ",e.jsx("code",{children:"arr_data"}),", ",e.jsx("code",{children:"overrides_log"}),", ",e.jsx("code",{children:"excel_url"}),", and a structured ",e.jsx("code",{children:"post_model_verdict"}),` object — see the "what's dead vs alive in the response" callout below.`]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1702"})," · OpenRouter ",e.jsx("code",{children:"google/gemini-3-flash-preview"})," (temperature 1, json_mode off)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Part 6 — Financial Intelligence Renderer."})," Écrit l’enveloppe HTML narrative autour des tableaux pré-construits. Lit depuis 1687 : ",e.jsx("code",{children:"status"})," (gate HARD_BLOCK), ",e.jsx("code",{children:"mode"})," / ",e.jsx("code",{children:"match_mode"})," / ",e.jsx("code",{children:"fallback_mode"}),", ",e.jsx("code",{children:"thesis_alignment.financial_verdict"}),", les champs numériques factuels (entry_ev_m, moic_total, irr_total_pct, hurdle_*, hurdles_passed.all, gp_decision_used, gp_conviction_coefficient, capture_rate_applied, risk_discount_applied, integration_cost_m, wacc, standalone_value_m, syn_net_value_m, acquisition_value_m, entry_ev_max_payable_m, arr_data_gap), et chaque ",e.jsx("code",{children:"html_tables.*"})," comme chaîne. Émet 3 blocs de contenu contigus séparés par ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," et ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"}),", chacun contenant des placeholders ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"}),"."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Part 6 — Financial Intelligence Renderer."})," Writes the narrative HTML wrapper around the pre-built tables. Reads from 1687: ",e.jsx("code",{children:"status"})," (HARD_BLOCK gate), ",e.jsx("code",{children:"mode"})," / ",e.jsx("code",{children:"match_mode"})," / ",e.jsx("code",{children:"fallback_mode"}),", ",e.jsx("code",{children:"thesis_alignment.financial_verdict"}),", the factual numeric fields (entry_ev_m, moic_total, irr_total_pct, hurdle_*, hurdles_passed.all, gp_decision_used, gp_conviction_coefficient, capture_rate_applied, risk_discount_applied, integration_cost_m, wacc, standalone_value_m, syn_net_value_m, acquisition_value_m, entry_ev_max_payable_m, arr_data_gap), and every ",e.jsx("code",{children:"html_tables.*"})," as a string. Emits 3 contiguous content blocks separated by ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," and ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"}),", each containing ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})," placeholders."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"part_6"})," = bloc forecast + ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," + bloc ROI + ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"})," + bloc cap-table. Ne consomme ",e.jsx("strong",{children:"PAS"})," le ",e.jsx("code",{children:"post_model_verdict"})," structuré ni ",e.jsx("code",{children:"conviction_status"})," — seulement le HTML rendu."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"part_6"})," = forecast block + ",e.jsx("code",{children:"<!-- SPLIT_ROI -->"})," + ROI block + ",e.jsx("code",{children:"<!-- SPLIT_CAP -->"})," + cap-table block. Does ",e.jsx("strong",{children:"NOT"})," consume the structured ",e.jsx("code",{children:"post_model_verdict"})," or ",e.jsx("code",{children:"conviction_status"})," — only the rendered HTML."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"1752"})," · ",e.jsx("code",{children:"http:MakeRequest"})," POST ",e.jsx("code",{children:"/build-memo"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["POST vers ",e.jsx("code",{children:"/build-memo"})," en form-data : chaque Part (",e.jsx("code",{children:"part_1"})," … ",e.jsx("code",{children:"part_9"}),") générée par le LLM narratif BP2 respectif (1702 en fait partie), ",e.jsx("code",{children:"css_shell"}),", ",e.jsx("code",{children:"company_name"}),", ",e.jsx("code",{children:"slug"}),", ",e.jsx("code",{children:"memo_type"}),", plus les 20 ",e.jsx("code",{children:"html_tables.*"})," de 1687 comme champs séparés. ",e.jsx("code",{children:"/build-memo"})," assainit chaque Part, découpe part_6 sur les marqueurs ",e.jsx("code",{children:"SPLIT_ROI"})," / ",e.jsx("code",{children:"SPLIT_CAP"})," et enveloppe chaque bloc dans son ",e.jsx("code",{children:"section-container"}),", normalise les alias de placeholder tronqués, substitue chaque ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"})," par la valeur du tableau, fait apparaître tout placeholder orphelin dans un encart jaune « tableau attendu non injecté », et publie le HTML assemblé vers ",e.jsx("code",{children:"proplace-co/memos"})," sur GitHub."]}):e.jsxs(e.Fragment,{children:["Posts to ",e.jsx("code",{children:"/build-memo"})," with form-data: each Part (",e.jsx("code",{children:"part_1"})," … ",e.jsx("code",{children:"part_9"}),") generated by the respective BP2 narrative LLM (1702 is one of them), ",e.jsx("code",{children:"css_shell"}),", ",e.jsx("code",{children:"company_name"}),", ",e.jsx("code",{children:"slug"}),", ",e.jsx("code",{children:"memo_type"}),", plus all 20 ",e.jsx("code",{children:"html_tables.*"})," from 1687 as separate fields. ",e.jsx("code",{children:"/build-memo"})," sanitises each Part, splits part_6 on the ",e.jsx("code",{children:"SPLIT_ROI"})," / ",e.jsx("code",{children:"SPLIT_CAP"}
3221)," markers and wraps each block in its ",e.jsx("code",{children:"section-container"}),", normalises truncated placeholder aliases, substitutes every ",e.jsx("code",{children:"[[[REPLACE_WITH_*_HTML]]]"}),' with the table value, surfaces any orphan placeholder as a yellow "tableau attendu non injecté" notice, and publishes the assembled HTML to ',e.jsx("code",{children:"proplace-co/memos"})," on GitHub."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["L’URL du mémo publié sur ",e.jsx("code",{children:"memos.proplace.co"}),". Les diagnostics de déséquilibre / d’assainissement sont retournés à côté."]}):e.jsxs(e.Fragment,{children:["The published memo URL on ",e.jsx("code",{children:"memos.proplace.co"}),". Imbalance / sanitisation diagnostics are returned alongside."]})})]})]})]}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?e.jsxs(e.Fragment,{children:["Ce qui est mort vs vivant dans la réponse ",e.jsx("code",{children:"/build-model"}),"."]}):e.jsxs(e.Fragment,{children:["What's dead vs alive in the ",e.jsx("code",{children:"/build-model"})," response."]})}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["L’objet structuré ",e.jsx("code",{children:"post_model_verdict"})," (avec ",e.jsx("code",{children:"conviction_status"}),", ",e.jsx("code",{children:"conviction_status_rationale"}),", ",e.jsx("code",{children:"irr_in_thesis_context"}),", ",e.jsx("code",{children:"suspensive_conditions"}),", ",e.jsx("code",{children:"executive_scenario_guide"}),", ",e.jsx("code",{children:"open_questions_propagated"}),") est construit par ",e.jsx("code",{children:"services/post_model_verdict.py"})," et retourné dans le JSON, mais ",e.jsx("strong",{children:"rien dans BP2 ne le consomme comme donnée structurée"}),". Seuls ses rendus HTML (",e.jsx("code",{children:"post_verdict_html"})," + les 5 helpers strategic-only + ",e.jsx("code",{children:"conviction_modele_html"}),") atteignent le mémo. Le LLM narratif de la Part 6 (module 1702) ne lit que les champs quant factuels (",e.jsx("code",{children:"thesis_alignment.financial_verdict"}),", ",e.jsx("code",{children:"returns.hurdles_passed.all"}),", ",e.jsx("code",{children:"returns.gp_decision_used"}),", ",e.jsx("code",{children:"returns.gp_conviction_coefficient"}),") plus les chaînes HTML."]}):e.jsxs(e.Fragment,{children:["The structured ",e.jsx("code",{children:"post_model_verdict"})," object (with ",e.jsx("code",{children:"conviction_status"}),", ",e.jsx("code",{children:"conviction_status_rationale"}),", ",e.jsx("code",{children:"irr_in_thesis_context"}),", ",e.jsx("code",{children:"suspensive_conditions"}),", ",e.jsx("code",{children:"executive_scenario_guide"}),", ",e.jsx("code",{children:"open_questions_propagated"}),") is built by ",e.jsx("code",{children:"services/post_model_verdict.py"})," and returned in the JSON, but ",e.jsx("strong",{children:"nothing in BP2 consumes it as structured data"}),". Only its HTML renderings (",e.jsx("code",{children:"post_verdict_html"})," + the 5 strategic-only helpers + ",e.jsx("code",{children:"conviction_modele_html"}),") reach the memo. The Part 6 narrative LLM (module 1702) reads only the factual quant fields (",e.jsx("code",{children:"thesis_alignment.financial_verdict"}),", ",e.jsx("code",{children:"returns.hurdles_passed.all"}),", ",e.jsx("code",{children:"returns.gp_decision_used"}),", ",e.jsx("code",{children:"returns.gp_conviction_coefficient"}),") plus the HTML strings."]})}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Le CALL / CONSIDER / MONITOR / PASS adressé au CEO est fixé ",e.jsx("strong",{children:"en amont de /build-model"})," par le Module 5 du GP Synthétique (",e.jsx("code",{children:"conviction_synthesis.decision"}
3221),") et propagé comme ",e.jsx("code",{children:"gp_decision_used"}),". /build-model ne l’écrase jamais. ",e.jsx("code",{children:"conviction_status"})," existe pour colorer la section post-verdict du mémo ; la réconciliation entre le verdict quant et la décision qualitative du GP se fait dans la prose narrative du module 1702."]}):e.jsxs(e.Fragment,{children:["The CEO-facing CALL / CONSIDER / MONITOR / PASS is set ",e.jsx("strong",{children:"upstream of /build-model"})," by GP Synthetique Module 5 (",e.jsx("code",{children:"conviction_synthesis.decision"}),") and is propagated as ",e.jsx("code",{children:"gp_decision_used"}),". /build-model never overwrites it. ",e.jsx("code",{children:"conviction_status"})," exists to colour the post-verdict section of the memo; reconciliation between the quant verdict and the GP qualitative decision happens in module 1702's narrative prose."]})})]}),e.jsx("h4",{className:"doc-h4",children:r?"Entrées — ce que /build-model lit réellement":"Inputs — what /build-model actually reads"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Flux":"Stream"}),e.jsx("th",{children:"Source"}),e.jsx("th",{children:r?"Ce que ça pilote":"What it drives"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"1. Fund Thesis"})}),e.jsxs("td",{children:[e.jsx("code",{children:"fund_thesis.financial_model_config"}),". ",r?"FIGÉ — jamais muté par le moteur hebdo.":"FROZEN — never mutated by the weekly engine."]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"mode"})," + ",e.jsx("code",{children:"ma_submode"})," → chemin de formule. Accepte ",e.jsx("code",{children:"VC"}),", ",e.jsx("code",{children:"MA"}),", ",e.jsx("code",{children:"ADAPTIVE"})," ; les valeurs composées comme ",e.jsx("code",{children:"ma_strategic_acquirer"})," et les préfixes de nom de fonds (",e.jsx("code",{children:"S4BF MA"}),", ",e.jsx("code",{children:"Profund VC"}),") sont normalisés dans l’endpoint. ADAPTIVE infère VC vs MA à partir de la présence de ",e.jsx("code",{children:"deal_params.debt_eur"})," ou d’un ",e.jsx("code",{children:"acquirer_context"})," non vide. Les alias de submode (",e.jsx("code",{children:"platform_build"}),", ",e.jsx("code",{children:"bolt_on"}),", ",e.jsx("code",{children:"tuck_in"}),", ",e.jsx("code",{children:"strategic"}),") se réduisent à ",e.jsx("code",{children:"strategic_acquirer"}),".",e.jsx("br",{}),e.jsx("code",{children:"sector_profile"})," ∈ ","{"," ",e.jsx("code",{children:"b2b_travel_saas"})," · ",e.jsx("code",{children:"ai_native_saas"})," · ",e.jsx("code",{children:"fintech_payment_rails"})," · ",e.jsx("code",{children:"marketplace_b2b"})," ","}"," → bibliothèque de benchmarks dans ",e.jsx("code",{children:"services/benchmarks.py"}),". ",e.jsx("code",{children:"b2b_travel_saas"})," par défaut si absent.",e.jsx("br",{}),"Les overrides de hurdle par mode sont lus dans ",e.jsx("code",{children:"vc_config.hurdle_irr/moic"}),", ",e.jsx("code",{children:"lbo_config.hurdle_irr/moic"}),", ",e.jsx("code",{children:"ma_config.hurdle_roi/irr/moic/payback_years"}),", sinon les défauts sectoriels s’appliquent (ex. ",e.jsx("code",{children:"b2b_travel_saas"})," : VC IRR 0.30 · MOIC 5.0 · M&A IRR 0.20 · MOIC 2.5).",e.jsx("br",{}),e.jsx("code",{children:"acquirer_context"})," (M&A stratégique uniquement) : ",e.jsx("code",{children:"acquirer_arr_eur"})," (base des synergies de cross-sell), ",e.jsx("code",{children:"synergy_horizon_years"})," (défaut 5), ",e.jsx("code",{children:"cross_sell_targets"}),". Le WACC est codé en dur à ",e.jsx("strong",{children:"0.08"})," à la fois dans la VAN des synergies et la triangulation de valorisation DCF.",e.jsx("br",{}),e.jsx("code",{children:"entry_gates.hard_block_below_arr_eur / hard_block_above_arr_eur"})," → plancher/plafond d’ARR qui retourne ",e.jsx("code",{children:"status: HARD_BLOCK"})," (seulement quand la confiance ARR n’est pas « low »)."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"mode"})," + ",e.jsx("code",{children:"ma_submode"})," → formula path. Accepts ",e.jsx("code",{children:"VC"}),", ",e.jsx("code",{children:"MA"}),", ",e.jsx("code",{children:"ADAPTIVE"}),"; compound values like ",e.jsx("code",{children:"ma_strategic_acquirer"})," and fund-name prefixes (",e.jsx("code",{children:"S4BF MA"}),", ",e.jsx("code",{children:"Profund VC"}),") are normalised in the endpoint. ADAPTIVE infers VC vs MA from the presence of ",e.jsx("code",{children:"deal_params.debt_eur"})," or a non-empty ",e.jsx("code",{children:"acquirer_context"}),". Submode aliases (",e.jsx("code",{children:"platform_build"}),", ",e.jsx("code",{children:"bolt_on"}),", ",e.jsx("code",{children:"tuck_in"}),", ",e.jsx("code",{children:"strategic"}),") collapse to ",e.jsx("code",{children:"strategic_acquirer"}),".",e.jsx("br",{}),e.jsx("code",{children:"sector_profile"})," ∈ ","{"," ",e.jsx("code",{children:"b2b_travel_saas"})," · ",e.jsx("code",{children:"ai_native_saas"}
3221)," · ",e.jsx("code",{children:"fintech_payment_rails"})," · ",e.jsx("code",{children:"marketplace_b2b"})," ","}"," → benchmark library in ",e.jsx("code",{children:"services/benchmarks.py"}),". Default ",e.jsx("code",{children:"b2b_travel_saas"})," if missing.",e.jsx("br",{}),"Hurdle overrides per mode are read from ",e.jsx("code",{children:"vc_config.hurdle_irr/moic"}),", ",e.jsx("code",{children:"lbo_config.hurdle_irr/moic"}),", ",e.jsx("code",{children:"ma_config.hurdle_roi/irr/moic/payback_years"}),", otherwise sector defaults apply (e.g. ",e.jsx("code",{children:"b2b_travel_saas"}),": VC IRR 0.30 · MOIC 5.0 · M&A IRR 0.20 · MOIC 2.5).",e.jsx("br",{}),e.jsx("code",{children:"acquirer_context"})," (M&A Strategic only): ",e.jsx("code",{children:"acquirer_arr_eur"})," (base for cross-sell synergies), ",e.jsx("code",{children:"synergy_horizon_years"})," (default 5), ",e.jsx("code",{children:"cross_sell_targets"}),". WACC is hardcoded to ",e.jsx("strong",{children:"0.08"})," in both the synergy NPV and the DCF valuation triangulation.",e.jsx("br",{}),e.jsx("code",{children:"entry_gates.hard_block_below_arr_eur / hard_block_above_arr_eur"})," → ARR floor/ceiling that returns ",e.jsx("code",{children:"status: HARD_BLOCK"}),' (only when ARR confidence is not "low").']})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"2. Convictions qualitatives (Module 5)":"2. Qualitative convictions (Module 5)"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"financial_model_setup"})," — objet optionnel produit par le Module 5 du GP Synthétique après l’écriture du mémo qualitatif, transmis par le module Make 1707 comme ",e.jsxs("code",{children:["{{","1201.financial_model_setup","}}"]}),"."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"financial_model_setup"})," — optional object produced by Module 5 of the GP Synthetique after the qualitative memo is written and forwarded by Make module 1707 as ",e.jsxs("code",{children:["{{","1201.financial_model_setup","}}"]}),"."]})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"Override les benchmarks en Priorité 0.":"Overrides benchmarks at Priority 0."})," ",r?e.jsxs(e.Fragment,{children:["Chaque override est consigné dans ",e.jsx("code",{children:"overrides_log.key_overrides"})," avec valeurs from/to et une chaîne de justification."]}):e.jsxs(e.Fragment,{children:["Every override is logged in ",e.jsx("code",{children:"overrides_log.key_overrides"})," with from/to values and a rationale string."]}),e.jsx("br",{}),e.jsx("code",{children:"growth_conviction.growth_y1_belief_pct"})," → ",r?"pilote le revenu Y1":"pilots Y1 revenue",". ",e.jsx("code",{children:"growth_decay_belief"})," AGGRESSIVE / NORMAL / SUSTAINED → ",r?"courbe de croissance":"growth curve",". ",e.jsx("code",{children:"growth_trajectory_qualitative"})," + ",e.jsx("code",{children:"growth_evidence_quote"})," ",r?"suivent comme champs d’audit":"ride along as audit fields",".",e.jsx("br",{}),e.jsx("code",{children:"margin_conviction.gross_margin_belief_pct"})," → ",r?"override la marge brute":"overrides gross margin",". ",e.jsx("code",{children:"ebitda_path"})," PROFITABLE_NOW / PROFITABLE_BY_Y3 / GROWTH_AT_ALL_COST. ",e.jsx("code",{children:"opex_intensity"})," LEAN ×0.85 / NORMAL ×1.00 / HEAVY ×1.15.",e.jsx("br",{}),e.jsx("code",{children:"moat_conviction.implication_for_exit_multiple"})," PREMIUM ×1.30 / IN_LINE ×1.00 / DISCOUNT ×0.75 ",r?"multiplie la fourchette de multiple de sortie pilotée par la conviction":"multiplies the conviction-led exit multiple range",". ",e.jsx("code",{children:"moat_type"}),", ",e.jsx("code",{children:"moat_strength"}),", ",e.jsx("code",{children:"pricing_power"}),", ",e.jsx("code",{children:"moat_evidence_quote"})," ",r?"sont reportés":"carry through",".",e.jsx("br",{}),e.jsx("code",{children:"exit_conviction.exit_multiple_belief"})," + ",r?"facteur moat":"moat factor"," → ",r?"construit les multiples de sensibilité VC / LBO (triés, dédupliqués, pondérés par [0.5–2.0] / [0.6–1.6])":"builds the VC / LBO sensitivity multiples (sorted, dedupe, factored by [0.5–2.0] / [0.6–1.6])",". ",e.jsx("code",{children:"exit_horizon_years"})," ",r?"override":"overrides"," ",e.jsx("code",{children:"hold_period"}),". ",e.jsx("code",{children:"exit_type_likely"})," ",r?"pilote les frais de sortie IPO 5% / STRATEGIC 1.5%":"drives IPO 5% / STRATEGIC 1.5% exit fees",".",e.jsx("br",{}),e.jsx("code",{children:"do_not_assume[]"})," → ",r?e.jsxs(e.Fragment,{children:["garde-fous remontés dans ",e.jsx("code",{children:"overrides_log.violations"})]}):e.jsxs(e.Fragment,{children:["guardrails surfaced in ",e.jsx("code",{children:"overrides_log.violations"})]}),".",e.jsx("br",{}),e.jsxs("code",{children:["scenario_overrides.","{","crash_case_trigger, base_case_rationale, best_case_unlock","}"]})," → ",r?e.jsxs(e.Fragment,{children:["injectés dans ",e.jsx("code",{children:"executive_scenario_guide"})]}):e.jsxs(e.Fragment,{children:["injected into ",e.jsx("code",{children:"executive_scenario_guide"})]}),".",e.jsx("br",{}),e.jsx("code",{children:"conviction_synthesis.fatal_flaw_if_any"})," → ",r?e.jsxs(e.Fragment,{children:["force ",e.jsx("code",{children:"conviction_status = INVALIDATED"})]}):e.jsxs(e.Fragment,{children:["forces ",e.jsx("code",{children:"conviction_status = INVALIDATED"})]}),". ",e.jsx("code",{children:"conviction_synthesis.decision"})," (CALL / CONSIDER / MONITOR / PASS) ",r?"pondère par probabilité la VAN des synergies via un coefficient ×1.0 / ×0.7 / ×0.4 / ×0.1.":"probability-weights the synergy NPV via a coefficient ×1.0 / ×0.7 / ×0.4 / ×0.1."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"3. Synergies qualitatives (M&A uniquement)":"3. Qualitative synergies (M&A only)"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"openrouter_synergies"})," (= module Make BP2 1327, OpenRouter ",e.jsx("code",{children:"x-ai/grok-4.3"}),") — tourne indépendamment de /build-model et est transmis dans la requête comme chaîne brute dans ",e.jsx("code",{children:"company.raw_signals.openrouter_synergies"}),"."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"openrouter_synergies"})," (= Make BP2 module 1327, OpenRouter ",e.jsx("code",{children:"x-ai/grok-4.3"}),") — runs independently of /build-model and is forwarded into the request as a raw string in ",e.jsx("code",{children:"company.raw_signals.openrouter_synergies"}),"."]})}),e.jsxs("td",{children:[r?e.jsxs(e.Fragment,{children:["L’endpoint appelle ",e.jsx("code",{children:"services/synergy_parser.py::parse_qual
3221itative_synergies()"})," qui lit le ",e.jsx("code",{children:"synergy_matrix[]"})," du LLM. Chaque entrée a un ",e.jsx("code",{children:"type"})," ∈ ","{"," ",e.jsx("code",{children:"Soft Revenue"})," · ",e.jsx("code",{children:"Hard Cost"})," · ",e.jsx("code",{children:"Defensive Moat"})," · ",e.jsx("code",{children:"Structural"})," ","}"," et un ",e.jsx("code",{children:"est_financial_impact"})," ∈ ","{"," High · Medium · Low ","}","."]}):e.jsxs(e.Fragment,{children:["The endpoint calls ",e.jsx("code",{children:"services/synergy_parser.py::parse_qualitative_synergies()"})," which reads the LLM's ",e.jsx("code",{children:"synergy_matrix[]"}),". Each entry has a ",e.jsx("code",{children:"type"})," ∈ ","{"," ",e.jsx("code",{children:"Soft Revenue"})," · ",e.jsx("code",{children:"Hard Cost"})," · ",e.jsx("code",{children:"Defensive Moat"})," · ",e.jsx("code",{children:"Structural"})," ","}"," and an ",e.jsx("code",{children:"est_financial_impact"})," ∈ ","{"," High · Medium · Low ","}","."]}),e.jsx("br",{}),r?"Impact → multiplicateur :":"Impact → multiplier:"," High 1.5× · Medium 1.0× · Low 0.5× — ",r?"cumulé par famille dans":"accumulated per family into"," ",e.jsx("code",{children:"revenue_score"}),", ",e.jsx("code",{children:"cost_score"}),", ",e.jsx("code",{children:"moat_score"}),", ",e.jsx("code",{children:"structural_score"}),".",e.jsx("br",{}),e.jsx("code",{children:"revenue_score"})," ",r?"met à l’échelle":"scales"," ",e.jsx("code",{children:"synergy_cross_sell_pct"})," + ",e.jsx("code",{children:"synergy_upsell_pct"})," ",r?"(facteur plafonné 0.5–3.0)":"(factor capped 0.5–3.0)",". ",e.jsx("code",{children:"cost_score"})," ",r?"met à l’échelle":"scales"," ",e.jsx("code",{children:"synergy_infra_saving_pct"})," + ",e.jsx("code",{children:"synergy_ga_saving_pct"})," + ",e.jsx("code",{children:"synergy_rd_sharing_pct"})," ",r?"(facteur plafonné 0.5–2.5, économies plafonnées 30–40%)":"(factor capped 0.5–2.5, savings capped 30–40%)",". ",e.jsx("code",{children:"structural_score"})," → ",r?e.jsxs(e.Fragment,{children:["forfait ",e.jsx("strong",{children:"500 k€ d’ARR par point structurel"})," via"]}):e.jsxs(e.Fragment,{children:["flat ",e.jsx("strong",{children:"€500k ARR per structural point"})," via"]})," ",e.jsx("code",{children:"geo_expansion_arr"}),". ",e.jsx("code",{children:"moat_score"})," ",r?"est suivi pour le rapport mais ne met pas à l’échelle un benchmark":"is tracked for the report but does not scale a benchmark",".",e.jsx("br",{}),e.jsx("strong",{children:r?"Le LLM n’émet jamais de montants en euros.":"The LLM never emits euro amounts."})," ",r?"Les valeurs monétaires viennent des formules déterministes ci-dessous.":"Monetary values come from the deterministic formulas below.",e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Les synergies dynamiques parsées depuis le LLM sont fusionnées avec d’éventuels overrides côté Make dans ",e.jsx("code",{children:"payload.synergy_signals"}),"."]}):e.jsxs(e.Fragment,{children:["Dynamic synergies parsed from the LLM are merged with any Make-side overrides in ",e.jsx("code",{children:"payload.synergy_signals"}),"."]})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"4. Signaux scrapés (enrich_company)":"4. Scraped signals (enrich_company)"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Pappers FR + web Exa. ",e.jsx("code",{children:"services/comparable_engine.py::search_target_financials"})," lance jusqu’à ",e.jsx("strong",{children:"13 requêtes Exa réparties sur 5 modules"})," (Module 0 financiers de base · 1 Pricing & ACV · 2 Équipe & structure de coûts · 3 Croissance & traction · 4 Base clients), plus des requêtes optionnelles ",e.jsx("code",{children:"site:domain"})," et par locale-pays."]}):e.jsxs(e.Fragment,{children:["Pappers FR + Exa web. ",e.jsx("code",{children:"services/comparable_engine.py::search_target_financials"})," issues up to ",e.jsx("strong",{children:"13 Exa queries spread across 5 modules"})," (Module 0 Core financials · 1 Pricing & ACV · 2 Team & Cost Structure · 3 Growth & Traction · 4 Customer base), plus optional ",e.jsx("code",{children:"site:domain"})," and country-locale queries."]})}),e.jsxs("td",{children:[r?e.jsxs(e.Fragment,{children:["Alimentent la triangulation d’ARR et overrident les défauts de benchmark pour revenue, ARR, EBITDA, marge brute, churn, NRR, ACV, pricing entry / enterprise, headcount par dept (rétro-ingénierié en ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"})," quand le détail du headcount ET le revenu sont disponibles), historique de financement."]}):e.jsxs(e.Fragment,{children:["Fuel ARR triangulation and override benchmark defaults for revenue, ARR, EBITDA, gross margin, churn, NRR, ACV, pricing entry / enterprise, headcount by dept (reverse-engineered into ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"})," when both headcount breakdown and revenue are available), funding history."]}),e.jsx("br",{}),e.jsx("strong",{children:r?e.jsxs(e.Fragment,{children:["COST GATE — Exa ne tourne que quand ",e.jsx("code",{children:'memo == "detailed"'}),"."]}):e.jsxs(e.Fragment,{children:["COST GATE — Exa runs only when ",e.jsx("code",{children:'memo == "detailed"'}),"."]})})," ",r?e.jsxs(e.Fragment,{children:["Pour ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," l’endpoint saute à la fois ",e.jsx("code",{children:"search_target_financials"})," et ",e.jsx("code",{children:"find_comparables"})," ; les comparables retombent sur un stub de benchmark sectoriel via ",e.jsx("code",{children:"_fallback_result"}),"."]}):e.jsxs(e.Fragment,{children:["For ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," the endpoint skips both ",e.jsx("code",{children:"search_target_financials"})," and ",e.jsx("code",{children:"find_comparables"}),"; comparables fall back to a sector-benchmark stub via ",e.jsx("code",{children:"_fallback_result"}),"."]}),e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Le ",e.jsx("code",{children:"latest_valuation_eur"})," côté Make et l’extraction prose-regex priment sur Exa pour le back-calc à valorisation connue (un contrôle de cohérence 50× rejette les valeurs qui ressemblent à une confusion d’unités M€/Md€)."]}):e.jsxs(e.Fragment,{children:["Make-side ",e.jsx("code",{children:"latest_valuation_eur"})," and prose-regex extraction take priority over Exa for the known-valuation back-calc (a 50× sanity check rejects values that look like M€/B€ unit confusion)."]})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"5. Prose du verdict GP Synthétique":"5. GP Synthetique verdict prose"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"gp_comment_raw"})," = ","{{","1201.gp_comment","}}"," — texte tel quel du verdict du Module 5 du GP Synthétique."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"gp_comment_raw"})," = ","{{","1201.gp_comment","}}"," — verbatim text of the GP Synthetique Module 5 verdict."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Acheminé vers le renderer Negotiation Range et Negotiation Arguments de l’onglet ROI Excel (",e.jsx("code",{children:"services/neg_arguments.py"}),") : sert à extraire les arguments LOW BALL spécifiques au deal depuis le Risk Register et les arguments STRATEGIC depuis le Deal Rationale. En son absence, le renderer retombe sur des arguments uniquement issus du template."]}):e.jsxs(e.Fragment,{children:["Routed into the Excel ROI tab's Negotiation Range and Negotiation Arguments renderer (",e.jsx("code",{children:"services/neg_arguments.py"}),"): used to extract deal-specific LOW BALL arguments from the Risk Register and STRATEGIC arguments from the Deal Rationale. When absent, the renderer falls back to template-only arguments."]})})]})]})]}),e.jsx("h4",{className:"doc-h4",children:r?"Traitement — ce que /build-model exécute, dans l’ordre":"Processing — what /build-model executes, in order"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Étape":"Stage"}),e.jsx("th",{children:"Service"}),e.jsx("th",{children:r?"Sortie":"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"0. Normalisation mode / submode & injection des hurdles de bench":"0. Mode / submode normalisation & bench hurdles injection"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py::build_model"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Résout les modes composés / préfixés / ADAPTIVE, charge ",e.jsx("code",{children:"SECTOR_BENCHMARKS[sector_profile]"}),", puis superpose les hurdles ",e.jsx("code",{children:"vc_config / lbo_config / ma_config"})," sur le dict de bench. Erreur de hard-config retournée si ",e.jsx("code",{children:"financial_model_config.mode"})," reste non résolu."]}):e.jsxs(e.Fragment,{children:["Resolves compound / prefixed / ADAPTIVE modes, loads ",e.jsx("code",{children:"SECTOR_BENCHMARKS[sector_profile]"}),", then overlays ",e.jsx("code",{children:"vc_config / lbo_config / ma_config"})," hurdles on the bench dict. Hard-config error returned if ",e.jsx("code",{children:"financial_model_config.mode"})," remains unresolved."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"1. Enrichissement de signaux + parsing dynamique des synergies":"1. Signal enrichment + dynamic synergy parsing"})}),e.jsxs("td",{children:[e.jsx("code",{children:"services/enrich_company.py"})," + ",e.jsx("code",{children:"services/synergy_parser.py"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Fusionne ",e.jsx("code",{children:"raw_signals"})," + ",e.jsx("code",{children:"structured_signals"}),", puis lance le parser de synergies sur ",e.jsx("code",{children:"raw_signals.openrouter_synergies"})," (sortie du module BP2 1327) pour dériver des synergy_signals mis à l’échelle ; les overrides Make se superposent. Hard-block retourné si ",e.jsx("code",{children:"pappers_statut"})," ∈ ","{"," inactive · dissolved · liquidated ","}","."]}):e.jsxs(e.Fragment,{children:["Merges ",e.jsx("code",{children:"raw_signals"})," + ",e.jsx("code",{children:"structured_signals"}),", then runs the synergy parser on ",e.jsx("code",{children:"raw_signals.openrouter_synergies"})," (BP2 module 1327 output) to derive scaled synergy_signals; Make overrides merge on top. Hard-block returns if ",e.jsx("code",{children:"pappers_statut"})," ∈ ","{"," inactive · dissolved · liquidated ","}","."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"2. Intel financière cible Exa (detailed uniquement)":"2. Exa target financial intel (detailed only)"})}),e.jsx("td",{children:e.jsx("code",{children:"services/comparable_engine.py::search_target_financials"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Lance jusqu’à 13 requêtes Exa sur 5 modules + extraction LLM (OpenRouter). Hydrate ",e.jsx("code",{children:"signals"})," avec ",e.jsx("code",{children:"exa_revenue / arr / ebitda / ebitda_margin / growth_rate / churn / nrr / acv / pricing / headcount by dept / valuation / last_funding"}),". Injecte ",e.jsx("code",{children:"known_valuation_eur"})," pour le back-calc d’ARR quand le tour a ≤ 24 mois. Détail du headcount rétro-ingénierié en ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"}),"."]}):e.jsxs(e.Fragment,{children:["Runs up to 13 Exa queries across 5 modules + LLM extraction (OpenRouter). Hydrates ",e.jsx("code",{children:"signals"})," with ",e.jsx("code",{children:"exa_revenue / arr / ebitda / ebitda_margin / growth_rate / churn / nrr / acv / pricing / headcount by dept / valuation / last_funding"}),". Injects ",e.jsx("code",{children:"known_valuation_eur"})," for ARR back-calc when the round is ≤ 24 months old. Headcount breakdown reverse-engineered into ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"3. Triangulation d’ARR":"3. ARR triangulation"})}),e.jsx("td",{children:e.jsx("code",{children:"services/estimator.py::triangulate_arr"})}),e.jsxs("td",{children:[r?"Triangulation pondérée multi-sources avec confiance par paliers.":"Weighted multi-source triangulation with tier-based confidence.",e.jsx("br",{}),e.jsx("strong",{children:r?"Palier 1 (HIGH)":"Tier 1 (HIGH)"}),": public_revenue (0.60), pappers_ca_n1 (0.50), arr_from_pitch (0.50), exa_web_arr (0.45).",e.jsx("br",{}),e.jsx("strong",{children:r?"Palier 2 (MEDIUM)":"Tier 2 (MEDIUM)"}
3221),": sales_headcount_proxy (0.35, 1 AE ≈ €500k ARR), pricing × customers (0.25, G2 × 50 × ACV), headcount_benchmark (0.20).",e.jsx("br",{}),e.jsx("strong",{children:r?"Palier 3 (LOW)":"Tier 3 (LOW)"}),": funding_implied (0.15), traffic_conversion (0.10).",e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Fallback par ",e.jsx("code",{children:"stage_signal"})," : Pre-seed €250k · Seed €1M · Series A €3.5M · Scale-up €10M."]}):e.jsxs(e.Fragment,{children:["Fallback by ",e.jsx("code",{children:"stage_signal"}),": Pre-seed €250k · Seed €1M · Series A €3.5M · Scale-up €10M."]}),e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Sortie : ",e.jsx("code",{children:"arr_mid / arr_low / arr_high / confidence / method / sources / data_gap / divergence_pct"}),". Une divergence > 2× entre sources lève ",e.jsx("code",{children:"data_gap=true"})," et alimente un bandeau rouge « Test du Rachat » en aval."]}):e.jsxs(e.Fragment,{children:["Output: ",e.jsx("code",{children:"arr_mid / arr_low / arr_high / confidence / method / sources / data_gap / divergence_pct"}),". Divergence > 2× across sources raises ",e.jsx("code",{children:"data_gap=true"}),' and feeds a red "Test du Rachat" banner downstream.']})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"4. Valorisation par comparables (detailed uniquement)":"4. Comparable valuation (detailed only)"})}),e.jsx("td",{children:e.jsx("code",{children:"services/comparable_engine.py::find_comparables"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Recherche Exa de transactions M&A + financement correspondant à secteur / stade / géographie / mode. Calcule P25 / médiane / P75 d’EV/Revenue et EV/EBITDA sur 5–7 transactions comparables. Pour ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," l’endpoint substitue ",e.jsx("code",{children:"_fallback_result"})," (stub de benchmark sectoriel interpolé par un score ",e.jsx("code",{children:"company_quality"})," précoce)."]}):e.jsxs(e.Fragment,{children:["Exa search for M&A + funding transactions matching sector / stage / geography / mode. Computes P25 / median / P75 of EV/Revenue and EV/EBITDA over 5–7 comparable transactions. For ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," the endpoint substitutes ",e.jsx("code",{children:"_fallback_result"})," (sector-benchmark stub interpolated by an early ",e.jsx("code",{children:"company_quality"})," score)."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"5. Validation d’entrée (cohérence EV / Check / Ownership)":"5. Entry validation (EV / Check / Ownership coherence)"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["VC : résout ",e.jsx("code",{children:"entry_ev = check_size / ownership_pct"})," dans le sens où les entrées le permettent ; retombe sur ",e.jsx("code",{children:"known_valuation_eur"})," ou ",e.jsx("code",{children:"arr_mid × recommended_entry_multiple"}),". MA : ",e.jsx("code",{children:"ownership_pct"})," par défaut à 1.0. Calcule ",e.jsx("code",{children:"implied_multiple"})," + ",e.jsx("code",{children:"multiple_warning"})," contre un plafond sectoriel (b2b_travel 8× · ai_native 15× · fintech 10× · marketplace 6× · défaut 12×)."]}):e.jsxs(e.Fragment,{children:["VC: solves ",e.jsx("code",{children:"entry_ev = check_size / ownership_pct"})," in whichever direction inputs supply; falls back to ",e.jsx("code",{children:"known_valuation_eur"})," or ",e.jsx("code",{children:"arr_mid × recommended_entry_multiple"}),". MA: ",e.jsx("code",{children:"ownership_pct"})," defaults to 1.0. Computes ",e.jsx("code",{children:"implied_multiple"})," + ",e.jsx("code",{children:"multiple_warning"})," against a sector ceiling (b2b_travel 8× · ai_native 15× · fintech 10× · marketplace 6× · default 12×)."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"6. Détection du modèle de revenu":"6. Revenue model detection"})}),e.jsx("td",{children:e.jsx("code",{children:"services/revenue_model.py::detect_revenue_model"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Détecte SaaS ARR / Services / Marketplace / Transactional / Usage-based depuis les signaux (overridable via ",e.jsx("code",{children:"financial_model_config.revenue_model_override"}),"). Produit ",e.jsx("code",{children:"revenue_breakdown"})," avec ",e.jsx("code",{children:"model_type"})," et ",e.jsx("code",{children:"lines"}),"."]}):e.jsxs(e.Fragment,{children:["Detects SaaS ARR / Services / Marketplace / Transactional / Usage-based from signals (overridable via ",e.jsx("code",{children:"financial_model_config.revenue_model_override"}),"). Produces ",e.jsx("code",{children:"revenue_breakdown"})," with ",e.jsx("code",{children:"model_type"})," and ",e.jsx("code",{children:"lines"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"7. Projection P&L (15 ans)":"7. P&L projection (15-year)"})}),e.jsx("td",{children:e.jsx("code",{children:"services/pnl_model.py::build_pnl"})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"Priorité des données":"Data priority"}),": ",r?e.jsxs(e.Fragment,{children:["conviction ",e.jsx("code",{children:"financial_model_setup"})," → signal réel Exa → benchmark sectoriel."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"financial_model_setup"})," conviction → Exa real signal → sector benchmark."]}),e.jsx("br",{}),"Revenue → Gross Profit → OPEX (R&D, Sales, Marketing, CS, G&A) → EBITDA → D&A → EBIT → Taxes → NOPAT → FCF.",e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Projette toujours 15 ans (",e.jsx("code",{children:"max_horizon"}),") pour que le driver de hold-period Excel soit re-pilotable ; le HTML du mémo tronque à ",e.jsx("code",{children:"min(15, max(hold + 1, 5))"})," ans. Chaque paramètre P&L est tagué ",e.jsx("code",{children:"conviction / exa_real_data / benchmark"})," dans ",e.jsx("code",{children:"pnl_param_sources"}),", qui alimente ",e.jsx("code",{children:"overrides_log"}),"."]}):e.jsxs(e.Fragment,{children:["Always projects 15 years (",e.jsx("code",{children:"max_horizon"}),") so the Excel hold-period driver can be re-piloted; the memo HTML truncates to ",e.jsx("code",{children:"min(15, max(hold + 1, 5))"})," years. Each P&L parameter is tagged ",e.jsx("code",{children:"conviction / exa_real_data / benchmark"})," in ",e.jsx("code",{children:"pnl_param_sources"}),", which feeds ",e.jsx("code",{children:"overrides_log"}),"."]}),e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["Plan de headcount par département rétro-ingénierié depuis ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"})," (benchmark si Exa muet)."]}):e.jsxs(e.Fragment,{children:["Headcount plan by department reverse-engineered from ",e.jsx("code",{children:"exa_rd_pct / sales_pct / marketing_pct / cs_pct / ga_pct"}
3221)," (benchmark if Exa silent)."]}),e.jsx("br",{}),r?e.jsxs(e.Fragment,{children:["La courbe de croissance applique le profil de décroissance issu de la conviction, OPEX mis à l’échelle par ",e.jsx("code",{children:"opex_intensity"}),"."]}):e.jsxs(e.Fragment,{children:["Growth curve applies the decay profile from conviction, OPEX scaled by ",e.jsx("code",{children:"opex_intensity"}),"."]})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"8. Unit economics"})}),e.jsx("td",{children:e.jsx("code",{children:"services/unit_economics.py::compute_unit_economics"})}),e.jsxs("td",{children:["ACV · Gross Margin · Churn · NRR · LTV = (ACV × GM) / Churn · CAC blended = S&M / ",r?"nouveaux clients":"new customers"," · CAC Payback · LTV/CAC · Magic Number · ",r?e.jsxs(e.Fragment,{children:["score ",e.jsx("code",{children:"company_quality"})," (0–1) · scénarios DD Crash / Base / Good · dict ",e.jsx("code",{children:"signal_sources"})," traçant l’origine (Exa Web / Benchmark / Formule) de chaque métrique · ",e.jsx("code",{children:"warnings[]"})," pour les hurdles manqués et les manques de données."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"company_quality"})," score (0–1) · Crash / Base / Good DD scenarios · ",e.jsx("code",{children:"signal_sources"})," dict tracing the origin (Exa Web / Benchmark / Formule) of every metric · ",e.jsx("code",{children:"warnings[]"})," for hurdle misses and data gaps."]})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"9. Résolution du multiple de sortie":"9. Exit-multiple resolution"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Pour les modes VC et LBO, les multiples de sortie sont initialisés depuis les comparables P25 / médiane / P75 si ≥ 3 comps existent. La conviction ",e.jsx("code",{children:"exit_multiple_belief × moat_factor"})," override alors en Priorité 0, produisant une grille de sensibilité à 6 points."]}):e.jsxs(e.Fragment,{children:["For VC and LBO modes, exit multiples are seeded from comparables P25 / median / P75 if ≥ 3 comps exist. The conviction ",e.jsx("code",{children:"exit_multiple_belief × moat_factor"})," then overrides at Priority 0, producing a 6-point sensitivity grid."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"10. Returns par mode":"10. Returns per mode"})}),e.jsx("td",{children:e.jsx("code",{children:"services/returns_engine.py::compute_returns"})}),e.jsxs("td",{children:[e.jsx("strong",{children:"VC"}),": ",e.jsx("code",{children:"MOIC = Exit_ARR × Exit_Multiple × Ownership_post_dilution / Check_Size"}),". ",e.jsx("code",{children:"IRR = MOIC^(1/hold) − 1"}),". ",r?"Matrice de sensibilité 6×6 (multiples de sortie × hold periods Y3–Y8).":"6×6 sensitivity matrix (exit multiples × hold periods Y3–Y8).",e.jsx("br",{}),e.jsx("strong",{children:"LBO"})," (",e.jsx("code",{children:"ma_submode = lbo_pure"}),"): ",e.jsx("code",{children:"MOIC = (Exit_Equity + Cumul_FCF) / Equity_Invested"}),", ",e.jsx("code",{children:"Exit_Equity = Exit_EBITDA × Exit_Multiple − Debt_remaining"}),". ",r?"Sensibilité sur 6 multiples d’EBITDA de sortie.":"Sensitivity on 6 exit EBITDA multiples.",e.jsx("br",{}),e.jsx("strong",{children:r?"M&A stratégique":"M&A Strategic"})," (",e.jsx("code",{children:"ma_submode = strategic_acquirer"}),"): ",r?"hybride rating-LLM × déterministe.":"hybrid LLM-rating × deterministic."," ",e.jsx("code",{children:"cross_sell_arr = acquirer_arr × scaled_cross_sell_pct × capture (0.70)"})," · ",e.jsx("code",{children:"upsell_arr = target_arr × scaled_upsell_pct × capture"})," · ",e.jsx("code",{children:"geo_expansion = structural_score × €500k"})," · ",e.jsx("code",{children:"rev_synergies = (cross_sell + upsell + geo) × (1 − risk_discount 0.15)"})," · ",e.jsx("code",{children:"cost_synergies = target_opex_proxy (= target_arr × 0.55) × scaled_saving_pct × capture × (1 − risk_discount)"}),".",e.jsx("br",{}
3221),e.jsx("code",{children:"NPV = Σ (total_annual × ramp[i]) / (1 + WACC 0.08)^(i+1)"}),", ramp = [0.30, 0.70, 1.0, 1.0, 1.0]. ",e.jsx("code",{children:"integration_cost = entry_ev ×"})," ",r?"% par paliers":"tiered %"," (1% / 1.75% / 2.5% / 3.25% ",r?"selon l’ARR cible":"depending on target ARR","). ",e.jsx("code",{children:"ROI = (NPV − integration_cost) / entry_ev"}),". ",e.jsx("code",{children:"MOIC = (NPV + entry_ev) / entry_ev"}),"."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"11. Return total corrigé Strategic v2":"11. Strategic v2 corrected total-return"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py::_strategic_returns_v2"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Strategic-acquirer uniquement : recalcule le test comme ",e.jsx("em",{children:"FCF standalone cible + synergies − intégration"})," sur le hold period pilotable, en utilisant le multiple dérivé des comparables pour le fallback standalone-via-multiples (cadre Damodaran Control Premium). Sort ",e.jsx("code",{children:"roi_total / moic_total / irr_total_pct / payback_years_total / entry_ev_max_payable_m"})," et un bloc structuré ",e.jsx("code",{children:"hurdles_passed"})," ","{"," ",e.jsx("code",{children:"roi / moic / irr / all"})," ","}",". C’est la métrique phare que lit le CEO ; le ROI synergies-seules est gardé comme ",e.jsx("code",{children:"synergy_yield_pct"}),". Le ",e.jsx("code",{children:"quant_verdict"})," factuel émis est ",e.jsx("strong",{children:"HURDLES_PASSED"})," ou ",e.jsx("strong",{children:"OUT_OF_HURDLE"})," — la décision qualitative du GP (Module 5) reste la source de vérité pour le verdict final du mémo ; la réconciliation entre les deux est gérée par le LLM narratif BP2."]}):e.jsxs(e.Fragment,{children:["Strategic-acquirer only: re-computes the test as ",e.jsx("em",{children:"target standalone FCF + synergies − integration"})," over the pilotable hold period, using the comparable-derived multiple for the standalone-via-multiples fallback (Damodaran Control Premium framework). Outputs ",e.jsx("code",{children:"roi_total / moic_total / irr_total_pct / payback_years_total / entry_ev_max_payable_m"})," and a structured ",e.jsx("code",{children:"hurdles_passed"})," ","{"," ",e.jsx("code",{children:"roi / moic / irr / all"})," ","}"," block. This is the headline metric the CEO reads; the synergy-only ROI is kept as ",e.jsx("code",{children:"synergy_yield_pct"}),". The factual ",e.jsx("code",{children:"quant_verdict"})," emitted is ",e.jsx("strong",{children:"HURDLES_PASSED"})," or ",e.jsx("strong",{children:"OUT_OF_HURDLE"})," — the GP qualitative decision (Module 5) remains the source of truth for the memo's final verdict; reconciliation between the two is handled by the BP2 narrative LLM."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"12. Repondération de la VAN des synergies par décision GP":"12. Synergy NPV reweight by GP decision"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py::_recompute_qualitative_npv"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Strategic-acquirer uniquement : ",e.jsx("code",{children:"conviction_synthesis.decision"})," ∈ CALL / CONSIDER / MONITOR / PASS multiplie la VAN des synergies par ×1.0 / ×0.7 / ×0.4 / ×0.1 respectivement. Remontée comme ",e.jsx("code",{children:"gp_conviction_coefficient"}),"."]}):e.jsxs(e.Fragment,{children:["Strategic-acquirer only: ",e.jsx("code",{children:"conviction_synthesis.decision"})," ∈ CALL / CONSIDER / MONITOR / PASS multiplies the synergy NPV by ×1.0 / ×0.7 / ×0.4 / ×0.1 respectively. Surfaced as ",e.jsx("code",{children:"gp_conviction_coefficient"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"13. Scoring d’alignement à la thèse":"13. Thesis alignment scoring"})}),e.jsx("td",{children:e.jsx("code",{children:"modal_app.py"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Compare ",e.jsx("code",{children:"signals.signals[]"})," contre ",e.jsx("code",{children:"semantic_filters.angles[].green_flags / red_flags"})," (imbriqué v5.4, fallback plat v5.2). ",e.jsx("code",{children:"alignment_score"})," part de 100, déduit jusqu’à 30 pour multiple_warning, 15 pour aucun match vert, 40 pour tout hit rouge, 10 chacun pour LTV/CAC sous le plancher et NRR < 100%."]}):e.jsxs(e.Fragment,{children:["Matches ",e.jsx("code",{children:"signals.signals[]"})," against ",e.jsx("code",{children:"semantic_filters.angles[].green_flags / red_flags"})," (v5.4 nested, v5.2 flat fallback). ",e.jsx("code",{children:"alignment_score"})," starts at 100, deducts up to 30 for multiple_warning, 15 for no green match, 40 for any red hit, 10 each for LTV/CAC below floor and NRR < 100%."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"14. Classeur Excel + URL de volume Modal":"14. Excel workbook + Modal volume URL"})}),e.jsxs("td",{children:[e.jsx("code",{children:"services/excel_builder.py"})," + Modal Volume"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Persiste le modèle complet en .xlsx (Assumptions, Financial Intel, Comparables, P&L, CF, UE, ROI, Cap Table, Headcount, Synergies, Negotiation Range) et retourne ",e.jsx("code",{children:"excel_url"}),". L’onglet ROI intègre les Negotiation Arguments dérivés de ",e.jsx("code",{children:"gp_comment_raw"}),"."]}):e.jsxs(e.Fragment,{children:["Persists the full model as an .xlsx (Assumptions, Financial Intel, Comparables, P&L, CF, UE, ROI, Cap Table, Headcount, Synergies, Negotiation Range) and returns ",e.jsx("code",{children:"excel_url"}),". The ROI tab embeds the Negotiation Arguments derived from ",e.jsx("code",{children:"gp_comment_raw"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"15. Triangulation de valorisation (Multiples × DCF)":"
322115. Valuation triangulation (Multiples × DCF)"})}),e.jsxs("td",{children:[e.jsx("code",{children:"modal_app.py"})," + ",e.jsx("code",{children:"services/html_table_renderer.py"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["À l’année de sortie : method_multiples_revenue (ARR × recommended_entry_multiple), method_multiples_ebitda (EBITDA × recommended_ev_ebitda_multiple), DCF (Σ FCF actualisés sur le hold + VA de la TV moyennée entre perpétuité de Gordon g=2.5% et TV par multiple de sortie) — WACC fixé à 0.08. La médiane statistique des trois méthodes (robuste à un DCF négatif sur les cibles de croissance) est la valorisation triangulée ; ",e.jsx("code",{children:"verdict"})," ∈ below / aligned / above contre l’EV d’entrée (bande ±15%)."]}):e.jsxs(e.Fragment,{children:["At exit year: method_multiples_revenue (ARR × recommended_entry_multiple), method_multiples_ebitda (EBITDA × recommended_ev_ebitda_multiple), DCF (Σ discounted FCF over hold + PV of TV averaged across Gordon perpetuity g=2.5% and exit-multiple TV) — WACC fixed at 0.08. Statistical median across the three methods (robust to negative DCF in growth targets) is the triangulated valuation; ",e.jsx("code",{children:"verdict"})," ∈ below / aligned / above against the entry EV (±15% band)."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"16. Verdict post-modèle":"16. Post-model verdict"})}),e.jsx("td",{children:e.jsx("code",{children:"services/post_model_verdict.py::build_post_model_verdict"})}),e.jsx("td",{children:r?"Voir le tableau dédié plus bas.":"See dedicated table below."})]})]})]}),e.jsx("h4",{className:"doc-h4",children:r?"Sorties — les 18 blocs HTML qui atteignent réellement le mémo":"Outputs — the 18 HTML blocks that actually reach the memo"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["L’endpoint ",e.jsx("code",{children:"/build-model"})," retourne un JSON dont l’objet ",e.jsx("code",{children:"html_tables"})," expose 20 clés, mais seules ",e.jsx("strong",{children:"18 sont câblées dans le mémo"}),". Vérification croisée via ",e.jsx("code",{children:"make-cli scenarios get 3869328"})," + ",e.jsx("code",{children:'grep -E "REPLACE_WITH_[A-Z_]+_HTML"'})," : les 18 placeholders ci-dessous sont émis par le module ",e.jsx("strong",{children:"1702"})," (LLM narratif Part 6). Deux clés de réponse — ",e.jsx("code",{children:"hc_html"})," et ",e.jsx("code",{children:"post_verdict_html"})," — sont encore calculées par le renderer pour rétro-compatibilité mais aucun placeholder ",e.jsx("code",{children:"[[[REPLACE_WITH_HC_HTML]]]"})," ni ",e.jsx("code",{children:"[[[REPLACE_WITH_POST_VERDICT_HTML]]]"})," n’existe dans aucune Part, donc elles n’atteignent jamais le mémo publié. À considérer comme mortes en prod. En ",e.jsx("code",{children:"HARD_BLOCK"}),", l’endpoint remplace chaque placeholder par le même encart « Modèle financier non généré » pour que le mémo ne rende jamais de sections €/% vides."]}):e.jsxs(e.Fragment,{children:["The ",e.jsx("code",{children:"/build-model"})," endpoint returns a JSON whose ",e.jsx("code",{children:"html_tables"})," object exposes 20 keys, but only ",e.jsx("strong",{children:"18 are wired into the memo"}),". Cross-check via ",e.jsx("code",{children:"make-cli scenarios get 3869328"})," + ",e.jsx("code",{children:'grep -E "REPLACE_WITH_[A-Z_]+_HTML"'}),": the 18 placeholders below are emitted by module ",e.jsx("strong",{children:"1702"})," (Part 6 narrative LLM). Two response keys — ",e.jsx("code",{children:"hc_html"})," and ",e.jsx("code",{children:"post_verdict_html"})," — are still computed by the renderer for back-compat but no ",e.jsx("code",{children:"[[[REPLACE_WITH_HC_HTML]]]"})," or ",e.jsx("code",{children:"[[[REPLACE_WITH_POST_VERDICT_HTML]]]"})," placeholder exists in any Part, so they never reach the published memo. Treat them as dead in prod. On ",e.jsx("code",{children:"HARD_BLOCK"}),', the endpoint replaces every placeholder with the same "Modèle financier non généré" notice so the memo never renders empty €/% sections.']})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Placeholder · bloc HTML":"Placeholder · HTML block"}),e.jsx("th",{children:r?"Ce qu’il rend dans le mémo":"What it renders in the memo"}),e.jsx("th",{children:r?"Section du mémo":"Memo section"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_MODEL_DRIVERS_HTML]]]"})," · ",e.jsx("code",{children:"model_drivers_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Bandeau explicatif des drivers : hold period, horizon max, mode/submode, nombre d’années affichées, et la chaîne de source disant au CEO d’où vient ",e.jsx("code",{children:"hold_period"})," (fund thesis vs défaut 5 ans vs override de conviction)."]}):e.jsxs(e.Fragment,{children:["Driver explainer banner: hold period, max horizon, mode/submode, displayed year count, and the source string telling the CEO where ",e.jsx("code",{children:"hold_period"})," came from (fund thesis vs default 5y vs conviction override)."]})}),e.jsx("td",{children:r?"Financial Forecast (haut)":"Financial Forecast (top)"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_VALORISATION_HTML]]]"})," · ",e.jsx("code",{children:"valorisation_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Triangulation de valorisation : 3 méthodes (Multiples-Revenue, Multiples-EBITDA, DCF Gordon+TV moyennée) → low/median/high, avec la jauge Negotiation Range ancrée sur la médiane triangulée vs l’EV d’entrée. Tire les arguments spécifiques au deal de ",e.jsx("code",{children:"gp_comment_raw"})," quand fourni."]}):e.jsxs(e.Fragment,{children:["Valuation triangulation: 3 methods (Multiples-Revenue, Multiples-EBITDA, DCF Gordon+TV averaged) → low/median/high, with the Negotiation Range gauge anchored on the triangulated median vs entry EV. Pulls deal-specific arguments from ",e.jsx("code",{children:"gp_comment_raw"})," when supplied."]})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_COMPARABLES_HTML]]]"})," · ",e.jsx("code",{children:"comparables_html"})]}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"Chaque transaction M&A / financement trouvée par Exa + multiples dérivés P25/Médiane/P75 (EV/Revenue et EV/EBITDA). Vide quand memo ≠ detailed (stub de benchmark sectoriel à la place)."}):e.jsx(e.Fragment,{children:"Every M&A / funding transaction found by Exa + derived P25/Median/P75 multiples (EV/Revenue and EV/EBITDA). Empty when memo ≠ detailed (sector-benchmark stub instead)."})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_FINANCIAL_INTEL_HTML]]]"})," · ",e.jsx("code",{children:"financial_intel_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Tableau 1 : sources d’ARR (Pappers / Web / Pitch / Public / Proxy) → Low/Mid/High triangulés · Tableau 2 : toutes les métriques sourcées par Exa (EBITDA, marges, churn, NRR, ACV, pricing, détail HC, clients, financement). Vide dans les mémos ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," puisque Exa est gaté à ",e.jsx("code",{children:"detailed"}),"."]}):e.jsxs(e.Fragment,{children:["Table 1: ARR sources (Pappers / Web / Pitch / Public / Proxy) → triangulated Low/Mid/High · Table 2: all Exa-sourced metrics (EBITDA, margins, churn, NRR, ACV, pricing, HC breakdown, customers, funding). Empty in ",e.jsx("code",{children:"fast"})," / ",e.jsx("code",{children:"quick"})," memos since Exa is gated to ",e.jsx("code",{children:"detailed"}),"."]})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_ASSUMPTIONS_HTML]]]"})," · ",e.jsx("code",{children:"assumptions_html"})]}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"7 colonnes : Hy
3221pothèse · Active · Crash · Base · Best · Explication · Source. Badge par ligne (données réelles / benchmark)."}):e.jsx(e.Fragment,{children:"7 cols: Hypothèse · Active · Crash · Base · Best · Explication · Source. Badge per row (real data / benchmark)."})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_UE_HTML]]]"})," · ",e.jsx("code",{children:"ue_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["ACV, GM, Churn, NRR, LTV brut/net, CAC blended/paid/organic, LTV/CAC, Payback, Magic Number, Clients — avec des badges ",e.jsx("code",{children:"signal_sources"})," dynamiques par métrique."]}):e.jsxs(e.Fragment,{children:["ACV, GM, Churn, NRR, LTV gross/net, CAC blended/paid/organic, LTV/CAC, Payback, Magic Number, Customers — with dynamic ",e.jsx("code",{children:"signal_sources"})," badges per metric."]})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_PNL_HTML]]]"})," · ",e.jsx("code",{children:"pnl_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["P&L sur ",e.jsx("code",{children:"min(15, hold + 1)"})," ans avec colonne Formule / Source. OPEX détaillé par département avec sous-lignes effectifs. Le plan de headcount est rendu inline ici — il n’y a pas de bloc headcount séparé dans le mémo."]}):e.jsxs(e.Fragment,{children:["P&L over ",e.jsx("code",{children:"min(15, hold + 1)"})," years with Formula / Source column. OPEX broken out by department with effectifs sub-rows. The headcount plan is rendered inline here — there is no separate headcount block in the memo."]})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_SYNERGIES_HTML]]]"})," · ",e.jsx("code",{children:"synergies_html"})]}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"M&A stratégique uniquement : cartes de synergies (nom, mécanisme, ligne P&L, impacts Y1–Y5), avec capture_rate, risk_discount, gp_conviction_coef et bandeau gp_decision."}):e.jsx(e.Fragment,{children:"M&A Strategic only: synergy cards (name, mechanism, P&L line, Y1–Y5 impacts), with capture_rate, risk_discount, gp_conviction_coef and gp_decision banner."})}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_CF_HTML]]]"})," · ",e.jsx("code",{children:"cf_html"})]}),e.jsxs("td",{children:["NOPAT → D&A → Capex → ΔBFR → ",r?"Service de dette":"Debt service"," (LBO) → FCF → Cumul FCF."]}),e.jsx("td",{children:"Financial Forecast"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_VERDICT_RAPIDE_HTML]]]"})," · ",e.jsx("code",{children:"verdict_rapide_html"})]}),e.jsx("td",{children:r?"Strategic uniquement : carte de verdict quant 1 écran (HURDLES_PASSED / O
3221UT_OF_HURDLE + les 4 ratios qui comptent).":"Strategic-only: 1-screen quant verdict card (HURDLES_PASSED / OUT_OF_HURDLE + the 4 ratios that matter)."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_SCENARIOS_GUIDE_HTML]]]"})," · ",e.jsx("code",{children:"scenarios_guide_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Strategic uniquement : narratifs exécutifs Crash / Base / Best (utilise ",e.jsx("code",{children:"scenario_overrides"})," tel quel quand le Module 5 les a fournis, fallback quantitatif sinon)."]}):e.jsxs(e.Fragment,{children:["Strategic-only: Crash / Base / Best executive narratives (uses ",e.jsx("code",{children:"scenario_overrides"})," verbatim when Module 5 supplied them, quantitative fallback otherwise)."]})}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_CONDITIONS_HTML]]]"})," · ",e.jsx("code",{children:"conditions_html"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Strategic uniquement : liste de conditions suspensives (jusqu’à 3, depuis ",e.jsx("code",{children:"do_not_assume"})," + le fatal_flaw rétrogradé si les hurdles passent). Pas de deadline / if_not_met structurés — texte indicatif seulement."]}):e.jsxs(e.Fragment,{children:["Strategic-only: suspensive conditions list (up to 3, from ",e.jsx("code",{children:"do_not_assume"})," + the demoted fatal_flaw if hurdles pass). No structured deadline / if_not_met — advisory text only."]})}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_ROI_HTML]]]"})," · ",e.jsx("code",{children:"roi_html"})]}),e.jsx("td",{children:r?"Strategic uniquement : ROI, Payback, MOIC, IRR, Financial Adequacy Score.":"Strategic-only: ROI, Payback, MOIC, IRR, Financial Adequacy Score."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_SENSITIVITES_HTML]]]"})," · ",e.jsx("code",{children:"sensitivites_html"})]}),e.jsx("td",{children:r?"Strategic uniquement : tableau de sensibilité pour le test de return total corrigé (FCF cible + synergies − intégration sur l’horizon de hold).":"Strategic-only: sensitivity table for the corrected total-return test (target FCF + synergies − integration over hold horizon)."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_RETURNS_HTML]]]"})," · ",e.jsx("code",{children:"returns_html"})]}),e.jsx("td",{children:r?"VC : Deal Economics + matrice MOIC 2D + matrice IRR 2D. LBO : Base Case + sensibilité 6 points sur les multiples d’EBITDA de sortie. Strategic : vide (remplacé par les helpers strategic-only ci-dessus).":"VC: Deal Economics + 2D MOIC matrix + 2D IRR matrix. LBO: Base Case + 6-point sensitivity on exit EBITDA multiples. Strategic: empty (replaced by the strategic-only helpers above)."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_TRACABILITE_HYPOTHESES_HTML]]]"})," · ",e.jsx("code",{children:"tracabilite_hypotheses_html"})]}),e.jsx("td",{children:r?"Strategic uniquement : tableau param par param montrant quelle hypothèse a été fixée par conviction / Exa / benchmark.":"Strategic-only: param-by-param table showing which assumption was set by conviction / Exa / benchmark."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_CONVICTION_MODELE_HTML]]]"})," · ",e.jsx("code",{children:"conviction_modele_html"})]}),e.jsx("td",{children:r?"Audit de conviction : ratio de params overridés par conviction vs Exa vs benchmark ; liste les overrides clés avec leur from/to/rationale.":"Conviction audit: ratio of params overridden by conviction vs Exa vs benchmark; lists the key overrides with their from/to/rationale."}),e.jsx("td",{children:"ROI Analysis"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"[[[REPLACE_WITH_CAP_TABLE_HTML]]]"})," · ",e.jsx("code",{children:"cap_table_html"})]}),e.jsx("td",{children:r?"2 tableaux par mode (paramètres du deal + structure d’actionnariat avec dilution). Scénarios d’entrée + de sortie.":"2 tables per mode (deal parameters + shareholder structure with dilution). Entry + exit scenarios."}),e.jsx("td",{children:"Cap Table"})]})]})]}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?e.jsxs(e.Fragment,{children:["Champs de réponse ",e.jsx("em",{children:"aussi"})," morts en prod."]}):e.jsxs(e.Fragment,{children:["Response fields that are ",e.jsx("em",{children:"also"})," dead in prod."]})}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["La racine de la réponse ",e.jsx("code",{children:"/build-model"})," porte ",e.jsx("code",{children:"projections"}),", ",e.jsx("code",{children:"unit_economics"})," (l’objet complet), ",e.jsx("code",{children:"comp_data"}),", ",e.jsx("code",{children:"arr_data"}),", ",e.jsx("code",{children:"headcount_plan"}),", ",e.jsx("code",{children:"deal_params_used"}),", ",e.jsx("code",{children:"post_model_verdict"})," (structuré) et ",e.jsx("code",{children:"overrides_log"})," (structuré) — aucun n’est lu par un module BP2. Ils alimentent le classeur Excel (",e.jsx("code",{children:"excel_url"}),") et nourrissent les renderers qui ont produit les 18 blocs HTML ci-dessus, mais aucun module en aval ne les tire comme données. Ce que le module ",e.jsx("strong",{children:"1702"})," lit réellement de la réponse : ",e.jsx("code",{children:"status"}),", ",e.jsx("code",{children:"company_name"}),", ",e.jsx("code",{children:"excel_url"}),", ",e.jsxs("code",{children:["thesis_alignment.","{","match_mode, fallback_mode, financial_verdict, green_matches, red_hits, warnings","}"]}),", ",e.jsxs("code",{children:["entry_validation.","{","stage_identified, arr_confidence, arr_method","}"]}),", ",e.jsxs("code",{children:["returns.","{","entry_ev_m, capture_rate_applied, risk_discount_applied, integration_cost_m, wacc, standalone_value_m, standalone_value_method, syn_net_value_m, acquisition_value_m, moic_total, irr_total_pct, hurdle_moic_thesis, hurdle_irr_thesis, hurdles_passed.all, entry_ev_max_payable_m, gp_decision_used, gp_conviction_coefficient, arr_data_gap, qualitative_details","}"]}),", et les 18 chaînes ",e.jsx("code",{children:"html_tables.*"})," listées ci-dessus."]}):e.jsxs(e.Fragment,{children:["The ",e.jsx("code",{children:"/build-model"})," response root carries ",e.jsx("code",{children:"projections"}),", ",e.jsx("code",{children:"unit_economics"})," (the full object), ",e.jsx("code",{children:"comp_data"}),", ",e.jsx("code",{children:"arr_data"}),", ",e.jsx("code",{children:"headcount_plan"}),", ",e.jsx("code",{children:"deal_params_used"}),", ",e.jsx("code",{children:"post_model_verdict"})," (structured) and ",e.jsx("code",{children:"overrides_log"})," (structured) — none of which are read by any BP2 module. They power the Excel workbook (",e.jsx("code",{children:"excel_url"}),") and feed the renderers that produced the 18 HTML blocks above, but no downstream module pulls them as data. What module ",e.jsx("strong",{children:"1702"})," actually reads from the response: ",e.jsx("code",{children:"status"}),", ",e.jsx("code",{children:"company_name"}),", ",e.jsx("code",{children:"excel_url"}),", ",e.jsxs("code",{children:["thesis_alignment.","{","match_mode, fallback_mode, financial_verdict, green_matches, red_hits, warnings","}"]}),", ",e.jsxs("code",{children:["entry_validation.","{","stage_identified, arr_confidence, arr_method","}"]}),", ",e.jsxs("code",{children:["returns.","{","entry_ev_m, capture_rate_applied, risk_discount_applied, integration_cost_m, wacc, standalone_value_m, standalone_value_method, syn_net_value_m, acquisition_value_m, moic_total, irr_total_pct, hurdle_moic_thesis, hurdle_irr_thesis, hurdles_passed.all, entry_ev_max_payable_m, gp_decision_used, gp_conviction_coefficient, arr_data_gap, qualitative_details","}"]}),", and the 18 ",e.jsx("code",{children:"html_tables.*"})," strings listed above."]})})]}),e.jsx("h4",{className:"doc-h4",children:r?"post_model_verdict — comment le conviction_status est calculé (rendu seulement)":"post_model_verdict — how the conviction_status is computed (rendering-only)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Important :"})," l’objet structuré ",e.jsx("code",{children:"post_model_verdict"})," est calculé par ",e.jsx("code",{children:"services/post_model_verdict.py"})," et rendu dans les blocs HTML (",e.jsx("code",{children:"post_verdict_html"}),", ",e.jsx("code",{children:"verdict_rapide_html"}),", ",e.jsx("code",{children:"scenarios_guide_html"}),", ",e.jsx("code",{children:"conditions_html"}),", ",e.jsx("code",{children:"tracabilite_hypotheses_html"}),", ",e.jsx("code",{children:"conviction_modele_html"}),") que le mémo intègre. ",e.jsx("strong",{children:"Il ne gate PAS le CALL / CONSIDER / MONITOR / PASS adressé au CEO."})," Cette décision est fixée en amont par le Module 5 du GP Synthétique (",e.jsx("code",{children:"conviction_synthesis.decision"}),") et fidèlement propagée comme ",e.jsx("code",{children:"gp_decision_used"}),". Le LLM narratif du module 1702 réconcilie le verdict quant (",e.jsx("code",{children:"thesis_alignment.financial_verdict"}
3221)," = HURDLES_PASSED / OUT_OF_HURDLE pour le stratégique, ou verdict base-case VC/LBO) avec ",e.jsx("code",{children:"gp_decision_used"})," en prose — en n’utilisant que le HTML rendu et les champs numériques factuels. Le tableau de statuts ci-dessous décrit le contenu visible de la section post-verdict, pas un gate de décision."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"Important:"})," the structured ",e.jsx("code",{children:"post_model_verdict"})," object is computed by ",e.jsx("code",{children:"services/post_model_verdict.py"})," and rendered into the HTML blocks (",e.jsx("code",{children:"post_verdict_html"}),", ",e.jsx("code",{children:"verdict_rapide_html"}),", ",e.jsx("code",{children:"scenarios_guide_html"}),", ",e.jsx("code",{children:"conditions_html"}),", ",e.jsx("code",{children:"tracabilite_hypotheses_html"}),", ",e.jsx("code",{children:"conviction_modele_html"}),") that the memo embeds. ",e.jsx("strong",{children:"It does NOT gate the CEO-facing CALL / CONSIDER / MONITOR / PASS."})," That decision is set upstream by GP Synthetique Module 5 (",e.jsx("code",{children:"conviction_synthesis.decision"}),") and is faithfully propagated as ",e.jsx("code",{children:"gp_decision_used"}),". The narrative LLM in module 1702 reconciles the quant verdict (",e.jsx("code",{children:"thesis_alignment.financial_verdict"}
3221)," = HURDLES_PASSED / OUT_OF_HURDLE for strategic, or VC/LBO base-case verdict) with ",e.jsx("code",{children:"gp_decision_used"})," in prose — using only the rendered HTML and the factual numeric fields. The status table below describes the visible content of the post-verdict section, not a decision gate."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Statut / valeur":"Status / Value"}),e.jsx("th",{children:r?"Comment ça rend dans le mémo":"How it renders in the memo"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{rowSpan:5,children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"conviction_status"})," — VC/LBO via ",e.jsx("code",{children:"_assess_fund"}),", Strategic via ",e.jsx("code",{children:"_assess_strategic"})," (dans ",e.jsx("code",{children:"services/post_model_verdict.py"}),"). Calculé contre ",e.jsx("strong",{children:"les deux"})," hurdles IRR ET MOIC."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"conviction_status"})," — VC/LBO via ",e.jsx("code",{children:"_assess_fund"}),", Strategic via ",e.jsx("code",{children:"_assess_strategic"})," (in ",e.jsx("code",{children:"services/post_model_verdict.py"}),"). Computed against ",e.jsx("strong",{children:"both"})," IRR AND MOIC hurdles."]})}),e.jsx("td",{children:e.jsx("strong",{children:"CONFIRMED"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le base case passe les deux hurdles ET ",e.jsx("code",{children:"conviction_synthesis.decision == CALL"})," ET aucune réserve fatal_flaw / do_not_assume / data_gap ne subsiste. La carte post-verdict affiche un bandeau de confirmation vert."]}):e.jsxs(e.Fragment,{children:["Base case clears both hurdles AND ",e.jsx("code",{children:"conviction_synthesis.decision == CALL"})," AND no fatal_flaw / do_not_assume / data_gap caveats remain. The post-verdict card shows a green confirmation banner."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"NUANCED"})}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"Les hurdles passent avec décision CALL mais des réserves subsistent (fatal_flaw rétrogradé en réserve, do_not_assume[] non vide, ou avertissements DATA_GAP présents) OU les hurdles passent sans décision qualitative fournie. La carte montre les réserves telles quelles à côté des hurdles verts."}):e.jsx(e.Fragment,{children:"Hurdles pass with CALL decision but caveats remain (fatal_flaw demoted to caveat, do_not_assume[] non-empty, or DATA_GAP warnings present) OR hurdles pass without a qualitative decision supplied. The card shows the caveats verbatim alongside the green hurdles."})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"QUANTITATIVELY_CHALLENGED"})}),e.jsx("td",{children:r?"Un hurdle manqué mais l’autre passe, OU seul le meilleur tiers de la matrice de sensibilité passe les deux, OU les deux hurdles passent mais la décision qualitative n’était pas CALL. La carte indique quelle métrique est en deçà et de combien.":"One hurdle missed but the other passes, OR only the best third of the sensitivity matrix clears both, OR both hurdles pass but the qualitative decision was not CALL. The card states which metric falls short and by how much."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"INVALIDATED"})}),e.jsx("td",{children:r?"Fatal_flaw présent ET le hurdle de base échoue (VC/LBO) — ou fatal_flaw présent avec tout hurdle manqué (Strategic) — ou aucun scénario de sensibilité ne passe les deux hurdles (VC/LBO) — ou les deux hurdles manqués de >50% en Strategic. La carte fait apparaître le texte du fatal_flaw et l’écart du hurdle manqué.":"Fatal_flaw present AND base hurdle fails (VC/LBO) — or fatal_flaw present alongside any hurdle miss (Strategic) — or no sensitivity scenario meets both hurdles (VC/LBO) — or both hurdles miss by >50% in Strategic. The card surfaces the fatal_flaw text and the failed-hurdle gap."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"NO_QUALITATIVE_INPUT"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"financial_model_setup"})," est absent → le modèle tourne sur Exa + benchmarks seuls. ",e.jsx("code",{children:"executive_scenario_guide"})," retombe sur un template quantitatif uniquement, et ",e.jsx("code",{children:"suspensive_conditions"})," est une liste vide."]}
3221):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"financial_model_setup"})," is absent → the model runs on Exa + benchmarks only. ",e.jsx("code",{children:"executive_scenario_guide"})," falls back to a quantitative-only template, and ",e.jsx("code",{children:"suspensive_conditions"})," is an empty list."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"irr_in_thesis_context"})," + ",e.jsx("code",{children:"irr_in_thesis_context_source"})," ",r?"apparié":"paired"]}),e.jsx("td",{children:r?"Phrase en langage naturel":"Natural-language sentence"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Contextualise l’IRR vs le hurdle avec le qualifieur ",e.jsx("strong",{children:"excellent / cohérent / serré"})," (fonction ",e.jsx("code",{children:"_assessment_word"}),"), nommant la « condition clé » sur laquelle le modèle parie. ",e.jsx("code",{children:"_source"})," dit au lecteur si cette condition vient de ",e.jsx("code",{children:"conviction_synthesis.core_doubt"}),", ",e.jsx("code",{children:"do_not_assume[0]"}),", ou du fallback par défaut."]}):e.jsxs(e.Fragment,{children:["Contextualises IRR vs hurdle with the qualifier ",e.jsx("strong",{children:"excellent / coherent / tight"})," (function ",e.jsx("code",{children:"_assessment_word"}),'), naming the "key condition" the model bets on. ',e.jsx("code",{children:"_source"}
3221)," tells the reader whether that condition came from ",e.jsx("code",{children:"conviction_synthesis.core_doubt"}),", ",e.jsx("code",{children:"do_not_assume[0]"}),", or the default fallback."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"suspensive_conditions"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Jusqu’à 3 entrées depuis ",e.jsx("code",{children:"do_not_assume"})," (un vrai fatal_flaw est préfixé quand les hurdles passent pour qu’il apparaisse tout de même). Aucun champ structuré ",e.jsx("code",{children:"deadline"})," / ",e.jsx("code",{children:"if_not_met"})," n’est émis par l’endpoint — ils n’existent que dans le renderer."]}):e.jsxs(e.Fragment,{children:["Up to 3 entries from ",e.jsx("code",{children:"do_not_assume"})," (a real fatal_flaw is prepended when hurdles pass so it still surfaces). No structured ",e.jsx("code",{children:"deadline"})," / ",e.jsx("code",{children:"if_not_met"})," fields are emitted by the endpoint — those exist only in the renderer."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Rendues en puces dans le bloc ",e.jsx("code",{children:"conditions_html"}),". ",e.jsx("strong",{children:"Mise au point :"})," aucun auto-trigger n’y est câblé ; ce sont des textes indicatifs dans le mémo."]}):e.jsxs(e.Fragment,{children:["Rendered as bullet items in the ",e.jsx("code",{children:"conditions_html"})," block. ",e.jsx("strong",{children:"Reality check:"})," there is no auto-trigger wired to these; they are advisory text in the memo."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"executive_scenario_guide"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Chaînes crash_case · base_case · best_case. Quand ",e.jsxs("code",{children:["scenario_overrides.","{","crash_case_trigger / base_case_rationale / best_case_unlock","}"]})," sont fournis par le Module 5, ils sont injectés tels quels ; sinon des défauts quantitatifs construits depuis l’IRR / MOIC de base."]}):e.jsxs(e.Fragment,{children:["crash_case · base_case · best_case strings. When ",e.jsxs("code",{children:["scenario_overrides.","{","crash_case_trigger / base_case_rationale / best_case_unlock","}"]})," are provided by Module 5 they are injected verbatim; otherwise quantitative defaults built from the base IRR / MOIC."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Rendu dans ",e.jsx("code",{children:"scenarios_guide_html"})," comme le narratif de scénario lisible par le CEO."]}):e.jsxs(e.Fragment,{children:["Rendered in ",e.jsx("code",{children:"scenarios_guide_html"})," as the CEO-readable scenario narrative."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"open_questions_propagated"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Pass-through de ",e.jsx("code",{children:"financial_model_setup.open_questions_for_model"}),"."]}):e.jsxs(e.Fragment,{children:["Pass-through of ",e.jsx("code",{children:"financial_model_setup.open_questions_for_model"}),"."]})}),e.jsx("td",{children:r?"Transmis dans le HTML post-verdict pour la checklist de DD.":"Forwarded into the post-verdict HTML for the DD checklist."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"convictions_overrides_log"})," (alias ",e.jsx("code",{children:"overrides_log"})," à la racine de la réponse)"]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"convictions_overrides_log"})," (alias ",e.jsx("code",{children:"overrides_log"})," in the response root)"]})}),e.jsxs("td",{children:[e.jsx("code",{children:"params_overridden_by_conviction"})," · ",e.jsx("code",{children:"params_from_exa_real_data"})," · ",e.jsx("code",{children:"params_from_benchmark"})," + ",e.jsx("code",{children:"key_overrides[]"})," + ",e.jsx("code",{children:"violations[]"})]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Piste d’audit rendue comme ",e.jsx("code",{children:"conviction_modele_html"})," + le bloc ",e.jsx("code",{children:"tracabilite_hypotheses_html"}),"."]}):e.jsxs(e.Fragment,{children:["Audit trail rendered as ",e.jsx("code",{children:"conviction_modele_html"})," + the ",e.jsx("code",{children:"tracabilite_hypotheses_html"})," block."]})})]})]})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Qui décide vraiment CALL / CONSIDER / MONITOR / PASS.":"Who actually decides CALL / CONSIDER / MONITOR / PASS."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Le Module 5 du GP Synthétique (qualitatif) fixe ",e.jsx("code",{children:"conviction_synthesis.decision"})," en amont et cette valeur est la source de vérité — elle est propagée à travers /build-model comme ",e.jsx("code",{children:"returns.gp_decision_used"})," et pondère par probabilité la VAN des synergies (×1.0 / ×0.7 / ×0.4 / ×0.1) via ",e.jsx("code",{children:"gp_conviction_coefficient"}),". /build-model émet un verdict quant ",e.jsx("em",{children:"factuel"})," séparé (",e.jsx("code",{children:"thesis_alignment.financial_verdict"}
3221)," = HURDLES_PASSED / OUT_OF_HURDLE pour le stratégique, CALL / CONSIDER / MONITOR / PASS agrégé pour VC/LBO) et fait apparaître les écarts de hurdle dans ",e.jsx("code",{children:"unit_economics.warnings"}),". La réconciliation entre les deux est le travail du LLM narratif BP2 (module 1702) — /build-model lui-même n’écrase jamais la décision qualitative du GP."]}):e.jsxs(e.Fragment,{children:["The GP Synthetique Module 5 (qualitative) sets ",e.jsx("code",{children:"conviction_synthesis.decision"})," upstream and that value is the source of truth — it is propagated through /build-model as ",e.jsx("code",{children:"returns.gp_decision_used"})," and probability-weights the synergy NPV (×1.0 / ×0.7 / ×0.4 / ×0.1) via ",e.jsx("code",{children:"gp_conviction_coefficient"}),". /build-model emits a separate ",e.jsx("em",{children:"factual"})," quant verdict (",e.jsx("code",{children:"thesis_alignment.financial_verdict"})," = HURDLES_PASSED / OUT_OF_HURDLE for strategic, CALL / CONSIDER / MONITOR / PASS rolled-up for VC/LBO) and surfaces hurdle gaps in ",e.jsx("code",{children:"unit_economics.warnings"}),". Reconciliation between the two is the job of the BP2 narrative LLM (module 1702) — /build-model itself never overwrites the GP qualitative decision."]})})]}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?"Priorité de fallback des benchmarks.":"Benchmark fallback priority."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Priorité de source par métrique (haut → bas) : ",e.jsx("strong",{children:"financial_model_setup"})," (conviction Module 5, Priorité 0) → ",e.jsx("strong",{children:"données réelles Exa"})," (revenue_annual_eur, arr_eur, ebitda_pct, gross_margin_pct, annual_churn_pct, nrr_pct, customers_count, headcount par dept, plans de pricing) → ",e.jsx("strong",{children:"proxies dérivés"})," (pricing × 12, avis G2 × 50, rétro-ingénierie du headcount) → ",e.jsx("strong",{children:"benchmark sectoriel"})," depuis ",e.jsx("code",{children:"sector_profile"})," interpolé par ",e.jsx("code",{children:"company_quality"}),". Si ",e.jsx("code",{children:"financial_model_setup"})," est absent, la priorité se réduit à Exa → proxy → benchmark et ",e.jsx("code",{children:"conviction_status"})," est mis à NO_QUALITATIVE_INPUT."]}):e.jsxs(e.Fragment,{children:["Per-metric source priority (high → low): ",e.jsx("strong",{children:"financial_model_setup"})," (Module 5 conviction, Priority 0) → ",e.jsx("strong",{children:"real Exa data"})," (revenue_annual_eur, arr_eur, ebitda_pct, gross_margin_pct, annual_churn_pct, nrr_pct, customers_count, headcount by dept, pricing plans) → ",e.jsx("strong",{children:"derived proxies"})," (pricing × 12, G2 reviews × 50, headcount reverse-engineering) → ",e.jsx("strong",{children:"sector benchmark"})," from ",e.jsx("code",{children:"sector_profile"})," interpolated by ",e.jsx("code",{children:"company_quality"}),". If ",e.jsx("code",{children:"financial_model_setup"})," is absent the priority collapses to Exa → proxy → benchmark and ",e.jsx("code",{children:"conviction_status"})," is set to NO_QUALITATIVE_INPUT."]})})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Types de mémo.":"Memo types."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Fixé par le module Make 1707 dans le corps de la requête. ",e.jsx("code",{children:"fast"})," et ",e.jsx("code",{children:"quick"})," sautent entièrement Exa (cost gate) — les comparables retombent sur le stub de benchmark sectoriel et ",e.jsx("code",{children:"financial_intel_html"})," ne contient aucune ligne Exa. ",e.jsx("code",{children:"detailed"})," exécute le pipeline complet, y compris ",e.jsx("code",{children:"search_target_financials"})," et ",e.jsx("code",{children:"find_comparables"})," avec l’extracteur OpenRouter."]}):e.jsxs(e.Fragment,{children:["Set by Make module 1707 in the request body. ",e.jsx("code",{children:"fast"})," and ",e.jsx("code",{children:"quick"})," skip Exa entirely (cost gate) — comparables fall back to the sector-benchmark stub and ",e.jsx("code",{children:"financial_intel_html"}
3221)," contains no Exa rows. ",e.jsx("code",{children:"detailed"})," runs the full pipeline including ",e.jsx("code",{children:"search_target_financials"})," and ",e.jsx("code",{children:"find_comparables"})," with the OpenRouter extractor."]})})]}),e.jsx("span",{id:"s03-decision-engine",className:"doc-anchor"}),e.jsxs("h3",{className:"doc-h3",children:[r?"Comment Stan décide":"How Stan makes decisions"," ",e.jsx("span",{className:"doc-tag",children:"MAKE PROMPT ZONE"})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Quand un lead passe le single_gate des moteurs de sourcing, il n’est pas simplement « analysé » — il passe par un comité d’investissement entièrement automatisé. Derrière le verdict, un pipeline structuré : trois ",e.jsx("strong",{children:"jobs"})," préparatoires, six ",e.jsx("strong",{children:"modules"})," (0 à 5), puis un challenger ",e.jsx("strong",{children:"Avocat du Diable"})," qui attaque la synthèse avant que le verdict ne vous parvienne. Stan teste jusqu’à 5 thèses d’acquisition en parallèle, à égalité — aucun angle n’est favorisé par défaut. Si vous avez désigné un acquéreur potentiel, un septième module — un ",e.jsx("strong",{children:"Synergy Analyst"})," tournant sur Claude Sonnet — tourne en parallèle pour quantifier la logique 1+1=3. Tout le pipeline prend moins de 90 secondes par deal. Chaque CALL qui vous parvient arrive avec 3 vérifications obligatoires émises par l’Avocat du Diable — vous savez exactement quoi challenger lors d’un appel de 15 minutes."]}):e.jsxs(e.Fragment,{children:[`When a lead passes the single_gate of the sourcing engines, it isn't simply "analyzed" — it goes through a fully automated investment committee. Behind the verdict is a structured pipeline: three preparatory `,e.jsx("strong",{children:"jobs"}),", six ",e.jsx("strong",{children:"modules"})," (0 through 5), then a ",e.jsx("strong",{children:"Devil's Advocate"})," challenger that attacks the synthesis before the verdict reaches you. Stan tests up to 5 acquisition theses in parallel, equally — no angle is favoured by default. If you've designated a potential acquirer, a seventh module — a ",e.jsx("strong",{children:"Synergy Analyst"})," running on Claude Sonnet — runs in parallel to quantify the 1+1=3 logic. The whole pipeline takes under 90 seconds per deal. Every CALL that reaches you arrives with 3 mandatory verifications emitted by the Devil's Advocate — you know exactly what to challenge during a 15-minute call."]})}),e.jsx("span",{id:"s03-decision-jobs",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"Jobs 1–3 (gates & calibrage)":"Jobs 1–3 (gates & calibration)"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Job"}),e.jsx("th",{children:r?"But":"Purpose"}),e.jsx("th",{children:r?"Résultat":"Outcome"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Job 1 — Data Quality Gate"})}),e.jsx("td",{children:r?"Évalue la suffisance sur 5 dimensions : fondamentaux de la société, intelligence marché, fondateur/équipe, finances, contexte stratégique":"Assess sufficiency across 5 dimensions: company fundamentals, market intelligence, founder/team, financials, strategic context"}),e.jsx("td",{children:r?"Bloque l’aval si les données sont insuffisantes ; signale ce qui manque":"Block downstream if data is insufficient; flag what's missing"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Job 2 — Hard Exclusion Detection"})}),e.jsx("td",{children:r?"Applique les gates binaires de la thèse : stades, secteurs, géographies, business models, patterns de pre-mortem":"Apply binary gates from the thesis: stages, sectors, geographies, business models, pre-mortem patterns"}),e.jsx("td",{children:r?"Auto-PASS avec motif si un gate se déclenche":"Auto-PASS with reason if any gate trips"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Job 3 — Extract & Calibrate (Step 0: Angle Selection)"})}),e.jsx("td",{children:r?"Identifie quels angles actifs le deal pourrait matcher ; calibre les paramètres par-angle avant le deep-dive":"Identify which active angles the deal could match; calibrate per-angle parameters before deep-dive"}),e.jsx("td",{children:r?"Setup de test à égalité pour tous les angles candidats":"Equal-test setup for all candidate angles"})]})]})]}),e.jsx("span",{id:"s03-decision-modules",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"Modules 0–5 + Avocat du Diable + Synergy Analyst (multi-angles, spécialistes)":"Modules 0–5 + Devil's Advocate + Synergy Analyst (multi-angle, specialists)"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Module"}),e.jsx("th",{children:r?"ID du module Make":"Make module ID"}),e.jsx("th",{children:r?"Ce qu’il fait":"What it does"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 0 v2"})," — Fund Thesis & Relevance Scoring"]}),e.jsx("td",{children:e.jsx("code",{children:"1620"})}),e.jsx("td",{children:r?"5 sous-jobs : thesis match, sector fit, stage fit, model fit, geography fit. Produit des scores de pertinence par-angle. Calibre jusqu’à 5 angles testés en parallèle — pas de pré-sélection.":"5 sub-jobs: thesis match, sector fit, stage fit, model fit, geography fit. Produces per-angle relevance scores. Calibrates up to 5 angles tested in parallel — no pre-pick."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 1"})," — Parallel Multi-Angle Deep-Dive"]}),e.jsx("td",{children:"—"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Génère une Q&R par-angle avec budget égal. Chaque angle actif reçoit le même nombre de questions d’investigation. Préfixes utilisés : ",e.jsx("code",{children:"[ANGLE: x]"})," · ",e.jsx("code",{children:"[UNIVERSAL]"})," · ",e.jsx("code",{children:"[DIAGNOSTIC]"}),"."]}):e.jsxs(e.Fragment,{children:["Generate per-angle Q&A with equal budget. Each active angle gets the same number of investigative questions. Prefixes used: ",e.jsx("code",{children:"[ANGLE: x]"})," · ",e.jsx("code",{children:"[UNIVERSAL]"})," · ",e.jsx("code",{children:"[DIAGNOSTIC]"}),"."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 2"})," — Specialist Reports (×3)"]}),e.jsx("td",{children:e.jsx("code",{children:"1621 · 1622 · 1623"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"1A · Market & Timing"})," (le marché est-il vivant, le timing est-il bon ?) · ",e.jsx("strong",{children:"1B · Moat & Competition"})," (qu’est-ce qui protège la cible, qui attaque ?) · ",e.jsx("strong",{children:"1C · Founder Financial Health & Risk + Overlooked Factor"})," (4 sous-jobs : questions fondateur, contrôle de santé financière, anti-patterns, l’insight non évident qu’un analyste générique raterait). Trois analystes indépendants, même structure sur chaque deal — les verdicts restent comparables sur tout le pipeline."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"1A · Market & Timing"})," (is the market alive, is the timing right?) · ",e.jsx("strong",{children:"1B · Moat & Competition"})," (what protects the target, who is attacking?) · ",e.jsx("strong",{children:"1C · Founder Financial Health & Risk + Overlooked Factor"})," (4 sub-jobs: founder questions, financial health check, anti-p
3221atterns, the non-obvious insight a generic analyst would miss). Three independent analysts, same structure on every deal — verdicts stay comparable across the pipeline."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 3"})," — Synthesis & Triangulation (Synthetic GP)"]}),e.jsx("td",{children:e.jsx("code",{children:"1624"})}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"Modérateur de comité d’investissement senior. Thesis Scorecard 2.0 (hybride par-angle), Strategic Fit Matrix, Neural Command Line (sélectionne l’angle dominant depuis les résultats de Q&R par-angle — pas depuis le classement de pertinence du Module 0). Détecte le fatal flaw, émet un CALL/CONSIDER/MONITOR/PASS préliminaire."}):e.jsx(e.Fragment,{children:"Senior Investment Committee Moderator. Thesis Scorecard 2.0 (hybrid per-angle), Strategic Fit Matrix, Neural Command Line (selects dominant angle from per-angle Q&A results — not from Module 0 relevance ranking). Detects fatal flaw, emits preliminary CALL/CONSIDER/MONITOR/PASS."})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 4"})," — ",r?"Avocat du Diable (challenger automatique)":"Devil's Advocate (challenger automatique)"]}),e.jsx("td",{children:e.jsx("code",{children:"1625"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Attaque la synthèse (pas la société). Identifie l’hypothèse la plus dangereuse, la contre-preuve ignorée, la conclusion trop confiante. Émet ",e.jsx("strong",{children:"3 vérifications « Before You Act » obligatoires"})," + ajustement du verdict. Tourne sur chaque deal — ce n’est pas le CEO qui challenge, c’est un module automatisé."]}):e.jsxs(e.Fragment,{children:["Attacks the synthesis (not the company). Identifies the most dangerous assumption, the counterevidence ignored, the overconfident conclusion. Emits ",e.jsx("strong",{children:'3 mandatory "Before You Act" verifications'})," + verdict adjustment. Runs on every deal — this is not the CEO challenging, it's an automated module."]})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Module 5"})," — Verdict & Memo (gp_comment)"]}),e.jsx("td",{children:e.jsx("code",{children:"1626"})}),e.jsx("td",{children:r?e.jsx(e.Fragment,{children:"Combine la synthèse GP + les constats de l’Avocat du Diable. Rend le verdict final dans la Neural Command Line (ANGLE_ID + scoring + décision) + mémo HTML structuré. Le M&A 10-Point Deal-Killer Framework s’applique conditionnellement pour les modes M&A."}):e.jsx(e.Fragment,{children:"Combines GP synthesis + Devil's Advocate findings. Renders the final verdict in the Neural Command Line (ANGLE_ID + scoring + decision) + structured HTML memo. M&A 10-Point Deal-Killer Framework applied conditionally for M&A modes."})})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:"Synergy Analyst"})," — ",r?"quantification 1+1=3 (parallèle, conditionnel)":"1+1=3 quantification (parallel, conditional)"]}),e.jsx("td",{children:e.jsx("code",{children:"1327"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Tourne ",e.jsx("strong",{children:"seulement si Potential Acquirer ≠ vide"}),". Module Claude Sonnet dédié tournant en parallèle des 3 spécialistes. Lit ",e.jsx("code",{children:"acquirer_context"})," (acquirer_arr_eur, synergy_horizon_years, 3-5 cross_sell_targets), groupe les synergies en 4 familles (Soft Revenue · Hard Cost · Defensive Moat · Structural), produit 8+ instances par mémo avec des notes d’impact (High/Medium/Low → multiplicateurs 1.5×/1.0×/0.5×). Sortie injectée dans le mémo final du Module 5."]}):e.jsxs(e.Fragment,{children:["Runs ",e.jsx("strong",{children:"only if Potential Acquirer ≠ empty"}),". Dedicated Claude Sonnet module running in parallel to the 3 specialists. Reads ",e.jsx("code",{children:"acquirer_context"})," (acquirer_arr_eur, synergy_horizon_years, 3-5 cross_sell_targets), groups synergies into 4 families (Soft Revenue · Hard Cost · Defensive Moat · Structural), produces 8+ instances per memo with impact ratings (High/Medium/Low → 1.5×/1.0×/0.5× multipliers). Output injected into Module 5 final memo."]})})]})]})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Test multi-angles à égalité.":"Multi-angle equal testing."}),e.jsx("p",{children:r?"Jusqu’à 5 thèses d’acquisition sont testées avec un budget d’investigation égal. La Strategic Fit Matrix du Module 3 choisit l’angle dominant depuis les résultats de Q&R par-angle — le classement de pertinence du Module 0 est informatif seulement et ne sert que de départage final. L’opportunité cross-angle émerge naturellement quand 2+ angles ont un taux de confirmation ≥60% et partagent un constat de soutien. Les sorties incluent des glossaires conscients de la langue (FR/EN) et des formats de matrice structurés pour comparer les angles d’un coup d’œil.":"Up to 5 acquisition theses are tested with equal investigative budget. The Strategic Fit Matrix in Module 3 picks the dominant angle from per-angle Q&A results — Module 0's relevance ranking is informational only and serves only as a final tie-breaker. Cross-angle opportunity emerges naturally when 2+ angles have ≥60% confirmation rate and share a supporting finding. Outputs include language-aware glossaries (FR/EN) and structured matrix formats so you can compare angles at a glance."})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Ce qui tourne où — architecture Make ↔ Modal.":"What runs where — Make ↔ Modal architecture."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Les Modules 0 à 5 (les 6 LLM ci-dessus) et le Synergy Analyst tournent dans le ",e.jsx("strong",{children:"scénario Make 3869328"}),". Le modèle financier en aval (",e.jsx("code",{children:"/build-model"}),") et l’assemblage HTML du mémo (",e.jsx("code",{children:"/build-memo"}),") sont des ",e.jsx("strong",{children:"services Python déterministes sur Modal — pas des LLM"}),". C’est intentionnel : un CFO doit pouvoir reproduire chaque chiffre du modèle financier, ligne par ligne, sans variance LLM. Le Weekly Evolution Engine (",e.jsx("code",{children:"/directive/thesis-update"}),") est de nouveau LLM (TEE sur OpenRouter Gemini 2.5 Flash) mais sa sortie est validée c
3221ontre 13 règles de schéma Pydantic avant que toute thèse ne soit patchée. Planning : Make.com possède le cron (chaque jour ouvré 7-8h30 UTC pour le sourcing, chaque lundi 16h UTC pour l’évolution) — les endpoints Modal s’exécutent à la demande quand on les appelle."]}):e.jsxs(e.Fragment,{children:["Modules 0 through 5 (the 6 LLMs above) and the Synergy Analyst run inside ",e.jsx("strong",{children:"Make scenario 3869328"}),". The downstream financial model (",e.jsx("code",{children:"/build-model"}),") and HTML memo assembly (",e.jsx("code",{children:"/build-memo"}),") are ",e.jsx("strong",{children:"deterministic Python services on Modal — not LLMs"}),". This is intentional: a CFO needs to be able to reproduce every number in the financial model, line by line, without LLM variance. The Weekly Evolution Engine (",e.jsx("code",{children:"/directive/thesis-update"}),") is back to LLM (TEE on OpenRouter Gemini 2.5 Flash) but its output is validated against 13 Pydantic schema rules before any thesis is patched. Schedule: Make.com owns the cron (every weekday 7-8h30 UTC for sourcing, every Monday 16h UTC for evolution) — Modal endpoints execute on demand when called."]})})]}),e.jsx("span",{id:"s03-verdict-engine",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:"Verdict & Neural Command Line"}),e.jsx("p",{className:"doc-text",children:r?e.jsx(e.Fragment,{children:"Le verdict n’est pas écrit en roue libre. Chaque mémo suit un pipeline déterministe — détection du mode, triangulation multi-angles, classification de fit, contrôle deal-killer (M&A uniquement), labellisation du verdict, puis une Neural Command Line (NCL) qui encode l’angle dominant pour les systèmes en aval. La logique ci-dessous est exactement ce qui tourne dans le scénario Make."}):e.jsx(e.Fragment,{children:"The verdict is not written free-form. Every memo follows a deterministic pipeline — mode detection, multi-angle triangulation, fit classification, deal-killer check (M&A only), verdict labelling, then a Neural Command Line (NCL) that encodes the dominant angle for downstream systems. The logic below is exactly what runs in the Make scenario."})}),e.jsx("h5",{className:"doc-h5",children:r?"Step 0A — Mode opératoire":"Step 0A — Operating mode"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Déterminé par le champ ",e.jsx("code",{children:"Potential Acquirer"})," dans les données d’entrée."]}):e.jsxs(e.Fragment,{children:["Determined by the ",e.jsx("code",{children:"Potential Acquirer"})," field in the input data."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Entrée":"Input"}),e.jsx("th",{children:"Mode"}),e.jsx("th",{children:r?"Comportement":"Behaviour"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"Potential Acquirer"})," ",r?"vide":"empty"]}),e.jsx("td",{children:e.jsx("strong",{children:r?"Mode VC":"VC mode"})}),e.jsx("td",{children:r?"GP VC standard. Toute analyse de synergie ignorée.":"Standard VC GP. All synergy analysis ignored."})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"Potential Acquirer"})," ",r?"renseigné":"set"]}),e.jsx("td",{children:e.jsx("strong",{children:r?"Mode M&A":"M&A mode"})}),e.jsx("td",{children:r?"Filtre M&A impitoyable. Framework deal-killer 10 points appliqué.":"Ruthless M&A filter. 10-point deal-killer framework applied."})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Step 0B — Angles testés (égalitaire)":"Step 0B — Angles tested (egalitarian)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le Module 0 v2 teste 1 à 5 angles avec un ",e.jsx("strong",{children:"budget de questions K égal par angle"}),". Il n’y a pas de primaire/secondaire — chaque angle testé est investigué à la même profondeur. L’angle dominant pour le verdict est choisi plus tard par la Strategic Fit Matrix, pas par le classement de pertinence du Module 0."]}):e.jsxs(e.Fragment,{children:["Module 0 v2 tests 1 to 5 angles with ",e.jsx("strong",{children:"equal question budget K per angle"}),". There is no primary/secondary — every tested angle is investigated at the same depth. The dominant angle for the verdict is chosen later by the Strategic Fit Matrix, not by Module 0's relevance ranking."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Strategic Fit Matrix — triangulation à 3 sources":"Strategic Fit Matrix — 3-source triangulation"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La matrice n’est construite que quand ",e.jsx("code",{children:"angles_tested.length ≥ 2"}),". Elle triangule trois sources :"]}):e.jsxs(e.Fragment,{children:["The matrix is built only when ",e.jsx("code",{children:"angles_tested.length ≥ 2"}),". It triangulates three sources:"]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Source"}),e.jsx("th",{children:"Signal"}),e.jsx("th",{children:r?"Rôle":"Role"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"1. Q&R analystes":"1. Analyst Q&A"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Comptes ✅ / ❌ / ⚠️ par-angle → ",e.jsx("code",{children:"confirmation_rate"})]}):e.jsxs(e.Fragment,{children:["Per-angle ✅ / ❌ / ⚠️ counts → ",e.jsx("code",{children:"confirmation_rate"})]})}),e.jsx("td",{children:r?"Preuves bottom-up des analystes Market / Moat / Founder.":"Bottom-up evidence from Market / Moat / Founder analysts."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"2. Analyse de synergies":"2. Synergy anal
3221ysis"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"synergy_count"}),", ",e.jsx("code",{children:"synergy_weight"})," par-angle, compte HIGH-confidence"]}):e.jsxs(e.Fragment,{children:["Per-angle ",e.jsx("code",{children:"synergy_count"}),", ",e.jsx("code",{children:"synergy_weight"}),", HIGH-confidence count"]})}),e.jsx("td",{children:r?"Logique stratégique spécifique à l’acquéreur. Parsée depuis la sortie du Module 1327.":"Acquirer-specific strategic logic. Parsed from Module 1327 output."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"3. Pertinence Module 0":"3. Module 0 relevance"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"relevance_score"})," par-angle"]}):e.jsxs(e.Fragment,{children:["Per-angle ",e.jsx("code",{children:"relevance_score"})]})}),e.jsx("td",{children:r?"Hypothèse d’ancrage. Utilisée uniquement comme départage final.":"Anchor hypothesis. Used only as the final tie-breaker."})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Règles de classification de fit (le premier match gagne)":"Fit classification rules (first match wins)"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Classification"}),e.jsx("th",{children:r?"Déclencheur":"Trigger"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"STRONG_FIT"})}),e.jsxs("td",{children:[e.jsx("code",{children:"confirmation_rate ≥ 70%"})," AND (",e.jsx("code",{children:"synergy_count ≥ 2"})," OR ",e.jsx("code",{children:"synergy_weight ≥ 0.40"}),")"]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"MODERATE_FIT"})}),e.jsxs("td",{children:[e.jsx("code",{children:"confirmation_rate ≥ 50%"})," OR ",e.jsx("code",{children:"synergy_count ≥ 2"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"SPECULATIVE"})}),e.jsxs("td",{children:[e.jsx("code",{children:"confirmation_rate ≥ 30%"})," AND ",e.jsx("code",{children:"synergy_count ≥ 1"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"WEAK_FIT"})}),e.jsx("td",{children:r?"Sous 30% avec ≥ 1 synergie, OU ≥ 30% avec 0 synergie":"Below 30% with ≥ 1 synergy, OR ≥ 30% with 0 synergies"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"NO_FIT"})}),e.jsxs("td",{children:[e.jsx("code",{children:"confirmation_rate < 30%"})," AND ",e.jsx("code",{children:"synergy_count == 0"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"INSUFFICIENT_DATA"})}),e.jsxs("td",{children:["(✅ + ❌) < 2 AND ",e.jsx("code",{children:"synergy_count == 0"})]})]})]})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Mode dégradé.":"Degraded mode."}),e.jsx("p",{children:r?"Si le Module 1327 ne retourne aucune synergie (chaîne sentinelle ou JSON non parsable), la colonne synergie est retirée et les règles se réduisent à une échelle Q&R seule.":"If Module 1327 returns no synergies (sentinel string or unparsable JSON), the synergy column is dropped and the rules collapse to a Q&A-only ladder."})]}),e.jsx("h5",{className:"doc-h5",children:r?"Persona d’acquéreur — lentille de lecture (pas un override)":"Acquirer persona — reading lens (not override)"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Type d’acquéreur":"Acquirer type"}),e.jsx("th",{children:r?"Lentille d’interprétation":"Interpretation lens"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"TYPE A — Financier":"TYPE A — Financial"})}),e.jsx("td",{children:r?"Signaux de Q&R plus pondérés. Le poids de synergie compte moins.":"Q&A signals weighted more. Synergy weight matters less."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("strong",{children:["TYPE B — ",r?"Stratégique":"Strategic"]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"synergy_count"})," et ",e.jsx("code",{children:"synergy_weight"})," plus pondérés."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"synergy_count"})," and ",e.jsx("code",{children:"synergy_weight"})," weighted more."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("strong",{children:["TYPE C — ",r?"Hybride":"Hybrid"]}
3221)}),e.jsx("td",{children:r?"Équilibré.":"Balanced."})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Verdict → signal NCL → impact sur la thèse de l’angle":"Verdict → NCL signal → impact on the angle thesis"}),e.jsx("p",{className:"doc-text",children:r?"Chaque verdict émet une Neural Command Line avec un signal typé. Le signal dit au moteur d’évolution du lundi exactement comment muter l’angle qui a déclenché la décision.":"Every verdict emits a Neural Command Line with a typed signal. The signal tells the Monday Evolution Engine exactly how to mutate the angle that triggered the decision."}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Verdict"}),e.jsx("th",{children:"Signal"}),e.jsx("th",{children:"Mode"}),e.jsx("th",{children:r?"Impact sur la thèse de l’angle":"Impact on the angle thesis"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:r?"CEO NON (sans note)":"CEO NO (no note)"})}),e.jsx("td",{children:e.jsx("code",{children:"CEO_VETO"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Clause ",e.jsx("code",{children:"reject_signal"})," immédiate. ",e.jsx("code",{children:"red_flag"})," → ",e.jsx("code",{children:"priority_flags"})," instantanément. ",e.jsx("code",{children:"narrative_alpha"})," NON muté (pas de concept). Convergence : ~6 semaines."]}):e.jsxs(e.Fragment,{children:["Immediate ",e.jsx("code",{children:"reject_signal"})," clause. ",e.jsx("code",{children:"red_flag"})," → ",e.jsx("code",{children:"priority_flags"})," instantly. ",e.jsx("code",{children:"narrative_alpha"})," NOT mutated (no concept). Convergence: ~6 weeks."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:r?"CEO NON + note":"CEO NO + note"})}),e.jsx("td",{children:e.jsx("code",{children:"CEO_VETO"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Idem + ",e.jsx("code",{children:"TOXIC_KEYWORD"})," extrait. ",e.jsx("code",{children:"narrative_alpha.angles"})," réécrit. ",e.jsx("strong",{children:"La plus forte mutation unique du système."})," Convergence : ~2 semaines."]}):e.jsxs(e.Fragment,{children:["Same + ",e.jsx("code",{children:"TOXIC_KEYWORD"})," extracted. ",e.jsx("code",{children:"narrative_alpha.angles"})," rewritten. ",e.jsx("strong",{children:"Strongest single mutation in the system."})," Convergence: ~2 weeks."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-call",children:r?"CEO OUI + note":"CEO YES + note"})}),e.jsx("td",{children:e.jsx("code",{children:"CEO_YES"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"WINNING_KEYWORD"})," extrait. ",e.jsx("code",{children:"green_flags"})," renforcés. ",e.jsx("code",{children:"gold_anchor_pool"})," tourné. Mutation positive de ",e.jsx("code",{children:"narrative_alpha"}),". ",e.jsx("strong",{children:"Calibrage positif — enseigne à quoi ressemble l’excellence."})]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"WINNING_KEYWORD"})," extracted. ",e.jsx("code",{children:"green_flags"})," reinforced. ",e.jsx("code",{children:"gold_anchor_pool"})," rotated. ",e.jsx("code",{children:"narrative_alpha"})," positive mutation. ",e.jsx("strong",{children:"Positive calibration — teaches what great looks like."})]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-call",children:"CALL"})}),e.jsx("td",{children:e.jsx("code",{children:"CALL"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Un pattern confirme la thèse de cet angle. L’optimisation cible ses ",e.jsx("code",{children:"sectors_plain"}),", ",e.jsx("code",{children:"competitor_anchors"})," et ",e.jsx("code",{children:"exa_queries"}),"."]}):e.jsxs(e.Fragment,{children:["A pattern confirms this angle's thesis. Optimisation targets its ",e.jsx("code",{children:"sectors_plain"}),", ",e.jsx("code",{children:"competitor_anchors"}),", and ",e.jsx("code",{children:"exa_queries"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-call",children:"CALL + synergies"})}),e.jsx("td",{children:e.jsx("code",{children:"SYNERGY_CALL"})}),e.jsx("td",{children:"M&A"}),e.jsx("td",{children:r?"Fortes synergies de portefeuille — même mécanique que CALL pour cet angle, plus un signal de synergie.":"Strong portfolio synergies — same mechanic as CALL for this angle, plus a synergy signal."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-consider",children:r?"CONSIDER — risque":"CONSIDER — risk"})}),e.jsx("td",{children:e.jsx("code",{children:"RISK"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Risque identifié sur cet angle. Red soft flag −3pts sur l’angle. Se résout en PASS si le signal ne se lève pas.":"Risk identified on this angle. Red soft flag −3pts on the angle. Resolves into a PASS if the signal doesn't clear."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-monitor",children:"MONITOR"})}),e.jsx("td",{children:e.jsx("code",{children:"MONITOR"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Trop tôt pour cet angle — ou trop tard (société déjà trop grosse, mais vous en voulez une comme elle). Pas de mutation de thè
3221se.":"Too early for this angle — or too late (company already too big, but you want another like it). No thesis mutation."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:r?"PASS — nouveau profil":"PASS — new profile"})}),e.jsx("td",{children:e.jsx("code",{children:"POISON"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Profil indésirable pour cet angle. Filtre durci, poison anchor mis à jour, poids −5pts sur l’angle.":"Undesirable profile for this angle. Filter hardened, poison anchor updated, weight −5pts on the angle."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:r?"PASS — exclusion connue":"PASS — known exclusion"})}),e.jsx("td",{children:e.jsx("code",{children:"BLOCK"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Le filtre de l’angle fonctionne. Aucun changement de sourcing sur aucun angle.":"The angle's filter is working. No sourcing change on any angle."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:r?"PASS — conflit de portefeuille":"PASS — portfolio conflict"})}),e.jsx("td",{children:e.jsx("code",{children:"SYNERGY_BLOCK"})}),e.jsx("td",{children:"M&A"}),e.jsx("td",{children:r?"Conflit direct de portefeuille. Identique à BLOCK côté sourcing — zéro changement.":"Direct portfolio conflict. Identical to BLOCK on the sourcing side — zero change."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Données insuffisantes":"Insufficient data"}),e.jsx("td",{children:e.jsx("code",{children:"GAP"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Log seulement. Pas de mutation de thèse sur aucun angle.":"Log only. No thesis mutation on any angle."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Société ratée":"Company missed"}),e.jsx("td",{children:e.jsx("code",{children:"MARKET_VALIDATION"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Angle mort prouvé sur cet angle. Secteur ajouté à son ",e.jsx("code",{children:"sectors_plain"})," et ",e.jsx("code",{children:"binary_gates.inclusions"}),"."]}):e.jsxs(e.Fragment,{children:["Blind spot proven on this angle. Sector added to its ",e.jsx("code",{children:"sectors_plain"})," and ",e.jsx("code",{children:"binary_gates.inclusions"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Concurrent intéressant":"Interesting competitor"}),e.jsx("td",{children:e.jsx("code",{children:"WATCHLIST"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Concurrent ajouté aux ",e.jsx("code",{children:"competitor_anchors"})," de l’angle. Graine Exa Similar dès le lendemain."]}):e.jsxs(e.Fragment,{children:["Competitor added to the angle's ",e.jsx("code",{children:"competitor_anchors"}),". Seeds Exa Similar the next day."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Verdict overridé":"Verdict overridden"}),e.jsx("td",{children:e.jsx("code",{children:"OVERRIDE"})}),e.jsx("td",{children:"VC & M&A"}),e.jsx("td",{children:r?"Votre jugement remplace la machine. Priorité absolue. Effet immédiat sur cet angle — pas de seuil de fréquence.":"Your judgment replaces the machine. Absolute priority. Immediate effect on this angle — no frequency threshold."})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"M&A 10-Point Deal-Killer Framework (mode M&A uniquement)":"M&A 10-Point Deal-Killer Framework (M&A mode only)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Exécuté contre l’angle dominant choisi par la matrice. Chaque flag exige une ",e.jsx("strong",{children:"preuve confirmée"})," — les risques suspectés sont consignés comme ",e.jsx("code",{children:"MISSING_DATA"}),", jamais flaggés."]}):e.jsxs(e.Fragment,{children:["Run against the dominant angle chosen by the matrix. Each flag requires ",e.jsx("strong",{children:"confirmed evidence"})," — suspected risks are logged as ",e.jsx("code",{children:"MISSING_DATA"}),", never flagged."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Deal-killer"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:"1"}),e.jsx("td",{children:"Side-Quest"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"2"}),e.jsx("td",{children:"Build vs. Buy"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"3"}),e.jsx("td",{children:"ICP Mismatch"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"4"}),e.jsx("td",{children:"Cannibalization"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"5"}),e.jsx("td",{children:"Tech-Stack / Integration"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"6"}),e.jsx("td",{children:"Margin Gravity"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"7"}),e.jsx("td",{children:"Empty Shell"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"8"}),e.jsx("td",{children:"Antitrust / Regulatory"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"9"}),e.jsx("td",{children:"House of Cards"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"10"}),e.jsx("td",{children:"Culture Clash"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"★"}),e.jsx("td",{children:r?"The Escape Hatch (risques fatals idiosyncrasiques)":"The Escape Hatch (idiosyncratic fatal risks)"})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Numérotation dynamique des sections — pas de [5.5] orphelin":"Dynamic section numbering — no orphan [5.5]"}),e.jsx("p",{className:"doc-text",children:r?"La section 5 du mémo varie selon décision × nombre d’angles testés :":"The memo's section 5 varies by decision × number of angles tested:"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Cas":"Case"}),e.jsx("th",{children:r?"Décision":"Decision"}),e.jsx("th",{children:r?"Angles testés":"Angles tested"}),e.jsx("th",{children:r?"Sections rendues":"Rendered sections"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"A"})}),e.jsx("td",{children:"CONSIDER / MONITOR"}),e.jsx("td",{children:"≥ 2"}),e.jsx("td",{children:"[5] Next Action · [5.5] Holistic Angle Selection · [6] Neural Command Line"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"B"})}),e.jsx("td",{children:"CALL / PASS"}),e.jsx("td",{children:"≥ 2"}),e.jsx("td",{children:r?"[5] Holistic Angle Selection (renommé depuis [5.5]) · [6] Neural Command Line":"[5] Holistic Angle Selection (renamed from [5.5]) · [6] Neural Command Line"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"C"})}),e.jsx("td",{children:"CALL / PASS"}),e.jsx("td",{children:"1"}),e.jsx("td",{children:r?"[6] Neural Command Line seulement — pas de [5]":"[6] Neural Command Line only — no [5]"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"D"})}),e.jsx("td",{children:"CONSIDER / MONITOR"}),e.jsx("td",{children:"1"}),e.jsx("td",{children:"[5] Next Action · [6] Neural Command Line"})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Auto-revue de la scorecard — 4 contrôles obligatoires":"Scorecard self-review — 4 mandatory checks"}),e.jsx("p",{className:"doc-text",children:r?"Avant de clore le JSON, le modèle exécute ces contrôles et re-rend si l’un échoue :":"Before closing the JSON, the model runs these checks and re-renders if any fail
3221s:"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Contrôle":"Check"}),e.jsx("th",{children:r?"Règle":"Rule"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"1 — Hard Rule 7"})}),e.jsx("td",{children:r?"Un sous-bloc [2.1.X] par angle dans la matrice. Si [2.0] a N lignes, [2.1.A…N] doivent tous se rendre.":"One [2.1.X] sub-block per angle in the matrix. If [2.0] has N rows, [2.1.A…N] must all render."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"2 — Hard Rule 8"})}),e.jsx("td",{children:r?"[2.3] ≥ 25 puces · [2.4] ≥ 11 puces · [2.5] exactement 4 attaques, chacune avec 3 sous-puces.":"[2.3] ≥ 25 bullets · [2.4] ≥ 11 bullets · [2.5] exactly 4 attacks, each with 3 sub-bullets."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"3 — Hard Rule 9"})}),e.jsx("td",{children:r?"La numérotation de la section 5 correspond au tableau Cas A/B/C/D ci-dessus. Pas de [5.5] orphelin.":"Section 5 numbering matches the Case A/B/C/D table above. No orphan [5.5]."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"4 — Nombre de constats":"4 — Finding count"})}),e.jsx("td",{children:r?"Total ✅+❌+⚠️ = (K × angles_tested × 3) + (U × 3). Pour K=3, N=3, U=2 → 33 constats.":"Total ✅+❌+⚠️ = (K × angles_tested × 3) + (U × 3). For K=3, N=3, U=2 → 33 findings."})]})]})]}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"Neural Command Line — toujours en dernier.":"Neural Command Line — always last."}),e.jsx("p",{children:r?"La section [6] rend toujours l’angle dominant comme une NCL lisible par machine. C’est le passage de relais au Weekly Evolution Engine (étape 05), qui agrège les NCL sur toutes les décisions pour muter les poids d’angle, resserrer les filtres durs et mettre à jour les requêtes de sourcing.":"Section [6] always renders the dominant angle as a machine-readable NCL. This is the handoff to the Weekly Evolution Engine (step 05), which aggregates NCLs across decisions to mutate angle weights, tighten hard filters, and update sourcing queries."})]}),e.jsx("span",{id:"s03-override",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Votre interface — OUI ou NON sur les top picks":"Your interface — YES or NO on top picks"}),e.jsx("p",{className:"doc-text",children:r?"Stan produit tous les verdicts de façon autonome, sur 6 dimensions qualitatives. La grande majorité ne requiert rien de vous — ils alimentent directement le moteur d’évolution.":"Stan produces all verdicts autonomously, across 6 qualitative dimensions. The vast majority require nothing from you — they feed the evolution engine directly."}),e.jsx("p",{className:"doc-text",children:r?"Votre interface ne s’active que quand Stan a identifié un deal particulièrement intéressant : une société qui a passé tous les filtres, reçu un mémo complet et un modèle financier, et que Stan juge digne d’être poursuivie immédiatement.":"Your interface activates only when Stan has identified a particularly interesting deal: a company that passed every filter, received a full memo and financial model, and that Stan considers worth pursuing immediately."}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Vous avez ",e.jsx("strong",{children:"5 façons de répondre OUI ou NON"})," :"]}):e.jsxs(e.Fragment,{children:["You have ",e.jsx("strong",{children:"5 ways to answer YES or NO"}),":"]})}),e.jsx("ol",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Email quotidien"})," — bouton OUI · NON directement dans l’email"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Email hebdo"})," — OUI · NON avec les décisions en attente mises en avant"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Place Chat"})," — votre dashboard de deal flow"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Stan Chat"})," — OUI · NON dans la sidebar du mémo (panneau droit)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Sidebar du mémo"})," — OUI · NON dans le mémo HTML (panneau gauche)"]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Daily email"})," — YES · NO button directly in the email"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Weekly email"})," — YES · NO with pending decisions highlighted"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Place Chat"})," — your deal flow dashboard"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Stan Chat"})," — YES · NO in the memo sidebar (right panel)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Memo sidebar"})," — YES · NO in the HTML memo (left panel)"]})]})}),e.jsx("p",{className:"doc-text",children:r?"Dans tous les cas, la décision est sauvegardée immédiatement dans Airtable. Une zone de note s’ouvre — optionnelle, mais une ligne double la vitesse de convergence.":"In every case, the decision is saved immediately to Airtable. A note box opens — optional, but one line doubles convergence speed."}),e.jsx("p",{className:"doc-text",children:r?"Les décisions ouvertes portent des échéances dures appliquées par le système : CONSIDER se résout dès que le signal manquant se lève (ou devient un PASS), MONITOR a un checkpoint à 90 jours selon que la cible devient opportune (trop tôt) ou qu’un équivalent apparaît (trop tard — société déjà trop grosse, mais vous en voulez une comme elle). L’email hebdo du lundi liste chaque décision ouverte avec son échéance pour que rien ne passe à la trappe silencieusement.":"Open decisions carry hard deadlines enforced by the system : CONSIDER resolves once the missing signal clears (or it becomes a PASS), MONITOR has a 90-day checkpoint whether the target becomes timely (too early) or an equivalent appears (too late — company already too big, but you want another like it). The Monday 
3221weekly email lists every open decision with its deadline so nothing slips silently."}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"OUI"})," → Stan rédige l’approche immédiatement. Proplace OS : vous ou votre équipe l’envoyez. Proplace+ : votre Corporate Developer contacte la société en votre nom."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"YES"})," → Stan drafts the outreach immediately. Proplace OS: you or your team send it. Proplace+: your Corporate Developer contacts the company in your name."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"NON"})," → signal ",e.jsx("code",{children:"CEO_VETO"})," déclenché. La logique de qualification de Stan mise à jour avant le run du lundi. Votre NON reprogramme ce que Stan considère comme un top pick sur l’angle qui a produit ce deal."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{children:"NO"})," → ",e.jsx("code",{children:"CEO_VETO"})," signal triggered. Stan's qualification logic updated before Monday's run. Your NO reprograms what Stan considers a top pick on the angle that produced this deal."]})}),e.jsx("p",{className:"doc-text",children:r?"Les 6 dimensions ci-dessous sont ce que Stan évalue en interne pour produire son verdict. Vous ne les notez pas. Vous répondez juste OUI ou NON au résultat.":"The 6 dimensions below are what Stan evaluates internally to produce its verdict. You don't score them. You just respond YES or NO to the result."}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Dimension"}
3221),e.jsx("th",{children:r?"Ce qu’elle capture":"What it captures"})]})}),e.jsx("tbody",{children:S5.map(l=>{const d=r?B5(l):l;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:d.label})}),e.jsx("td",{children:d.detail})]},l.label)})})]}),e.jsxs("div",{className:"verdicts-grid",children:[e.jsxs("div",{className:"verdict v-call",children:[e.jsx("div",{className:"verdict-h",children:r?"🟢 Top pick de Stan — VOTRE INTERFACE":"🟢 Stan's top pick — YOUR INTERFACE"}),e.jsx("div",{className:"verdict-p",children:r?e.jsxs(e.Fragment,{children:["La plus forte conviction de Stan. Vous parvient via email quotidien/hebdo, Place Chat, sidebar du mémo. Si encore ouvert le lundi : listé en haut du centre de commande hebdo avec son échéance. OUI → approche. NON → ",e.jsx("code",{children:"CEO_VETO"})," → thèse mutée par le moteur d’évolution à 16h UTC."]}):e.jsxs(e.Fragment,{children:["Stan's highest conviction. Reaches you via daily/weekly email, Place Chat, memo sidebar. If still open Monday: listed at the top of the weekly command center with its deadline. YES → outreach. NO → ",e.jsx("code",{children:"CEO_VETO"})," → thesis mutated by the Evolution Engine at 4 PM UTC."]})})]}),e.jsxs("div",{className:"verdict v-consider",children:[e.jsx("div",{className:"verdict-h",children:r?"🟡 Stan : en revue — AUCUNE ACTION REQUISE":"🟡 Stan: under review — NO INPUT REQUIRED"}),e.jsx("div",{className:"verdict-p",children:r?"Doutes identifiés. S’auto-archive si aucun nouveau signal.":"Doubts identified. Auto-archives if no new signal."})]}),e.jsxs("div",{className:"verdict v-monitor",children:[e.jsx("div",{className:"verdict-h",children:r?"🔵 Stan : sous surveillance — AUCUNE ACTION REQUISE":"🔵 Stan: monitoring — NO INPUT REQUIRED"}),e.jsx("div",{className:"verdict-p",children:r?"Pertinent mais pas opportun — soit trop tôt (marché pas prêt), soit trop tard (société déjà trop grosse, mais vous en voulez une comme elle). Alerte jalon posée.":"Relevant but not timely — either too early (market not ready), or too late (company already too big, but you want another like it). Milestone alert set."})]}),e.jsxs("div",{className:"verdict v-pass",children:[e.jsx("div",{className:"verdict-h",children:r?"🔴 Stan : écarté — AUCUNE ACTION REQUISE":"🔴 Stan: filtered out — NO INPUT REQUIRED"}),e.jsx("div",{className:"verdict-p",children:r?"Mauvais fit ou exclusion dure. Filtres de la thèse durcis définitivement.":"Wrong fit or hard exclusion. Thesis filters tightened permanently."})]})]}),e.jsx("span",{id:"s03-cd-call",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Décisions ouvertes — échéances intégrées, aucune décision perdue":"Open decisions — built-in deadlines, no decision ever lost"}),e.jsx("p",{className:"doc-text",children:r?"Stan livre les top picks dans vos emails quotidien et hebdo. Vous répondez OUI ou NON directement depuis l’email, la sidebar du mémo, Place Chat, Stan Chat, ou le centre de commande hebdo — cinq canaux, une colonne Airtable.":"Stan delivers top picks to your daily and weekly emails. You answer YES or NO directly from the email, the memo sidebar, Place Chat, Stan Chat, or the weekly command center — five channels, one Airtable column."}),e.jsx("p",{className:"doc-text",children:r?"Ce qui empêche quoi que ce soit de passer à la trappe, ce n’est pas un appel de rappel — c’est l’échéance imposée par le système sur chaque décision ouverte. Trois règles :":"What makes nothing slip through is not a reminder call — it's the deadline enforced by the system on every open decision. Three rules:"}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"CONSIDER"})," se résout dès que le signal manquant se lève ; si le signal ne se matérialise jamais, le deal est consigné dans Airtable et clos, sans mutation du mandat."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"MONITOR"})," a un checkpoint à 90 jours — utilisé pour les cibles trop tôt (le marché n’est pas prêt) ou trop tard (la société est déjà trop grosse, mais vous en voulez une comme elle). Jalon atteint au jour 90 → re-qualification déclenchée. Non atteint → dossier clos."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Top picks (CALL)"})," restent ouverts jusqu’à votre réponse. L’email hebdo du lundi liste chaque CALL sans réponse en haut, avec le numéro de la semaine où il a été émis, pour que vous voyiez exactement ce qui attend."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"CONSIDER"})," resolves as soon as the missing signal clears; if the signal never materialises, the deal is logged in Airtable and closed, with no mutation to the mandate."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"MONITOR"})," has a 90-day checkpoint — used for targets that are too early (the market is not ready) or too late (the company is already too big, but you want another like it). Milestone reached by day 90 → re-qualification triggered. Not reached → file closed."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Top picks (CALL)"}
3221)," stay open until you answer. The Monday weekly email lists every unanswered CALL at the top, with the week number it was issued, so you see exactly what is waiting."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Si vous voulez ajouter une note sur votre OUI ou NON, une ligne suffit — elle double la vitesse de convergence de Stan en donnant au moteur d’évolution un ",e.jsx("code",{children:"WINNING_KEYWORD"})," ou ",e.jsx("code",{children:"TOXIC_KEYWORD"})," à encoder dans la prochaine mutation de thèse."]}):e.jsxs(e.Fragment,{children:["If you want to add a note on your YES or NO, one line is enough — it doubles Stan's convergence speed by giving the Evolution Engine a ",e.jsx("code",{children:"WINNING_KEYWORD"})," or ",e.jsx("code",{children:"TOXIC_KEYWORD"})," to encode into the next thesis mutation."]})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Pourquoi la note compte autant.":"Why the note matters so much."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Un OUI sans note produit un signal ",e.jsx("code",{children:"CEO_YES"})," générique — le moteur sait que vous étiez d’accord mais pas pourquoi. Un OUI avec « angle MICE parfait — foncer sur celui-là » produit un ",e.jsx("code",{children:"CEO_YES + WINNING_KEYWORD"})," — le moteur extrait « angle MICE » comme pattern à renforcer. Un NON avec une raison précise sur l’angle rejeté devient la plus forte mutation unique du cycle — un ",e.jsx("code",{children:"TOXIC_KEYWORD"})," ciblé encodé dans ",e.jsx("code",{children:"reject_signal"})," / ",e.jsx("code",{children:"red_flags"})," / ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]}):e.jsxs(e.Fragment,{children:["A YES with no note produces a generic ",e.jsx("code",{children:"CEO_YES"}),' signal — the engine knows you agreed but not why. A YES with "MICE angle perfect — move fast on this one" produces a ',e.jsx("code",{children:"CEO_YES + WINNING_KEYWORD"})," — the engine extracts 'MICE angle' as a pattern to reinforce. A NO with a specific reason on the angle you rejected becomes the strongest single mutation in the cycle — a targeted ",e.jsx("code",{children:"TOXIC_KEYWORD"})," encoded into ",e.jsx("code",{children:"reject_signal"})," / ",e.jsx("code",{children:"red_flags"})," / ",e.jsx("code",{children:"poison_anchor_characteristics"}),"."]})})]}),e.jsx("span",{id:"s03-ceo-veto",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"CEO_VETO — ce que le NON fait à la thèse":"CEO_VETO — what NO does to the thesis"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"CEO_VETO"})," est un type de signal dans le Thesis Evolution Engine. Il est émis quand le CEO répond NON sur un top pick."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"CEO_VETO"})," is a signal type in the Thesis Evolution Engine. It is emitted when the CEO answers NO on a top pick."]})}),e.jsx("p",{className:"doc-text",children:e.jsx("strong",{children:r?"Ce n’est pas un PASS.":"It is not a PASS."})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un PASS, c’est Stan qui rejette un deal de lui-même — le filtre a marché. Confirmation seulement. Un ",e.jsx("code",{children:"CEO_VETO"}),", c’est Stan qui promeut un deal en top pick — et se trompe. C’est un échec de qualification sur un angle précis. Le plus fort signal de calibrage du système."]}):e.jsxs(e.Fragment,{children:["A PASS is Stan rejecting a deal on its own — the filter worked. Confirmation only. A ",e.jsx("code",{children:"CEO_VETO"})," is Stan promoting a deal to its top pick — and being wrong. That's a qualification failure on a specific angle. The strongest calibration signal in the system."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Encodage du signal":"Signal encoding"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Valeur":"Value"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"signal_type"})}),e.jsx("td",{children:"CEO_VETO"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"angle_id"})}),e.jsx("td",{children:r?"l’angle qui a déclenché la sélection en top pick":"the angle that triggered the top pick selection"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"company"})}),e.jsx("td",{children:r?"la société évaluée":"the company evaluated"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"concept"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"TOXIC_KEYWORD"})," extrait de la note du CEO (null si pas de note)"]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"TOXIC_KEYWORD"})," extracted from CEO note (null if no note)"]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"note_raw"})}),e.jsx("td",{children:r?"note du CEO telle quelle ou transcription du Corporate Developer":"verbatim CEO note or Corporate Developer transcription"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"cycle_count"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["compte de ",e.jsx("code",{children:"CEO_VETO"})," antérieurs sur cet angle"]}):e.jsxs(e.Fragment,{children:["prior ",e.jsx("code",{children:"CEO_VETO"})," count on this angle"]})})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Priorité dans la chaîne TEE":"Priority in the TEE chain"}),e.jsxs("p",{className:"doc-text",children:[e.jsx("code",{children:"CEO_VETO"})," > ",e.jsx("code",{children:"CEO_YES"})," > ",e.jsx("code",{children:"OVERRIDE"})," > ",e.jsx("code",{children:"CALL"})," > ",e.jsx("code",{children:"MARKET_VALIDATION"})," > ",e.jsx("code",{children:"WATCHLIST"})," > ",e.jsx("code",{children:"POISON"})]}),e.jsxs("p",{className:"doc-text",children:[e.jsx("strong",{children:r?"Seuil :":"Threshold:"})," ",r?"1 signal. Immédiat. Aucune accumulation de cycles requise.":"1 signal. Immediate. No cycle accumulation required."]}),e.jsx("h5",{className:"doc-h5",children:r?"Mutations déclenchées":"Mutations triggered"}),e.jsx("ol",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"sourcing_config.angles[angle_id].reject_signal"})})," → clause ajoutée immédiatement. Contourne la règle standard des 2 cycles."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"semantic_filters.angles[angle_id]"})})," → ",e.jsx("code",{children:"red_flag"})," ajouté avec ",e.jsx("code",{children:'query_weight:"high"'}),". Promu à ",e.jsx("code",{children:"priority_flags"})," immédiatement (sans seuil)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"benchmarks.angles[angle_id]"})})," → ",e.jsx("code",{children:"poison_anchor"})," mis à jour si anti-pattern plus extrême. ",e.jsx("code",{children:"poison_anchor_characteristics"})," : 1-2 traits ajoutés immédiatement."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"narrative_alpha.angles[angle_id]"})})," ← ",e.jsxs("em",{children:["MUTATION CLÉ (seul ",e.jsx("code",{children:"CEO_VETO"})," la déclenche)"]}),". Le narratif de qualification de Stan pour cet angle est mis à jour. Format : ",e.jsx("code",{children:'"CEO_VETO: [concept] — [paraphrase of note, max 60 chars]"'}),". Max 3 phrases ",e.jsx("code",{children:"CEO_VETO"})," par angle. La plus ancienne remplacée quand c’est plein. Le SEUL signal qui mute directement le raisonnement de qualification."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"sourcing_config.angles[angle_id].reject_signal"})})," → clause added immediately. Bypasses the standard 2-cycle rule."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"semantic_filters.angles[angle_id]"})})," → ",e.jsx("code",{children:"red_flag"})," added with ",e.jsx("code",{children:'query_weight:"high"'}),". Promoted to ",e.jsx("code",{children:"priority_flags"})," immediately (no threshold)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"benchmarks.angles[angle_id]"})})," → ",e.jsx("code",{children:"poison_anchor"}
3221)," updated if more extreme anti-pattern. ",e.jsx("code",{children:"poison_anchor_characteristics"}),": 1-2 traits appended immediately."]}),e.jsxs("li",{children:[e.jsx("strong",{children:e.jsx("code",{children:"narrative_alpha.angles[angle_id]"})})," ← ",e.jsxs("em",{children:["KEY MUTATION (only ",e.jsx("code",{children:"CEO_VETO"})," triggers this)"]}),". Stan's qualification narrative for this angle is updated. Format: ",e.jsx("code",{children:'"CEO_VETO: [concept] — [paraphrase of note, max 60 chars]"'}),". Max 3 ",e.jsx("code",{children:"CEO_VETO"})," sentences per angle. Oldest replaced when full. The ONLY signal that mutates the qualification reasoning directly."]})]})}),e.jsx("h5",{className:"doc-h5",children:r?"Effet sur les top picks du lundi suivant":"Effect on next Monday's top picks"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les futurs deals correspondant au profil ",e.jsx("code",{children:"CEO_VETO"})," sont rétrogradés ",e.jsx("strong",{children:"avant qu’ils ne vous parviennent"}),". Pas à cause d’un filtre. Parce que ",e.jsx("em",{children:"le raisonnement de Stan a changé"}),"."]}):e.jsxs(e.Fragment,{children:["Future deals matching the ",e.jsx("code",{children:"CEO_VETO"})," profile are downgraded ",e.jsx("strong",{children:"before they reach you"}),". Not because of a filter. Because ",e.jsx("em",{children:"Stan's reasoning changed"}),"."]})}),e.jsx("h5",{className:"doc-h5",children:r?"CEO_VETO avec vs. sans note":"CEO_VETO with vs. without a note"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Cas":"Case"}),e.jsx("th",{children:"Mutations"}),e.jsx("th",{children:"Convergence"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:r?"Sans note":"Without note"})," ",r?"(le CEO a cliqué NON, rien écrit)":"(CEO clicked NO, wrote nothing)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Conservateur : ",e.jsx("code",{children:"reject_signal"})," + ",e.jsx("code",{children:"red_flag"}),". ",e.jsx("code",{children:"narrative_alpha"})," n’est ",e.jsx("strong",{children:"PAS"})," muté — signal trop vague."]}):e.jsxs(e.Fragment,{children:["Conservative: ",e.jsx("code",{children:"reject_signal"})," + ",e.jsx("code",{children:"red_flag"}),". ",e.jsx("code",{children:"narrative_alpha"})," is ",e.jsx("strong",{children:"NOT"})," mutated — signal too vague."]})}),e.jsx("td",{children:r?"~6 semaines sur l’angle":"~6 weeks on the angle"})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("strong",{children:r?"Avec note":"With note"})," ",r?"(une ligne du CEO ou transcription du Corporate Developer)":"(one line from CEO or Corporate Developer transcription)"]}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Mutations complètes y compris ",e.jsx("code",{children:"narrative_alpha"}),". ",e.jsx("code",{children:"TOXIC_KEYWORD"})," extrait."]}):e.jsxs(e.Fragment,{children:["Full mutations including ",e.jsx("code",{children:"narrative_alpha"}),". ",e.jsx("code",{children:"TOXIC_KEYWORD"})," extracted."]})}),e.jsx("td",{children:r?"~2 semaines sur l’angle":"~2 weeks on the angle"})]})]})]}),e.jsx("h5",{className:"doc-h5",children:r?"Comparaison des signaux":"Signal comparison"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Signal"}),e.jsx("th",{children:r?"Priorité":"Priority"}),e.jsx("th",{children:r?"Seuil":"Threshold"}),e.jsx("th",{children:r?e.jsxs(e.Fragment,{children:["Mute ",e.jsx("code",{children:"narrative_alpha"})]}):e.jsxs(e.Fragment,{children:["Mutates ",e.jsx("code",{children:"narrative_alpha"})]})})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"CEO_VETO"})}),e.jsx("td",{children:"1 (top)"}),e.jsx("td",{children:"1 signal"}),e.jsx("td",{children:r?"OUI (avec note) / NON (sans)":"YES (with note) / NO (without)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"CEO_YES"})}),e.jsx("td",{children:"2"}),e.jsx("td",{children:"1 signal"}),e.jsx("td",{children:r?"OUI (toujours)":"YES (always)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"OVERRIDE"})}),e.jsx("td",{children:"3"}),e.jsx("td",{children:"1 signal"}),e.jsx("td",{children:r?"NON":"NO"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"CALL"})}),e.jsx("td",{children:"4"}),e.jsx("td",{children:"3 / 2 cycles"}),e.jsx("td",{children:r?"NON":"NO"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"POISON"})}),e.jsx("td",{children:"5"}),e.jsx("td",{children:"2 cycles"}),e.jsx("td",{children:r?"NON":"NO"})]})]})]}),e.jsx("span",{id:"s03-convergence",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Le mécanisme de convergence — taux de OUI + taux de MATCH":"The convergence mechanism — YES rate + MATCH rate"}),e.jsx("p",{className:"doc-text",children:r?"Deux métriques. Calculées chaque lundi. Visibles dans votre email hebdo.":"Two metrics. Computed every Monday. Visible in your weekly email."}),e.jsx("h5",{className:"doc-h5",children:r?"Taux de OUI":"YES rate"}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Définition :"})," nombre de OUI / nombre de décisions de top pick prises (OUI + NON)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Note :"})," les décisions en attente (pas encore de réponse du CEO) sont exclues du calcul."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cible :"})," 100%"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Sens :"})," Stan ne vous montre que des deals que vous validerez."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Par angle :"})," Hotel Content 100% ✓ · Payment Reconciliation 0% ✗ · Policy & Booking —"]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Definition:"})," number of YES / number of top pick decisions taken (YES + NO)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Note:"})," pending decisions (no CEO answer yet) are excluded from the calculation."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Target:"})," 100%"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Meaning:"})," Stan only shows you deals you will validate."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Per angle:"})," Hotel Content 100% ✓ · Payment Reconciliation 0% ✗ · Policy & Booking —"]})]})}),e.jsx("h5",{className:"doc-h5",children:r?"Taux de MATCH":"MATCH rate"}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Définition :"})," nombre de MATCH / total des sociétés sourcées (suivi par angle dans ",e.jsx("code",{children:"profund_sourcing_check"}),")"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Sens :"})," le sourcing de Stan trouve les bons profils dans le bon univers."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Taux de MATCH en hausse"})," = sourcing plus précis."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Taux de MATCH en baisse"})," = mutations récentes trop agressives."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Definition:"})," number of MATCH / total sourced companies (tracked per angle in ",e.jsx("code",{children:"profund_sourcing_check"}),")"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Meaning:"})," Stan's sourcing is finding the right profiles in the right universe."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Rising MATCH rate"})," = sourcing more precise."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dropping MATCH rate"})," = recent mutations too aggressive."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["L’email hebdo montre les deux métriques + le détail par-angle + la tendance sur 4 semaines. Le numéro de version de la thèse (",e.jsx("code",{children:"v5.X"}),") s’incrémente chaque lundi où une mutation est appliquée."]}):e.jsxs(e.Fragment,{children:["The weekly email shows both metrics + per-angle breakdown + trend over 4 weeks. The thesis version number (",e.jsx("code",{children:"v5.X"}),") increments every Monday a mutation is applied."]})}),e.jsx("h5",{className:"doc-h5",children:r?"À quelle vitesse Stan converge-t-il ?":"How fast does Stan converge?"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Scénario":"Scenario"}),e.jsx("th",{children:r?"Mécanique":"Mechanic"}),e.jsx("th",{children:"Convergence"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"A — CEO NON, sans note":"A — CEO NO, no note"})}),e.jsx("td",{children:r?"Stan infère le pattern depuis le profil de la société.":"Stan infers the pattern from the company profile."}),e.jsx("td",{children:r?"~6 semaines sur l’angle":"~6 weeks on the angle"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"B — CEO NON + une ligne":"B — CEO NO + one line"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Stan extrait un ",e.jsx("code",{children:"TOXIC_KEYWORD"}),". Met à jour ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"red_flags"})," et ",e.jsx("code",{children:"narrative_alpha"})," simultanément."]}):e.jsxs(e.Fragment,{children:["Stan extracts a ",e.jsx("code",{children:"TOXIC_KEYWORD"}),". Updates ",e.jsx("code",{children:"reject_signal"}),", ",e.jsx("code",{children:"red_flags"}),", and ",e.jsx("code",{children:"narrative_alpha"})," simultaneously."]})}),e.jsx("td",{children:r?"~2 semaines sur l’angle":"~2 weeks on the angle"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"C — CEO OUI + n
3221ote de contexte":"C — CEO YES + context note"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Stan extrait un ",e.jsx("code",{children:"WINNING_KEYWORD"}),". Renforce ",e.jsx("code",{children:"green_flags"})," et ",e.jsx("code",{children:"gold_anchor_pool"}),". Calibrage positif."]}):e.jsxs(e.Fragment,{children:["Stan extracts a ",e.jsx("code",{children:"WINNING_KEYWORD"}),". Reinforces ",e.jsx("code",{children:"green_flags"})," and ",e.jsx("code",{children:"gold_anchor_pool"}),". Positive calibration."]})}),e.jsx("td",{children:r?"Enseigne à quoi ressemble l’excellence":"Teaches what great looks like"})]})]})]}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"L’asymétrie.":"The asymmetry."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Le NON vaut plus que le OUI pour la vitesse de convergence. Stan a déjà sélectionné le deal en top pick — il sait donc pourquoi il a dit OUI. Ce qu’il ne sait pas, ce sont les raisons subtiles pour lesquelles vous dites NON sur un deal qui semble bon sur le papier. ",e.jsx("strong",{children:"Ce delta, c’est votre jugement. C’est ce que le système capture et encode."})]}):e.jsxs(e.Fragment,{children:["NO is more valuable than YES for convergence speed. Stan already selected the deal as a top pick — so it knows why it said YES. What it doesn't know is the subtle reasons you say NO on a deal that looks right on paper. ",e.jsx("strong",{children:"That delta is your judgment. That's what the system captures and encodes."})]})})]}),e.jsx("h5",{className:"doc-h5",children:r?"Repère pratique":"Practical benchmark"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Top picks par semaine":"Top picks per week"}),e.jsx("th",{children:r?"Ce que ça signale":"What it signals"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:"1–3"}),e.jsx("td",{children:r?"Thèse bien calibrée":"Thesis well calibrated"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"4–6"}),e.jsx("td",{children:r?"Acceptable — surveiller les poids d’angle":"Acceptable — monitor angle weights"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"7+"}),e.jsx("td",{children:r?"Thèse trop large → session de recalibrage recommandée":"Thesis too broad → recalibration session recommended"})]})]})]}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"La note sur votre décision comme moteur de calibrage.":"The note on your decision as a calibration engine."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Une note orale ou écrite est l’entrée à plus haute bande passante que le système reçoit chaque semaine. Une raison d’une ligne extraite de votre NON (ou de votre OUI) devient un ",e.jsx("code",{children:"TOXIC_KEYWORD"})," ou ",e.jsx("code",{children:"WINNING_KEYWORD"})," directement injecté dans les règles de mutation du moteur d’évolution — bien plus riche qu’un clic binaire."]}):e.jsxs(e.Fragment,{children:["A spoken or written note is the highest-bandwidth input the system receives each week. A one-line reason extracted from your NO (or your YES) becomes a ",e.jsx("code",{children:"TOXIC_KEYWORD"})," or ",e.jsx("code",{children:"WINNING_KEYWORD"})," directly injected into the Evolution Engine's mutation rules — far richer than a binary click."]})})]}),e.jsx("span",{id:"s03-monday",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"L’email hebdo du lundi — centre de commande":"The Monday weekly email — command center"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["L’email hebdo est rendu par l’endpoint Modal ",e.jsx("code",{children:"POST /directive/weekly-email"})," (dans ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", pas de LLM — pur templating HTML avec fetchs Airtable). C’est le deuxième module (id ",e.jsx("code",{children:"235"}),") du scénario Make ",e.jsx("code",{children:"3517126"}),", appelé juste après la fin du module thesis-update. Il reçoit les s
3221orties de thesis-update (",e.jsx("code",{children:"thesis_mutations_html"}),", ",e.jsx("code",{children:"kpi_html"}),", ",e.jsx("code",{children:"full_explanation_html"}),", ",e.jsx("code",{children:"yes_rate_pct"}),", ",e.jsx("code",{children:"trend_label"}),", ",e.jsx("code",{children:"subject_ok / subject_pending"}),") plus les métadonnées du fonds, et retourne le HTML complet de l’email + la ligne d’objet auto-sélectionnée. Make l’envoie ensuite. ",e.jsx("strong",{children:"Rien ne passe à la trappe silencieusement — chaque CALL encore en attente d’un OUI/NON est fetché au moment du rendu, donc l’email est toujours cohérent avec Airtable."})]}):e.jsxs(e.Fragment,{children:["The weekly email is rendered by the Modal endpoint ",e.jsx("code",{children:"POST /directive/weekly-email"})," (in ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", no LLM — pure HTML templating with Airtable fetches). It is the second module (id ",e.jsx("code",{children:"235"}),") of Make scenario ",e.jsx("code",{children:"3517126"}),", called right after the thesis-update module finishes. It receives the thesis-update outputs (",e.jsx("code",{children:"thesis_mutations_html"}),", ",e.jsx("code",{children:"kpi_html"}),", ",e.jsx("code",{children:"full_explanation_html"}),", ",e.jsx("code",{children:"yes_rate_pct"}),", ",e.jsx("code",{children:"trend_label"}),", ",e.jsx("code",{children:"subject_ok / subject_pending"}),") plus the fund metadata, and returns the full email HTML + the auto-selected subject line. Make then sends it. ",e.jsx("strong",{children:"Nothing slips silently — every CALL still waiting for a YES/NO is fetched at render time, so the email is always self-consistent with Airtable."})]})}),e.jsx("h5",{className:"doc-h5",children:r?"Structure de l’email du lundi":"Structure of the Monday email"}),e.jsx("ol",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Barre de stats (4 cellules)"})," — nb sourcé · nb qualifié · OUI/NON en attente (orange #96690E) 
3221· OUI validés (vert #12A150) + taux de OUI %. Si Make ne fournit pas ",e.jsx("code",{children:"sourced_count"})," / ",e.jsx("code",{children:"qualified_count"}),", l’endpoint retombe sur un comptage Airtable côté serveur."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Section ⏳ En attente (rendue si ",e.jsx("code",{children:"pending_count > 0"}),")"]})," — Top picks encore en attente d’un OUI ou NON. Fetchés en direct via ",e.jsx("code",{children:"_fetch_pending_calls(fund_type)"})," : lignes où ",e.jsx("code",{children:'status_profund == "CALL"'})," ET ",e.jsx("code",{children:"ceo_decision"})," est vide, triées par ",e.jsx("code",{children:"profund_quick_score"})," DESC, plafonnées à 20. Chaque ligne porte les boutons OUI · NON."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Toutes les décisions de la semaine"})," — Fetchées via ",e.jsx("code",{children:"_fetch_week_deals(fund_type)"})," : chaque décision CALL/CONSIDER/MONITOR/PASS prise par Stan sur les 7 derniers jours. Le label du verdict vient directement de la colonne ",e.jsx("code",{children:"status_profund"})," d’Airtable, avec le flag d’override CEO si ",e.jsx("code",{children:"ceo_decision"})," a été renseigné."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Mise à jour de la thèse — bas de l’email"})," — Titre « Ta thèse cette semaine » + la liste à puces ",e.jsx("code",{children:"thesis_mutations_html"})," (pas de compte explicite — puces seulement) + ",e.jsx("code",{children:"kpi_html"})," (taux OUI/MATCH par-angle) + ",e.jsx("code",{children:"full_explanation_html"})," (narratif stratégique) + lien CTA vers l’assistant. Ligne d’objet : ",e.jsxs("code",{children:['"✅ ',"{","t_uptodate","}",' · ..."']})," si ",e.jsx("code",{children:"pending_count == 0"}),", sinon ",e.jsxs("code",{children:['"⏳ ',"{","pending_count","}"," ","{","t_waiting","}",' · ..."']}),"."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Stats bar (4 cells)"})," — Sourced count · Qualified count · YES/NO pending (orange #96690E) 
3221· YES validated (green #12A150) + YES rate %. If Make doesn't supply ",e.jsx("code",{children:"sourced_count"})," / ",e.jsx("code",{children:"qualified_count"})," the endpoint falls back to a server-side Airtable count."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["⏳ Pending section (rendered if ",e.jsx("code",{children:"pending_count > 0"}),")"]})," — Top picks still waiting for a YES or NO answer. Fetched live via ",e.jsx("code",{children:"_fetch_pending_calls(fund_type)"}),": rows where ",e.jsx("code",{children:'status_profund == "CALL"'})," AND ",e.jsx("code",{children:"ceo_decision"})," is empty, sorted by ",e.jsx("code",{children:"profund_quick_score"})," DESC, capped at 20. Each row carries the YES · NO buttons."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"All decisions this week"})," — Fetched via ",e.jsx("code",{children:"_fetch_week_deals(fund_type)"}),": every CALL/CONSIDER/MONITOR/PASS decision Stan took in the past 7 days. Verdict label comes from Airtable's ",e.jsx("code",{children:"status_profund"})," column directly, with the CEO override flag if ",e.jsx("code",{children:"ceo_decision"})," was set."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Thesis update — bottom of email"}),' — Title "Ta thèse cette semaine" + the ',e.jsx("code",{children:"thesis_mutations_html"})," bullet list (no explicit count — bullets only) + ",e.jsx("code",{children:"kpi_html"})," (per-angle YES/MATCH rates) + ",e.jsx("code",{children:"full_explanation_html"})," (strategic narrative) + CTA link to the wizard. Subject line: ",e.jsxs("code",{children:['"✅ ',"{","t_uptodate","}",' · ..."']})," if ",e.jsx("code",{children:"pending_count == 0"}),", else ",e.jsxs("code",{children:['"⏳ ',"{","pending_count","}"," ","{","t_waiting","}",' · ..."']}),"."]})]})}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"La section thèse est la preuve que le système compose.":"The thesis section is the proof that the system is compounding."}),e.jsx("p",{children:r?"Chaque lundi, le CEO voit son système évoluer — de façon mesurable.":"Each Monday, the CEO sees their system evolve — measurably."})]}),e.jsx("span",{id:"s03-daily",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"L’email quotidien — se déclenche après la qualification":"The daily email — fires after qualification"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Dès qu’un deal arrive dans Airtable avec un verdict, Make BP2 (scénario ",e.jsx("code",{children:"3869328"}),") POST à l’endpoint Modal ",e.jsx("code",{children:"/directive/daily-email"})," (dans ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", pas de LLM). L’endpoint tire quatre requêtes Airtable en direct — CALL en attente, deals qualifiés du jour, compte OUI-validés, total des décisions CALL — et assemble le corps de l’email. Il retourne ",e.jsx("strong",{children:"trois variantes HTML dans la même réponse"})," :"]}):e.jsxs(e.Fragment,{children:["Once a deal lands in Airtable with a verdict, Make BP2 (scenario ",e.jsx("code",{children:"3869328"}),") POSTs to the Modal endpoint ",e.jsx("code",{children:"/directive/daily-email"})," (in ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", no LLM). The endpoint pulls four live Airtable queries — pending CALLs, today's qualified deals, YES-validated count, total CALL decisions — and assembles the email body. It returns ",e.jsx("strong",{children:"three HTML variants in the same response"}),":"]})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("code",{children:"html"})," — adressé au CEO : boutons d’action complets (Schedule call · Deal Intelligence · Manage Account · Login)."]}),e.jsxs("li",{children:[e.jsx("code",{children:"html_profund"})," — variante LP : branding profund.vc, contrôles minimaux, pied de page custom « For investment inquiries, contact [email protected] »."]}),e.jsxs("li",{children:[e.jsx("code",{children:"html_proplace"})," — variante démo marketing Proplace."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("code",{children:"html"})," — CEO-facing: full action buttons (Schedule call · Deal Intelligence · Manage Account · Login)."]}),e.jsxs("li",{children:[e.jsx("code",{children:"html_profund"}),' — LP variant: profund.vc branding, minimal controls, custom footer "For investment inquiries, contact [email protected]".']}),e.jsxs("li",{children:[e.jsx("code",{children:"html_proplace"})," — Proplace marketing demo variant."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Plus ",e.jsx("code",{children:"pending_count"}),", ",e.jsx("code",{children:"subject"})," (auto-sélectionné parmi ",e.jsx("code",{children:"subject_ok"})," / ",e.jsx("code",{children:"subject_pending"})," selon ",e.jsx("code",{children:"pending_count"}),"), et un ",e.jsx("code",{children:"notice"})," statique."]}):e.jsxs(e.Fragment,{children:["Plus ",e.jsx("code",{children:"pending_count"}),", ",e.jsx("code",{children:"subject"})," (auto-selected from ",e.jsx("code",{children:"subject_ok"})," / ",e.jsx("code",{children:"subject_pending"})," based on ",e.jsx("code",{children:"pending_count"}),"), and a static ",e.jsx("code",{children:"notice"}),"."]})}),e.jsx("h5",{className:"doc-h5",children:r?"Sections du corps (les trois variantes partagent le même shell)":"Body sections (all three variants share the same shell)"}),e.jsx("ol",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"En-tête"})," — logo du fonds, « Stan · Daily Brief », date, et un résumé d’une ligne « ","{","sourced_count","}"," sourcés · ","{","qualified_count","}"," qualifiés · ","{","pending_count","}"," décision(s) requise(s) »."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Grille KPI (4 cellules, même ordre que l’email du lundi)"}
3221)," — Sourcés (teal clair, lien vers le sourcing dashboard) · Qualifiés (teal clair, lien vers le deal flow) · En Attente (ambre #96690E, sans lien) · OUI Validés (vert #12A150, sans lien) + taux de OUI %."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Section ⏳ En attente"})," (fond jaune, rendue si ",e.jsx("code",{children:"pending_count > 0"}),") — titre « ⏳ ","{","n","}"," dossiers en attente — tous les CALL sans YES / NO », triée par ",e.jsx("code",{children:"profund_quick_score"})," DESC, plafonnée à 20. Chaque carte porte company_name, tagline, score, stade, catégorie, date de sourcing."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Décisions autonomes de Stan aujourd'hui"})," (fond gris) — chaque décision CALL/CONSIDER/PASS prise par Stan aujourd’hui (",e.jsx("code",{children:"action_timestamp == today"})," ET status ∈ ","{"," CONSIDER · MONITOR · PASS ","}",' OU (status == CALL ET ceo_decision ≠ "")). Le badge de statut est color-codé ; un badge d’override CEO apparaît si ',e.jsx("code",{children:"ceo_decision"})," était déjà renseigné."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Actions du bas + pied de page"})," — pilotés par variante."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Header"}),' — Fund logo, "Stan · Daily Brief", date, and a one-line summary "',"{","sourced_count","}"," sourced · ","{","qualified_count","}"," qualified · ","{","pending_count","}",' decision(s) required".']}),e.jsxs("li",{children:[e.jsx("strong",{children:"KPI grid (4 cells, identical order to the Monday email)"})," — Sourced (light teal, links to sourcing dashboard) · Qualified (light teal, links to deal flow) · En Attente (amber #96690E, no link) · YES Validated (green #12A150, no link) + YES rate %."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"⏳ Pending section"})," (yellow background, rendered if ",e.jsx("code",{children:"pending_count > 0"}),') — title "⏳ ',"{","n","}",' dossiers en attente — tous les CALL sans YES / NO", sorted by ',e.jsx("code",{children:"profund_quick_score"})," DESC, capped at 20. Each card carries company_name, tagline, score, stage, category, sourced date."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Décisions autonomes de Stan aujourd'hui"})," (gray background) — every CALL/CONSIDER/PASS decision Stan took today (",e.jsx("code",{children:"action_timestamp == today"})," AND status ∈ ","{"," CONSIDER · MONITOR · PASS ","}",' OR (status == CALL AND ceo_decision ≠ "")). Status badge is color-coded; a CEO-override badge surfaces if ',e.jsx("code",{children:"ceo_decision"})," was already set."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Bottom actions + footer"})," — variant-controlled."]})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Ligne d’objet sélectionnée dynamiquement par l’endpoint : ",e.jsxs("code",{children:['"⏳ ',"{","pending_count","}"," dossiers en attente — Deal Flow Report — ","{","date","}"," ","{","hh:mm","}",'"']})," quand quelque chose requiert votre action, ",e.jsxs("code",{children:['"✅ À jour — Deal Flow Report — ',"{","date","}"," ","{","hh:mm","}",'"']})," sinon."]}):e.jsxs(e.Fragment,{children:["Subject line dynamically selected by the endpoint: ",e.jsxs("code",{children:['"⏳ ',"{","pending_count","}"," dossiers en attente — Deal Flow Report — ","{","date","}"," ","{","hh:mm","}",'"']})," when something needs your input, ",e.jsxs("code",{children:['"✅ À jour — Deal Flow Report — ',"{","date","}"," ","{","hh:mm","}",'"']})," otherwise."]})}),e.jsx(ss,{children:r?e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Brief quotidien (3 variantes : CEO · LP · marketing) — shortlist classée, OUI · NON sur les top picks, mémo complet + modèle financier joints."}),e.jsx("div",{children:"Brief hebdo du lundi 16h — taux de OUI · taux de MATCH · version de la thèse · détail par-angle."}),e.jsxs("div",{children:["Mémo HTML sur ",e.jsx("code",{children:"analysis.proplace.co/<slug>-v2"})," — versionné sur GitHub (",e.jsx("code",{children:"proplace-co/wargame"}),"), mis à jour à chaque étape."]}),e.jsx("div",{children:"Deal Flow Dashboard — tous les matchs validés avec verdict, stade, mémos, historique complet de décisions."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Daily brief (3 variants: CEO · LP · marketing) — ranked shortlist, YES · NO on top picks, full memo + financial model attached."}),e.jsx("div",{children:"Monday 4 PM weekly brief — YES rate · MATCH rate · thesis version · per-angle breakdown."}),e.jsxs("div",{children:["Memo HTML on ",e.jsx("code",{children:"analysis.proplace.co/<slug>-v2"})," — versioned on GitHub (",e.jsx("code",{children:"proplace-co/wargame"}),"), updated at every stage."]}),e.jsx("div",{children:"Deal Flow Dashboard — all validated matches with verdict, stage, memos, full decision history."})]})})]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("h3",{className:"doc-h3",children:r?"Le deal est suivi jusqu’à la sortie — En continu · Stan assiste à chaque étape":"The deal is tracked to exit — Ongoing · Stan assists every step"}),e.jsx("span",{id:"s03-stan-intro",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Ce qu’est Stan":"What Stan is"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Stan est une app connectée au mémo. Techniquement, c’est une IIFE injectée dans chaque HTML de mémo statique sur ",e.jsx("code",{children:" analysis.proplace.co"}),". Elle s’active sur ",e.jsx("code",{children:'<meta name="stan-deal" content="..." />'})," et rend un panneau latéral droit à cinq onglets. Tout ce que vous faites dans Stan persiste — vers Airtable, GitHub et localStorage — pour que le deal garde une piste d’audit complète, du CALL au portefeuille."]}):e.jsxs(e.Fragment,{children:["Stan is an app connected to the memo. Technically, it is an IIFE injected into every static memo HTML on ",e.jsx("code",{children:" analysis.proplace.co"}),". It activates on ",e.jsx("code",{children:'<meta name="stan-deal" content="..." />'})," and renders a right-side panel with five tabs. Everything you do inside Stan persists — to Airtable, to GitHub, and to localStorage — so the deal keeps a full audit trail from CALL to portfolio."]})}),e.jsx("span",{id:"s03-stan-tabs",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"5 onglets — vue d’ensemble":"5 tabs — overview"}),e.jsx("div",{className:"grid-2",children:N5.map(l=>{const d=r?V5(l):l;return e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"card-h",children:[l.icon," ",d.name]}),e.jsx("div",{className:"card-p",children:d.desc})]},l.name)})}
3221),e.jsx("span",{id:"s03-tab-parcours",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Parcours — cycle de vie en 7 phases":"Parcours — 7-phase lifecycle"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque CALL entre dans un cycle de vie en 7 phases. L’onglet Parcours le rend en checklist — chaque phase regroupe des tâches obligatoires et optionnelles que vous cochez à mesure que le deal avance. La progression est persistée dans Airtable (",e.jsx("code",{children:"stan_tasks_done"}),") pour que l’état du deal survive entre les sessions."]}):e.jsxs(e.Fragment,{children:["Every CALL enters a 7-phase lifecycle. The Parcours tab renders it as a checklist — each phase bundles required and optional tasks you tick off as the deal progresses. Progress is persisted to Airtable (",e.jsx("code",{children:"stan_tasks_done"}),") so the deal state survives across sessions."]})}),e.jsx("div",{className:"phases",children:E5.map(l=>{const d=r?Y5(l):{name:l.name,tasks:l.tasks.map(p=>p.task)};return e.jsxs("div",{className:"phase",children:[e.jsxs("div",{className:"phase-h",children:[e.jsx("span",{className:"phase-icon",children:l.icon}),e.jsx("span",{className:"phase-name",children:d.name}),e.jsx("span",{className:`phase-badge ${l.kind}`,children:l.kind==="ongoing"?r?"En continu":"Ongoing":r?"Obligatoire":"Required"})]}),e.jsx("ul",{className:"phase-tasks",children:l.tasks.map((p,u)=>e.jsxs("li",{children:[e.jsx("span",{className:"task-check","aria-hidden":"true"}),e.jsx("span",{className:"task-text",children:d.tasks[u]??p.task}),e.jsx("span",{className:`task-req ${p.required?"req":"opt"}`,children:p.required?r?"Obligatoire":"Required":r?"Optionnel":"Optional"})]},p.task))})]},l.name)})}),e.jsx("span",{id:"s03-tab-chat",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"Chat"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Demandez n’importe quoi à Stan sur le mémo. Sélectionnez n’importe quel texte du mémo — une citation, un chiffre, un nom de fondateur — et Stan pré-remplit la question avec la sélection comme contexte. Stan peut aussi ",e.jsx("strong",{children:"éditer le mémo"})," : quand la réponse est une correction (ex. un mauvais chiffre d’ARR), Stan retourne un patch JSON qui commit directement sur GitHub (",e.jsx("code",{children:"proplace-co/wargame"}),"), et le HTML du mémo sur ",e.jsx("code",{children:"analysis.proplace.co"})," reflète le changement au rafraîchissement."]}):e.jsxs(e.Fragment,{children:["Ask Stan anything about the memo. Select any text in the memo — a quote, a number, a founder name — and Stan pre-fills the question with the selection as context. Stan can also ",e.jsx("strong",{children:"edit the memo"}),": when the answer is a correction (e.g. a wrong ARR figure), Stan returns a JSON patch that commits straight back to GitHub (",e.jsx("code",{children:"proplace-co/wargame"}),"), and the memo HTML on ",e.jsx("code",{children:"analysis.proplace.co"})," reflects the change on refresh."]})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Conscient de la sélection.":"Selection-aware."}),e.jsx("p",{children:r?"Le chat est contextuel. Sélectionner un paragraphe avant de demander donne à Stan un périmètre exact — aucune référence hallucinée à d’autres parties du mémo.":"The chat is contextual. Selecting a paragraph before asking gives Stan exact scope — no hallucinated references to other parts of the memo."})]}),e.jsx("span",{id:"s03-tab-skills",className:"doc-anchor"}),e.jsxs("h3",{className:"doc-h3",children:["Skills (",tm.length," ",r?"livrables packagés":"packaged outputs",")"]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un clic lance un livrable packagé soutenu par un prompt dédié. Chaque skill correspond à une entrée dans ",e.jsx("code",{children:" SKILL_PROMPTS"})," (",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),"). Certains skills correspondent aussi à un ID de tâche Parcours — lancer le skill coche automatiquement la tâche correspondante."]}):e.jsxs(e.Fragment,{children:["One click runs a packaged output backed by a dedicated prompt. Each skill maps to an entry in ",e.jsx("code",{children:" SKILL_PROMPTS"})," (",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),"). Some skills also map to a Parcours task ID — running the skill auto-checks the corresponding task."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Clé":"Key"}),e.jsx("th",{children:r?"Titre":"Title"}),e.jsx("th",{children:r?"Catégorie":"Category"}),e.jsx("th",{children:r?"Tâche":"Task"}),e.jsx("th",{children:r?"Résumé":"Summary"})]})}),e.jsx("tbody",{children:tm.map(l=>{const d=r?X5(l):l;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:l.key})}),e.jsx("td",{children:d.title}),e.jsx("td",{children:d.category}),e.jsx("td",{children:l.task??"—"}),e.jsx("td",{children:d.summary})]},l.key)})})]}),e.jsx("span",{id:"s03-tab-outputs",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Livrables":"Outputs"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque résultat de skill est sauvegardé dans Airtable (",e.jsx("code",{children:"stan_outputs_json"}),") et listé dans l’onglet Livrables. Chaque livrable a une URL partageable permanente — transférez-la à un avocat, un co-investisseur ou un LP sans donner accès au mémo. Tout livrable peut être ",e.jsx("strong",{children:"restauré dans le mémo"})," à tout moment, remplaçant la version courante de cette section."]}):e.jsxs(e.Fragment,{children:["Every skill result is saved to Airtable (",e.jsx("code",{children:"stan_outputs_json"}),") and listed in the Outputs tab. Each output has a permanent shareable URL — forward it to a lawyer, a co-investor, or an LP without giving memo access. Any output can be ",e.jsx("strong",{children:"restored into the memo"})," at any time, replacing the current version of that section."]})}),e.jsx("span",{id:"s03-tab-history",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Historique":"History"}),e.jsx("p",{className:"doc-text",children:r?"Chaque édition du mémo (manuelle ou via patch JSON de Stan) est snapshotée. L’onglet Historique montre l’historique complet d’édition avec vue diff. Un clic restaure n’importe quelle version précédente — utile quand une régénération de skill remplace une section que vous voulez récupérer, ou quand une édition collaborative a mal tourné.":"Every memo edit (manual or via Stan JSON patch) is snapshotted. The History tab shows the full edit history with diff view. One click restores any previous version — useful when a skill regeneration replaces a section you want back, or when a collaborative edit went wrong."}),e.jsx("span",{id:"s03-stan-backend",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"Backend & persistance":"Backend & persistence"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Stan appelle ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"})," déployé sur Modal. Trois endpoints :"]}):e.jsxs(e.Fragment,{children:["Stan calls ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"})," deployed on Modal. Three endpoints:"]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Endpoint"}),e.jsx("th",{children:r?"But":"Purpose"}),e.jsx("th",{children:r?"Modèle":"Model"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"POST /chat"})}),e.jsx("td",{children:r?"Q&R en roue libre avec contexte de sélection du mémo. Éditions du mémo retournées en JSON.":"Free-form Q&A with memo selection context. Memo edits returned as JSON."}),e.jsx("td",{children:"Gemini 2.5 Flash via OpenRouter"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("code",{children:["POST /skill/","{key}"]})}),e.jsx("td",{children:r?"Lance un skill packagé. Retourne une sortie HTML.":"Run a packaged skill. Returns HTML output."}),e.jsx("td",{children:"Gemini 2.5 Flash"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("code",{children:["POST /directive/","{dir_id}"]})}),e.jsx("td",{children:r?"Lance une directive spécifique (D01→D09 + blocs financiers).":"Run a specific directive (D01→D09 + financial blocks)."}),e.jsx("td",{children:"Gemini 2.5 Flash"})]})]})]}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?"Persistance tri-système.":"Tri-system persistence."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["L’état est écrit à trois endroits : ",e.jsx("strong",{children:"Airtable"})," (",e.jsx("code",{children:"stan_tasks_done"}),", ",e.jsx("code",{children:"stan_outputs_json"}),", ",e.jsx("code",{children:"stan_dir_files_json"}),"), ",e.jsx("strong",{children:"GitHub"})," (les éditions HTML du mémo commitent vers ",e.jsx("code",{children:"proplace-co/wargame"}),"), et ",e.jsx("strong",{children:"localStorage"})," pour les éditions en cours avant sauvegarde."]}):e.jsxs(e.Fragment,{children:["State is written to three places: ",e.jsx("strong",{children:"Airtable"})," (",e.jsx("code",{children:"stan_tasks_done"}),", ",e.jsx("code",{children:"stan_outputs_json"}),", ",e.jsx("code",{children:"stan_dir_files_json"}),"), ",e.jsx("strong",{children:"GitHub"})," (memo HTML edits commit back to ",e.jsx("code",{children:"proplace-co/wargame"}),"), and ",e.jsx("strong",{children:"localStorage"})," for in-progress edits before save."]})})]})]}),e.jsx(is,{step:ni[3]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"s04-app",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"4.1 Le dashboard Deal Intelligence":"4.1 The Deal Intelligence Dashboard"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le dashboard Deal Intelligence est une app web React 18 servie sur ",e.jsx("code",{children:"proplace.co/chat/?fund=<slug>"}),". Il lit tout votre pipeline depuis Airtable, vous laisse sélectionner plusieurs deals, et exécute des requêtes en langage naturel ou des actions packagées sur la sélection. Chaque résultat est partageable via une URL à token permanente."]}):e.jsxs(e.Fragment,{children:["The Deal Intelligence Dashboard is a React 18 web app served at ",e.jsx("code",{children:"proplace.co/chat/?fund=<slug>"}),". It reads your entire pipeline from Airtable, lets you select multiple deals, and runs natural-language queries or packaged actions across them. Every result is shareable via a permanent token URL."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Aspect"}),e.jsx("th",{children:r?"Détail":"Detail"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:"Stack"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["React 18 (Vite), bundle unique dans ",e.jsx("code",{children:"chat-dist/"})]}):e.jsxs(e.Fragment,{children:["React 18 (Vite), single bundle in ",e.jsx("code",{children:"chat-dist/"})]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Pattern d’URL":"URL pattern"}),e.jsxs("td",{children:[e.jsx("code",{children:"proplace.co/chat/?fund=<slug>"})," — ",r?"le slug du fonds pilote le filtre Airtable":"fund slug drives Airtable filter"]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Base Airtable":"Airtable base"}),e.jsx("td",{children:e.jsx("code",{children:"appV3saIhfVEGvWcF"})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Tables"}),e.jsxs("td",{children:[e.jsx("code",{children:"tbllZ1lgmzi1W1QBu"})," (deals) · ",e.jsx("code",{children:"tblEgYhLpdBdcpKrw"})," (",r?"config fonds":"fund config",")"]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?"Vues":"Views"}),e.jsxs("td",{children:[e.jsx("strong",{children:"Home"})," (",r?"cartes de deals, grille d’actions, barre de saisie":"deal cards, action grid, input bar",") · ",e.jsx("strong",{children:"Chat"})," (",r?"messages, blocs de décision, pièces jointes":"messages, decision blocks, attachments",")"]})]})]})]}),e.jsx("span",{id:"s04-actions",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"4.2 6 actions packagées":"4.2 6 packaged actions"}),e.jsx("p",{className:"doc-text",children:r?"Cliquez une carte d’action sur la vue Home, sélectionnez les deals à cibler, et Stan exécute l’action sur la sélection. Chaque action est un template de prompt structuré — l’exemple ci-dessous montre le type de requête en langage naturel en quoi elle se déploie.":"Click an action card on the Home view, select the deals it should target, and Stan runs the action across the selection. Each action is a structured prompt template — the example below shows the kind of natural-language request it expands into."}),e.jsx("div",{className:"grid-2",children:C5.map(l=>{const d=r?W5(l):l;return e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"card-h",children:[l.emoji," ",d.title]}),e.jsx("div",{className:"card-p doc-italic",children:d.example})]},l.title)})}),e.jsx("span",{id:"s04-freetext",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"4.3 Requêtes en texte libre":"4.3 Free-text queries"}),e.jsx("p",{className:"doc-text",children:r?"Sous les actions packagées, la barre de saisie accepte n’importe quelle question. Stan lit chaque mémo, décision et donnée sur vos deals sélectionnés pour répondre.":"Below the packaged actions, the input bar accepts any question. Stan reads every memo, decision, and data point across your selected deal
3221s to answer."}),e.jsx("pre",{className:"doc-code",children:r?`"Compare mes 3 deals actifs en due diligence sur le multiple d'EBITDA,
3222la qualité d'équipe et les synergies avec mon portefeuille…"`:`"Compare my 3 active deals in due diligence on EBITDA multiple,
3223team quality, and synergies with my portfolio…"`}),e.jsx("span",{id:"s04-backend",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"4.4 Backend & déploiement":"4.4 Backend & deployment"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Endpoint"}),e.jsx("th",{children:r?"But":"Purpose"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"POST /chat"})}),e.jsx("td",{children:r?"Q&R en texte libre sur les deals sélectionnés. Gemini via OpenRouter.":"Free-text Q&A across selected deals. Gemini via OpenRouter."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"POST /fetch-memo"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Charge le HTML privé du mémo depuis GitHub ",e.jsx("code",{children:"proplace-co/wargame"}),"."]}):e.jsxs(e.Fragment,{children:["Loads private memo HTML from GitHub ",e.jsx("code",{children:"proplace-co/wargame"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"POST /save-output"})}),e.jsx("td",{children:r?"Persiste le livrable dans Airtable, retourne une URL à token partageable.":"Persists output to Airtable, returns shareable token URL."})]})]})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La source vit dans ",e.jsx("code",{children:"modal_proxy/proxy.py"}),". Les sorties de build vont dans ",e.jsx("code",{children:"chat-dist/"})," et sont servies depuis ",e.jsx("code",{children:"proplace.co/chat/"}),". L’authentification est par-fonds via le slug ; les pièces jointes s’uploadent vers le backend et sont transmises dans le contexte du prompt."]}):e.jsxs(e.Fragment,{children:["Source lives in ",e.jsx("code",{children:"modal_proxy/proxy.py"}),". Build outputs go to ",e.jsx("code",{children:"chat-dist/"})," and are served from ",e.jsx("code",{children:"proplace.co/chat/"}),". Authentication is per-fund via the slug; attachments upload to the backend and are forwarded in the prompt context."]})}),e.jsx(ss,{children:r?e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"6 actions packagées — prép d’appel, synthèse board, approche, analyse de risque, comparaison, rapport pi
3223peline. Chacune partageable via URL permanente."}),e.jsx("div",{children:"Requêtes en texte libre — demandez n’importe quoi sur tout votre deal flow. Stan lit chaque mémo, décision et donnée."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"6 packaged actions — call prep, board synthesis, outreach, risk analysis, comparison, pipeline report. Each shareable via permanent URL."}),e.jsx("div",{children:"Free-text queries — ask anything across your entire deal flow. Stan reads every memo, decision, and data point."})]})})]}),e.jsx(is,{step:ni[4]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"s05-decisions",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"5.1 Stan lit chaque décision que vous avez prise — Automatique · Lundi 16h UTC":"5.1 Stan reads every decision you made — Automatic · Monday 4 PM UTC"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque NCL de Stan écrite sur les 7 derniers jours (depuis le filtre de la table des deals sur ",e.jsx("code",{children:"neural_command_line_final"}),") et chaque ",e.jsx("strong",{children:"OUI"})," / ",e.jsx("strong",{children:"NON"})," du CEO avec ",e.jsx("code",{children:"ceo_decision_date"})," dans les 7 derniers jours est fetché d’Airtable en parallèle par le Thesis Evolution Engine."]}):e.jsxs(e.Fragment,{children:["Every Stan NCL written in the past 7 days (from the deals table filter on ",e.jsx("code",{children:"neural_command_line_final"}),") and every CEO ",e.jsx("strong",{children:"YES"})," / ",e.jsx("strong",{children:"NO"})," with ",e.jsx("code",{children:"ceo_decision_date"})," in the past 7 days is fetched from Airtable in parallel by the Thesis Evolution Engine."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les décisions du CEO sont formatées en marqueurs NCL avant d’atteindre le LLM : ",e.jsx("code",{children:"🟢 CEO_YES"})," avec un ",e.jsx("code",{children:" WINNING_KEYWORD"})," extrait quand la note confirme le top pick de Stan, ",e.jsx("code",{children:"🔴 CEO_VETO"})," avec un ",e.jsx("code",{children:" TOXIC_KEYWORD"})," quand le CEO rejette le top pick de Stan. Ces marqueurs CEO transitent par le même pipeline NCL que les signaux de Stan — ce n’est pas une piste de priorité séparée, ils portent simplement des mots-clés particulièrement denses en information sur lesquels les règles de mutation du moteur agissent."]}):e.jsxs(e.Fragment,{children:["CEO decisions are formatted into NCL markers before reaching the LLM : ",e.jsx("code",{children:"🟢 CEO_YES"})," with an extracted ",e.jsx("code",{children:" WINNING_KEYWORD"})," when the note confirms Stan's top pick, ",e.jsx("code",{children:"🔴 CEO_VETO"})," with a ",e.jsx("code",{children:" TOXIC_KEYWORD"})," when the CEO rejects Stan's top pick. These CEO markers flow through the same NCL pipeline as Stan's own signals — they are not a separate priority track, they simply carry particularly information-dense keywords that the engine's mutation rules act on."]})}),e.jsx("p",{className:"doc-text",children:r?"Les métriques de sourcing et de qualification par angle (match_rate, yes_rate, tendance 7 jours) sont calculées en parallèle et injectées dans le user prompt à côté des NCL pour que le moteur raisonne sur les tendances de volume, pas seulement sur les signaux individuels.":"Sourcing and qualification metrics per angle (match_rate, yes_rate, 7-day trend) are computed in parallel and injected into the user prompt alongside the NCLs so the engine can reason about volume trends, not just individual signals."}),e.jsx("span",{id:"s05-mutations",className:"doc-anchor"}),e.jsxs("h3",{className:"doc-h3",children:[r?"5.2 Le JSON de la Fund Thesis mute — Automatique · Lundi 16h UTC":"5.2 The Fund Thesis JSON mutates — Automatic · Monday 4 PM UTC"," ",e.jsx("span",{className:"doc-tag",children:"MAKE PROMPT ZONE"})]}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le Weekly Evolution Engine est le scénario Make ",e.jsx("code",{children:"3517126"})," (8 modules, trigger lundi 16h UTC). Le module ",e.jsx("strong",{children:"246"})," POST les NCL de la semaine passée + la thèse courante à l’endpoint Modal ",e.jsx("code",{children:"/directive/thesis-update"})," (défini dans ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", OpenRouter ",e.jsx("code",{children:"google/gemini-2.5-flash"})," avec un system prompt de 300 lignes encodant des règles de mutation déterministes par type de signal, plus une boucle de retry de parsing JSON à 3 tentatives). Le LLM retourne le JSON de thè
3223se mis à jour complet, ensuite validé contre le ",e.jsx("strong",{children:"schéma fund_thesis v5.4"})," via Pydantic avant d’être patché dans Airtable. Si la validation échoue, la version précédente reste en place et l’échec est consigné dans l’email hebdo — il est mathématiquement impossible qu’une thèse cassée atteigne la production. Le module ",e.jsx("strong",{children:"235"})," POST ensuite à ",e.jsx("code",{children:"/directive/weekly-email"})," pour rendre le corps de l’email. Quatre familles de mutation embarquent à chaque cycle :"]}):e.jsxs(e.Fragment,{children:["The Weekly Evolution Engine is Make scenario ",e.jsx("code",{children:"3517126"})," (8 modules, Monday 4 PM UTC trigger). Module ",e.jsx("strong",{children:"246"})," POSTs the past week's NCLs + the current thesis to the Modal endpoint ",e.jsx("code",{children:"/directive/thesis-update"})," (defined in ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"}),", OpenRouter ",e.jsx("code",{children:"google/gemini-2.5-flash"})," with a 300-line system prompt encoding deterministic mutation rules per signal type, plus a 3-attempt JSON-parse retry loop). The LLM returns the full updated thesis JSON which is then validated against the ",e.jsx("strong",{children:"fund_thesis v5.4 schema"})," via Pydantic before being patched into Airtable. If validation fails, the previous version stays live and the failure is logged in the weekly email — it is mathematically impossible for a broken thesis to reach production. Module ",e.jsx("strong",{children:"235"})," then POSTs to ",e.jsx("code",{children:"/directive/weekly-email"})," to render the email body. Four mutation families ship in each cycle:"]})}),e.jsx("div",{className:"grid-2",children:_5.map(l=>{const d=r?Z5(l):l;return e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"card-h",children:[l.emoji," ",d.title]}),e.jsx("div",{className:"card-p",children:d.desc})]},l.title)})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Règles de mutation par NCL.":"Mutation rules per NCL."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Chaque NCL correspond à une famille de mutation spécifique avec une règle déterministe. Tout ce qui suit est le jeu de règles exact tournant dans le system prompt de production, déployé dans ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"})," à l’endpoint ",e.jsx("code",{children:"/directive/thesis-update"}),", validant chaque sortie contre le schéma fund_thesis v5.4."]}):e.jsxs(e.Fragment,{children:["Each NCL maps to a specific mutation family with a deterministic rule. Everything below is the exact rule set running in the production system prompt, deployed in ",e.jsx("code",{children:"modal_proxy/stan_proxy.py"})," at endpoint ",e.jsx("code",{children:"/directive/thesis-update"}),", validating every output against the fund_thesis v5.4 schema."]})})]}),e.jsx("span",{id:"s05-pipeline",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.a Pipeline du moteur hebdo — 7 étapes":"5.2.a Weekly engine pipeline — 7 steps"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Étape":"Step"}),e.jsx("th",{children:r?"Nom":"Name"}),e.jsx("th",{children:r?"But":"Purpose"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"0"})}),e.jsx("td",{children:r?"Sécurité copy-first":"Copy-first safety"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Copie ",e.jsx("code",{children:"fund_thesis_vN"})," → ",e.jsx("code",{children:"v(N+1)"})," telle quelle. Les 8 clés de premier niveau doivent être présentes (meta · sourcing_config · binary_gates · entry_gates · financial_model_config · narrative_alpha · benchmarks · semantic_filters). Aucune reconstruction autorisée. En cas d’échec → retour à ",e.jsx("code",{children:"vN"}),"."]}):e.jsxs(e.Fragment,{children:["Copy ",e.jsx("code",{children:"fund_thesis_vN"})," → ",e.jsx("code",{children:"v(N+1)"}
3223)," verbatim. 8 top-level keys must be present (meta · sourcing_config · binary_gates · entry_gates · financial_model_config · narrative_alpha · benchmarks · semantic_filters). No reconstruction allowed. On failure → revert to ",e.jsx("code",{children:"vN"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"1"})}),e.jsx("td",{children:r?"Parse des NCL":"Parse NCLs"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Extrait ",e.jsx("code",{children:"signal_type"}),", ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"company"}),", ",e.jsx("code",{children:"concept"}),", ",e.jsx("code",{children:"narrative"}),", ",e.jsx("code",{children:"cycle_count"}),". Infère ",e.jsx("code",{children:"angle_id"})," si manquant."]}):e.jsxs(e.Fragment,{children:["Extract ",e.jsx("code",{children:"signal_type"}),", ",e.jsx("code",{children:"angle_id"}),", ",e.jsx("code",{children:"company"}),", ",e.jsx("code",{children:"concept"}),", ",e.jsx("code",{children:"narrative"}),", ",e.jsx("code",{children:"cycle_count"}),". Infer ",e.jsx("code",{children:"angle_id"})," if missing."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"2"})}),e.jsx("td",{children:r?"Règle de priorité":"Priority rule"}),e.jsx("td",{children:r?"Max 1 changement par champ par angle par cycle. Signaux en conflit résolus par ordre de priorité (voir 5.2.d).":"Max 1 change per field per angle per cycle. Conflicting signals resolved by priority order (see 5.2.d)."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"3"})}),e.jsx("td",{children:r?"Application des mutations":"Apply mutations"}),e.jsx("td",{children:r?"Route uniquement vers les sous-champs du bon angle. Jamais de contamination croisée entre angles. Voir 5.2.c pour les règles par-signal.":"Route to the correct angle's subfields only. Never cross-contaminate angles. See 5.2.c for per-signal rules."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"4"})}),e.jsx("td",{children:r?"Décroissance des flags":"Flag decay"}),e.jsx("td",{children:r?"Cycle de vie des green/red flags par-angle : compte de déclenchements, revue d’obsolescence, jamais d’auto-suppression.":"Per-angle green/red flag lifecycle: fire count, staleness review, never-auto-delete."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"5"})}),e.jsx("td",{children:r?"Rapport d’intelligence":"Intelligence report"}),e.jsx("td",{children:r?"Génère le payload de l’email hebdo : signaux traités, changements appliqués, signaux en attente, décisions expirantes, blocs HTML.":"Generate the weekly email payload: signals processed, changes applied, pending signals, expiring decisions, HTML blocks."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"6"})}),e.jsx("td",{children:r?"Gate de validation":"Validation gate"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Exécute les contrôles schéma / meta / par-angle / cross-angle / globaux. Tout échec → retour à ",e.jsx("code",{children:"vN"}),"."]}):e.jsxs(e.Fragment,{children:["Run schema / meta / per-angle / cross-angle / global checks. Any failure → revert to ",e.jsx("code",{children:"vN"}),"."]})})]})]})]}),e.jsx("span",{id:"s05-ncl-structure",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:"5.2.b Neural Command Line — structure"}),e.jsx("p",{className:"doc-text",children:r?"Chaque NCL alimente le moteur avec exactement ces champs :":"Each NCL feeds into the engine with exactly these fields:"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Ce qu’il porte":"What it carries"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"angle_id"})}),e.jsx("td",{children:r?"L’angle stratégique auquel ce signal appartient. Les mutations ne touchent que les sous-champs de cet angle.":"The strategic angle this signal belongs to. Mutations only touch this angle's subfields."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"signal_type"})}),e.jsx("td",{children:"CALL · OVERRIDE · SYNERGY_CALL · POISON · BLOCK · SYNERGY_BLOCK · RISK · SYNERGY_RISK · GAP · WATCHLIST · MARKET_VALIDATION · MONITOR"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"company"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["La société évaluée. Utilisée comme candidate pour ",e.jsx("code",{children:"gold_anchor_pool"})," / ",e.jsx("code",{children:"competitor_anchors"})," / ",e.jsx("code",{children:"poison_anchor"}),"."]}):e.jsxs(e.Fragment,{children:["The company evaluated. Used as candidate for ",e.jsx("code",{children:"gold_anchor_pool"})," / ",e.jsx("code",{children:"competitor_anchors"})," / ",e.jsx("code",{children:"poison_anchor"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"concept"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"WINNING_KEYWORD"})," ou ",e.jsx("code",{children:"TOXIC_KEYWORD"})," — le concept dominant extrait du mémo GP."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"WINNING_KEYWORD"})," or ",e.jsx("code",{children:"TOXIC_KEYWORD"})," — the dominant concept extracted from the GP memo."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"narrative"})}),e.jsx("td",{children:r?"Insight d’une phrase tiré du mémo. Utilisé dans le rapport d’intelligence, pas comme entrée de mutation.":"One-sentence insight from the memo. Used in the intelligence report, not as a mutation input."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"cycle_count"})}),e.jsx("td",{children:r?"Combien de cycles antérieurs ce même signal s’est déclenché pour cet angle+concept. Pilote les mutations à seuil.":"How many prior cycles this same signal has fired for this angle+concept. Drives threshold-based mutations."})]})]})]}),e.jsxs("div",{className:"callout warning",children:[e.jsx("strong",{children:r?"Les signaux NO_MATCH sont ignorés.":"NO_MATCH signals are ignored."}),e.jsx("p",{children:r?"Le verdict du LLM du gate est binaire (MATCH seulement). Les signaux NO_MATCH sont consignés dans Airtable mais n’alimentent jamais le moteur d’évolution.":"The Gate LLM verdict is binary (MATCH only). NO_MATCH signals are logged in Airtable but never feed the evolution engine."})]}),e.jsx("span",{id:"s05-rules",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.c Règles de mutation par signal":"5.2.c Mutation rules per signal"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque signal route uniquement vers les sous-champs de l’angle cible (",e.jsx("code",{children:"sourcing_config.angles[angle_id]"}),", ",e.jsx("code",{children:" semantic_filters.angles[angle_id]"}),", ",e.jsx("code",{children:"benchmarks.angles[angle_id]"}),"). Aucun effet de bord cross-angle. Le moteur ne mute jamais ",e.jsx("code",{children:"entry_gates"}),", ",e.jsx("code",{children:" financial_model_config"}),", ni ",e.jsx("code",{children:"narrative_alpha.module_0_angle_detection_instruction"})," — ceux-là sont figés et seulement éditables depuis ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),"."]}):e.jsxs(e.Fragment,{children:["Every signal routes to the target angle's subfields only (",e.jsx("code",{children:"sourcing_config.angles[angle_id]"}),", ",e.jsx("code",{children:" semantic_filters.angles[angle_id]"}),", ",e.jsx("code",{children:"benchmarks.angles[angle_id]"}),"). No cross-angle side-effects. The engine never mutates ",e.jsx("code",{children:"entry_gates"}),", ",e.jsx("code",{children:" financial_model_config"}),", or ",e.jsx("code",{children:"narrative_alpha.module_0_angle_detection_instruction"})," — those are frozen and only editable from ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),"."]})}),e.jsx("div",{className:"doc-scroll",children:e.jsxs("table",{className:"doc-table doc-table-wide",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Signal"}),e.jsx("th",{children:r?"Déclencheur":"Trigger"}),e.jsx("th",{children:"Sourcing config"}),e.jsx("th",{children:"Semantic filters"}),e.jsx("th",{children:"Benchmarks"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-call",children:"OVERRIDE"})}),e.jsx("td",{children:r?"Immédiat. 1 signal suffit. Priorité absolue.":"Immediate. 1 signal sufficient. Absolute priority."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute à ",e.jsx("code",{children:"sectors_plain"})," / ",e.jsx("code",{children:"competitor_anchors"}),". Ajoute 1 ",e.jsx("code",{children:"exa_query"})," (remplace l’index 0 si à 7). Ajoute 1 ",e.jsx("code",{children:"google_alert_query"})," (max 12). Remplace le ",e.jsx("code",{children:"apify_linkedin_posts_query"})," le plus générique."]}):e.jsxs(e.Fragment,{children:["Append to ",e.jsx("code",{children:"sectors_plain"})," / ",e.jsx("code",{children:"competitor_anchors"}),". Add 1 ",e.jsx("code",{children:"exa_query"})," (replace index 0 if at 7). Add 1 ",e.jsx("code",{children:"google_alert_query"})," (max 12). Replace the most generic ",e.jsx("code",{children:"apify_linkedin_posts_query"}),"."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute un ",e.jsx("code",{children:"green_flag"})," avec le registre à 7 champs. Promu à ",e.jsx("code",{children:"priority_flags"})," si ",e.jsx("code",{children:'query_weight="high"'})," et < 9 entrées."]}):e.jsxs(e.Fragment,{children:["Add ",e.jsx("code",{children:"green_flag"})," with the 7-field registry. Promote to ",e.jsx("code",{children:"priority_flags"})," if ",e.jsx("code",{children:'query_weight="high"'}
3223)," and < 9 entries."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Fait tourner ",e.jsx("code",{children:"gold_anchor_pool"})," : nouvelle entrée → [0], ancien [0] → [1], [1] → [2], [2] retiré. Met à jour ",e.jsx("code",{children:"gold_anchor"}),"."]}):e.jsxs(e.Fragment,{children:["Rotate ",e.jsx("code",{children:"gold_anchor_pool"}),": new entry → [0], old [0] → [1], [1] → [2], [2] removed. Update ",e.jsx("code",{children:"gold_anchor"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-call",children:"CALL · SYNERGY_CALL"})}),e.jsx("td",{children:r?"Seuil : 3 signaux sur ≥ 2 cycles distincts (secteurs / concurrents) · 2 signaux sur ≥ 2 cycles (google alerts).":"Threshold: 3 signals over ≥ 2 distinct cycles (sectors / competitors) · 2 signals over ≥ 2 cycles (google alerts)."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute à ",e.jsx("code",{children:"sectors_plain"})," / ",e.jsx("code",{children:"competitor_anchors"}),". Ajoute ",e.jsx("code",{children:"google_alert_query"})," (remplace le plus proche si à 12)."]}):e.jsxs(e.Fragment,{children:["Append to ",e.jsx("code",{children:"sectors_plain"})," / ",e.jsx("code",{children:"competitor_anchors"}),". Append ",e.jsx("code",{children:"google_alert_query"})," (replace closest if at 12)."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute ou met à jour ",e.jsx("code",{children:"green_flag"}),". ",e.jsx("code",{children:"query_weight"})," passe à « high » à times_fired ≥ 3."]}):e.jsxs(e.Fragment,{children:["Add or update ",e.jsx("code",{children:"green_flag"}),". ",e.jsx("code",{children:"query_weight"}),' promotes to "high" at times_fired ≥ 3.']})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Met à jour le slot [0] de ",e.jsx("code",{children:"gold_anchor_pool"})," si la société est une référence plus forte que l’actuelle."]}):e.jsxs(e.Fragment,{children:["Update slot [0] of ",e.jsx("code",{children:"gold_anchor_pool"})," if company is a stronger reference than current."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:"POISON"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Seuil scindé : 1 signal suffit pour retirer un secteur. ",e.jsx("code",{children:"reject_signal"})," nécessite times_fired ≥ 2."]}):e.jsxs(e.Fragment,{children:["Threshold split: 1 signal sufficient to remove sector. ",e.jsx("code",{children:"reject_signal"})," needs times_fired ≥ 2."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Retire 1 item de ",e.jsx("code",{children:"sectors_plain"})," si le ",e.jsx("code",{children:"TOXIC_KEYWORD"})," mappe sans ambiguïté. Ajoute 1 clause à ",e.jsx("code",{children:"reject_signal"})," (max 10 clauses, 8 mots)."]}):e.jsxs(e.Fragment,{children:["Remove 1 item from ",e.jsx("code",{children:"sectors_plain"})," if ",e.jsx("code",{children:"TOXIC_KEYWORD"})," maps unambiguously. Add 1 clause to ",e.jsx("code",{children:"reject_signal"})," (max 10 clauses, 8 words)."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute un ",e.jsx("code",{children:"red_flag"})," avec le registre à 7 champs."]}):e.jsxs(e.Fragment,{children:["Add ",e.jsx("code",{children:"red_flag"})," with the 7-field registry."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute 1–2 traits à ",e.jsx("code",{children:"poison_anchor_characteristics"})," (max 7, remplace le plus faible si plein). Met à jour ",e.jsx("code",{children:"poison_anchor"})," si plus extrême."]}):e.jsxs(e.Fragment,{children:["Add 1–2 traits to ",e.jsx("code",{children:"poison_anchor_characteristics"})," (max 7, replace weakest if full). Update ",e.jsx("code",{children:"poison_anchor"})," if more extreme."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-pass",children:"BLOCK · SYNERGY_BLOCK"})}),e.jsx("td",{children:r?"Confirmation seulement — le filtre de l’angle marche déjà.":"Confirmation only — the angle's filter is already working."}),e.jsx("td",{children:e.jsx("strong",{children:r?"Aucun changement, jamais.":"No change ever."})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute un ",e.jsx("code",{children:"red_flag"})," avec le registre à 7 champs."]}):e.jsxs(e.Fragment,{children:["Add ",e.jsx("code",{children:"red_flag"})," with the 7-field registry."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute 1 trait à ",e.jsx("code",{children:"poison_anchor_characteristics"}
3223)," si le block révèle un nouvel anti-pattern structurel."]}):e.jsxs(e.Fragment,{children:["Add 1 trait to ",e.jsx("code",{children:"poison_anchor_characteristics"})," if block reveals a new structural anti-pattern."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-consider",children:"RISK · SYNERGY_RISK · CONSIDER"})}),e.jsx("td",{children:r?"Flaggé pour revue CEO — résolution imposée en aval par la boucle de revue (le signal se résout en CALL/PASS), pas par ce moteur.":"Flagged for CEO review — resolution enforced downstream by the review loop (signal clears into CALL/PASS), not by this engine."}),e.jsx("td",{children:r?"Pas de changement.":"No change."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute un flag ",e.jsx("code",{children:"red_soft"})," avec le registre à 7 champs."]}):e.jsxs(e.Fragment,{children:["Add ",e.jsx("code",{children:"red_soft"})," flag with the 7-field registry."]})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Consigne société + échéance dans ",e.jsx("code",{children:"expiring_soon"}),"."]}):e.jsxs(e.Fragment,{children:["Log company + deadline in ",e.jsx("code",{children:"expiring_soon"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"MARKET_VALIDATION"}),e.jsx("td",{children:r?"Immédiat. 1 signal suffit. La société a été ratée par le sourcing.":"Immediate. 1 signal sufficient. Company was missed by sourcing."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute le secteur raté à ",e.jsx("code",{children:"sectors_plain"})," (max 12) + ",e.jsx("code",{children:"binary_gates.inclusions.sector"}),". Ajoute 1 ",e.jsx("code",{children:"google_alert_query"}),"."]}):e.jsxs(e.Fragment,{children:["Append missed sector to ",e.jsx("code",{children:"sectors_plain"})," (max 12) + ",e.jsx("code",{children:"binary_gates.inclusions.sector"}),". Add 1 ",e.jsx("code",{children:"google_alert_query"}),"."]})}),e.jsx("td",{children:r?"Pas de changement.":"No change."}),e.jsx("td",{children:r?"Pas de changement.":"No change."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"WATCHLIST"}),e.jsx("td",{children:r?"Immédiat. 1 signal suffit. Concurrent intéressant.":"Immediate. 1 signal sufficient. Interesting competitor."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Ajoute à ",e.jsx("code",{children:"competitor_anchors"})," (max 20). Ajoute à ",e.jsx("code",{children:"binary_gates.pending_inclusions"})," avec expiration à 90 jours."]}):e.jsxs(e.Fragment,{children:["Append to ",e.jsx("code",{children:"competitor_anchors"})," (max 20). Add to ",e.jsx("code",{children:"binary_gates.pending_inclusions"})," with 90-day expiry."]})}),e.jsx("td",{children:r?"Pas de changement.":"No change."}),e.jsx("td",{children:r?"Pas de changement.":"No change."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("span",{className:"verdict-pill v-monitor",children:"MONITOR · GAP"})}),e.jsx("td",{children:r?"Pas de seuil — log seulement.":"No threshold — log only."}),e.jsx("td",{children:r?"Pas de changement.":"No change."}),e.jsx("td",{children:r?"Pas de changement.":"No change."}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Pas de changement. Consigné dans ",e.jsx("code",{children:"pipeline_tracking"}),"."]}):e.jsxs(e.Fragment,{children:["No change. Logged in ",e.jsx("code",{children:"pipeline_tracking"}),"."]})})]})]})]})}),e.jsx("span",{id:"s05-priority",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.d Règles de priorité & de seuil":"5.2.d Priority & threshold rules"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Quand plusieurs signaux ciblent le ",e.jsx("strong",{children:"même champ du même angle"})," en un cycle, un maximum d’",e.jsx("strong",{children:"un changement"})," est appliqué. L’ordre de priorité, du plus élevé au plus bas :"]}
3223):e.jsxs(e.Fragment,{children:["When multiple signals target the ",e.jsx("strong",{children:"same field of the same angle"})," in one cycle, a maximum of ",e.jsx("strong",{children:"one change"})," is applied. The priority order, highest to lowest:"]})}),e.jsx("pre",{className:"doc-code",children:"CEO_VETO > CEO_YES > OVERRIDE > CALL · SYNERGY_CALL > MARKET_VALIDATION > WATCHLIST > POISON"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les signaux CEO sont en tête car ils portent le jugement direct du CEO — un verdict humain l’emporte sur un verdict machine sur le même champ. ",e.jsx("code",{children:"CEO_VETO"})," (le CEO a dit NON sur un top pick de Stan) est le plus fort signal du système ; il déclenche des mutations immédiates y compris ",e.jsx("code",{children:"narrative_alpha"})," — un champ qu’aucun autre signal ne peut toucher. ",e.jsx("code",{children:"CEO_YES"})," avec note extrait un ",e.jsx("code",{children:"WINNING_KEYWORD"})," qui renforce les green flags et fait tourner le gold anchor pool. ",e.jsx("code",{children:"OVERRIDE"})," (le CEO pousse un PASS en CALL sans changer la logique sous-jacente de Stan) agit avec la même mécanique de priorité absolue mais s’applique aux requêtes de sourcing, pas au narratif de qualification."]}):e.jsxs(e.Fragment,{children:["CEO signals sit at the top because they carry the CEO's direct judgment — a human verdict trumps a machine verdict on the same field. ",e.jsx("code",{children:"CEO_VETO"})," (CEO said NO on a Stan top pick) is the strongest signal in the system; it triggers immediate mutations including ",e.jsx("code",{children:"narrative_alpha"})," — a field no other signal can touch. ",e.jsx("code",{children:"CEO_YES"})," with a note extracts a ",e.jsx("code",{children:"WINNING_KEYWORD"})," that reinforces green flags and rotates the gold anchor pool. ",e.jsx("code",{children:"OVERRIDE"})," (CEO pushes a PASS to CALL without changing Stan's underlying logic) acts with the same absolute-priority mechanic but applies to sourcing queries, not qualification narrative."]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les signaux qui perdent le conflit sont consignés dans ",e.jsx("code",{children:"pending_signals"})," pour l’angle et s’accumulent vers le seuil du cycle suivant. C’est pourquoi un PASS isolé ne bouge jamais la thèse — trois patterns PASS répétés sur ≥ 2 semaines distinctes, si. Les signaux CEO, eux, n’ont besoin que d’une occurrence."]}):e.jsxs(e.Fragment,{children:["Signals that lose the conflict are logged in ",e.jsx("code",{children:"pending_signals"})," for the angle and accumulate toward the next cycle's threshold. This is why a single PASS never moves the thesis — three repeated PASS patterns over ≥ 2 distinct weeks do. CEO signals, in contrast, need only one occurrence."]})}),e.jsx("span",{id:"s05-frozen",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.e Champs figés vs modifiables · limites de taille":"5.2.e Frozen vs updatable fields · size limits"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Politique":"Policy"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"sourcing_config.shared.single_gate"})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"FIGÉ":"FROZEN"})," — ",r?'jamais touché par des signaux automatisés. Format 2-STEP structuré (v7.5) · 200–1000 car. · DOIT contenir les tokens littéraux "STEP 1" et "STEP 2".':'never touched by automated signals. Structured 2-STEP format (v7.5) · 200–1000 chars · MUST contain the literal tokens "STEP 1" and "STEP 2".']})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"sourcing_config.shared.cities"})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"FIGÉ":"FROZEN"}),". ",r?"Hubs économiques principaux par défaut (London, Paris, Berlin, Amsterdam, Madrid, Barcelona, Milan, Dublin, Stockholm, Zurich). Villes secondaires seulement pour des thèses explicitement régionales.":"Primary business hubs by default (London, Paris, Berlin, Amsterdam, Madrid, Barcelona, Milan, Dublin, Stockholm, Zurich). Secondary cities only for explicitly regional theses."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"sourcing_config.shared.founder_exodus_sources"})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"FIGÉ":"FROZEN"}),"."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"sourcing_config.shared.naf_codes"})}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"FIGÉ":"FROZEN"}),"."]})]}),e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("code",{children:"sourcing_config.shared.near_miss_examples"})," ",e.jsx("em",{children:"(v7.5)"})]}),e.jsxs("td",{children:[e.jsx("strong",{children:r?"VIVANT":"LIVING"})," — ",r?"grandit automatiquement quand le CEO clique « ⚠ Flag FP » sur un MATCH faux-positif dans Airtable. Élaguable manuellement depuis l’assistant. Injecté dans le prompt du gate au runtime. Aucun LLM ne touche cette liste — seulement le feedback humain et l’endpoint « Flag FP ».":'grows automatically when the CEO clicks "⚠ Flag FP" on a false-positive MATCH in Airtable. Can be pruned manually from the wizard. Injected into the gate prompt at runtime. No LLM touches this list — only human feedback and the "Flag FP" endpoint.']})]})]})]}),e.jsx("p",{className:"doc-text",children:e.jsx("strong",{children:r?"Limites de taille dures et règles de forme par angle :":"Hard size limits and shape rules per angle:"})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Champ":"Field"}),e.jsx("th",{children:r?"Règle":"Rule"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"exa_queries"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Exactement ",e.jsx("strong",{children:"7 phrases"}),'. Chaque phrase doit commencer par le préfixe littéral "Here is a " — ça déclenche le mode neural d’Exa. OVERRIDE préfixe une nouvelle phrase à l’index 0 ; si le pool est déjà à 7, la plus ancienne entrée est retirée.']}):e.jsxs(e.Fragment,{children:["Exactly ",e.jsx("strong",{children:"7 phrases"}),`. Every phrase must start with the literal prefix "Here is a " — this triggers Exa's neural mode. OVERRIDE prepends a new phrase at index 0; if the pool is already at 7, the oldest entry is dropped.`]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"apify_linkedin_posts_queries"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Exactement ",e.jsx("strong",{children:"4 requêtes"}),", une par type de signal, avec des index fixes : ",e.jsx("code",{children:"[0] funding"})," · ",e.jsx("code",{children:"[1] hiring commercial"})," · ",e.jsx("code",{children:"[2] launch"})," · ",e.jsx("code",{children:"[3] traction"}),". La règle est que chaque requête attrape un signal que les trois autres n’attrapent pas — le chevauchement est traité comme une mauvaise config."]}):e.jsxs(e.Fragment,{children:["Exactly ",e.jsx("strong",{children:"4 queries"}),", one per signal type, with fixed indices: ",e.jsx("code",{children:"[0] funding"})," · ",e.jsx("code",{children:"[1] hiring commercial"})," · ",e.jsx("code",{children:"[2] launch"})," · ",e.jsx("code",{children:"[3] traction"}),". The rule is that each query catches a signal the other three don't — overlap is treated as misconfiguration."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"apify_linkedin_jobs_calendar"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Exactement ",e.jsx("strong",{children:"7 entrées"}),", une par jour de la semaine (MON→SUN). Chaque entrée a son propre rôle + mots-clés (recommandé : MON Partnerships · TUE VP Sales · WED Engineering · THU Finance · FRI CTO · SAT Growth · SUN Legal). Le champ ",e.jsx("code",{children:"city"})," est ",e.jsx("strong",{children:'toujours la chaîne littérale "Europe"'})," — jamais une ville précise."]}):e.jsxs(e.Fragment,{children:["Exactly ",e.jsx("strong",{children:"7 entries"}),", one per weekday (MON→SUN). Each entry has its own role + keywords (recommended: MON Partnerships · TUE VP Sales · WED Engineering · THU Finance · FRI CTO · SAT Growth · SUN Legal). The ",e.jsx("code",{children:"city"})," field is ",e.jsx("strong",{children:'always the literal string "Europe"'})," — never a specific city."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"apify_crunchbase_calendar"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Exactement ",e.jsx("strong",{children:"7 entrées"})," (MON→SUN), chacune définissant un tuple ",e.jsx("code",{children:"{day, city, industry, employees, description_keywords}"}),". ",e.jsx("strong",{children:"Industry :"})," choisissez la catégorie la plus spécifique du ",e.jsx("a",{href:"https://support.crunchbase.com/hc/en-us/articles/27690673553555-Glossary-of-
3223Industries",target:"_blank",rel:"noreferrer",children:"Glossaire Crunchbase officiel"})," (700+ catégories). Les catégories génériques (Software, Hotel, Travel, FinTech…) sont permises quand elles sont le meilleur match disponible. Tranches de taille : ",e.jsx("code",{children:"1-10"})," · ",e.jsx("code",{children:"11-50"})," · ",e.jsx("code",{children:"51-100"})," · ",e.jsx("code",{children:"101-250"})," · ",e.jsx("code",{children:"251-500"})," · ",e.jsx("code",{children:"500-1000"}),". ",e.jsx("strong",{children:"City :"})," les capitales SONT permises (London, Paris, Berlin, Amsterdam…) quand elles sont le vrai hub de votre vertical — pas de hard-block. ",e.jsx("strong",{children:"description_keywords (v7.5.3, optionnel mais recommandé) :"})," 1–3 mots-clés séparés par retour à la ligne qui doivent apparaître dans la description Crunchbase d’un candidat pertinent — restreint drastiquement le pool quand l’industrie est générique. Le moteur applique automatiquement ",e.jsx("code",{children:"funding_date_from = today − 5 years"})," sur chaque requête, donc seules les sociétés récemment financées reviennent."]}):e.jsxs(e.Fragment,{children:["Exactly ",e.jsx("strong",{children:"7 entries"})," (MON→SUN), each defining a ",e.jsx("code",{children:"{day, city, industry, employees, description_keywords}"})," tuple. ",e.jsx("strong",{children:"Industry:"})," pick the most specific category from the ",e.jsx("a",{href:"https://support.crunchbase.com/hc/en-us/articles/27690673553555-Glossary-of-Industries",target:"_blank",rel:"noreferrer",children:"official Crunchbase Glossary"})," (700+ categories). Generic categories (Software, Hotel, Travel, FinTech…) are allowed when they are the best available match. Size bands: ",e.jsx("code",{children:"1-10"})," · ",e.jsx("code",{children:"11-50"})," · ",e.jsx("code",{children:"51-100"})," · ",e.jsx("code",{children:"101-250"})," · ",e.jsx("code",{children:"251-500"})," · ",e.jsx("code",{children:"500-1000"}),". ",e.jsx("strong",{children:"City:"})," capitals ARE allowed (London, Paris, Berlin, Amsterdam…) when they are the real hub of your vertical — no hard-block. ",e.jsx("strong",{children:"description_keywords (v7.5.3, optional but recommended):"})," 1–3 newline-separated keywords that must appear in the Crunchbase description of a relevant candidate — narrows the pool drastically when industry is generic. The engine auto-applies ",e.jsx("code",{children:"funding_date_from = today − 5 years"})," on every query, so only recently funded companies come back."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"sectors_plain"})}),e.jsx("td",{children:r?"8 entrées au setup (3–6 mots chacune, langage naturel), max 12 après enrichissement hebdo.":"8 entries at setup (3–6 words each, natural language), max 12 after weekly enrichment."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"competitor_anchors"})}),e.jsx("td",{children:r?"10 au setup, max 20 après enrichissement hebdo. Le gold anchor doit figurer dans cette liste.":"10 at setup, max 20 after weekly enrichment. The gold anchor must appear in this list."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"google_alert_queries"})}),e.jsx("td",{children:r?"8 expressions booléennes au setup, max 12. Au moins une doit être en français si la France est dans le périmètre géographique de l’angle.":"8 boolean expressions at setup, max 12. At least one must be in French if France is in the angle's geography scope."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["clauses ",e.jsx("code",{children:"reject_signal"})]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"reject_signal"})," clauses"]})}),e.jsx("td",{children:r?"≤ 10 clauses, chaque clause ≤ 8 mots.":"≤ 10 clauses, each clause ≤ 8 words."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"priority_flags"})}),e.jsx("td",{children:r?"4 à 7 entrées, chacune ≤ 40 caractères.":"4 to 7 entries, each ≤ 40 characters."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"green_flags"})}),e.jsx("td",{children:r?"8 initialement, jusqu’à 15 après mutations hebdo, chacune ≤ 40 caractères.":"8 initially, up to 15 after weekly mutations, each ≤ 40 characters."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"red_flags"})}),e.jsx("td",{children:r?"4 initialement, jusqu’à 8 après mutations hebdo, chacune ≤ 40 caractères.":"4 initially, up to 8 after weekly mutations, each ≤ 40 characters."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"poison_anchor_characteristics"})}),e.jsx("td",{children:r?"5 à 7 traits, chacun ≤ 60 caractères. Plafond dur à 7 — le plus faible est remplacé quand c’est plein.":"5 to 7 traits, each ≤ 60 characters. Hard ceiling at 7 — the weakest is replaced when full."})]})]})]}),e.jsx("span",{id:"s05-rebalance",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.f Cycle de vie & décroissance des flags":"5.2.f Flag lifecycle & decay"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Chaque green / red flag dans ",e.jsx("code",{children:"semantic_filters.angles[id]"})," porte le ",e.jsx("strong",{children:"registre à 7 champs"})," :"]}):e.jsxs(e.Fragment,{children:["Every green / red flag in ",e.jsx("code",{children:"semantic_filters.angles[id]"})," carries the ",e.jsx("strong",{children:"7-field registry"}),":"]})}),e.jsx("pre",{className:"doc-code",children:`{ flag, type, times_fired,
3224  times_evaluated_without_firing, last_fired,
3225  decay_status, query_weight }`}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:["Déclenché cette semaine → ",e.jsx("code",{children:"times_fired +1"}),", ",e.jsx("code",{children:"last_fired = today"}),", ",e.jsx("code",{children:'decay_status = "active"'}),"."]}),e.jsxs("li",{children:["Pas déclenché → ",e.jsx("code",{children:"times_evaluated_without_firing +1"}),"."]}),e.jsxs("li",{children:[e.jsx("code",{children:"times_evaluated_without_firing ≥ 20"})," OU ",e.jsx("code",{children:"today − last_fired > 365 days"})," → ",e.jsx("code",{children:'decay_status = "review_pending"'}),", retiré de ",e.jsx("code",{children:"priority_flags"}),", consigné dans ",e.jsx("code",{children:"flags_due_for_review"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Les flags ne sont jamais supprimés automatiquement."})," Ils restent dans ",e.jsx("code",{children:"green_flags"})," / ",e.jsx("code",{children:"red_flags"})," avec ",e.jsx("code",{children:'decay_status = "review_pending"'})," jusqu’à ce que le CEO les élague manuellement à la prochaine revue de setup trimestrielle."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:["Fired this week → ",e.jsx("code",{children:"times_fired +1"}),", ",e.jsx("code",{children:"last_fired = today"}),", ",e.jsx("code",{children:'decay_status = "active"'}),"."]}),e.jsxs("li",{children:["Not fired → ",e.jsx("code",{children:"times_evaluated_without_firing +1"}),"."]}),e.jsxs("li",{children:[e.jsx("code",{children:"times_evaluated_without_firing ≥ 20"})," OR ",e.jsx("code",{children:"today − last_fired > 365 days"})," → ",e.jsx("code",{children:'decay_status = "review_pending"'}),", removed from ",e.jsx("code",{children:"priority_flags"}),", logged in ",e.jsx("code",{children:"flags_due_for_review"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Flags are never deleted automatically."})," They stay in ",e.jsx("code",{children:"green_flags"})," / ",e.jsx("code",{children:"red_flags"})," with ",e.jsx("code",{children:'decay_status = "review_pending"'})," until the CEO prunes them manually at the next quarterly setup review."]})]})}),e.jsxs("div",{className:"callout",children:[e.jsx("strong",{children:r?"Pas de score /100 en v5.4.":"No score /100 in v5.4."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["La thèse ne porte plus ",e.jsx("code",{children:"scoring_weights"}),". Le GP Synthétique rend un verdict qualitatif (CALL · CONSIDER · MONITOR · PASS) basé sur le narratif, les priority flags et les gold / poison anchors — pas un score numérique."]}):e.jsxs(e.Fragment,{children:["The thesis no longer carries ",e.jsx("code",{children:"scoring_weights"}),". The GP Synthétique renders a qualitative verdict (CALL · CONSIDER · MONITOR · PASS) based on the narrative, priority flags and gold / poison anchors — not a numeric score."]})})]}),e.jsx("span",{id:"s05-validation",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?"5.2.g Gate de validation — 13 règles, tout échec revient à v(N)":"5.2.g Validation gate — 13 rules, any failure reverts to v(N)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Avant de publier ",e.jsx("code",{children:"v(N+1)"}),", le moteur exécute une passe de validation dure contre le schéma fund_thesis v5.4. Si l’une des 13 règles ci-dessous échoue, la nouvelle version est jetée et la thèse courante reste inchangée. L’échec est consigné dans ",e.jsx("code",{children:"intelligence_report.system_notes"})," pour que vous voyiez exactement ce qui a bloqué la mise à jour — les mêmes 13 règles sont évaluées en direct dans l’assistant, donc un CEO qui édite manuellement voit le bouton « Save to Airtable » rester grisé jusqu’à ce que chaque règle soit verte."]}):e.jsxs(e.Fragment,{children:["Before publishing ",e.jsx("code",{children:"v(N+1)"}),", the engine runs a hard validation pass against the fund_thesis v5.4 schema. If any of the 13 rules below fail
3225s, the new version is discarded and the current thesis stays unchanged. The failure is logged in ",e.jsx("code",{children:"intelligence_report.system_notes"}),' so you see exactly what blocked the update — the same 13 rules are evaluated live inside the wizard, so a CEO editing manually sees the "Save to Airtable" button stay greyed out until every rule is green.']})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:r?"Règle":"Rule"}),e.jsx("th",{children:r?"Échoue si":"Fails if"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"1"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Exactement 8 clés de premier niveau":"8 top-level keys exactly"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["L’une des 8 clés manque ou une clé parasite est présente. Les 8 sont : ",e.jsx("code",{children:"meta"})," · ",e.jsx("code",{children:"sourcing_config"})," · ",e.jsx("code",{children:"binary_gates"})," · ",e.jsx("code",{children:"entry_gates"})," · ",e.jsx("code",{children:"financial_model_config"})," · ",e.jsx("code",{children:"narrative_alpha"})," · ",e.jsx("code",{children:"benchmarks"})," · ",e.jsx("code",{children:"semantic_filters"}),". ",e.jsx("code",{children:"scoring_weights"})," et ",e.jsx("code",{children:"valuation_discipline"})," ont été retirés en v5.4."]}):e.jsxs(e.Fragment,{children:["Any of the 8 keys is missing or a stray key is present. The 8 are: ",e.jsx("code",{children:"meta"})," · ",e.jsx("code",{children:"sourcing_config"})," · ",e.jsx("code",{children:"binary_gates"})," · ",e.jsx("code",{children:"entry_gates"})," · ",e.jsx("code",{children:"financial_model_config"})," · ",e.jsx("code",{children:"narrative_alpha"})," · ",e.jsx("code",{children:"benchmarks"})," · ",e.jsx("code",{children:"semantic_filters"}),". ",e.jsx("code",{children:"scoring_weights"})," and ",e.jsx("code",{children:"valuation_discipline"})," were removed in v5.4."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"2"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"meta.angles_active concorde partout":"meta.angles_active matches everywhere"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Tout ",e.jsx("code",{children:"angle_id"})," dans ",e.jsx("code",{children:"sourcing_config.angles"}),", ",e.jsx("code",{children:"narrative_alpha.angles"}),", ",e.jsx("code",{children:"benchmarks.angles"})," ou ",e.jsx("code",{children:"semantic_filters.angles"})," n’est pas dans ",e.jsx("code",{children:"meta.angles_active"}),", ou vice versa."]}):e.jsxs(e.Fragment,{children:["Any ",e.jsx("code",{children:"angle_id"})," in ",e.jsx("code",{children:"sourcing_config.angles"}),", ",e.jsx("code",{children:"narrative_alpha.angles"}),", ",e.jsx("code",{children:"benchmarks.angles"})," or ",e.jsx("code",{children:"semantic_filters.angles"})," is not in ",e.jsx("code",{children:"meta.angles_active"}),", or vice versa."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"3"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"sourcing_config.shared a les 4 champs requis (+ champs optionnels v6/v7.5)":"sourcing_config.shared has the 4 required fields (+ optional v6/v7.5 fields)"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Les 4 champs requis sont : ",e.jsx("code",{children:"single_gate"})," · ",e.jsx("code",{children:"cities"})," · ",e.jsx("code",{children:"founder_exodus_sources"})," · ",e.jsx("code",{children:"naf_codes"}),". Si l’un manque = échec. Les champs v6 optionnels (",e.jsx("code",{children:"sectors_weekly"}),", ",e.jsx("code",{children:"alerts_weekly"}),", ",e.jsx("code",{children:"backfill_sources"}),") et le champ v7.5 (",e.jsx("code",{children:"near_miss_examples"}),") sont préservés si présents mais pas obligatoires pour la validation."]}):e.jsxs(e.Fragment,{children:["The 4 required fields are: ",e.jsx("code",{children:"single_gate"})," · ",e.jsx("code",{children:"cities"})," · ",e.jsx("code",{children:"founder_exodus_sources"})," · ",e.jsx("code",{children:"naf_codes"}),". Any of these missing = failure. Optional v6 fields (",e.jsx("code",{children:"sectors_weekly"}),", ",e.jsx("code",{children:"alerts_weekly"}),", ",e.jsx("code",{children:"backfill_sources"}),") and v7.5 field (",e.jsx("code",{children:"near_miss_examples"}),") are preserved if present but not mandatory for validation."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"4"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Par angle : longueur exa_queries = 7":"Per angle: exa_queries length = 7"})}),e.jsx("td",{children:r?"Un angle a moins ou plus de 7 requêtes Exa.":"Any angle has fewer or more than 7 Exa queries."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"5"})}),e.jsx("td",{children:e.jsx("strong",{children:r?'Chaque exa_query commence par "Here is a "':'Every exa_query starts with "Here is a "'})}),e.jsx("td",{children:r?'Une requête d’un angle ne commence pas par le préfixe littéral "Here is a ".':'Any query in any angle does not start with the literal prefix "Here is a ".'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"6"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Par angle : longueur apify_linkedin_posts_queries = 4":"Per angle: apify_linkedin_posts_queries length = 4"})}),e.jsx("td",{children:r?"Un angle a moins ou plus de 4 requêtes LinkedIn Posts. Les index [0..3] sont fixés à funding / hiring commercial / launch / traction.":"Any angle has fewer or more than 4 LinkedIn Posts queries. Indices [0..3] are fixed to funding / hiring commercial / launch / traction."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"7"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Par angle : longueur apify_linkedin_jobs_calendar = 7":"Per angle: apify_linkedin_jobs_calendar length = 7"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Un angle a moins ou plus de 7 entrées quotidiennes, ou le champ ",e.jsx("code",{children:"city"}),' d’une entrée n’est pas la chaîne littérale "Europe".']}):e.jsxs(e.Fragment,{children:["Any angle has fewer or more than 7 daily entries, or any entry's ",e.jsx("code",{children:"city"}),' field is not the literal string "Europe".']})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"8"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Par angle : longueur apify_crunchbase_calendar = 7":"Per angle: apify_crunchbase_calendar length = 7"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Un angle a moins ou plus de 7 entrées quotidiennes, ou une entrée a un ",e.jsx("code",{children:"industry"})," ou ",e.jsx("code",{children:"city"})," vide. L’industry doit être une vraie catégorie Crunchbase (voir le ",e.jsx("a",{href:"https://support.crunchbase.com/hc/en-us/articles/27690673553555-Glossary-of-
3225Industries",target:"_blank",rel:"noreferrer",children:"glossaire officiel"}),") mais aucune allow-list dure n’est imposée — une catégorie large est valide si c’est ce qu’un fondateur taguerait vraiment. Depuis v7.5.2, il n’y a ",e.jsx("strong",{children:"plus de ban-list de villes"})," non plus (les capitales sont permises). ",e.jsx("code",{children:"description_keywords"})," est optionnel par entrée (v7.5.3)."]}):e.jsxs(e.Fragment,{children:["Any angle has fewer or more than 7 daily entries, or any entry has an empty ",e.jsx("code",{children:"industry"})," or ",e.jsx("code",{children:"city"}),". The industry must be a real Crunchbase category (see the ",e.jsx("a",{href:"https://support.crunchbase.com/hc/en-us/articles/27690673553555-Glossary-of-Industries",target:"_blank",rel:"noreferrer",children:"official glossary"}),") but no hard allow-list is enforced — a broad category is valid if it's what a founder would actually tag. Since v7.5.2, there is ",e.jsx("strong",{children:"no city ban-list"})," either (capitals are allowed). ",e.jsx("code",{children:"description_keywords"})," is optional per entry (v7.5.3)."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"9"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"sector_profile dans l’enum":"sector_profile in enum"})}),e.jsxs("td",{children:[e.jsx("code",{children:"financial_model_config.sector_profile"})," ",r?"n’est pas l’un de":"is not one of"," ","{"," b2b_travel_saas · ai_native_saas · fintech_payment_rails · marketplace_b2b ","}","."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"10"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"Bloc du mode actif rempli, hurdles non-null":"Active mode block populated, hurdles non-null"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Seul le bloc de config du mode actif (",e.jsx("code",{children:"vc_config"})," / ",e.jsx("code",{children:"lbo_config"})," / ",e.jsx("code",{children:"ma_config"}),") est rempli et tous ses hurdles sont non-null. Les autres blocs de mode doivent être ",e.jsx("code",{children:"null"}),"."]}):e.jsxs(e.Fragment,{children:["Only the active mode's config block (",e.jsx("code",{children:"vc_config"})," / ",e.jsx("code",{children:"lbo_config"})," / ",e.jsx("code",{children:"ma_config"}),") is populated and all its hurdles are non-null. The other mode blocks must be ",e.jsx("code",{children:"null"}),"."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"11"})}),e.jsx("td",{children:e.jsx("strong",{children:"gold_anchor = gold_anchor_pool[0].company, unique cross-angle"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le ",e.jsx("code",{children:"gold_anchor"})," d’un angle ne correspond pas à son propre ",e.jsx("code",{children:"gold_anchor_pool[0].company"}),", ou deux angles partagent le même ",e.jsx("code",{children:"gold_anchor"}),". Les slots [1] et [2] restent des placeholders ",e.jsx("code",{children:'"__REPLACE__"'})," jusqu’à ce que la rotation les remplisse."]}):e.jsxs(e.Fragment,{children:["Any angle's ",e.jsx("code",{children:"gold_anchor"})," does not match its own ",e.jsx("code",{children:"gold_anchor_pool[0].company"}),", or two angles share the same ",e.jsx("code",{children:"gold_anchor"}),". Slots [1] and [2] stay as ",e.jsx("code",{children:'"__REPLACE__"'})," placeholders until rotation fills them."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"12"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"buyer_context + narrative par angle non vides":"buyer_context + narrative per angle non-empty"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"meta.buyer_context"})," est vide ou le ",e.jsx("code",{children:"narrative_alpha.angles[id].narrative"})," d’un angle est vide. Le narratif doit encoder les 5 éléments obligatoires (gap stratégique · MUST_ACQUIRE · PERFECT_WINDOW · fondateur idéal · logique 1+1=3)."]}):e.jsxs(e.Fragment,{children:[e.jsx("code",{children:"meta.buyer_context"})," is empty or any angle's ",e.jsx("code",{children:"narrative_alpha.angles[id].narrative"})," is empty. The narrative must encode the 5 mandatory elements (strategic gap · MUST_ACQUIRE · PERFECT_WINDOW · ideal founder · 1+1=3 logic)."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"13"})}),e.jsx("td",{children:e.jsx("strong",{children:r?"benchmarks : poison_anchor_characteristics ≥ 5 par angle":"benchmarks: poison_anchor_characteristics ≥ 5 per angle"})}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Un angle a moins de 5 entrées dans ",e.jsx("code",{children:"poison_anchor_characteristics"}),". Le plafond dur est 7."]}):e.jsxs(e.Fragment,{children:["Any angle has fewer than 5 entries in ",e.jsx("code",{children:"poison_anchor_characteristics"}),". The hard ceiling is 7."]})})]})]})]}),e.jsxs("div",{className:"callout info",style:{marginTop:12},children:[e.jsx("strong",{children:r?"Pourquoi c’est important.":"Why this matters."}),e.jsx("p",{children:r?'Ces 13 règles sont le contrat entre la thèse et chaque système en aval — moteur
3225s de sourcing, entry filter, GP Synthétique, modèle financier, moteur hebdo. Une seule violation n’importe où dans le JSON casserait silencieusement l’un d’eux (une faute de frappe d’industry Crunchbase renvoie zéro résultat sans lever d’erreur, un préfixe "Here is a " manquant fait retomber le mode neural d’Exa en simple recherche par mots-clés). Valider en amont est la seule façon de garder le pipeline honnête.':`These 13 rules are the contract between the thesis and every downstream system — sourcing engines, entry filter, GP Synthetique, financial model, weekly engine. A single violation anywhere in the JSON would silently break one of them (a Crunchbase industry typo returns zero results without raising an error, a missing "Here is a " prefix collapses Exa's neural mode to plain keyword search). Validating upfront is the only way to keep the pipeline honest.`})]}),e.jsx("span",{id:"s05-write-paths",className:"doc-anchor"}),e.jsx("h4",{className:"doc-h4",children:r?e.jsxs(e.Fragment,{children:["5.2.h Les 3 voies d’écriture de ",e.jsx("code",{children:"fund_thesis"})]}):e.jsxs(e.Fragment,{children:["5.2.h The 3 write paths for ",e.jsx("code",{children:"fund_thesis"})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Airtable reste la source unique de vérité. Seuls trois processus sont autorisés à écrire dans la colonne ",e.jsx("code",{children:" fund_type.fund_thesis"}),", et tous trois passent par le validateur Pydantic v5.4 avant tout PATCH — il est mathématiquement impossible qu’un JSON hors-schéma atteigne la production par ces voies."]}):e.jsxs(e.Fragment,{children:["Airtable stays the single source of truth. Only three processes are allowed to write to the ",e.jsx("code",{children:" fund_type.fund_thesis"})," column, and all three go through the Pydantic v5.4 validator before any PATCH — it is mathematically impossible for an off-schema JSON to reach production through these paths."]})}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Voie":"Path"}),e.jsx("th",{children:r?"Quand":"When"}),e.jsx("th",{children:r?"Garde-fou":"Safeguard"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?e.jsxs(e.Fragment,{children:["App assistant sur ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})]}):e.jsxs(e.Fragment,{children:["Wizard app at ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"})]})})}),e.jsx("td",{children:r?"À chaque édition manuelle du CEO":"Anytime the CEO edits manually"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Validation Pydantic en direct à chaque frappe (debounce 500 ms). Le bouton « Save to Airtable » reste désactivé tant que ",e.jsx("code",{children:"valid: false"}),". Une boîte de confirmation s’ouvre avant le PATCH. Un avertissement ",e.jsx("code",{children:"beforeunload"})," bloque la navigation hors des éditions non sauvegardées."]}):e.jsxs(e.Fragment,{children:['Live Pydantic validation on every keystroke (500 ms debounce). The "Save to Airtable" button stays disabled while ',e.jsx("code",{children:"valid: false"}),". A confirm dialog fires before the PATCH. A ",e.jsx("code",{children:"beforeunload"})," warning blocks navigation away from unsaved edits."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Scénario Make d’onboarding (jour 7)":"Make onboarding scenario (day 7)"})}),e.jsx("td",{children:r?"Une fois, pendant l’onboarding d’un nouveau fonds":"Once, during onboarding of a new fund"}),e.jsx("td",{children:r?e.jsxs(e.Fragment,{children:["Le LLM produit un JSON v5.4 depuis les prompts stricts de création de thèse (system + user). Le scénario appelle ",e.jsx("code",{children:"POST /directive/thesis-validate"})," avant le PATCH et relance le LLM jusqu’à 3× avec les erreurs de validation réinjectées. Échec final → CSM notifié, aucune écriture."]}):e.jsxs(e.Fragment,{children:["The LLM produces a v5.4 JSON from the strict thesis-creation prompts (system + user). The scenario calls ",e.jsx("code",{children:"POST /directive/thesis-validate"})," before PATCH and retries the LLM up to 3× with validation errors re-injected. Final failure → CSM notified, no write happens."]})})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?e.jsxs(e.Fragment,{children:["Moteur hebdo sur ",e.jsx("code",{children:"/directive/thesis-update"})]}):e.jsxs(e.Fragment,{children:["Weekly engine at ",e.jsx("code",{children:"/directive/thesis-update"})]})})}),e.jsx("td",{children:r?"Chaque lundi 16h UTC":"Every Monday 4 PM UTC"}),e.jsx("td",{children:r?"Copy-First Safety Protocol : la v(N+1) produite par le LLM est validée avant écriture. Toute erreur Pydantic → v(N+1) jetée, Airtable reste à v(N), l’email hebdo signale l’échec.":"C
3225opy-First Safety Protocol: the v(N+1) produced by the LLM is validated before being written. Any Pydantic error → v(N+1) discarded, Airtable stays at v(N), weekly email flags the failure."})]})]})]}),e.jsxs("div",{className:"callout warning",style:{marginTop:16},children:[e.jsx("strong",{children:r?"Ne jamais éditer Airtable directement.":"Never edit Airtable directly."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["La colonne ",e.jsx("code",{children:"fund_thesis"})," est gérée exclusivement par ces trois voies. Une édition manuelle dans Airtable contourne le validateur et peut casser le sourcing quotidien, le modèle financier ou le moteur hebdo. Si vous avez besoin d’un ajustement rapide : ouvrez ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),", éditez, sauvegardez."]}):e.jsxs(e.Fragment,{children:["The ",e.jsx("code",{children:"fund_thesis"})," column is managed exclusively by these three paths. A manual edit in Airtable bypasses the validator and can break daily sourcing, the financial model, or the weekly engine. If you need a quick adjustment: open ",e.jsx("code",{children:"analysis.proplace.co/thesis/?fund=<slug>"}),", edit, save."]})})]}),e.jsx("span",{id:"s05-loop",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:r?"5.3 Le deal flow du mardi est déjà plus précis — Compose · chaque semaine":"5.3 Tuesday's deal flow is already sharper — Compounding · every week"}),e.jsx("p",{className:"doc-text",children:r?"À 8h30 UTC le mardi, les moteurs de sourcing lisent le JSON mis à jour. Après 6 mois — environ 26 mutations cumulées — votre deal flow reflète votre pensée stratégique avec une précision qu’aucun concurrent ne peut rétro-ingénierier sans votre historique de décisions. Courbe de convergence observée : taux de OUI 20-30% au mois 1, 60-70% au mois 3, 85%+ au mois 6.":"At 8:30 AM UTC Tuesday, the sourcing engines read the updated JSON. After 6 months — approximately 26 cumulative mutations — your deal flow reflects your strategic thinking with a precision no competitor can reverse-engineer without your decision history. Observed convergence curve: YES rate 20-30% at month 1, 60-70% at month 3, 85%+ at month 6."}),e.jsxs("div",{className:"stats-row",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-n",children:"52×"}),e.jsx("div",{className:"stat-l",children:r?"Capacité de mutations de thèse par an (max théorique — réel ≤ 52 quand le Copy-First Safety Protocol revert un cycle fautif)":"Thesis mutations capacity per year (theoretical max — actual ≤ 52 when Copy-First Safety Protocol reverts a faulty cycle)"})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-n",children:"85%+"}),e.jsx("div",{className:"stat-l",children:r?"Cible du taux de OUI au mois 6 — la métrique que suit l’email hebdo":"YES rate target at month 6 — the metric the weekly email tracks"})]})]}),e.jsx(ss,{children:r?e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Email du lundi — résumé des décisions CEO par-angle, diff des mutations appliquées, KPIs par angle (match_rate, yes_rate, tendance), décisions ouvertes avec échéances."}),e.jsxs("div",{children:[e.jsx("code",{children:"fund_thesis.json v(N+1)"})," mis à jour — patché dans la colonne ",e.jsx("code",{children:"fund_thesis"})," de la table Airtable ",e.jsx("code",{children:"fund_type"}),", auto-chargé au prochain run de sourcing."]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Monday email — per-angle CEO decisions summary, mutations diff applied, KPIs per angle (match_rate, yes_rate, trend), open decisions with deadlines."}),e.jsxs("div",{children:["Updated ",e.jsx("code",{children:"fund_thesis.json v(N+1)"})," — patched into the ",e.jsx("code",{children:"fund_thesis"})," column of the ",e.jsx("code",{children:"fund_type"})," Airtable table, auto-loaded by next sourcing run."]})]})})]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("div",{className:"eyebrow",children:r?"Couche email":"Email layer"}),e.jsx("h2",{className:"doc-h2",children:r?"Trois rythmes. Une seule boucle de feedback.":"Three rhythms. One feedback loop."}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La plupart des emails quotidiens ne requièrent rien de vous — 
3225ce sont des rapports de deal flow. L’",e.jsx("strong",{children:"email du lundi 16h UTC"})," est le centre de commande hebdo : il liste chaque décision encore ouverte (CONSIDER en attente de résolution de signal, checkpoint 90 jours pour MONITOR selon que la cible a été flaggée trop tôt ou trop tard), les KPIs par-angle (match_rate, yes_rate, tendance hebdo), et le diff complet des mutations de thèse appliquées par le moteur d’évolution."]}):e.jsxs(e.Fragment,{children:["Most daily emails require nothing from you — they are deal flow reports. The ",e.jsx("strong",{children:"Monday 4 PM UTC email"})," is the weekly command center: it lists every decision still open (CONSIDER waiting for signal resolution, 90-day checkpoint for MONITOR whether the target was flagged too early or too late), the per-angle KPIs (match_rate, yes_rate, weekly trend), and the full diff of thesis mutations applied by the Evolution Engine."]})}),e.jsx("span",{id:"email-rhythms",className:"doc-anchor"}),e.jsx("div",{className:"email-cards",children:T5.map(l=>{const d=r?J5(l):l;return e.jsxs("div",{className:"email-card",children:[e.jsx("span",{className:"email-emoji",children:l.emoji}),e.jsxs("div",{children:[e.jsx("div",{className:"email-rhythm",children:d.rhythm}),e.jsx("div",{className:"email-title",children:d.title}),e.jsx("div",{className:"email-desc",children:d.desc})]})]},l.title)})})]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("div",{className:"eyebrow",children:r?"Pourquoi c’est important":"Why this matters"}),e.jsx("h2",{className:"doc-h2",children:r?"Pourquoi c’est un actif — pas un outil.":"Why this is an asset — not a tool."}),e.jsx("p",{className:"doc-text",children:r?"La plupart des outils IA sont génériques. Ils marchent pareil pour tout le monde. Stan est différent.":"Most AI tools are generic. They work the same for everyone. Stan is different."}),e.jsx("h5",{className:"doc-h5",children:r?"Après 3 mois de décisions OUI et NON":"After 3 months of YES and NO decisions"}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsx("li",{children:"Stan a encodé votre jugement spécifique sur 100+ sociétés."}),e.jsx("li",{children:"Votre thèse a été mutée 50+ fois par vos vraies décisions."}),e.jsx("li",{children:"Vos signaux NON ont réécrit le raisonnement de qualification de chaque angle."}),e.jsxs("li",{children:["Les top picks de Stan reflètent ",e.jsx("strong",{children:"votre pattern de conviction"})," — pas un template."]})]}):e.jsxs(e.Fragment,{children:[e.jsx("li",{children:"Stan has encoded your specific judgment on 100+ companies."}),e.jsx("li",{children:"Your thesis has been mutated 50+ times by your real decisions."}),e.jsx("li",{children:"Your NO signals have rewritten the qualification reasoning for each angle."}),e.jsxs("li",{children:["Stan's top picks reflect ",e.jsx("strong",{children:"your conviction pattern"})," — not a template."]})]})}),e.jsx("h5",{className:"doc-h5",children:r?"Après 12 mois":"After 12 months"}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:["500+ décisions encodées. Des dizaines de signaux ",e.jsx("code",{children:"CEO_VETO"})," traités."]}),e.jsx("li",{children:"Stan pense comme vous sur votre marché spécifique."}),e.jsx("li",{children:"Aucun concurrent ne peut le rétro-ingénierier."}),e.jsx("li",{children:"Aucun analyste ne peut le répliquer à la main."}),e.jsx("li",{children:"Le système vous est entièrement unique."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:["500+ decisions encoded. Dozens of ",e.jsx("code",{children:"CEO_VETO"})," signals processed."]}),e.jsx("li",{children:"Stan thinks like you on your specific market."}),e.jsx("li",{children:"No competitor can reverse-engineer it."}),e.jsx("li",{children:"No analyst can replicate it manually."}),e.jsx("li",{children:"The system is entirely unique to you."})]})}),e.jsx("h5",{className:"doc-h5",children:r?"Le taux de OUI est la preuve":"The YES rate is the proof"}),e.jsxs("table",{className:"doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Période":"Period"}),e.jsx("th",{children:r?"Taux de OUI":"YES rate"}),e.jsx("th",{children:r?"Ce que ça veut dire":"What it means"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Mois 1":"Month 1"})}),e.jsx("td",{children:"20–30%"}),e.jsx("td",{children:r?"Stan apprend votre jugement.":"Stan is learning your judgment."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Mois 3":"Month 3"})}),e.jsx("td",{children:"60–70%"}),e.jsx("td",{children:r?"Stan reflète votre thèse fidèlement."
3225:"Stan reflects your thesis accurately."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:r?"Mois 6":"Month 6"})}),e.jsx("td",{children:"85%+"}),e.jsx("td",{children:r?"Stan ne présente que des deals que vous validerez.":"Stan presents only deals you will validate."})]})]})]}),e.jsxs("div",{className:"callout success",children:[e.jsx("strong",{children:r?"À 85%+ de taux de OUI, le système a atteint un état qu’aucun processus humain ne peut égaler.":"At 85%+ YES rate, the system has reached a state no human process can match."}),e.jsx("p",{children:r?"Chaque top pick est pré-validé. Chaque NON est un échec de qualification — pas un raté de filtre. Le travail du Corporate Developer passe de la clôture des décisions à la gestion des relations.":"Every top pick is pre-validated. Every NO is a qualification failure — not a filter miss. The Corporate Developer's job shifts from closing decisions to managing relationships."}),e.jsx("p",{children:e.jsx("em",{children:r?"Ce n’est pas un outil de reporting. C’est un actif stratégique qui compose. Plus vous l’utilisez, plus il devient irremplaçable.":"This is not a reporting tool. It is a compounding strategic asset. The more you use it, the more irreplaceable it becomes."})})]})]}),e.jsxs("section",{className:"doc-section",children:[e.jsx("span",{id:"glossary",className:"doc-anchor"}),e.jsx("div",{className:"eyebrow",children:r?"Référence":"Reference"}),e.jsx("h1",{className:"doc-h1",children:r?"Glossaire — les 16 termes clés":"Glossary — the 16 key terms"}),e.jsx("p",{className:"doc-lead",children:r?"Proplace emploie un vocabulaire spécifique tout au long de cette documentation, de la page d’accueil et de l’assistant de thèse. Chaque définition ci-dessous décrit comment le terme se comporte réellement dans le système de production — pas une abstraction. Si un mot vous semble flou plus loin dans la doc, revenez ici : un paragraphe par terme, sans jargon, sans raccourcis.":"Proplace uses a specific vocabulary throughout this documentation, the homepage, and the thesis wizard. Every definition below describes how the term actually behaves in the production system — not an abstraction. If a word ever feels unclear later in the doc, come back here: one paragraph per term, no jargon, no shortcuts."}),e.jsx("span",{id:"g-angle",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"Angle"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Une thèse d’investissement ou d’acquisition indépendante. Chaque angle porte ses propres requêtes de sourcing, calendriers hebdo, narratif de qualification, flags et sociétés de référence. Un seul fonds peut faire tourner ",e.jsx("strong",{children:"1 à 6 angles"})," en parallèle — le système les teste contre chaque deal pour qu’un fonds couvre plusieurs mandats d’investissement sans mélanger leurs logiques."]}):e.jsxs(e.Fragment,{children:["An independent investment or acquisition thesis. Each angle carries its own sourcing queries, weekly calendars, qualification narrative, flags, and reference companies. A single fund can run ",e.jsx("strong",{children:"1 to 6 angles"})," in parallel — the system tests them against every deal so one fund can cover several investment mandates without mixing their logics."]})}),e.jsx("h3",{className:"doc-h3",children:r?"Entry Filter (v7.5 · gate 2-STEP structuré)":"Entry Filter (v7.5 · structured 2-STEP gate)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le tout premier filtre du pipeline. Avant toute qualification poussée, il lit un gate ",e.jsx("strong",{children:"2-STEP structuré"})," (",e.jsx("code",{children:"sourcing_config.shared.single_gate"}),"), une ",e.jsx("strong",{children:"liste de near-miss au niveau du fonds"})," (",e.jsx("code",{children:"sourcing_config.shared.near_miss_examples"}),") et le ",e.jsx("code",{children:"match_signal"})," + ",e.jsx("code",{children:"reject_signal"})," de chaque angle."]}):e.jsxs(e.Fragment,{children:["The very first filter in the pipeline. Before any deep qualification runs, it reads a ",e.jsx("strong",{children:"structured 2-STEP"})," gate (",e.jsx("code",{children:"sourcing_config.shared.single_gate"}),"), a ",e.jsx("strong",{children:"fund-level near-miss list"})," (",e.jsx("code",{children:"sourcing_config.shared.near_miss_examples"}),") and each angle's ",e.jsx("code",{children:"match_signal"})," + ",e.jsx("code",{children:"reject_signal"}),"."]})}),e.jsx("ul",{className:"doc-list",children:r?e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"STEP 1 · gate vertical"})," — question binaire « cette société sert-elle [vertical cible] comme activité PRINCIPALE ? » avec 4–6 rejets explicites de verticaux proches (leisure / consumer / agriculture / ESG général / fintech général / RH général…). Si STEP 1 échoue → NO MATCH immédiat, STEP 2 est sauté."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"STEP 2 · contrôle d’angle"})," — évalué seulement quand STEP 1 passe. Énumère les angles actifs avec un qualifieur vertical par-angle qui bloque le keyword-bleed (ex. « sustainability = carbone/CSRD spécifique au voyage UNIQUEMENT, pas l’agriculture ni l’ESG cross-vertical »)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"near_miss_examples"})," — liste de sociétés taguées MATCH par erreur. Grandit via un bouton « ⚠ Flag FP » en 1 clic dans Airtable. Injectée dans le prompt du gate pour que le LLM ne répète jamais deux fois le même faux positif."]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"STEP 1 · vertical gate"}),' — binary question "does this company serve [target vertical] as its PRIMARY activity?" with 4–6 explicit near-vertical rejections (leisure / consumer / agriculture / general ESG / general fintech / general HR…). If STEP 1 fails → immediate NO MATCH, STEP 2 is skipped.']}),e.jsxs("li",{children:[e.jsx("strong",{children:"STEP 2 · angle check"}),' — evaluated only when STEP 1 passes. Enumerates the active angles with a per-angle vertical qual
3225ifier that blocks keyword-bleed (e.g. "sustainability = travel-specific carbon/CSRD ONLY, not agriculture or cross-vertical ESG").']}),e.jsxs("li",{children:[e.jsx("strong",{children:"near_miss_examples"}),' — list of companies previously tagged MATCH by mistake. Grows via a 1-click "⚠ Flag FP" button in Airtable. Injected into the gate prompt so the LLM never repeats the same false positive twice.']})]})}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les sociétés qui échouent à l’entry filter sont écartées immédiatement — pas de mémo, pas de scoring. L’effet combiné de la structure 2-STEP + injection near-miss élimine ~80% des erreurs de keyword-bleed que l’ancien format plat « une question oui/non » laissait passer (ex. ",e.jsx("em",{children:"« Agreena = carbone pour l’agriculture »"})," matché à tort sur le mot « sustainability »)."]}):e.jsxs(e.Fragment,{children:['Companies that fail the entry filter are dropped immediately — no memo, no scoring. The combined effect of the 2-STEP structure + near-miss injection eliminates ~80% of the keyword-bleed errors the flat "one yes/no question" format used to let through (e.g. ',e.jsx("em",{children:'"Agreena = carbon for agriculture"'}),' incorrectly matched on the word "sustainability").']})}),e.jsx("h3",{className:"doc-h3",children:"GP Synthétique"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La stack de qualification qui écrit un mémo d’investissement complet pour chaque société qui passe l’entry filter. Elle teste jusqu’à ",e.jsx("strong",{children:"5 angles en parallèle avec un budget de questions égal"}),", fait tourner ",e.jsx("strong",{children:"trois analystes spécialistes"})," (Market & Timing · Moat & Competition · Founder Financial Health & Risk), et produit l’un de quatre verdicts. Conçue pour qu’aucun angle ne soit favorisé par défaut — test sans biais."]}):e.jsxs(e.Fragment,{children:["The qualification stack that writes a full investment memo for every company that clears the entry filter. It tests up to ",e.jsx("strong",{children:"5 angles in parallel with an equal question budget"}),", runs ",e.jsx("strong",{children:"three specialist analysts"})," (Market & Timing · Moat & Competition · Founder Financial Health & Risk), and produces one of four verdicts. Designed so no angle is favoured by default — bias-free testing."]})}),e.jsx("span",{id:"g-matrix",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"Strategic Fit Matrix"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La structure de décision que le GP Synthétique construit quand il teste 2 angles ou plus sur un deal. Elle triangule trois sources — constats des analystes, synergies identifiées et pertinence initiale — pour choisir l’angle dominant et classer les autres en ",e.jsx("strong",{children:"STRONG"})," / ",e.jsx("strong",{children:"MODERATE"})," / ",e.jsx("strong",{children:"SPECULATIVE"})," / ",e.jsx("strong",{children:" WEAK"})," / ",e.jsx("strong",{children:"NO_FIT"}),". Si un seul angle est testé, aucune matrice n’est construite."]}):e.jsxs(e.Fragment,{children:["The decision structure GP Synthetique builds when it tests 2 or more angles on one deal. It triangulates three sources — analyst findings, identified synergies, and initial relevance — to pick the dominant angle and classify the others as ",e.jsx("strong",{children:"STRONG"})," / ",e.jsx("strong",{children:"MODERATE"})," / ",e.jsx("strong",{children:"SPECULATIVE"})," / ",e.jsx("strong",{children:" WEAK"})," / ",e.jsx("strong",{children:"NO_FIT"}),". If only one angle is tested, no matrix is built."]})}),e.jsx("h3",{className:"doc-h3",children:"Verdict — CALL · CONSIDER · MONITOR · PASS"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les quatre états autonomes que Stan assigne à chaque deal. ",e.jsx("strong",{children:"CALL"})," = forte conviction, Stan fait remonter le deal pour un OUI ou NON. ",e.jsx("strong",{children:"CONSIDER"})," = doute ou données manquantes. ",e.jsx("strong",{children:" MONITOR"})," = trop tôt, ou trop tard (la société est déjà trop grosse mais vous en voulez une comme elle). ",e.jsx("strong",{children:"PASS"})," = rejeté sur anti-pattern ou block structurel. ",e.jsx("em",{children:"Vous ne dites OUI ou NON que sur les CALL — Stan gère CONSIDER / MONITOR / PASS de façon autonome."})]}):e.jsxs(e.Fragment,{children:["The four autonomous states Stan assigns to every deal. ",e.jsx("strong",{children:"CALL"})," = high conviction, Stan surfaces the deal for a YES or NO. ",e.jsx("strong",{children:"CONSIDER"})," = doubt or missing data. ",e.jsx("strong",{children:" MONITOR"})," = too early, or too late (the company is already too big but you want another like it). ",e.jsx("strong",{children:"PASS"})," = rejected on anti-pattern or structural block. ",e.jsx("em",{children:"You only say YES or NO on CALLs — Stan handles CONSIDER / MONITOR / PASS autonomously."})]})}),e.jsx("h3",{className:"doc-h3",children:r?"OUI / NON":"YES / NO"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Votre seule et unique interaction de décision avec le système. Vous dites OUI à un CALL si vous êtes d’accord avec le top pick de Stan, NON sinon. Une note d’une ligne sur votre NON est optionnelle mais double la vitesse de convergence : elle encode un ",e.jsx("code",{children:" TOXIC_KEYWORD"})," dans votre thèse le lundi suivant, réécrivant le raisonnement de qualification de l’angle concerné."]}):e.jsxs(e.Fragment,{children:["Your one and only decision interaction with the system. You say YES to a CALL if you agree with Stan's top pick, NO if you don't. A one-line note on your NO is optional but doubles convergence speed: it encodes a ",e.jsx("code",{children:" TOXIC_KEYWORD"})," into your thesis the following Monday, rewriting the relevant angle's qualification reasoning."]})}),e.jsx("span",{id:"g-ncl",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"Neural Command Line (NCL)"}),e.jsx("p",{className:"doc-text",children:r?"La ligne lisible par machine que Stan écrit à la fin de chaque mémo. Elle encode le verdict, l’angle dominant et un mot-clé extrait. La NCL est ce que le Weekly Evolution Engine lit chaque lundi — rien d’autre. Si un deal ne produit pas de NCL, il ne peut pas muter la thèse.":"The machine-readable line Stan writes at the end of every memo. It encodes the verdict, the dominant angle, and one extracted keyword. The NCL is what the Weekly Evolution Engine reads every Monday — nothing else. If a deal doesn't produce an NCL, it cannot mutate the thesis."}),e.jsx("h3",{className:"doc-h3",children:"Weekly Evolution Engine"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le processus qui tourne chaque lundi à ",e.jsx("strong",{children:"16h UTC"}),". Il lit chaque NCL de la semaine, applique des règles de mutation strictes par-signal, valide le JSON résultant contre le schéma fund_thesis v5.4, puis le réécrit dans Airtable. Si la validation échoue, la ver
3225sion précédente reste en place — il est mathématiquement impossible qu’une thèse cassée atteigne la production."]}):e.jsxs(e.Fragment,{children:["The process that runs every Monday at ",e.jsx("strong",{children:"4 PM UTC"}),". It reads every NCL of the week, applies strict per-signal mutation rules, validates the resulting JSON against the fund_thesis v5.4 schema, then writes it back to Airtable. If validation fails, the previous version stays live — it is mathematically impossible for a broken thesis to reach production."]})}),e.jsx("h3",{className:"doc-h3",children:"Hurdle"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un seuil financier — IRR, MOIC ou ROI — fixé en section 9 de l’assistant, un jeu par mode d’investissement. Le modèle financier compare vos hurdles aux returns simulés du base-case pour ",e.jsx("strong",{children:"stress-tester"})," le verdict qualitatif. Les hurdles peuvent rétrograder un CALL qualitatif en CONSIDER mais ne remontent jamais un PASS."]}):e.jsxs(e.Fragment,{children:["A financial threshold — IRR, MOIC, or ROI — set in section 9 of the wizard, one set per investment mode. The financial model compares your hurdles to the simulated base-case returns to ",e.jsx("strong",{children:"stress-test"})," the qualitative verdict. Hurdles can downgrade a qualitative CALL to CONSIDER but never upgrade a PASS."]})}),e.jsx("span",{id:"g-flags",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"Priority / Green / Red flag"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Les trois listes de patterns que vous saisissez dans la section Qualification, un jeu par angle. Les ",e.jsx("strong",{children:"priority flags"})," (4 à 7) sont la colonne vertébrale du scoring — courts mots-clés que Stan cherche dans chaque société qualifiée. Les ",e.jsx("strong",{children:" green flags"})," (8 initialement, jusqu’à 15 après mutations) sont des signaux positifs vivants. Les ",e.jsx("strong",{children:" red flags"})," (4 initialement, jusqu’à 8) sont des anti-patterns. Le moteur hebdo promeut automatiquement en priority tout green flag déclenché 3+ fois."]}):e.jsxs(e.Fragment,{children:["The three pattern lists you enter in the Qualification section, one set per angle. ",e.jsx("strong",{children:"Priority flags"})," (4 to 7) are the backbone of scoring — short keywords Stan looks for in every qualified company. ",e.jsx("strong",{children:" Green flags"})," (8 initially, up to 15 after mutations) are living positive signals. ",e.jsx("strong",{children:" Red flags"})," (4 initially, up to 8) are anti-patterns. The weekly engine promotes any green flag that fires 3+ times to priority automatically."]})}),e.jsx("h3",{className:"doc-h3",children:"Gold / Poison anchor"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Sociétés de référence par angle. Le ",e.jsx("strong",{children:"gold anchor"})," est un exemple parfait de votre thèse — unique sur tous les angles, utilisé comme benchmark positif dans chaque mémo. Le ",e.jsx("strong",{children:"poison anchor"})," est un contre-exemple structurel — une société qui ressemble à votre gold anchor en surface mais qui est en fait toxique. Stan utilise les deux comme étalons visuels."]}):e.jsxs(e.Fragment,{children:["Reference companies per angle. The ",e.jsx("strong",{children:"gold anchor"})," is a perfect example of your thesis — unique across all angles, used as a positive benchmark in every memo. The ",e.jsx("strong",{children:"poison anchor"})," is a structural counter-example — a company that looks like your gold anchor on the surface but is in fact toxic. Stan uses both as visual yardsticks."]})}),e.jsx("h3",{className:"doc-h3",children:"Exa (Semantic / Similar)"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Un moteur de recherche neural qui comprend des descriptions sémantiques plutôt que des mots-clés. ",e.jsx("strong",{children:"Exa Semantic"})," alimente les sept phrases « Here is a » par angle. ",e.jsx("strong",{children:"Exa Similar"})," alimente les 10 competitor anchors, faisant remonter des sociétés sosies que Stan ne trouverait jamais avec une recherche par mots-clés pure."]}):e.jsxs(e.Fragment,{children:["A neural search engine that understands semantic descriptions rather than keywords. ",e.jsx("strong",{children:"Exa Semantic"}),' powers the seven "Here is a" phrases per angle. ',e.jsx("strong",{children:"Exa Similar"})," powers the 10 competitor anchors, surfacing lookalike companies Stan would never find with pure keyword search."]})}),e.jsx("h3",{className:"doc-h3",children:"Pappers FR"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Le registre des entreprises françaises. Une startup française est typiquement déposée dans Pappers ",e.jsx("strong",{children:"2 à 6 mois avant d’avoir un site web visible"})," — ce qui en fait un signal précieux de sourcing précoce pour les angles à périmètre français. Pappers est France-only ; la couverture internationale vient d’Exa."]}):e.jsxs(e.Fragment,{children:["The French corporate registry. A French startup is typically filed in Pappers ",e.jsx("strong",{children:"2 to 6 months before it has a visible website"})," — which makes it a precious early-sourcing signal for French-scope angles. Pappers is France-only; international coverage comes from Exa."]})}),e.jsx("span",{id:"g-override",className:"doc-anchor"}),e.jsx("h3",{className:"doc-h3",children:"OVERRIDE"}),e.jsx("p",{className:"doc-text",children:r?"La situation où Stan avait rejeté une société (PASS, ou jamais sourcée du tout) mais vous décidez de la pousser en CALL quand même. OVERRIDE est l’un des plus forts signaux que le moteur d’évolution consomme : il contourne la règle standard des 2 cycles et mute le sourcing, les flags et le gold anchor pool de l’angle dès le run du lundi suivant.":"The situation where Stan had rejected a company (PASS, or never sourced at all) but you decide to push it to CALL anyway. OVERRIDE is one of the strongest signals the evolution engine consumes: it bypasses the standard 2-cycle rule and mutates the angle's sourcing, flags, and gold anchor pool in the very next Monday run."}),e.jsx("h3",{className:"doc-h3",children:r?"Profil sectoriel":"Sector profile"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["La bibliothèque de benchmarks sur laquelle le modèle financier retombe quand les données réelles manquent. Quatre profils sont actuellement disponibles : ",e.jsx("code",{children:"b2b_travel_saas"}),", ",e.jsx("code",{children:"ai_native_saas"}
3225),", ",e.jsx("code",{children:"fintech_payment_rails"}),", ",e.jsx("code",{children:" marketplace_b2b"}),". Le profil est choisi une fois en section 9 et reste figé."]}):e.jsxs(e.Fragment,{children:["The benchmark library the financial model falls back on when real data is missing. Four profiles are currently available: ",e.jsx("code",{children:"b2b_travel_saas"}),", ",e.jsx("code",{children:"ai_native_saas"}),", ",e.jsx("code",{children:"fintech_payment_rails"}),", ",e.jsx("code",{children:" marketplace_b2b"}),". The profile is chosen once in section 9 and stays frozen."]})}),e.jsx("h3",{className:"doc-h3",children:r?"Rotation de pool vs rotation calendaire":"Pool rotation vs calendar rotation"}),e.jsx("p",{className:"doc-text",children:r?e.jsxs(e.Fragment,{children:["Deux mécaniques d’activation différentes pour les moteurs de sourcing. Les ",e.jsx("strong",{children:"moteurs de pool"})," (Exa Semantic, LinkedIn Posts) tirent 2 requêtes par jour d’un pool partagé, pondéré par angle — donc un angle weight-5 reçoit environ 5× plus de requêtes par semaine qu’un angle weight-1. Les ",e.jsx("strong",{children:"moteurs calendaires"})," (LinkedIn Jobs, Crunchbase) activent un angle pendant des semaines ISO spécifiques, proportionnellement à son poids — pendant les semaines inactives, le calendrier ne tourne simplement pas pour cet angle."]}):e.jsxs(e.Fragment,{children:["Two different activation mechanics for sourcing engines. ",e.jsx("strong",{children:"Pool engines"})," (Exa Semantic, LinkedIn Posts) draw 2 queries per day from a shared pool, weighted by angle — so a weight-5 angle gets roughly 5× more queries per week than a weight-1 angle. ",e.jsx("strong",{children:"Calendar engines"})," (LinkedIn Jobs, Crunchbase) activate an angle during specific ISO weeks, proportional to its weight — during inactive weeks the calendar simply doesn't run for that angle."]})}),e.jsxs("div",{className:"callout info",children:[e.jsx("strong",{children:r?"Pourquoi ce glossaire existe.":"Why this glossary exists."}),e.jsx("p",{children:r?e.jsxs(e.Fragment,{children:["Chaque terme ci-dessus réapparaît tout au long de cette documentation. Si une phrase plus loin utilise « OVERRIDE » ou « Strategic Fit Matrix » et que vous avez besoin du sens exact, ceci est la source unique de vérité. L’assistant de thèse sur ",e.jsx("code",{children:" analysis.proplace.co/thesis/"})," s’ouvre sur le même glossaire, en français, pour le CEO."]}):e.jsxs(e.Fragment,{children:['Every term above reappears throughout this documentation. If a sentence later uses "OVERRIDE" or "Strategic Fit Matrix" and you need the exact meaning, this is the single source of truth. The thesis wizard on ',e.jsx("code",{children:" analysis.proplace.co/thesis/"})," opens with the same glossary, in French, for the CEO."]})})]})]}),e.jsxs("footer",{className:"doc-footer",children:[e.jsx("div",{children:"Proplace · fund_thesis v5.4 · Documentation"}),e.jsxs("div",{children:[r?"Dernière revue":"Last reviewed",": 2026-04-19 · ",e.jsx("a",{href:"/api/",target:"_blank",rel:"noopener",children:"API →"})," · ",e.jsx("a",{href:n("/"),children:r?"Retour à l’accueil":"Back to homepage"})]})]})]})]})]})}function is({step:t}){const{lang:n}=ae(),r=n==="fr"?u1(t):t;return e.jsxs("section",{className:"doc-step-header",children:[e.jsx("span",{id:`step-${t.id}`,className:"doc-anchor"}),e.jsx("div",{className:"step-num",children:t.id}),e.jsxs("div",{children:[e.jsxs("div",{className:"step-eyebrow",children:[r.label," · ",r.cadence]}),e.jsx("h2",{className:"step-title",children:r.title}),e.jsx("p",{className:"step-tagline",children:r.tagline}),e.jsxs("div",{className:"step-time",children:[e.jsx("span",{className:"step-dot"}),n==="fr"?"Votre temps":"Your time",": ",r.yourTime]})]})]})}function ss({children:t}){const{lang:n}=ae();return e.jsxs("div",{className:"receive",children:[e.jsx("div",{className:"receive-label",children:n==="fr"?"Ce qui passe en prod":"What goes live"}),e.jsx("div",{className:"receive-body",children:t})]})}const rj=`
3226.doc-root { display: flex; min-height: 100vh; background: var(--white); color: var(--ink); font-family: var(--pp-body); font-size: 15px; line-height: 1.65; }
3227
3228/* SIDEBAR */
3229.doc-sidebar { width: 280px; min-width: 280px; background: var(--bg); border-right: 1px solid var(--line); padding: 24px 0 40px; position: sticky; top: 0; height: 100vh; overflow-y: auto; overflow-x: hidden; }
3230.doc-logo { display: block; padding: 0 22px 20px; border-bottom: 1px solid var(--line); margin-bottom: 18px; text-decoration: none; }
3231.doc-logo-name { display: block; font-size: 18px; font-weight: 900; color: var(--ink); letter-spacing: -.02em; }
3232.doc-logo-sub { display: block; font-size:12px; font-weight:600; color: var(--lite); margin-top: 4px; }
3233.doc-nav { display: flex; flex-direction: column; gap: 18px; padding: 0 14px; }
3234.doc-nav-section { display: flex; flex-direction: column; gap: 6px; }
3235.doc-nav-eyebrow { font-size:12px; font-weight:600; color: var(--green); padding: 0 8px; margin-bottom: 4px; }
3236.doc-nav-group { display: flex; flex-direction: column; }
3237.doc-nav-group-label { display: block; font-size: 12px; font-weight: 700; color: var(--ink); padding: 4px 8px; text-decoration: none; cursor: pointer; border-left: 2px solid transparent; transition: all .12s; }
3238.doc-nav-group-label:hover { color: var(--green); }
3239.doc-nav-group-label.active { color: var(--green); border-left-color: var(--green); background: var(--gp); }
3240.doc-nav-item { display: block; padding: 5px 10px 5px 18px; font-size: 12.5px; color: var(--mid); text-decoration: none; border-left: 2px solid transparent; transition: all .12s; word-wrap: break-word; overflow-wrap: break-word; line-height: 1.4; }
3241.doc-nav-item:hover { color: var(--ink); border-left-color: var(--line); }
3242.doc-nav-item.active { color: var(--green); border-left-color: var(--green); font-weight: 600; background: var(--gp); }
3243
3244/* CONTENT */
3245.doc-content { flex: 1; max-width: 880px; margin: 0 auto; padding: 56px 64px 80px; }
3246.doc-section { padding-bottom: 28px; }
3247.doc-anchor { display: block; height: 0; scroll-margin-top: 24px; }
3248.doc-h1 { font-size: clamp(30px, 4.5vw, 38px); font-weight: 900; letter-spacing: -.03em; line-height: 1.1; color: var(--ink); margin-bottom: 14px; }
3249.doc-h2 { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); margin: 36px 0 12px; padding-top: 24px; border-top: 1px solid var(--line); }
3250.doc-h2:first-child { border-top: none; padding-top: 0; margin-top: 0; }
3251.doc-h3 { font-size: 18px; font-weight: 800; letter-spacing: -.01em; color: var(--ink); margin: 28px 0 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
3252.doc-h4 { font-size: 14px; font-weight: 700; color: var(--ink); margin: 22px 0 8px; }
3253.doc-h5 { font-size: 13px; font-weight:600; color: var(--ink); margin: 18px 0 6px; }
3254.verdict-pill { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; border: 1px solid; white-space: nowrap; }
3255.verdict-pill.v-call { color: var(--green-dk); background: var(--gp); border-color: #b7e3c9; }
3256.verdict-pill.v-consider { color: #92680a; background: #fff8e6; border-color: #f0d89a; }
3257.verdict-pill.v-monitor { color: #1e5a8c; background: #e8f2fb; border-color: #b5d4ef; }
3258.verdict-pill.v-pass { color: var(--red); background: var(--rp); border-color: #f0c2bd; }
3259.doc-tag { font-size:12px; font-weight:600; color: var(--mid); background: var(--bg); border: 1px solid var(--line); padding: 2px 7px; }
3260.doc-lead { font-size: 17px; color: var(--sub); line-height: 1.7; margin-bottom: 14px; max-width: 640px; }
3261.doc-text { font-size: 15px; color: var(--sub); line-height: 1.7; margin-bottom: 14px; }
3262.doc-text strong { font-weight: 700; color: var(--ink); }
3263.doc-text a { color: var(--green); text-decoration: none; border-bottom: 1px solid currentColor; }
3264.doc-text a:hover { color: var(--green-dk); }
3265.doc-italic { font-style: italic; color: var(--mid); }
3266.doc-list { padding-left: 18px; margin: 0 0 14px; }
3267.doc-list li { font-size: 14px; color: var(--sub); line-height: 1.6; margin-bottom: 4px; }
3268code { background: var(--bg); border: 1px solid var(--line); padding: 1px 6px; font-family: var(--pp-mono); font-size: 12.5px; color: var(--ink);font-variant-numeric:tabular-nums}
3269.doc-code { display: block; background: var(--bg); border: 1px solid var(--line); padding: 14px 16px; font-family: var(--pp-mono); font-size: 12.5px; line-height: 1.6; color: var(--ink); overflow-x: auto; margin: 14px 0; white-space: pre;font-variant-numeric:tabular-nums}
3270
3271/* TABLES */
3272.doc-table { width: 100%; border-collapse: collapse; margin: 14px 0 22px; font-size: 13.5px; border: 1px solid var(--line); }
3273.doc-scroll { overflow-x: auto; margin: 14px 0 22px; border: 1px solid var(--line); }
3274.doc-scroll > .doc-table { margin: 0; border: none; min-width: 900px; }
3275.doc-table-wide { min-width: 900px; }
3276.doc-table thead th { background: var(--bg); text-align: left; padding: 10px 13px; font-size:12px; font-weight:600; color: var(--mid); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }
3277.doc-table thead th:last-child { border-right: none; }
3278.doc-table tbody td { padding: 10px 13px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); color: var(--sub); vertical-align: top; line-height: 1.55; }
3279.doc-table tbody tr:last-child td { border-bottom: none; }
3280.doc-table tbody td:last-child { border-right: none; }
3281.doc-table tbody td strong { color: var(--ink); font-weight: 700; }
3282
3283/* CALLOUTS — 4 variants, aligned with homepage tokens */
3284.callout { border: 1px solid; border-left-width: 3px; padding: 12px 16px; margin: 14px 0; font-size: 14px; line-height: 1.6; }
3285.callout strong { font-weight: 700; display: block; margin-bottom: 4px; }
3286.callout p { margin: 0; color: var(--sub); }
3287.callout.info { background: #F3F8FE; border-color: #C9DEF6; color: #1F3F70; }
3288.callout.info strong { color: #1F3F70; }
3289.callout.success { background: var(--gp); border-color: var(--green); color: var(--green-dk); }
3290.callout.success strong { color: var(--green-dk); }
3291.callout.warning { background: #FFFAEB; border-color: #F0D89A; color: #92680A; }
3292.callout.warning strong { color: #92680A; }
3293.callout.error { background: var(--rp); border-color: var(--red); color: var(--red); }
3294.callout.error strong { color: var(--red); }
3295
3296/* CARDS */
3297.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 18px; }
3298.card { background: var(--white); border: 1px solid var(--line); border-top: 2px solid var(--green); padding: 14px 16px; }
3299.card-h { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
3300.card-p { font-size: 13px; color: var(--sub); line-height: 1.6; }
3301.card-meta { font-size: 11px; color: var(--mid); margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
3302.card-meta strong { color: var(--ink); font-weight: 700; }
3303
3304/* ENGINES */
3305.engine-list { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 18px; }
3306.engine { display: flex; gap: 12px; padding: 10px 14px; background: var(--bg); border: 1px solid var(--line); border-left: 3px solid var(--green); align-items: flex-start; }
3307.engine-emoji { font-size: 16px; flex-shrink: 0; line-height: 1.2; padding-top: 2px; }
3308.engine-name { font-size: 13.5px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
3309.engine-detail { font-size: 12.5px; color: var(--sub); line-height: 1.55; }
3310
3311/* MEMO GRID */
3312.memo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 18px; }
3313.memo-col { background: var(--white); border: 1px solid var(--line); padding: 12px 14px; }
3314.memo-h { font-size:12px; font-weight:600; color: var(--green); margin-bottom: 8px; }
3315
3316/* VERDICTS */
3317.verdicts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 18px; }
3318.verdict { padding: 12px 14px; border: 1px solid; border-left-width: 3px; }
3319.verdict-h { font-size: 13px; font-weight: 800; margin-bottom: 4px; letter-spacing: .04em; }
3320.verdict-p { font-size: 13px; color: var(--sub); line-height: 1.55; }
3321.v-call { background: #E7F6EE; border-color: #12A150; }
3322.v-call .verdict-h { color: #12A150; }
3323.v-consider { background: #FFFBEB; border-color: #96690E; }
3324.v-consider .verdict-h { color: #96690E; }
3325.v-monitor { background: #EFF6FF; border-color: #2563eb; }
3326.v-monitor .verdict-h { color: #2563eb; }
3327.v-pass { background: var(--rp); border-color: var(--red); }
3328.v-pass .verdict-h { color: var(--red); }
3329
3330/* PHASES */
3331.phases { position: relative; display: flex; flex-direction: column; gap: 20px; margin: 18px 0 22px; padding-left: 28px; }
3332.phases::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: var(--green); opacity: .5; border-radius: 2px; }
3333.phase { position: relative; background: var(--white); padding: 4px 0; }
3334.phase::before { content: ''; position: absolute; left: -28px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--white); border: 2px solid var(--green); box-sizing: border-box; }
3335.phase-h { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
3336.phase-icon { font-size: 15px; }
3337.phase-name { flex: 1; font-size: 12.5px; font-weight:600; color: var(--ink); }
3338.phase-badge { font-size:12px; font-weight:600; padding: 2px 10px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
3339.phase-badge.required { color: #92680a; background: #FFFAEB; border-color: #F0D89A; }
3340.phase-badge.ongoing { color: var(--green-dk); background: var(--gp); border-color: #b7e3c9; }
3341.phase-tasks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
3342.phase-tasks li { font-size: 13px; color: var(--sub); display: flex; align-items: center; gap: 9px; }
3343.task-check { width: 14px; height: 14px; border: 1.5px solid var(--line); border-radius: 3px; background: var(--white); flex-shrink: 0; }
3344.task-text { flex: 1; }
3345.task-req { font-size:12px; font-weight:600; padding: 1px 9px; border-radius: 999px; border: 1px solid; flex-shrink: 0; white-space: nowrap; }
3346.task-req.req { color: #92680a; background: #FFFAEB; border-color: #F0D89A; }
3347.task-req.opt { color: var(--mid); background: var(--bg); border-color: var(--line); font-weight: 600; }
3348
3349/* STEP HEADER */
3350.doc-step-header { display: flex; gap: 18px; align-items: flex-start; padding: 36px 0 22px; border-top: 2px solid var(--green); margin-top: 32px; }
3351.step-num { font-size: 48px; font-weight: 900; color: var(--green); letter-spacing: -.04em; line-height: 1; flex-shrink: 0; }
3352.step-eyebrow { font-size:12px; font-weight:600; color: var(--green); margin-bottom: 4px; }
3353.step-title { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); margin: 0 0 6px; line-height: 1.2; }
3354.step-tagline { font-size: 14px; font-style: italic; color: var(--mid); line-height: 1.55; margin-bottom: 10px; }
3355.step-time { display: inline-flex; align-items: center; gap: 7px; background: var(--bg); border: 1px solid var(--line); padding: 5px 12px; font-size: 12px; font-weight: 500; color: var(--sub); border-radius: 20px; }
3356.step-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
3357
3358/* RECEIVE */
3359.receive { background: var(--gp); border: 1px solid var(--green); border-left: 3px solid var(--green); padding: 14px 18px; margin: 18px 0; }
3360.receive-label { font-size:12px; font-weight:600; color: var(--green); margin-bottom: 8px; }
3361.receive-body { font-size: 14px; color: var(--sub); line-height: 1.6; }
3362.receive-body > div { margin-bottom: 6px; padding-left: 18px; position: relative; }
3363.receive-body > div::before { content: '↗'; color: var(--green); font-weight: 700; position: absolute; left: 0; }
3364.receive-body > div:last-child { margin-bottom: 0; }
3365
3366/* STATS */
3367.stats-row { display: flex; gap: 24px; flex-wrap: wrap; margin: 14px 0 18px; }
3368.stat { display: flex; flex-direction: column; }
3369.stat-n { font-size: 32px; font-weight: 900; color: var(--green); letter-spacing: -.04em; line-height: 1; }
3370.stat-l { font-size: 13px; color: var(--sub); line-height: 1.4; margin-top: 4px; max-width: 200px; }
3371
3372/* EMAIL CARDS */
3373.email-cards { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; }
3374.email-card { display: flex; gap: 16px; background: var(--white); border: 1px solid var(--line); padding: 16px 18px; align-items: flex-start; }
3375.email-emoji { width: 36px; height: 36px; border-radius: 50%; background: var(--gp); border: 1.5px solid var(--green); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; }
3376.email-rhythm { font-size:12px; font-weight:600; color: var(--green); margin-bottom: 4px; }
3377.email-title { font-size: 16px; font-weight: 800; color: var(--ink); letter-spacing: -.01em; margin-bottom: 6px; }
3378.email-desc { font-size: 13.5px; color: var(--sub); line-height: 1.6; }
3379
3380/* FOOTER */
3381.doc-footer { margin-top: 60px; padding: 20px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; font-size: 12px; color: var(--lite); }
3382.doc-footer a { color: var(--green); text-decoration: none; }
3383
3384/* MOBILE TOGGLE */
3385.doc-mobile-toggle { display: none; position: fixed; top: 8px; right: 12px; z-index: 100; background: var(--ink); color: var(--white); border: none; padding: 5px 11px; font-size:12px; font-weight:600; cursor: pointer; font-family: var(--pp-body); line-height: 1.4; }
3386
3387/* RESPONSIVE */
3388@media (max-width: 1024px) {
3389  .doc-sidebar { position: fixed; left: 0; top: 0; width: 280px; transform: translateX(-100%); transition: transform .2s; z-index: 99; box-shadow: 0 0 40px rgba(0,0,0,0.15); height: 100vh !important; }
3390  .doc-sidebar.open { transform: translateX(0); }
3391  .doc-content { padding: 56px 24px 60px; max-width: 100%; margin-left: 0 !important; }
3392  .doc-mobile-toggle { display: block; }
3393  .grid-2, .memo-grid, .verdicts-grid { grid-template-columns: 1fr; }
3394  .doc-step-header { flex-direction: column; gap: 8px; }
3395  .step-num { font-size: 36px; }
3396}
3397
3398@media (max-width: 600px) {
3399  .doc-content { padding: 56px 18px 60px; font-size: 14px; }
3400  .doc-h1 { font-size: 26px; }
3401  .doc-h2 { font-size: 20px; }
3402  .doc-h3 { font-size: 16px; }
3403  .doc-table { font-size: 12px; }
3404  .doc-table thead th, .doc-table tbody td { padding: 8px 10px; }
3405  .stats-row { gap: 14px; }
3406  .stat-n { font-size: 26px; }
3407}
3408`,rc="https://analysis.proplace.co/thesis/?fund=demo",ij={en:{redirecting:"Redirecting to the wizard in demo mode…",fallback:"If you are not redirected automatically, click here:"},fr:{redirecting:"Redirection vers le wizard en mode démo…",fallback:"Si la redirection ne se fait pas automatiquement, cliquez ici :"}};function sj(){const{lang:t}=ae(),n=ij[t];return m.useEffect(()=>{window.location.replace(rc)},[]),e.jsxs("div",{style:{padding:40,fontFamily:"'Inter', -apple-system, sans-serif",color:"#444",maxWidth:640,margin:"40px auto"},children:[e.jsx("p",{style:{fontSize:14,lineHeight:1.6},children:n.redirecting}),e.jsxs("p",{style:{fontSize:13,color:"#777",marginTop:16},children:[n.fallback," ",e.jsx("a",{href:rc,children:rc})]})]})}const ic={en:{seo:{title:"Terms of Service — Proplace",description:"The terms governing access to and use of Proplace and its AI-powered sourcing, analyses, and decision-support tools."},backHome:"← Back to home",pageTitle:"Terms of Service",lastUpdated:"Last updated: August 2026",sections:[{title:"1. Acceptance of these Terms",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["These Terms of Service (the ",e.jsx(de,{children:'"Terms"'}
3408),") govern access to and use of the website, platform, software, APIs, dashboards, AI outputs, reports, memos, and related services (collectively, the"," ",e.jsx(de,{children:'"Service"'}),") made available by the operator of this website (the ",e.jsx(de,{children:'"Operator"'}),", ",e.jsx(de,{children:'"we"'}),", ",e.jsx(de,{children:'"us"'}),", or ",e.jsx(de,{children:'"our"'}),"). By accessing, browsing, registering for, or using the Service, the user (",e.jsx(de,{children:'"you"'}),", ",e.jsx(de,{children:'"User"'}),", or ",e.jsx(de,{children:'"Client"'}),") accepts these Terms in full. If you do not agree, do not use the Service."]}),e.jsxs(Z,{children:["Where a separate written master services agreement, order form, or subscription contract (a ",e.jsx(de,{children:'"Master Agreement"'}),") has been signed between the parties, the Master Agreement controls in case of conflict with these Terms; otherwise, these Terms apply in full."]})]})},{title:"2. Nature of the Service — Informational Only",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["The Service provides software tools, dashboards, and AI-generated analyses (including but not limited to memos, scoring, market summaries, financial syntheses, and qualitative assessments) that are intended solely as"," ",e.jsx(de,{children:"informational and decision-support tools"}),"."]}),e.jsxs(Z,{children:["The Service ",e.jsx(de,{children:"does not constitute"}),", and must not be relied upon as: (a) investment advice, financial advice, tax advice, legal advice, accounting advice, or solicitation to buy or sell any security or financial instrument; (b) a recommendation to enter, decline, or exit any transaction; (c) professional due diligence; (d) a fairness opinion; (e) a regulated financial service within the meaning of any applicable securities or financial services legislation."]}),e.jsx(Z,{children:"The User is solely responsible for all investment, transactional, and operational decisions, and must conduct its own independent verification, due diligence, and consultation with qualified professionals before acting on any output of the Service."})]})},{title:"3. AI Outputs — No Guarantees of Accuracy",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["Outputs produced by the Service are generated by statistical models, large language models, third-party data providers, and automated pipelines. They may contain errors, omissions, inaccuracies, hallucinations, outdated information, misattributed statements, or fabricated content. The Operator makes"," ",e.jsx(de,{children:"no representation or warranty"}),", express or implied, as to the accuracy, completeness, timeliness, suitability, legality, non-infringement, or fitness for any particular purpose of any output."]}),e.jsxs(Z,{children:["All outputs are provided on an ",e.jsx(de,{children:'"as is"'})," and"," ",e.jsx(de,{children:'"as available"'})," basis. The User acknowledges that it has been fully informed of the probabilistic nature of AI-generated content and assumes all risks arising from its use."]})]})},{title:"4. Acceptable Use",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"The User agrees not to:"}),e.jsxs(rm,{children:[e.jsx(zt,{children:"use the Service in violation of any applicable law, regulation, sanction, or third-party right;"}),e.jsx(zt,{children:"upload, transmit, or process data that infringes intellectual property rights, violates privacy or data protection laws, or constitutes unlawful content;"}),e.jsx(zt,{children:"reverse engineer, decompile, scrape, mirror, or attempt to extract the underlying models, prompts, or training data of the Service;"}),e.jsx(zt,{children:"resell, sublicense, or redistribute the Service or its outputs to third parties except as expressly permitted;"}),e.jsx(zt,{children:"circumvent authentication, rate limits, security controls, or tenant isolation mechanisms;"}),e.jsx(zt,{children:"use the Service to build a competing product, benchmark for publication, or train a competing model."})]})]})},{title:"5. User Data & Inputs",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["The User retains ownership of the data, documents, and parameters it submits to the Service (",e.jsx(de,{children:'"User Data"'}),"). The User grants the Operator a worldwide, royalty-free, non-exclusive licence to host, copy, transmit, display, process, and sub-process User Data solely to the extent necessary to operate, maintain, improve, and secure the Service."]}),e.jsx(Z,{children:"The User represents and warrants that (i) it has all rights required to submit the User Data, (ii) the User Data does not infringe any third-party right, (iii) it will not submit personal, confidential, or regulated data except as permitted by applicable law and any Master Agreement, and (iv) it will comply with all applicable obligations regarding KYC, AML, market abuse, insider dealing, and professional secrecy in its use of the Service and its outputs."}),e.jsxs(Z,{children:["User Data is ",e.jsx(de,{children:"not"})," used to train foundation models of our providers. We may use aggregated, anonymised, non-identifiable telemetry to monitor and improve the Service."]}),e.jsxs(Z,{children:[e.jsx(de,{children:"Public market editorial vs. fund data (validated 11 Aug 2026)."})," ","Two streams must not be confused. (i) ",e.jsx(de,{children:"Fund Data"})," — theses, target lists, scores, match notes, and any information that identifies a Client fund or its pipeline — remains confined to that Client's authenticated context and is never published on social networks or on public pages of the Service. (ii)"," ",e.jsx(de,{children:"Public Market Editorial"}),` — news of M&A, fundraises, hirings and appointments drawn from public sources (press, company sites, public filings) — may be aggregated, rewritten and published by the Operator on the website, newsletter and social accounts (including X and LinkedIn), under its own editorial responsibility. Publication is limited to items about companies or persons of sufficient notoriety, and excludes material that has not yet appeared in public sources when the source is a proprietary sourcing engine. No fund slug, score, match or thesis identifier may appear in any public post, image filename or JSON payload. Company logos are displayed when resolved from the company's own site (or a monogram fallback); LinkedIn profile photographs are never used. Trade names and logos remain the property of their owners; no partnership is implied. The Operator applies the same conditional rule as for deals: an exclusive or announced process may be reported; a rumour or conditional wording ("would be", "might") is not published as fact.`]})]})},{title:"6. Intellectual Property",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"All rights, title, and interest in and to the Service, its software, models, prompts, pipelines, documentation, trademarks, logos, and any improvements thereto, are and shall remain the exclusive property of the Operator and/or its licensors. No rights are granted to the User other than the limited, revocable, non-exclusive, non-transferable right to use the Service for internal business purposes during the subscription term."}),e.jsx(Z,{children:"Any feedback, suggestion, or idea provided by the User may be used by the Operator without restriction or compensation."})]})},{title:"7. Fees, Payment & Taxes",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"Fees applicable to the User are set out in the applicable order form or published pricing. Unless otherwise agreed in writing, fees are (a) stated excluding taxes, (b) non-refundable, (c) invoiced in advance of the service period, and (d) payable within thirty (30) days of invoice date, except for any initial deposit which is due upon receipt."}),e.jsx(Z,{children:"Billing frequency (e.g. monthly, quarterly, or annually in advance) is defined in the applicable Master Agreement or order form. Where the Master Agreement provides for distinct cadences for different subscription tiers, each cadence governs the tier to which it applies."}),e.jsx(Z,{children:`Any initial deposit, architecture fee, setup fee, onboarding fee, or similar one-time amount paid by the User is firm, non-refundable, and non-creditable in all circumstances, including without limitation: (i) the User's rejection of any calibration, configuration, or go-live deliverable; (ii) failure of any milestone or "go-live" validation, whether express or deemed; (iii) termination, suspension, or non-renewal by either party for any reason; and (iv) any exercise of a performance guarantee, opt-out, trial right, or contractual termination right available to the User. The parties expressly acknowledge that such amounts compensate work actually performed during the setup, architecture, calibration, and onboarding phases, which has independent economic value irrespective of the subsequent outcome of any later phase or of the User's continued use of the Service.`}),e.jsx(Z,{children:"Late payments accrue interest at the legal rate applicable in the Operator's jurisdiction, plus a fixed recovery fee, without prior notice being required. The Operator may suspend access to the Service for any overdue amount."})]})},{title:"8. Term, Termination & Suspension",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"The initial term and renewal conditions of any subscription are defined in the applicable order form or Master Agreement. Absent such a document, the Service is provided on a month-to-month basis terminable by either party with thirty (30) days' written notice. Where the Master Agreement provides for a Day 90 Performance Guarantee, a one-time opt-out right, or any other early-termination mechanism, such rights govern early termination during the initial term and prevail over the default month-to-month rule above."}),e.jsx(Z,{children:"The Operator may suspend or terminate access immediately, without liability, in case of (i) material breach by the User not remedied within ten (10) business days, (ii) non-payment, (iii) use of the Service in a manner that threatens its security, integrity, or legality, or (iv) requirement by applicable law, court order, or competent authority."}),e.jsx(Z,{children:"Upon termination, the User's right to access and use the Service ceases immediately. Sections relating to intellectual property, confidentiality, liability, indemnity, warranties, and governing law survive termination."})]})},{title:"9. Disclaimer of Warranties",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsx(de,{children:'TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE", WITHOUT ANY WARRANTY OF ANY KIND, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ACCURACY, RELIABILITY, AVAILABILITY, OR THAT THE SERVICE WILL BE UNINTERRUPTED, ERROR-FREE, OR FREE OF HARMFUL COMPONENTS.'})}),e.jsx(Z,{children:"No advice or information, whether oral or written, obtained by the User from the Operator or through the Service creates any warranty not expressly stated in these Terms."})]})},{title:"10. Limitation of Liability",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsx(de,{children:"TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL THE OPERATOR, ITS AFFILIATES, OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, PARTNERS, OR LICENSORS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS, LOSS OF REVENUE, LOSS OF BUSINESS OPPORTUNITY, LOSS OF INVESTMENT RETURN, LOSS OF DEALS, LOSS OF GOODWILL, LOSS OR CORRUPTION OF DATA, OR COST OF SUBSTITUTE SERVICES, ARISING OUT OF OR RELATED TO THE SERVICE, ITS USE OR INABILITY TO USE IT, OR ANY OUTPUT THEREOF, WHETHER BASED ON CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT THE OPERATOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES."})}),e.jsx(Z,{children:e.jsx(de,{children:"THE OPERATOR'S TOTAL AGGREGATE LIABILITY TO THE USER FOR ALL CLAIMS, LOSSES, AND DAMAGES, WHETHER IN CONTRACT, TORT, OR OTHERWISE, ARISING OUT OF OR RELATED TO THE SERVICE SHALL NOT EXCEED THE TOTAL FEES ACTUALLY PAID BY THE USER TO THE OPERATOR DURING THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO THE CLAIM. FOR USERS ON A FREE, TRIAL, OR UNPAID PLAN, THE OPERATOR'S TOTAL LIABILITY SHALL NOT EXCEED ONE HUNDRED EUROS (€100)."})}),e.jsx(Z,{children:"The User expressly acknowledges that these limitations are a fundamental basis of the bargain and would not be entered into by the Operator absent such limitations."})]})},{title:"11. Indemnification",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"The User shall defend, indemnify, and hold harmless the Operator, its affiliates, and their respective officers, directors, employees, agents, and representatives from and against any and all third-party claims, demands, actions, proceedings, liabilities, losses, damages, fines, penalties, costs, and expenses (including reasonable legal fees) arising out of or related to: (a) the User's breach of these Terms; (b) the User's misuse of the Service or any output thereof; (c) the User Data; (d) the User's violation of any law or third-party right; or (e) any investment, transactional, or operational decision made by the User or any third party relying on the Service."})})},{title:"12. Confidentiality",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"Each party shall keep confidential any non-public information disclosed by the other in connection with the Service, and use it only for the purpose of performing under these Terms. Confidentiality obligations survive termination for five (5) years."})})},{title:"13. Third-Party Services & Dependencies",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"The Service relies on third-party infrastru
3408cture and model providers (including cloud hosting, database, and AI providers). The Operator is not responsible for any outage, defect, security incident, or change in policy of any such third party. The Operator reserves the right to change providers at its sole discretion."})})},{title:"14. Force Majeure",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"Neither party shall be liable for any delay or failure to perform resulting from causes beyond its reasonable control, including acts of God, war, terrorism, cyberattacks, internet outages, power failures, governmental action, epidemics, or supplier failures."})})},{title:"15. Changes to the Terms",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"The Operator may modify these Terms at any time. Material changes will be notified via the Service or by email. Continued use of the Service after the effective date of the change constitutes acceptance of the updated Terms. If the User does not agree, its sole remedy is to cease using the Service."})})},{title:"16. Governing Law & Jurisdiction",body:e.jsx(e.Fragment,{children:e.jsxs(Z,{children:["These Terms are governed by and construed in accordance with the laws of ",e.jsx(de,{children:"France"}),", without regard to its conflict of laws rules. Any dispute arising out of or in connection with these Terms shall be submitted to the"," ",e.jsx(de,{children:"exclusive jurisdiction of the competent courts of Paris, France"}),", notwithstanding multiple defendants or third-party claims. Nothing in this clause limits any non-waivable right of consumers under mandatory law."]})})},{title:"17. Miscellaneous",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"If any provision of these Terms is held unenforceable, the remaining provisions remain in full force and effect. The failure to enforce any provision is not a waiver. These Terms, together with any applicable Master Agreement, constitute the entire agreement between the parties regarding the Service and supersede all prior discussions."}),e.jsx(Z,{children:"The User may not assign these Terms without prior written consent. The Operator may freely assign these Terms to any successor, affiliate, or acquirer."})]})},{title:"18. Legal Notice & Hosting",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["This site is operated from France. Hosting and serverless compute are provided by ",e.jsx(de,{children:"Modal Labs, Inc."})," (San Francisco, California, United States — ",e.jsx("a",{href:"https://modal.com",target:"_blank",rel:"noreferrer",children:"modal.com"}),"). Structured data records are stored on ",e.jsx(de,{children:"Airtable, Inc."})," (San Francisco, California, United States — SOC 2 Type II certified). Static frontend assets are served through a global content delivery network."]}),e.jsx(Z,{children:"The content of this site (text, graphics, logos, code, and design) is protected by copyright and applicable intellectual property laws. Any reproduction, representation, or distribution, in whole or in part, without prior written authorisation, is prohibited."}),e.jsxs(Z,{children:["Pursuant to Article 6 of the French LCEN law of 21 June 2004, any illicit content observed on this site may be reported to"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),"."]})]})},{title:"19. Contact",body:e.jsx(e.Fragment,{children:e.jsxs(Z,{children:["Questions regarding these Terms may be addressed to"," ",e.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--green)"},children:"[email protected]"}),"."]})})}]},fr:{seo:{title:"Conditions générales d’utilisation — Proplace",description:"Les conditions qui régissent l’accès et l’utilisation de Proplace et de ses outils de sourcing, d’analyses et d’aide à la décision propulsés par l’IA."},backHome:"← Retour à l’accueil",pageTitle:"Conditions générales d’utilisation",lastUpdated:"Dernière mise à jour : août 2026",sections:[{title:"1. Acceptation des présentes Conditions",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["Les présentes Conditions générales d’utilisation (les"," ",e.jsx(de,{children:"« Conditions »"}
3408),") régissent l’accès et l’utilisation du site web, de la plateforme, du logiciel, des API, des tableaux de bord, des sorties d’IA, des rapports, des mémos et des services associés (collectivement, le ",e.jsx(de,{children:"« Service »"}),") mis à disposition par l’exploitant de ce site web (l’",e.jsx(de,{children:"« Exploitant »"}),", ",e.jsx(de,{children:"« nous »"})," ","ou ",e.jsx(de,{children:"« notre »"}),"). En accédant au Service, en le parcourant, en vous y inscrivant ou en l’utilisant, l’utilisateur (",e.jsx(de,{children:"« vous »"}),","," ",e.jsx(de,{children:"« Utilisateur »"})," ou ",e.jsx(de,{children:"« Client »"}),") accepte les présentes Conditions dans leur intégralité. Si vous n’êtes pas d’accord, n’utilisez pas le Service."]}),e.jsxs(Z,{children:["Lorsqu’un contrat-cadre de services, un bon de commande ou un contrat d’abonnement écrit distinct (un ",e.jsx(de,{children:"« Contrat-cadre »"}),") a été signé entre les parties, le Contrat-cadre prévaut en cas de conflit avec les présentes Conditions ; à défaut, les présentes Conditions s’appliquent dans leur intégralité."]})]})},{title:"2. Nature du Service — à titre informatif uniquement",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["Le Service fournit des outils logiciels, des tableaux de bord et des analyses générées par IA (y compris, sans s’y limiter, des mémos, des scores, des synthèses de marché, des synthèses financières et des évaluations qualitatives) qui sont destinés uniquement à servir d’",e.jsx(de,{children:"outils d’information et d’aide à la décision"}),"."]}),e.jsxs(Z,{children:["Le Service ",e.jsx(de,{children:"ne constitue pas"}
3408),", et ne doit pas être considéré comme : (a) un conseil en investissement, un conseil financier, un conseil fiscal, un conseil juridique, un conseil comptable, ni une sollicitation d’achat ou de vente d’un quelconque titre ou instrument financier ; (b) une recommandation d’engager, de décliner ou de sortir d’une quelconque transaction ; (c) une due diligence professionnelle ; (d) une attestation d’équité ; (e) un service financier réglementé au sens de toute législation applicable en matière de valeurs mobilières ou de services financiers."]}),e.jsx(Z,{children:"L’Utilisateur est seul responsable de l’ensemble de ses décisions d’investissement, transactionnelles et opérationnelles, et doit procéder à ses propres vérifications indépendantes, à sa propre due diligence et consulter des professionnels qualifiés avant d’agir sur la base de toute sortie du Service."})]})},{title:"3. Sorties d’IA — aucune garantie d’exactitude",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["Les sorties produites par le Service sont générées par des modèles statistiques, des grands modèles de langage, des fournisseurs de données tiers et des pipelines automatisés. Elles peuvent contenir des erreurs, des omissions, des inexactitudes, des hallucinations, des informations obsolètes, des propos mal attribués ou des contenus fabriqués. L’Exploitant ne donne"," ",e.jsx(de,{children:"aucune déclaration ni garantie"}),", expresse ou implicite, quant à l’exactitude, l’exhaustivité, l’actualité, l’adéquation, la légalité, l’absence de contrefaçon ou l’aptitude à un usage particulier de toute sortie."]}),e.jsxs(Z,{children:["Toutes les sorties sont fournies ",e.jsx(de,{children:"« en l’état »"})," et"," ",e.jsx(de,{children:"« selon disponibilité »"}),". L’Utilisateur reconnaît avoir été pleinement informé de la nature probabiliste des contenus générés par IA et assume l’ensemble des risques découlant de leur utilisation."]})]})},{title:"4. Utilisation acceptable",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"L’Utilisateur s’engage à ne pas :"}),e.jsxs(rm,{children:[e.jsx(zt,{children:"utiliser le Service en violation de toute loi, réglementation, sanction ou droit de tiers applicable ;"}),e.jsx(zt,{children:"téléverser, transmettre ou traiter des données qui portent atteinte à des droits de propriété intellectuelle, violent les lois sur la vie privée ou la protection des données, ou constituent un contenu illicite ;"}),e.jsx(zt,{children:"réaliser de l’ingénierie inverse, décompiler, extraire, copier ou tenter d’extraire les modèles, prompts ou données d’entraînement sous-jacents du Service ;"}),e.jsx(zt,{children:"revendre, sous-licencier ou redistribuer le Service ou ses sorties à des tiers, sauf autorisation expresse ;"}),e.jsx(zt,{children:"contourner les mécanismes d’authentification, les limites de débit, les contrôles de sécurité ou l’isolation entre clients ;"}),e.jsx(zt,{children:"utiliser le Service pour construire un produit concurrent, réaliser un benchmark destiné à publication ou entraîner un modèle concurrent."})]})]})},{title:"5. Données et contenus de l’Utilisateur",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["L’Utilisateur conserve la propriété des données, documents et paramètres qu’il soumet au Service (",e.jsx(de,{children:"« Données Utilisateur »"}),"). L’Utilisateur concède à l’Exploitant une licence mondiale, gratuite et non exclusive pour héberger, copier, transmettre, afficher, traiter et sous-traiter les Données Utilisateur, uniquement dans la mesure nécessaire pour exploiter, maintenir, améliorer et sécuriser le Service."]}),e.jsx(Z,{children:"L’Utilisateur déclare et garantit que (i) il dispose de tous les droits requis pour soumettre les Données Utilisateur, (ii) les Données Utilisateur ne portent atteinte à aucun droit de tiers, (iii) il ne soumettra pas de données personnelles, confidentielles ou réglementées, sauf dans la mesure permise par la loi applicable et tout Contrat-cadre, et (iv) il respectera l’ensemble des obligations applicables en matière de KYC, de lutte contre le blanchiment (AML), d’abus de marché, de délit d’initié et de secret professionnel dans son utilisation du Service et de ses sorties."}),e.jsxs(Z,{children:["Les Données Utilisateur ne sont ",e.jsx(de,{children:"pas"})," utilisées pour entraîner les modèles de fondation de nos fournisseurs. Nous pouvons utiliser des données de télémétrie agrégées, anonymisées et non identifiables pour superviser et améliorer le Service."]}),e.jsxs(Z,{children:[e.jsx(de,{children:"Éditorial de marché public vs. données de fonds (validé le 11/08/2026)."})," ","Deux flux ne se confondent pas. (i) Les ",e.jsx(de,{children:"Données de fonds"})," — thèses, listes de cibles, scores, notes de match et toute information identifiant un fonds Client ou son pipeline — restent dans le contexte authentifié de ce Client et ne sont jamais publiées sur les réseaux sociaux ni sur les pages publiques du Service. (ii) L’",e.jsx(de,{children:"éditorial de marché public"})," — actualités de M&A, levées, recrutements et nominations tirées de sources publiques (presse, sites de sociétés, dépôts publics) — peut être agrégé, reformulé et publié par l’Exploitant sur le site, la newsletter et les comptes s
3408ociaux (dont X et LinkedIn), sous sa responsabilité éditoriale. La publication se limite aux sociétés ou personnes d’une notoriété suffisante, et exclut ce qui n’a pas encore paru dans la presse lorsque la source est un moteur de sourcing propriétaire. Aucun slug de fonds, score, match ou identifiant de thèse ne peut figurer dans un post public, un nom de fichier image ou un payload JSON. Les logos de sociétés sont affichés lorsqu’ils sont résolus depuis le site de la société (sinon monogramme) ; les photographies de profil LinkedIn ne sont jamais utilisées. Les dénominations et logos cités appartiennent à leurs titulaires ; aucun lien de partenariat n’est suggéré. La même règle de conditionnel s’applique qu’aux opérations : exclusive ou annoncée compte ; rumeur ou formulation au conditionnel (« serait », « pourrait ») n’est pas publiée comme un fait."]})]})},{title:"6. Propriété intellectuelle",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"L’ensemble des droits, titres et intérêts sur le Service, son logiciel, ses modèles, ses prompts, ses pipelines, sa documentation, ses marques, ses logos et toute amélioration y afférente sont et demeureront la propriété exclusive de l’Exploitant et/ou de ses concédants. Aucun droit n’est accordé à l’Utilisateur, hormis le droit limité, révocable, non exclusif et non transférable d’utiliser le Service à des fins commerciales internes pendant la durée de l’abonnement."}),e.jsx(Z,{children:"Tout retour, toute suggestion ou toute idée fournis par l’Utilisateur peuvent être utilisés par l’Exploitant sans restriction ni contrepartie."})]})},{title:"7. Frais, paiement et taxes",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"Les frais applicables à l’Utilisateur sont indiqués dans le bon de commande applicable ou dans la tarification publiée. Sauf accord écrit contraire, les frais sont (a) indiqués hors taxes, (b) non remboursables, (c) facturés à l’avance de la période de service, et (d) payables dans les trente (30) jours suivant la date de facture, à l’exception de tout acompte initial qui est dû dès réception."}),e.jsx(Z,{children:"La fréquence de facturation (par exemple mensuelle, trimestrielle ou annuelle, à l’avance) est définie dans le Contrat-cadre ou le bon de commande applicable. Lorsque le Contrat-cadre prévoit des cadences distinctes pour différents niveaux d’abonnement, chaque cadence régit le niveau auquel elle s’applique."}),e.jsx(Z,{children:"Tout acompte initial, frais d’architecture, frais de mise en place, frais d’onboarding ou autre montant unique similaire payé par l’Utilisateur est ferme, non remboursable et non créditable en toutes circonstances, y compris, sans s’y limiter : (i) le rejet par l’Utilisateur de tout livrable de calibrage, de configuration ou de mise en service ; (ii) l’échec de toute étape clé ou validation de « mise en service » (« go-live »), qu’il soit exprès ou réputé ; (iii) la résiliation, la suspension ou le non-renouvellement par l’une ou l’autre partie pour quelque raison que ce soit ; et (iv) tout exercice d’une garantie de performance, d’un droit de retrait, d’un droit d’essai ou d’un droit de résiliation contractuel à la disposition de l’Utilisateur. Les parties reconnaissent expressément que ces montants rémunèrent un travail effectivement réalisé pendant les phases de mise en place, d’architecture, de calibrage et d’onboarding, lequel a une valeur économique propre indépendamment de l’issue ultérieure de toute phase suivante ou de l’utilisation continue du Service par l’Utilisateur."}),e.jsx(Z,{children:"Les paiements en retard portent intérêt au taux légal applicable dans la juridiction de l’Exploitant, majoré d’une indemnité forfaitaire de recouvrement, sans qu’une mise en demeure préalable soit requise. L’Exploitant peut suspendre l’accès au Service pour tout montant impayé."})]})},{title:"8. Durée, résiliation et suspension",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"La durée initiale et les conditions de renouvellement de tout abonnement sont définies dans le bon de commande ou le Contrat-cadre applicable. À défaut d’un tel document, le Service est fourni au mois le mois, résiliable par l’une ou l’autre partie moyennant un préavis écrit de trente (30) jours. Lorsque le Contrat-cadre prévoit une Garantie de performance à 90 jours, un droit de retrait unique ou tout autre mécanisme de résiliation anticipée, ces droits régissent la résiliation anticipée pendant la durée initiale et prévalent sur la règle par défaut du mois le mois ci-dessus."}),e.jsx(Z,{children:"L’Exploitant peut suspendre ou résilier l’accè
3408s immédiatement, sans engager sa responsabilité, en cas de (i) manquement substantiel de l’Utilisateur non corrigé dans un délai de dix (10) jours ouvrés, (ii) défaut de paiement, (iii) utilisation du Service d’une manière qui menace sa sécurité, son intégrité ou sa légalité, ou (iv) exigence imposée par la loi applicable, une décision de justice ou une autorité compétente."}),e.jsx(Z,{children:"À la résiliation, le droit de l’Utilisateur d’accéder au Service et de l’utiliser cesse immédiatement. Les sections relatives à la propriété intellectuelle, à la confidentialité, à la responsabilité, à l’indemnisation, aux garanties et au droit applicable survivent à la résiliation."})]})},{title:"9. Exclusion de garanties",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsx(de,{children:"DANS TOUTE LA MESURE PERMISE PAR LA LOI, LE SERVICE EST FOURNI « EN L’ÉTAT » ET « SELON DISPONIBILITÉ », SANS AUCUNE GARANTIE D’AUCUNE SORTE, EXPRESSE, IMPLICITE, LÉGALE OU AUTRE, Y COMPRIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D’APTITUDE À UN USAGE PARTICULIER, D’ABSENCE DE CONTREFAÇON, D’EXACTITUDE, DE FIABILITÉ, DE DISPONIBILITÉ, OU QUE LE SERVICE SERA ININTERROMPU, EXEMPT D’ERREUR OU EXEMPT DE COMPOSANTS NUISIBLES."})}),e.jsx(Z,{children:"Aucun conseil ni aucune information, qu’il soit oral ou écrit, obtenu par l’Utilisateur auprès de l’Exploitant ou par le biais du Service, ne crée de garantie qui ne soit pas expressément énoncée dans les présentes Conditions."})]})},{title:"10. Limitation de responsabilité",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsx(de,{children:"DANS TOUTE LA MESURE PERMISE PAR LA LOI, EN AUCUN CAS L’EXPLOITANT, SES SOCIÉTÉS AFFILIÉES, DIRIGEANTS, ADMINISTRATEURS, EMPLOYÉS, AGENTS, PARTENAIRES OU CONCÉDANTS NE SAURAIENT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE INDIRECT, ACCESSOIRE, SPÉCIAL, CONSÉCUTIF, EXEMPLAIRE OU PUNITIF, Y COMPRIS SANS LIMITATION LA PERTE DE PROFITS, LA PERTE DE REVENUS, LA PERTE D’OPPORTUNITÉ COMMERCIALE, LA PERTE DE RENDEMENT D’INVESTISSEMENT, LA PERTE DE TRANSACTIONS, LA PERTE DE CLIENTÈLE, LA PERTE OU LA CORRUPTION DE DONNÉES, OU LE COÛT DE SERVICES DE SUBSTITUTION, DÉCOULANT DU SERVICE OU LIÉS À CELUI-CI, À SON UTILISATION OU À L’IMPOSSIBILITÉ DE L’UTILISER, OU À TOUTE SORTIE DE CELUI-CI, QU’ILS SOIENT FONDÉS SUR LE CONTRAT, LA RESPONSABILITÉ DÉLICTUELLE (Y COMPRIS LA NÉGLIGENCE), LA RESPONSABILITÉ STRICTE OU TOUTE AUTRE THÉORIE JURIDIQUE, ET QUE L’EXPLOITANT AIT ÉTÉ OU NON AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES."})}),e.jsx(Z,{children:e.jsx(de,{children:"LA RESPONSABILITÉ GLOBALE TOTALE DE L’EXPLOITANT ENVERS L’UTILISATEUR POUR L’ENSEMBLE DES RÉCLAMATIONS, PERTES ET DOMMAGES, QU’ILS SOIENT DE NATURE CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DU SERVICE OU LIÉS À CELUI-CI, NE SAURAIT EXCÉDER LE MONTANT TOTAL DES FRAIS EFFECTIVEMENT PAYÉS PAR L’UTILISATEUR À L’EXPLOITANT AU COURS DES DOUZE (12) MOIS PRÉCÉDANT IMMÉDIATEMENT L’ÉVÉNEMENT À L’ORIGINE DE LA RÉCLAMATION. POUR LES UTILISATEURS SUR UN PLAN GRATUIT, D’ESSAI OU NON PAYANT, LA RESPONSABILITÉ TOTALE DE L’EXPLOITANT NE SAURAIT EXCÉDER CENT EUROS (€100)."})}),e.jsx(Z,{children:"L’Utilisateur reconnaît expressément que ces limitations constituent un fondement essentiel de l’accord et que l’Exploitant n’aurait pas contracté en leur absence."})]})},{title:"11. Indemnisation",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"L’Utilisateur s’engage à défendre, indemniser et garantir l’Exploitant, ses sociétés affiliées et leurs dirigeants, administrateurs, employés, agents et représentants respectifs contre toutes réclamations, demandes, actions, procédures, responsabilités, pertes, dommages, amendes, pénalités, coûts et dépenses de tiers (y compris les frais juridiques raisonnables) découlant de ou liés à : (a) le manquement de l’Utilisateur aux présentes Conditions ; (b) la mauvaise utilisation par l’Utilisateur du Service ou de toute sortie de celui-ci ; (c) les Données Utilisateur ; (d) la violation par l’Utilisateur de toute loi ou de tout droit de tiers ; ou (e) toute décision d’investissement, transactionnelle ou opérationnelle prise par l’Utilisateur ou par tout tiers se fiant au Service."})})},{title:"12. Confidentialité",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"Chaque partie s’engage à garder confidentielle toute information non publique divulguée par l’autre dans le cadre du Service, et à ne l’utiliser qu’aux fins de l’exécution des présentes Conditions. Les obligations de confidentialité survivent à la résiliation pendant cinq (5) ans."})})},{title:"13. Services et dépendances de tiers",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"Le Service repose sur des infrastru
3408ctures et des fournisseurs de modèles tiers (notamment d’hébergement cloud, de bases de données et de fournisseurs d’IA). L’Exploitant n’est pas responsable de toute panne, défaut, incident de sécurité ou changement de politique d’un tel tiers. L’Exploitant se réserve le droit de changer de fournisseur à sa seule discrétion."})})},{title:"14. Force majeure",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"Aucune des parties ne saurait être tenue responsable d’un retard ou d’un défaut d’exécution résultant de causes échappant à son contrôle raisonnable, y compris les cas de force majeure, la guerre, le terrorisme, les cyberattaques, les pannes d’Internet, les coupures de courant, les actions gouvernementales, les épidémies ou les défaillances de fournisseurs."})})},{title:"15. Modifications des Conditions",body:e.jsx(e.Fragment,{children:e.jsx(Z,{children:"L’Exploitant peut modifier les présentes Conditions à tout moment. Les modifications substantielles seront notifiées via le Service ou par e-mail. La poursuite de l’utilisation du Service après la date d’entrée en vigueur de la modification vaut acceptation des Conditions mises à jour. Si l’Utilisateur n’est pas d’accord, son seul recours est de cesser d’utiliser le Service."})})},{title:"16. Droit applicable et juridiction",body:e.jsx(e.Fragment,{children:e.jsxs(Z,{children:["Les présentes Conditions sont régies et interprétées conformément au droit ",e.jsx(de,{children:"français"}),", sans égard à ses règles de conflit de lois. Tout litige découlant des présentes Conditions ou en lien avec celles-ci sera soumis à la"," ",e.jsx(de,{children:"compétence exclusive des tribunaux compétents de Paris, France"}),", nonobstant la pluralité de défendeurs ou l’appel en garantie. Aucune disposition de la présente clause ne limite un quelconque droit non susceptible de renonciation des consommateurs au titre des dis
3408positions impératives."]})})},{title:"17. Dispositions diverses",body:e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:"Si une disposition des présentes Conditions est jugée inapplicable, les dispositions restantes demeurent pleinement en vigueur. Le fait de ne pas faire appliquer une disposition ne constitue pas une renonciation. Les présentes Conditions, ainsi que tout Contrat-cadre applicable, constituent l’intégralité de l’accord entre les parties concernant le Service et remplacent toutes les discussions antérieures."}),e.jsx(Z,{children:"L’Utilisateur ne peut céder les présentes Conditions sans accord écrit préalable. L’Exploitant peut librement céder les présentes Conditions à tout successeur, société affiliée ou acquéreur."})]})},{title:"18. Mentions légales et hébergement",body:e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:["Ce site est exploité depuis la France. L’hébergement et le calcul serverless sont fournis par ",e.jsx(de,{children:"Modal Labs, Inc."})," (San Francisco, Californie, États-Unis — ",e.jsx("a",{href:"https://modal.com",target:"_blank",rel:"noreferrer",children:"modal.com"}),"). Les enregistrements de données structurées sont stockés chez"," ",e.jsx(de,{children:"Airtable, Inc."})," (San Francisco, Californie, États-Unis — certifié SOC 2 Type II). Les ressources statiques du front-end sont servies via un réseau mondial de diffusion de contenu (CDN)."]}),e.jsx(Z,{children:"Le contenu de ce site (textes, graphiques, logos, code et design) est protégé par le droit d’auteur et les lois applicables en matière de propriété intellectuelle. Toute reproduction, représentation ou distribution, en tout ou partie, sans autorisation écrite préalable, est interdite."}),e.jsxs(Z,{children:["Conformément à l’article 6 de la loi française LCEN du 21 juin 2004, tout contenu illicite constaté sur ce site peut être signalé à"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),"."]})]})},{title:"19. Contact",body:e.jsx(e.Fragment,{children:e.jsxs(Z,{children:["Toute question relative aux présentes Conditions peut être adressée à"," ",e.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--green)"},children:"[email protected]"}),"."]})})}]}};function aj(){const{lang:t,localizePath:n}=ae(),r=ic[t];return ht({en:ic.en.seo,fr:ic.fr.seo}),e.jsxs("div",{style:{background:"var(--bg)",minHeight:"100vh"},children:[e.jsxs("div",{className:"wrap-wide",style:{paddingTop:80,paddingBottom:80,maxWidth:820},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"},children:[e.jsx(Ti,{to:n("/"),style:{fontSize:12,color:"var(--sub)",textDecoration:"none",letterSpacing:".08em",textTransform:"uppercase"},children:r.backHome}),e.jsx(ea,{})]}),e.jsx("h1",{className:"h2",style:{marginTop:16,marginBottom:8,fontSize:36},children:r.pageTitle}),e.jsx("p",{style:{color:"var(--lite, #9aa3a1)",fontSize:12,marginBottom:40},children:r.lastUpdated}),e.jsx("div",{className:"legal-body",children:r.sections.map(i=>e.jsx(oj,{title:i.title,children:i.body},i.title))})]}),e.jsx("style",{children:lj})]})}function oj({title:t,children:n}){return e.jsxs("section",{style:{marginBottom:32},children:[e.jsx("h2",{style:{fontSize:15,fontWeight:700,color:"var(--ink)",marginBottom:12,letterSpacing:"-.01em"},children:t}),e.jsx("div",{children:n})]})}function Z({children:t}){return e.jsx("p",{style:{fontSize:13.5,lineHeight:1.75,color:"var(--sub)",marginBottom:10},children:t})}function de({children:t}){return e.jsx("strong",{style:{color:"var(--ink)",fontWeight:600},children:t})}function rm({children:t}){return e.jsx("ul",{style:{fontSize:13.5,lineHeight:1.75,color:"var(--sub)",marginBottom:10,paddingLeft:20},children:t})}function zt({children:t}){return e.jsx("li",{style:{marginBottom:4},children:t})}const lj=`
3409.legal-body a { color: var(--green); text-decoration: none; }
3410.legal-body a:hover { text-decoration: underline; }
3411`,cj={en:{back:"← Back to home",pageTitle:"Privacy Policy",lastUpdated:"Last updated: April 2026",s1Title:"1. Overview",s1Body:e.jsxs(Te,{children:["This Privacy Policy explains how the operator of this website (the ",e.jsx(ue,{children:'"Operator"'}),", ",e.jsx(ue,{children:'"we"'}),", ",e.jsx(ue,{children:'"us"'}),") processes personal data in connection with the website, platform, APIs, dashboards, and related services (the ",e.jsx(ue,{children:'"Service"'}),"). We act as ",e.jsx(ue,{children:"data controller"})," for data we collect directly from visitors and account holders, and as ",e.jsx(ue,{children:"data processor"})," for personal data that our business clients upload into the Service on behalf of their own end users."]}),s2Title:"2. Data we collect",s2Body:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Account data"}),": name, email, organisation, job title, authentication credentials."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Usage data"}),": logs, timestamps, IP address, browser and device metadata, pages visited, actions performed, errors."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Content data"}),": documents, parameters, prompts, files, and other inputs submitted by users."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Communications"}),": emails, support tickets, and feedback you send us."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Billing data"}),": where applicable, name, address, VAT ID, and payment information processed by our payment provider."]})]}),s3Title:"3. Purposes and legal bases (GDPR art. 6)",s3Body:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Providing the Service"})," — performance of a contract (art. 6(1)(b))."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Security, fraud prevention, logging"})," — legitimate interest (art. 6(1)(f)) in protecting the Service and its users."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Service improvement via aggregated telemetry"})," — legitimate interest (art. 6(1)(f))."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Billing and bookkeeping"})," — legal obligation (art. 6(1)(c))."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Marketing emails to existing clients"})," — legitimate interest with opt-out; ",e.jsx(ue,{children:"prospect marketing"})," — consent (art. 6(1)(a))."]})]}),s4Title:"4. Sub-processors and recipients",s4Intro:e.jsx(Te,{children:"We rely on a limited set of enterprise sub-processors to operate the Service, including:"}),s4List:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Database & record storage"}
3411),": a SOC 2 Type II / ISO 27001 certified structured-data provider."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Compute & hosting"}),": a SOC 2 Type II certified serverless compute provider."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"AI model providers"}),": enterprise LLM providers whose terms prohibit the use of customer prompts to train foundation models."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Email, analytics, support, and payment"})," providers as strictly necessary."]})]}),s4Outro:e.jsxs(Te,{children:["A current list of sub-processors is available on request at"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),". Sub-processors are contractually bound to GDPR-compliant data protection standards."]}),s5Title:"5. International transfers",s5Body:e.jsx(Te,{children:"Some of our sub-processors are established outside the European Economic Area. Where personal data is transferred outside the EEA, the transfer is covered by a lawful transfer mechanism under the GDPR, such as the European Commission's Standard Contractual Clauses, an adequacy decision, or equivalent safeguards."}),s6Title:"6. Retention",s6Intro:e.jsx(Te,{children:"We retain personal data only for as long as necessary for the purposes set out in section 3:"}),s6List:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Account and content data"}),": for the duration of the contract and up to twelve (12) months after termination, then deleted or anonymised."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Logs and security data"}),": up to twelve (12) months."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Billing records"}),": ten (10) years to comply with accounting law."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Prospect marketing data"}),": three (3) years from last interaction."]})]}),s7Title:"7. Your rights (GDPR arts. 15–22)",s7Body1:e.jsx(Te,{children:"Subject to conditions set by law, you have the right to (a) access your data, (b) have it rectified, (c) request its erasure, (d) restrict or object to its processing, (e) receive it in a portable format, (f) withdraw consent at any time without affecting prior processing."}),s7Body2:e.jsxs(Te,{children:["To exercise these rights, contact"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),". We respond within one (1) month."]}),s8Title:"8. Security",s8Body:e.jsx(Te,{children:"We implement technical and organisational measures appropriate to the risk, including encryption in transit (TLS 1.3), encryption at rest (AES-256 on our providers), access control, logging, server-side proxying of database credentials, and least-privilege access management. No method of transmission or storage is 100% secure; residual risk cannot be eliminated."}),s9Title:"9. Cookies",s9Body:e.jsx(Te,{children:"We use strictly necessary cookies to operate the Service (authentication, session, security). Where analytics or preference cookies are used, consent is requested on first visit, and may be withdrawn at any time via the cookie banner."}),s10Title:"10. AI processing",s10Body:e.jsx(Te,{children:"When you submit content to our AI features, the content is transmitted to our AI sub-processors under no-training contractual terms. Prompts and outputs may be retained by providers for abuse-monitoring purposes for a limited period as described in their respective terms, and are not used to train foundation models."}),s11Title:"11. Children",s11Body:e.jsx(Te,{children:"The Service is not directed to children under sixteen (16) and we do not knowingly collect personal data from them."}),s12Title:"12. Changes to this Policy",s12Body:e.jsx(Te,{children:'We may update this Policy from time to time. Material changes are notified via the Service or by email. The "Last updated" date at the top reflects the latest version.'}),s13Title:"13. Contact",s13Body:e.jsxs(Te,{children:["For any question regarding this Policy or our processing of personal data, contact"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),"."]})},fr:{back:"← Retour à l’accueil",pageTitle:"Politique de confidentialité",lastUpdated:"Dernière mise à jour : avril 2026",s1Title:"1. Présentation",s1Body:e.jsxs(Te,{children:["La présente Politique de confidentialité explique comment l’exploitant de ce site (l’",e.jsx(ue,{children:"« Exploitant »"}),", ",e.jsx(ue,{children:"« nous »"}),") traite les données à caractère personnel dans le cadre du site, de la plateforme, des API, des tableaux de bord et des services associés (le ",e.jsx(ue,{children:"« Service »"}),"). Nous agissons en qualité de"," ",e.jsx(ue,{children:"responsable du traitement"})," pour les données que nous collectons directement auprès des visiteurs et des titulaires de compte, et en qualité de ",e.jsx(ue,{children:"sous-traitant"})," pour les données à caractère personnel que nos clients professionnels téléversent dans le Service pour le compte de leurs propres utilisateurs finaux."]}),s2Title:"2. Données que nous collectons",s2Body:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Données de compte"})," : nom, e-mail, organisation, fonction, identifiants d’authentification."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Données d’usage"})," : journaux, horodatages, adresse IP, métadonnées du navigateur et de l’appareil, pages consultées, actions effectuées, erreurs."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Données de contenu"})," : documents, paramètres, prompts, fichiers et autres éléments soumis par les utilisateurs."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Communications"})," : e-mails, tickets de support et retours que vous nous adressez."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Données de facturation"})," : le cas échéant, nom, adresse, numéro de TVA et informations de paiement traitées par notre prestataire de paiement."]})]}),s3Title:"3. Finalités et bases légales (RGPD art. 6)",s3Body:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Fourniture du Service"})," — exécution d’un contrat (art. 6, § 1, b)."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Sécurité, prévention de la fraude, journalisation"})," — intérêt légitime (art. 6, § 1, f) à protéger le Service et ses utilisateurs."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Amélioration du Service via une télémétrie agrégée"})," — intérêt légitime (art. 6, § 1, f)."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Facturation et comptabilité"})," — obligation légale (art. 6, § 1, c)."]}
3411),e.jsxs(je,{children:[e.jsx(ue,{children:"E-mails marketing aux clients existants"})," — intérêt légitime avec faculté de désinscription ; ",e.jsx(ue,{children:"prospection commerciale"})," — consentement (art. 6, § 1, a)."]})]}),s4Title:"4. Sous-traitants et destinataires",s4Intro:e.jsx(Te,{children:"Nous recourons à un nombre limité de sous-traitants professionnels pour exploiter le Service, notamment :"}),s4List:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Base de données & stockage des enregistrements"})," : un prestataire de données structurées certifié SOC 2 Type II / ISO 27001."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Calcul & hébergement"})," : un prestataire de calcul serverless certifié SOC 2 Type II."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Fournisseurs de modèles d’IA"})," : des fournisseurs de LLM professionnels dont les conditions interdisent l’utilisation des prompts clients pour entraîner des modèles de fondation."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Fournisseurs d’e-mail, d’analytique, de support et de paiement"}),", dans la stricte mesure du nécessaire."]})]}),s4Outro:e.jsxs(Te,{children:["Une liste à jour des sous-traitants est disponible sur demande à l’adresse"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),". Les sous-traitants sont contractuellement tenus à des normes de protection des données conformes au RGPD."]}),s5Title:"5. Transferts internationaux",s5Body:e.jsx(Te,{children:"Certains de nos sous-traitants sont établis en dehors de l’Espace économique européen. Lorsque des données à caractère personnel sont transférées hors de l’EEE, le transfert est encadré par un mécanisme de transfert licite au titre du RGPD, tel que les Clauses contractuelles types de la Commission européenne, une décision d’adéquation ou des garanties équivalentes."}),s6Title:"6. Conservation",s6Intro:e.jsx(Te,{children:"Nous ne conservons les données à caractère personnel que le temps nécessaire aux finalités énoncées à la section 3 :"}),s6List:e.jsxs(Wn,{children:[e.jsxs(je,{children:[e.jsx(ue,{children:"Données de compte et de contenu"})," : pendant la durée du contrat et jusqu’à douze (12) mois après sa résiliation, puis supprimées ou anonymisées."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Journaux et données de sécurité"})," : jusqu’à douze (12) mois."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Pièces de facturation"})," : dix (10) ans afin de respecter la législation comptable."]}),e.jsxs(je,{children:[e.jsx(ue,{children:"Données de prospection commerciale"})," : trois (3) ans à compter de la dernière interaction."]})]}),s7Title:"7. Vos droits (RGPD art. 15 à 22)",s7Body1:e.jsx(Te,{children:"Sous réserve des conditions prévues par la loi, vous disposez du droit (a) d’accéder à vos données, (b) de les faire rectifier, (c) d’en demander l’effacement, (d) d’en limiter le traitement ou de vous y opposer, (e) de les recevoir dans un format portable, (f) de retirer votre consentement à tout moment, sans que cela n’affecte les traitements antérieurs."}),s7Body2:e.jsxs(Te,{children:["Pour exercer ces droits, contactez"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),". Nous répondons dans un délai d’un (1) mois."]}),s8Title:"8. Sécurité",s8Body:e.jsx(Te,{children:"Nous mettons en œuvre des mesures techniques et organisationnelles adaptées au risque, notamment le chiffrement en transit (TLS 1.3), le chiffrement au repos (AES-256 chez nos prestataires), le contrôle d’accès, la journalisation, le relayage côté serveur des identifiants de base de données et une gestion des accès au moindre privilège. Aucune méthode de transmission ou de stockage n’est sûre à 100 % ; le risque résiduel ne peut être totalement éliminé."}),s9Title:"9. Cookies",s9Body:e.jsx(Te,{children:"Nous utilisons des cookies strictement nécessaires au fonctionnement du Service (authentification, session, sécurité). Lorsque des cookies d’analyse ou de préférences sont utilisés, votre consentement est recueilli lors de la première visite et peut être retiré à tout moment via le bandeau cookies."}),s10Title:"10. Traitement par l’IA",s10Body:e.jsx(Te,{children:"Lorsque vous soumettez du contenu à nos fonctionnalités d’IA, ce contenu est transmis à nos sous-traitants d’IA dans le cadre de conditions contractuelles « sans entraînement ». Les prompts et les résultats peuvent être conservés par les fournisseurs à des fins de surveillance des abus pendant une durée limitée, telle que décrite dans leurs conditions respectives, et ne sont pas utilisés pour entraîner des modèles de fondation."}),s11Title:"11. Mineurs",s11Body:e.jsx(Te,{children:"Le Service ne s’adresse pas aux enfants de moins de seize (16) ans et nous ne collectons pas sciemment de données à caractère personnel les concernant."}),s12Title:"12. Modifications de la présente Politique",s12Body:e.jsx(Te,{children:"Nous pouvons mettre à jour la présente Politique à tout moment. Les modifications substantielles sont notifiées via le Service ou par e-mail. La date de « Dernière mise à jour » figurant en haut reflète la version la plus récente."}),s13Title:"13. Contact",s13Body:e.jsxs(Te,{children:["Pour toute question relative à la présente Politique ou à notre traitement de vos données à caractère personnel, contactez"," ",e.jsx("a",{href:"mailto:[email protected]",children:"[email protected]"}),"."]})}},dj={en:{title:"Privacy Policy | Proplace",description:"How Proplace processes personal data: data collected, GDPR legal bases, sub-processors, transfers, retention, your rights and security."},fr:{title:"Politique de confidentialité | Proplace",description:"Comment Proplace traite vos données personnelles : données collectées, bases légales RGPD, sous-traitants, transferts, conservation, vos droits et sécurité."}};function pj(){const{lang:t,localizePath:n}
3411=ae(),r=cj[t];return ht(dj),e.jsxs("div",{style:{background:"var(--bg)",minHeight:"100vh"},children:[e.jsxs("div",{className:"wrap-wide",style:{paddingTop:80,paddingBottom:80,maxWidth:820},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"},children:[e.jsx(Ti,{to:n("/"),style:{fontSize:12,color:"var(--sub)",textDecoration:"none",letterSpacing:".08em",textTransform:"uppercase"},children:r.back}),e.jsx(ea,{})]}),e.jsx("h1",{className:"h2",style:{marginTop:16,marginBottom:8,fontSize:36},children:r.pageTitle}),e.jsx("p",{style:{color:"var(--lite, #9aa3a1)",fontSize:12,marginBottom:40},children:r.lastUpdated}),e.jsxs("div",{className:"legal-body",children:[e.jsx(Tt,{title:r.s1Title,children:r.s1Body}),e.jsx(Tt,{title:r.s2Title,children:r.s2Body}),e.jsx(Tt,{title:r.s3Title,children:r.s3Body}),e.jsxs(Tt,{title:r.s4Title,children:[r.s4Intro,r.s4List,r.s4Outro]}),e.jsx(Tt,{title:r.s5Title,children:r.s5Body}),e.jsxs(Tt,{title:r.s6Title,children:[r.s6Intro,r.s6List]}),e.jsxs(Tt,{title:r.s7Title,children:[r.s7Body1,r.s7Body2]}),e.jsx(Tt,{title:r.s8Title,children:r.s8Body}),e.jsx(Tt,{title:r.s9Title,children:r.s9Body}),e.jsx(Tt,{title:r.s10Title,children:r.s10Body}),e.jsx(Tt,{title:r.s11Title,children:r.s11Body}),e.jsx(Tt,{title:r.s12Title,children:r.s12Body}),e.jsx(Tt,{title:r.s13Title,children:r.s13Body})]})]}),e.jsx("style",{children:uj})]})}function Tt({title:t,children:n}){return e.jsxs("section",{style:{marginBottom:32},children:[e.jsx("h2",{style:{fontSize:15,fontWeight:700,color:"var(--ink)",marginBottom:12,letterSpacing:"-.01em"},children:t}),e.jsx("div",{children:n})]})}function Te({children:t}){return e.jsx("p",{style:{fontSize:13.5,lineHeight:1.75,color:"var(--sub)",marginBottom:10},children:t})}function ue({children:t}){return e.jsx("strong",{style:{color:"var(--ink)",fontWeight:600},children:t})}function Wn({children:t}){return e.jsx("ul",{style:{fontSize:13.5,lineHeight:1.75,color:"var(--sub)",marginBottom:10,paddingLeft:20},children:t})}function je({children:t}){return e.jsx("li",{style:{marginBottom:4},children:t})}const uj=`
3412.legal-body a { color: var(--green); text-decoration: none; }
3413.legal-body a:hover { text-decoration: underline; }
3414`,hj={en:{logIn:"Log in",direct:"Live",marches:"Sector watch"},fr:{logIn:"Se connecter",direct:"Live",marches:"Veille sectorielle"}};function Di({active:t=""}){const{lang:n,localizePath:r}=ae(),i=hj[n],[s,a]=m.useState(!1),[o,c]=m.useState(!1),l=Ge(),d=Eb(!0),p=Nb(),u=(l==null?void 0:l.email)||"";return m.useEffect(()=>{document.body.classList.add("np-flush");const g=document.querySelector(".pph"),f=()=>{const v=Math.round((g==null?void 0:g.getBoundingClientRect().height)||60);document.documentElement.style.setProperty("--pp-gap",`${v}px`)};f();const L=g&&typeof ResizeObserver<"u"?new ResizeObserver(f):null;return g&&L&&L.observe(g),window.addEventListener("resize",f),()=>{document.body.classList.remove("np-flush"),L==null||L.disconnect(),window.removeEventListener("resize",f)}},[]),e.jsxs("header",{className:"pph",children:[e.jsx("style",{children:mj}),e.jsxs("div",{className:"in",children:[e.jsx("a",{className:"brand",href:r("/"),"aria-label":"Proplace",children:e.jsx("img",{src:"/logo.png",alt:"Proplace"})}),e.jsxs("nav",{className:"pph-sect","aria-label":"Sections Proplace",children:[e.jsx("a",{className:t==="news"||t==="direct"?"on":"",href:"/actualites/",children:i.direct}),e.jsx("a",{className:t==="marches"?"on":"",href:"/actualites/operations/secteurs/",children:i.marches})]}),e.jsxs("span",{className:"pph-end",children:[e.jsx("span",{className:"pph-auth",children:p?e.jsx(wi,{fundType:p.fund,dealflowHref:ec(p.token,u)}):l?e.jsx(wi,{fundType:l.fund_type,dealflowHref:d&&Cb(d.fund,l.fund_type)?ec(d.token,u):""}):d?e.jsx(wi,{fundType:d.fund,dealflowHref:ec(d.token,u)}):e.jsx("button",{type:"button",className:"cta",onClick:()=>a(!0),children:i.logIn})}),e.jsx(ea,{})]})]}),s&&e.jsx(Ur,{onClose:()=>a(!1),onSignupClick:()=>{a(!1),c(!0)}}),o&&e.jsx(Qr,{onClose:()=>c(!1)})]})}const mj=`
3415.pph{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
3416backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid #E3E8F0;
3417font-family:var(--pp-body)}
3418/* Gabarit IDENTIQUE à la nav de la page d'accueil (.pp-nav-inner : 1200 / 32) —
3419   le bandeau LIVE et le bloc de contenu se calent dessus, donc tout démarre
3420   exactement sous le logo. Miroir Python : PROPLACE_HEADER_CSS. */
3421.pph .in{max-width:1200px;margin:0 auto;padding:0 32px;min-height:60px;display:flex;
3422align-items:center;gap:14px;flex-wrap:nowrap;min-width:0}
3423.pph .brand{flex:0 0 auto}.pph .brand img{height:24px;display:block}
3424.pph nav,.pph .pph-auth a,.pph .pph-auth button{color:#444;text-decoration:none;
3425white-space:nowrap;background:none;border:none;font:inherit;font-weight:500;cursor:pointer;padding:0}
3426.pph nav>a:hover,.pph .pph-auth button:hover{color:#16233A}
3427.pph .pph-end{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;margin-left:auto}
3428.pph .pph-auth{flex:0 0 auto;display:inline-flex;align-items:center;white-space:nowrap}
3429/* .pp-acct-btn est listé ici parce que cette page (NewsletterPage) rend SiteHeader
3430   SANS Nav : le CSS .pp-nav-cta de Nav.tsx n'est pas injecté et la pastille
3431   « Connecté » apparaissait nue. Même pastille verte que partout ailleurs. */
3432.pph a.cta,.pph .pph-auth a.cta,.pph button.cta,.pph .pph-auth button.cta,
3433.pph .pph-auth .pp-acct-btn{color:#fff;
3434background:#12A150;padding:8px 14px;border-radius:9px;font-weight:600}
3435.pph a.cta:hover,.pph button.cta:hover,.pph .pph-auth .pp-acct-btn:hover{background:#0E8A44;color:#fff}
3436/* Les surfaces éditoriales — MÊME grammaire que Nav.tsx et que le header
3437   Python (site_publish.proplace_header_html) : liens sobres collés à la marque,
3438   filet de séparation, souligné vert au survol. */
3439.pph .pph-sect{display:inline-flex;align-items:center;gap:18px;white-space:nowrap;flex:0 1 auto;
3440min-width:0;padding-left:20px;position:relative;
3441border:0;background:none;border-radius:0;overflow:visible}
3442.pph .pph-sect::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
3443width:1px;height:16px;background:rgba(15,29,51,.12)}
3444.pph .pph-sect a{position:relative;padding:6px 0;color:#4B5E78;font-weight:500;font-size:13.5px;
3445letter-spacing:.005em;text-decoration:none;transition:color .2s ease}
3446.pph .pph-sect a::after{content:"";position:absolute;left:0;right:0;bottom:1px;height:1.5px;
3447border-radius:2px;background:#12A150;transform:scaleX(0);transform-origin:left center;
3448transition:transform .22s ease}
3449.pph .pph-sect a:hover{color:#16233A;background:none}
3450.pph .pph-sect a.on{color:#16233A;font-weight:600;background:none}
3451.pph .pph-sect a:hover::after,.pph .pph-sect a.on::after{transform:scaleX(1)}
3452@media(max-width:760px){
3453 /* Une ligne : Live + Veille glissent, Se connecter + EN|FR restent visibles. */
3454 .pph .in{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;
3455    padding:0 12px;min-height:48px}
3456 .pph .brand img{height:20px}
3457 .pph .pph-end{flex:0 0 auto;gap:7px;margin-left:0}
3458 .pph .pph-sect{flex:1 1 auto;min-width:0;gap:14px;padding:0 16px 0 10px;
3459    overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
3460    scrollbar-width:none;
3461    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 18px),transparent);
3462    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 18px),transparent)}
3463 .pph .pph-sect::-webkit-scrollbar{display:none}
3464 .pph .pph-sect::before{height:12px}
3465 .pph .pph-sect a{flex:0 0 auto;padding:6px 0;font-size:13px}
3466 .pph a.cta,.pph .pph-auth a.cta,.pph button.cta,.pph .pph-auth button.cta,
3467 .pph .pph-auth .pp-acct-btn{padding:6px 10px;font-size:12px}
3468 .pph .pp-lang button{padding:4px 8px;font-size:11px}
3469}
3470`,nr=[{id:"b2b-software-and-cloud",label:"B2B Software & Cloud",labelFr:"Logiciels B2B & Cloud",href:"/newsletter/b2b-software-and-cloud/"},{id:"horizontal-and-productivity-saas",label:"Horizontal & Productivity SaaS",labelFr:"SaaS & Productivité",href:"/newsletter/horizontal-and-productivity-saas/"},{id:"future-of-work-and-hr-tech",label:"Future of Work & HR Tech",labelFr:"Futur du Travail & HR Tech",href:"/newsletter/future-of-work-and-hr-tech/"},{id:"developer-and-it-infrastructure",label:"Developer & IT Infrastructure",labelFr:"Infrastructure & Outils Développeurs",href:"/newsletter/developer-and-it-infrastructure/"},{id:"cybersecurity",label:"Cybersecurity",labelFr:"Cybersécurité",href:"/newsletter/cybersecurity/"},{id:"data-and-analytics",label:"Data & Analytics",labelFr:"Data & Analytics",href:"/newsletter/data-and-analytics/"},{id:"fintech",label:"FinTech",labelFr:"FinTech",href:"/newsletter/fintech/"},{id:"insurtech",label:"InsurTech",labelFr:"InsurTech",href:"/newsletter/insurtech/"},{id:"wealthtech-and-asset-management",label:"WealthTech & Asset Management",labelFr:"WealthTech & Gestion d'actifs",href:"/newsletter/wealthtech-and-asset-management/"},{id:"regtech-and-compliance",label:"RegTech & Compliance",labelFr:"RegTech & Conformité",href:"/newsletter/regtech-and-compliance/"},{id:"web3-and-crypto",label:"Web3 & Crypto",labelFr:"Web3 & Crypto",href:"/newsletter/web3-and-crypto/"},{id:"defi-decentralized-finance",label:"DeFi (Decentralized Finance)",labelFr:"DeFi (Finance décentralisée)",href:"/newsletter/defi-decentralized-finance/"}
3470,{id:"web3-infrastructure-and-tooling",label:"Web3 Infrastructure & Tooling",labelFr:"Infrastructure Web3",href:"/newsletter/web3-infrastructure-and-tooling/"},{id:"nfts-and-digital-assets",label:"NFTs & Digital Assets",labelFr:"NFT & Actifs numériques",href:"/newsletter/nfts-and-digital-assets/"},{id:"health-and-wellness",label:"Health & Wellness",labelFr:"Santé & Bien-être",href:"/newsletter/health-and-wellness/"},{id:"healthtech-and-digital-health",label:"HealthTech & Digital Health",labelFr:"HealthTech & Santé numérique",href:"/newsletter/healthtech-and-digital-health/"},{id:"biotech-and-pharma",label:"Biotech & Pharma",labelFr:"Biotech & Pharma",href:"/newsletter/biotech-and-pharma/"},{id:"medtech-and-devices",label:"MedTech & Devices",labelFr:"MedTech & Dispositifs médicaux",href:"/newsletter/medtech-and-devices/"},{id:"commerce-and-consumer",label:"Commerce & Consumer",labelFr:"Commerce & Grande conso",href:"/newsletter/commerce-and-consumer/"},{id:"retail-and-e-commerce-tech",label:"Retail & E-commerce Tech",labelFr:"Retail & E-commerce",href:"/newsletter/retail-and-e-commerce-tech/"},{id:"d2c-and-consumer-brands",label:"D2C & Consumer Brands",labelFr:"D2C & Marques grand public",href:"/newsletter/d2c-and-consumer-brands/"},{id:"social-and-creator-economy",label:"Social & Creator Economy",labelFr:"Réseaux sociaux & Creator Economy",href:"/newsletter/social-and-creator-economy/"},{id:"gaming",label:"Gaming",labelFr:"Gaming / Jeu vidéo",href:"/newsletter/gaming/"},{id:"the-physical-world",label:"The Physical World",labelFr:"Industrie & Monde physique",href:"/newsletter/the-physical-world/"},{id:"climate-and-energy-tech",label:"Climate & Energy Tech",labelFr:"Climat & Énergie",href:"/newsletter/climate-and-energy-tech/"},{id:"logistics-and-supply-chain",label:"Logistics & Supply Chain",labelFr:"Logistique & Supply Chain",href:"/newsletter/logistics-and-supply-chain/"},{id:"industrial-tech-and-manufacturing",label:"Industrial Tech & Manufacturing",labelFr:"Industrie & Manufacturing",href:"/newsletter/industrial-tech-and-manufacturing/"},{id:"robotics-and-automation",label:"Robotics & Automation",labelFr:"Robotique & Automatisation",href:"/newsletter/robotics-and-automation/"},{id:"food-and-agtech",label:"Food & AgTech",labelFr:"Food & AgTech",href:"/newsletter/food-and-agtech/"},{id:"construction-and-proptech",label:"Construction & PropTech",labelFr:"Construction & PropTech",href:"/newsletter/construction-and-proptech/"},{id:"mobility-and-transportation",label:"Mobility & Transportation",labelFr:"Mobilité & Transport",href:"/newsletter/mobility-and-transportation/"},{id:"knowledge-and-media",label:"Knowledge & Media",labelFr:"Savoir & Médias",href:"/newsletter/knowledge-and-media/"},{id:"education-and-edtech",label:"Education & EdTech",labelFr:"Éducation & EdTech",href:"/newsletter/education-and-edtech/"},{id:"media-and-entertainment",label:"Media & Entertainment",labelFr:"Médias & Divertissement",href:"/newsletter/media-and-entertainment/"},{id:"legal-tech",label:"Legal Tech",labelFr:"LegalTech",href:"/newsletter/legal-tech/"},{id:"space-tech",label:"Space Tech",labelFr:"Spatial (Space Tech)",href:"/newsletter/space-tech/"}],as={en:{eyebrow:"THE DAILY NEWSLETTER",h1:"Every deal of the day, read and decoded before you open your inbox.",sub:"M&A and fundraisings in France & Europe — the amounts, the buyers, the press sources. One email a day. Free, one-click unsubscribe.",cta:"Subscribe →",trust:"No card, no commitment — one click to leave.",getTitle:"What lands in your inbox",get:[["🤝","Every signed deal","Who bought whom, for how much, in which market — with the press source behind each line."],["🚀","Every fundraising","Rounds in France & Europe, the amount, the stage and the investors, the day they are announced."],["👤","Appointments & hirings","The moves that say a company is about to change scale, before the deal shows up."],["📊","The day in figures","Volume, amounts, the markets that moved — the same count as the site, never a different one."]],edTitle:"Today's edition",edSub:"This is exactly what subscribers received — the count comes from the published edition, live.",edRead:"Read the full edition →",secTitle:"Or only your market",secSub
3470:"One newsletter per market, same daily rhythm — the deals of that sector and nothing else.",faqTitle:"The practical details",faq:[["How often?","Once a day. Never a second email, never a “special offer”."],["How much?","Free. The newsletter is the public face of the deal flow we screen for our clients."],["Leaving?","One click at the bottom of any email. No form, no question asked."],["Your address?","Kept for sending the newsletter, nothing else — never sold, never passed on."]],back:"← Back to proplace.co",seoT:"Proplace Newsletter — Daily deal flow & M&A signals",seoD:"Subscribe to the Proplace newsletter: every M&A deal and fundraising of the day in France & Europe, with amounts, buyers and press sources. Free, one email a day."},fr:{eyebrow:"LA NEWSLETTER QUOTIDIENNE",h1:"Toutes les opérations du jour, lues et décryptées avant que vous n’ouvriez votre boîte mail.",sub:"M&A et levées de fonds en France & Europe — les montants, les acquéreurs, les sources presse. Un email par jour. Gratuit, désinscription en un clic.",cta:"S’abonner →",trust:"Sans carte, sans engagement — un clic pour partir.",getTitle:"Ce que vous recevez",get:[["🤝","Chaque opération signée","Qui rachète qui, pour combien, sur quel marché — avec la source presse derrière chaque ligne."],["🚀","Chaque levée de fonds","Les tours en France & Europe, le montant, le stade et les investisseurs, le jour où ils sont annoncés."],["👤","Nominations et recrutements","Les mouvements qui annoncent un changement d’échelle, avant que l’opération n’arrive."],["📊","La journée en chiffres","Volume, montants, marchés qui bougent — le même décompte que le site, jamais un autre."]],edTitle:"L’édition d’aujourd’hui",edSub:"C’est exactement ce que les abonnés ont reçu — le décompte vient de l’édition publiée, en direct.",edRead:"Lire l’édition complète →",secTitle:"Ou seulement votre marché",secSub:"Une newsletter par marché, au même rythme quotidien — les opérations de ce secteur, et rien d’autre.",faqTitle:"En pratique",faq:[["À quelle fréquence ?","Une fois par jour. Jamais un second email, jamais d’« offre spéciale »."],["À quel prix ?","Gratuit. La newsletter est la face publique du deal flow que nous criblons pour nos clients."],["Pour partir ?","Un clic en bas de n’importe quel email. Pas de formulaire, pas de question."],["Votre adresse ?","Conservée pour l’envoi, rien d’autre — jamais vendue, jamais transmise."]],back:"← Retour sur proplace.co",seoT:"Newsletter Proplace — Deal flow et signaux M&A",seoD:"Abonnez-vous à la newsletter Proplace : toutes les opérations M&A et levées de fonds du jour en France & Europe, avec montants, acquéreurs et sources presse. Gratuit, un email par jour."}};function m1(){const{lang:t}=ae(),n=as[t],[r,i]=m.useState(""),[s,a]=m.useState(""),{state:o,errMsg:c,submit:l,copy:d}=fl("general");return ht({en:{title:as.en.seoT,description:as.en.seoD},fr:{title:as.fr.seoT,description:as.fr.seoD}}),m.useEffect(()=>(document.body.classList.add("np-flush"),()=>document.body.classList.remove("np-flush")),[]),e.jsxs("div",{className:"ppnl",children:[e.jsx("style",{children:gj}),e.jsx(Di,{}),e.jsx("div",{className:"ppnl-wrap",children:e.jsxs("section",{className:"ppnl-hero",children:[e.jsx("span",{className:"ppnl-eyebrow",children:n.eyebrow}),e.jsx("h1",{children:n.h1}),e.jsx("p",{className:"ppnl-sub",children:n.sub}),e.jsxs("form",{className:"ppnl-form",noValidate:!0,onSubmit:async p=>{p.preventDefault(),await l(r,s)&&i("")},children:[e.jsx("input",{type:"email",required:!0,value:r,placeholder:d.placeholder,"aria-label":d.placeholder,onChange:p=>i(p.target.value)}),e.jsx("input",{type:"text",name:"website",value:s,tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"ppnl-hp",onChange:p=>a(p.target.value)}),e.jsx("button",{type:"submit",disabled:o==="sending",children:o==="sending"?d.sending:n.cta})]}),e.jsx("p",{className:"ppnl-msg"+(o==="err"?" err":""),"aria-live":"polite",children:o==="ok"?d.ok:o==="err"?c:n.trust}),e.jsx("ul",{className:"ppnl-points",children:n.get.map(([p,u,g])=>e.jsxs("li",{children:[p," ",u," — ",g]},u))})]})}),e.jsx("div",{className:"ppnl-wrap",children:e.jsxs("section",{className:"ppnl-sec ppnl-last",children:[e.jsx("h2",{children:n.secTitle}),e.jsx("p",{className:"ppnl-lead",children:n.secSub}),e.jsx("div",{className:"ppnl-secs",children:nr.map(p=>e.jsx("a",{className:"ppnl-pill",href:p.href,children:t==="fr"?p.labelFr:p.label},p.id))})]})}),e.jsx(Nt,{})]})}const gj=`
3471.ppnl{font-family:var(--pp-body);
3472color:#16233A;background:#fff;min-height:100vh;display:flex;flex-direction:column}
3473.ppnl .ppf{margin-top:auto}
3474.ppnl .ppnl-wrap{max-width:1200px;margin:0 auto;padding:0 32px}
3475
3476/* ── le bloc d'encre : copie conforme de .ppd-nl (bas de /actualites) ───── */
3477.ppnl-hero{margin:44px 0 0;background:linear-gradient(175deg,#0F1D33 0%,#0F1D33 100%);
3478padding:clamp(46px,5vw,74px) clamp(26px,3.6vw,58px);text-align:center;border-radius:22px;
3479box-shadow:0 30px 72px -44px rgba(15,29,51,.85)}
3480.ppnl-eyebrow{display:block;font-family:var(--pp-body);font-size:12px;color:#5FD39B;margin:0 0 20px;font-weight:600;font-variant-numeric:tabular-nums}
3481.ppnl-hero h1{margin:0 auto;max-width:22ch;color:#fff;font-size:clamp(30px,3.8vw,48px);
3482font-weight:700;letter-spacing:-.042em;line-height:1.08;text-wrap:balance}
3483.ppnl-sub{max-width:60ch;margin:20px auto 0;color:#A7B6CC;font-size:clamp(15px,1.2vw,17.5px);
3484line-height:1.6}
3485.ppnl-form{display:flex;gap:0;justify-content:center;flex-wrap:wrap;margin:32px auto 0;max-width:620px}
3486.ppnl-form input[type=email]{flex:0 1 360px;min-width:220px;height:56px;padding:0 18px;
3487font-family:inherit;font-size:15.5px;color:#0F1D33;background:#fff;border:1px solid #24344C;
3488border-radius:10px 0 0 10px;outline:none}
3489.ppnl-form input[type=email]:focus{border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.28)}
3490.ppnl-form input[type=email]::placeholder{color:#7C8CA0}
3491.ppnl-hp{position:absolute;left:-9999px;height:0;width:0;border:0;padding:0}
3492.ppnl-form button{height:56px;padding:0 30px;border:0;border-radius:0 10px 10px 0;cursor:pointer;
3493background:#12A150;color:#fff;font-family:inherit;font-size:15.5px;font-weight:700;
3494letter-spacing:-.01em;line-height:1;
3495box-shadow:0 2px 4px rgba(18,161,80,.20),0 14px 28px -16px rgba(18,161,80,.75);
3496transition:background .18s,transform .18s}
3497.ppnl-form button:hover{background:#0E8A44;transform:translateY(-1px)}
3498.ppnl-form button[disabled]{opacity:.62;cursor:default;transform:none}
3499.ppnl-msg{min-height:22px;margin:16px 0 0;font-size:14.5px;color:#7C93AB}
3500.ppnl-msg.err{color:#F5C6C8}
3501
3502/* ce que vous recevez — copie de .nlbox .nlp-points (pages sectorielles) */
3503.ppnl-points{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;
3504margin:30px auto 0;max-width:820px;padding:0;list-style:none;text-align:left}
3505.ppnl-points li{margin:0;color:#C5D4E3;font-size:14.5px;line-height:1.5}
3506
3507/* ── les sections claires ───────────────────────────────────────────────── */
3508.ppnl-sec{padding:64px 0 0}
3509.ppnl-last{padding-bottom:88px}
3510.ppnl-sec h2{margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:700;letter-spacing:-.035em;
3511line-height:1.15;max-width:32ch}
3512.ppnl-lead{margin:12px 0 0;font-size:16px;line-height:1.6;color:#4B5E78;max-width:66ch}
3513
3514/* l'édition du jour — la seule zone qui porte des chiffres, et ils sont réels */
3515.ppnl-edbox{margin-top:22px;border:1px solid #E3E8F0;border-radius:18px;background:#F9FBFD;
3516padding:24px 26px;display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap}
3517.ppnl-eddate{font-family:var(--pp-body);font-size:12px;color:#8FA0B8;flex:0 0 auto;font-weight:600;font-variant-numeric:tabular-nums}
3518.ppnl-edmh{flex:1 1 auto;min-width:220px;font-size:17px;font-weight:600;letter-spacing:-.02em;
3519color:#16233A;font-variant-numeric:tabular-nums}
3520.ppnl-edgo{flex:0 0 auto;font-size:14px;font-weight:600;color:#0E8A44;text-decoration:none}
3521.ppnl-edgo:hover{text-decoration:underline}
3522
3523/* les 36 marchés — des pastilles, pas une liste à puces */
3524.ppnl-secs{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
3525.ppnl-pill{display:inline-block;border:1px solid #E3E8F0;border-radius:999px;padding:8px 15px;
3526font-size:13.5px;color:#0F1D33;text-decoration:none;background:#fff;
3527transition:border-color .14s ease,color .14s ease,background .14s ease}
3528.ppnl-pill:hover{border-color:#12A150;color:#0E8A44;background:#E7F6EE}
3529
3530/* en pratique */
3531.ppnl-faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 36px;
3532margin:26px 0 0}
3533.ppnl-faq dt{font-size:14.5px;font-weight:700;color:#16233A;letter-spacing:-.015em}
3534.ppnl-faq dd{margin:6px 0 0;font-size:14.5px;line-height:1.55;color:#4B5E78}
3535.ppnl-back{margin:40px 0 0;font-size:14px}
3536.ppnl-back a{color:#0E8A44;text-decoration:none}
3537.ppnl-back a:hover{text-decoration:underline}
3538
3539@media(max-width:760px){
3540 .ppnl .ppnl-wrap{padding:0 18px}
3541 .ppnl-hero{margin-top:26px;border-radius:18px}
3542 .ppnl-sec{padding-top:46px}
3543 .ppnl-last{padding-bottom:60px}
3544 .ppnl-form input[type=email]{flex:1 1 100%;border-radius:10px 10px 0 0}
3545 .ppnl-form button{flex:1 1 100%;border-radius:0 0 10px 10px}
3546 .ppnl-points{grid-template-columns:1fr;max-width:440px}
3547}
3548@media (prefers-reduced-motion:reduce){
3549 .ppnl *{transition:none!important}
3550}
3551`,im={fr:{title:"Le carnet de bord de Stan",sub:"Tout ce qui a fait bouger votre paramétrage — daté, avec le détail exact de ce qui a changé.",empty:"Rien n’a encore bougé. Chaque correction que vous ferez, et chaque passe automatique de la nuit, s’inscrira ici.",loading:"Lecture du carnet…",more:"Voir tout le détail",less:"Replier",today:"aujourd’hui",yesterday:"hier",sources:{popup:"Votre correction, à l’inscription",cockpit:"Vous, depuis le cockpit",edition:"Votre correction",autofix:"Mise au format automatique",evolution:"Révision hebdomadaire de Stan",veille:"Vos sources de veille",restore:"Restauration d’une version",creation:"Création de votre thèse",compte:"Votre correction, depuis votre compte","daily-email":"Vous, depuis l’email du matin","chat-sourced":"Vous, depuis le chat","chat-qualified":"Vous, depuis le chat",worldmap:"Vous, depuis le cockpit"},kinds:{pouce:"Votre avis",note:"Votre note",these:"Paramétrage",veille:"Veille"}},en:{title:"Stan’s logbook",sub:"Everything that changed your setup — dated, with exactly what moved.",empty:"Nothing has moved yet. Every correction you make, and every nightly pass, will be recorded here.",loading:"Reading the logbook…",more:"See the full detail",less:"Collapse",today:"today",yesterday:"yesterday",sources:{popup:"Your correction, at signup",cockpit:"You, from the cockpit",edition:"Your correction",autofix:"Automatic formatting pass",evolution:"Stan’s weekly revision",veille:"Your monitoring sources",restore:"Version restored",creation:"Your thesis was created",compte:"Your correction, from your account","daily-email":"You, from the morning email","chat-sourced":"You, from the chat","chat-qualified":"You, from the chat",worldmap:"You, from the cockpit"},kinds:{pouce:"Your call",note:"Your note",these:"Setup",veille:"Monitoring"}}};function fj(t,n,r){if(!t)return"";const i=new Date(t*1e3),s=new Date,a=l=>`${l.getFullYear()}-${l.getMonth()}-${l.getDate()}`,o=i.toLocaleTimeString(n==="fr"?"fr-FR":"en-GB",{hour:"2-digit",minute:"2-digit"});if(a(i)===a(s))return`${r.today} · ${o}`;const c=new Date(s.getTime()-864e5);return a(i)===a(c)?`${r.yesterday} · ${o}`:`${i.toLocaleDateString(n==="fr"?"fr-FR":"en-GB",{day:"numeric",month:"short"})} · ${o}`}function xj({fund:t,lang:n="fr",limit:r=40,compact:i=!1}){const s=im[n]||im.fr,[a,o]=m.useState(null),[c,l]=m.useState({});return m.useEffect(()=>{let d=!0;if(!t){o([]);return}return(async()=>{try{const u=await(await fetch(`${_e}/stan/journal?fund=${encodeURIComponent(t)}&limit=${r}`)).json();d&&o(Array.isArray(u==null?void 0:u.events)?u.events:[])}catch{d&&o([])}})(),()=>{d=!1}},[t,r]),e.jsxs("div",{className:`pp-sj${i?" compact":""}`,children:[e.jsx("style",{children:Lj}),e.jsx("p",{className:"pp-sj-h",children:s.title}),e.jsx("p",{className:"pp-sj-sub",children:s.sub}),a===null?e.jsx("p",{className:"pp-sj-empty",children:s.loading}):a.length===0?e.jsx("p",{className:"pp-sj-empty",children:s.empty}):e.jsx("ol",{className:"pp-sj-list",children:a.map((d,p)=>{const u=d.lines||[],g=!!c[p],f=g?u:u.slice(0,2),L=d.source==="autofix"||d.source==="veille",v=d.source==="evolution";return e.jsxs("li",{className:`pp-sj-ev${L?" auto":""}${v?" majeur":""}`,children:[e.jsx("span",{className:"pp-sj-dot","aria-hidden":!0}),e.jsxs("div",{className:"pp-sj-body",children:[e.jsxs("p",{className:"pp-sj-meta",children:[e.jsx("span",{className:"pp-sj-when",children:fj(d.ts,n,s)}),e.jsx("span",{className:"pp-sj-src",children:s.sources[d.source]||d.source}),!!s.kinds[d.kind]&&d.kind!=="these"&&e.jsx("span",{className:"pp-sj-tag",children:s.kinds[d.kind]})]}),d.summary&&e.jsx("p",{className:"pp-sj-sum",children:d.summary}),!!f.length&&e.jsx("ul",{className:"pp-sj-diff",children:f.map(y=>e.jsx("li",{children:y},y))}),u.length>2&&e.jsx("button",{type:"button",className:"pp-sj-more",onClick:()=>l(y=>({...y,[p]:!y[p]})),children:g?s.less:`${s.more} (${u.length})`})]})]},`${d.ts}-${p}`)})})]})}const Lj=`
3552.pp-sj { font-family: var(--pp-body); }
3553.pp-sj-h { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0F1D33; }
3554.pp-sj-sub { margin: 0 0 16px; font-size: 12.5px; line-height: 1.5; color: #4B5E78; }
3555.pp-sj-empty {
3556  margin: 0; padding: 14px 16px; border-radius: 10px;
3557  background: #F9FBFD; border: 1px dashed #C9D4E2;
3558  font-size: 12.5px; line-height: 1.55; color: #4B5E78;
3559}
3560.pp-sj-list {
3561  list-style: none; margin: 0; padding: 0 0 0 6px;
3562  border-left: 2px solid #E3E8F0; margin-left: 6px;
3563}
3564.pp-sj-ev { position: relative; padding: 0 0 16px 20px; }
3565.pp-sj.compact .pp-sj-ev { padding-bottom: 12px; }
3566.pp-sj-ev:last-child { padding-bottom: 2px; }
3567.pp-sj-dot {
3568  position: absolute; left: -1px; top: 6px;
3569  width: 7px; height: 7px; border-radius: 999px;
3570  background: #12A150; border: 2px solid #12A150; box-sizing: border-box;
3571}
3572/* Une passe AUTOMATIQUE se distingue d'une décision humaine : le dirigeant doit
3573   voir d'un coup d'œil ce qu'il a décidé lui-même. */
3574.pp-sj-ev.auto .pp-sj-dot { background: #fff; border-color: #8FA0B8; }
3575/* La révision hebdomadaire est automatique MAIS stratégique : elle ne doit pas
3576   se noyer parmi les reformatages. */
3577.pp-sj-ev.majeur .pp-sj-dot { background: #E0A81E; border-color: #E0A81E; }
3578.pp-sj-ev.majeur .pp-sj-src { color: #96690E; }
3579.pp-sj-body { min-width: 0; }
3580.pp-sj-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin: 0 0 3px; }
3581.pp-sj-when {
3582  font-family: var(--pp-body);
3583  font-size: 11px; font-variant-numeric: tabular-nums; color: #8FA0B8;
3584}
3585.pp-sj-src { font-size: 12.5px; font-weight: 700; color: #0F1D33; }
3586.pp-sj-ev.auto .pp-sj-src { color: #4B5E78; font-weight: 600; }
3587.pp-sj-tag {
3588  font-size:12px; font-weight:600;
3589  color: #0E7F3F; background: #EAF6EF; border-radius: 999px; padding: 2px 8px;
3590}
3591.pp-sj-sum { margin: 0 0 5px; font-size: 13px; line-height: 1.5; color: #16233A; overflow-wrap: anywhere; }
3592.pp-sj-diff { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
3593.pp-sj-diff li {
3594  position: relative; padding: 6px 10px 6px 22px; border-radius: 8px;
3595  background: #F9FBFD; font-size: 12.5px; line-height: 1.5; color: #4B5E78;
3596  overflow-wrap: anywhere;
3597}
3598.pp-sj-diff li::before {
3599  content: "→"; position: absolute; left: 9px; top: 6px; color: #12A150; font-weight: 700;
3600}
3601.pp-sj-more {
3602  margin-top: 6px; padding: 0; background: none; border: 0; cursor: pointer;
3603  font-family: inherit; font-size: 12px; font-weight: 600; color: #0E7F3F;
3604  text-decoration: underline; text-underline-offset: 2px;
3605}
3606`,sm=t=>(Array.isArray(t)?t:[]).map(n=>String(n??"").trim()).filter(Boolean);function vj(t){if(!t||typeof t!="object"||Array.isArray(t))return null;const n=t,r=sm(n.chips),i=sm(n.more);return!r.length&&!i.length?null:{chips:r,more:i,note:typeof n.note=="string"?n.note.trim():"",shared:!!n.shared,example:!!n.example}}function am(t,n){const r=(t||{})[n]??(t||{})[`${n}_engine`];return vj(r)}function Bw(t,n=8){return t?[...t.chips,...t.more].slice(0,n).join(" · "):""}const bj=[{label:"✨ Diagnostiquer",ask:"Diagnostiquer ma thèse",instruction:"Diagnostique ma thèse à partir de mes résultats récents. Propose les 3 corrections les plus utiles, en langage clair, prêtes à appliquer."},{label:"➕ Société de référence",ask:"Ajouter une société de référence",instruction:"Propose-moi LE meilleur gold anchor à ajouter ou changer pour l'angle qui en a le plus besoin. Société concrète, une phrase de pourquoi."},{label:"➕ Concurrent",ask:"Ajouter un concurrent",instruction:"Propose une société de référence pertinente à ajouter aux competitor_anchors de l'angle le plus adapté."},{label:"➕ Secteur",ask:"Ajouter un secteur",instruction:"Propose un mot-clé sectoriel concret à ajouter aux sectors_plain de l'angle le plus adapté."},{label:"🛑 Exclure",ask:"Ajouter une exclusion",instruction:"Propose UNE clause d'exclusion (reject_signal, ≤8 mots) pour couper un bruit récurrent."},{label:"✂️ Simplifier",ask:"Simplifier la thèse",instruction:"Identifie LA clause trop large qui me fait rater des deals, et propose de la retirer."},{label:"➕ Nouvel angle",ask:"Ajouter un angle",instruction:"Propose un nouvel angle complet et cohérent avec ma thèse. Explique en 2 phrases avant les opérations."}];function yj(t){var s,a,o,c;if(!t)return[];const n=new Set([...Object.keys(t.engines||{}),...Object.keys(t.params||{}).map(l=>l.replace(/_engine$/,""))]),r=new Set,i=[];for(const l of n){const d=l.replace(/_engine$/,"");if(!d||r.has(d))continue;r.add(d);const p=am(t.params,d)||am(t.params,l),u=Number(((c=(o=((s=t.engines)==null?void 0:s[l])||((a=t.engines)==null?void 0:a[d]))==null?void 0:o.summary)==null?void 0:c.sourced)||0);i.push({key:d,sourced:u,chips:p==null?void 0:p.chips,more:p==null?void 0:p.more,note:p==null?void 0:p.note})}return i.sort((l,d)=>(d.sourced||0)-(l.sourced||0)),i}function jj(t,n){if(!t)return"";const r=new Date(t);return Number.isNaN(r.getTime())?t.slice(0,10):r.toLocaleDateString(n?"fr-FR":"en-GB",{day:"numeric",month:"short"})}function wj({fund:t,email:n,fr:r}){const[i,s]=m.useState(null),[a,o]=m.useState(""),[c,l]=m.useState(""),[d,p]=m.useState(""),[u,g]=m.useState(""),[f,L]=m.useState(!1),[v,y]=m.useState(""),[h,b]=m.useState(""),[x,A]=m.useState([]),[w,S]=m.useState(!1),[E,j]=m.useState([]),[O,k]=m.useState({yes:0,no:0}),[_,N]=m.useState(null),[I,ce]=m.useState(!1),[K,pe]=m.useState([]),ee=m.useRef(null);m.useEffect(()=>()=>{ee.current&&window.clearInterval(ee.current)},[]),m.useEffect(()=>{let M=!0;return o(""),kh(t).then(re=>
3606{if(M){if(!re){o(r?"Impossible de lire ce fonds.":"Could not load this fund.");return}s(re),l(re.email_lead||""),p((re.lang||"").toLowerCase().startsWith("en")?"en":re.lang?"fr":""),g(re.logo_url||"")}}),I2(t).then(re=>{M&&(j(re.thumbs),k(re.counts))}),ce(!1),F2(t).then(re=>{M&&(N(re),ce(!0))}),O2(t).then(re=>{M&&pe(yj(re))}),()=>{M=!1}},[t,r]);async function P(){if(f)return;L(!0),y("");const M=await P2(n,t,{email_lead:c.trim(),lang:d||"fr",logo_url:u.trim()});L(!1),y(M.ok?r?"✓ Logo, email et langue enregistrés.":"✓ Logo, email and language saved.":M.error||(r?"Enregistrement refusé.":"Save refused."))}async function D(M,re){const H=M.trim();if(!(!H||w)){S(!0),A(se=>[...se,{who:"you",text:re||H}]),b("");try{const se=await D2(n,t,H);if(!se.job_id){se.reply&&A(he=>[...he,{who:"stan",text:se.reply}]),S(!1);return}A(he=>[...he,{who:"stan",text:r?"Stan lit vos résultats et prépare une proposition — quelques minutes. Rien n’est écrit tant que vous n’acceptez pas.":"Stan is reading your results and drafting a proposal — a few minutes. Nothing is written until you accept."}]);const ie=se.job_id;ee.current&&window.clearInterval(ee.current),ee.current=window.setInterval(async()=>{const he=await Sp(ie);if(!he.done)return;ee.current&&window.clearInterval(ee.current),ee.current=null;const Le=he.clarification||he.reply||"";if(Le&&A(xe=>[...xe,{who:"stan",text:Le}]),he.applied){A(oe=>[...oe,{who:"done",text:r?"✓ Thèse mise à jour. Le sourcing de demain la lira.":"✓ Thesis updated. Tomorrow’s sourcing will read it."}]);const xe=await kh(t);xe&&s(xe)}S(!1)},6e3)}catch(se){A(ie=>[...ie,{who:"stan",text:se instanceof Error?se.message:String(se)}]),S(!1)}}}return e.jsxs("div",{className:"ppc-thesis-pilot",children:[a&&e.jsx("p",{className:"ppc-flash",style:{background:"#fdf3f3",color:"#9b1c1c"},children:a}),e.jsx("h3",{className:"ppc-h3",children:r?"Identité du fonds":"Fund identity"}),e.jsx("p",{className:"ppc-sub",style:{marginTop:0},children:r?"Affichés dans le header du chat client et les emails.":"Shown in the client chat header and emails."}),e.jsxs("div",{className:"ppc-idform",children:[e.jsxs("label",{className:"ppc-cofield",children:[e.jsx("span",{children:r?"Email du fonds (alertes + login)":"Fund email (alerts + login)"}),e.jsx("input",{type:"email",value:c,onChange:M=>l(M.target.value),placeholder:"[email protected]"})]}),e.jsxs("label",{className:"ppc-cofield",children:[e.jsx("span",{children:r?"Langue des emails et du chat client":"Language of emails and client chat"}),e.jsxs("select",{value:d,onChange:M=>p(M.target.value),children:[e.jsx("option",{value:"",children:r?"— Choisir —":"— Choose —"}),e.jsx("option",{value:"fr",children:"Français"}),e.jsx("option",{value:"en",children:"English"})]})]}),e.jsxs("label",{className:"ppc-cofield",style:{maxWidth:"100%"},children:[e.jsx("span",{children:"Logo (URL)"}),e.jsx("input",{type:"url",value:u,onChange:M=>g(M.target.value),placeholder:"https://…"})]}),u.trim().startsWith("http")&&e.jsx("img",{className:"ppc-logo-prev",src:u.trim(),alt:""}),e.jsx("button",{type:"button",className:"ppc-cta sm",disabled:f,onClick:()=>void P(),children:f?r?"Enregistrement…":"Saving…":r?"Enregistrer logo, email, langue":"Save logo, email, language"}),v&&e.jsx("p",{className:"ppc-flash",children:v})]}),e.jsx("h3",{className:"ppc-h3",children:r?"Votre thèse, telle que Stan la lit":"Your thesis, as Stan reads it"}),e.jsx("p",{className:"ppc-sub",style:{marginTop:0},children:r?"Hypothèse, angles, crible. C’est le même texte que dans l’aperçu du cockpit. Si c’est faux, corrigez-le ci-dessous : le sourcing de demain suivra.":"Hypothesis, angles, screen. Same text as in the cockpit preview. If it is off, correct it below: tomorrow’s sourcing will follow."}),I?_&&(_.lead||_.angles&&_.angles.length)?e.jsx("div",{className:"ppc-these-cockpit",children:e.jsx(ll,{criteria:_,lang:r?"fr":"en",engines:K,memo:vx(i==null?void 0:i.thesis,r)})}):e.jsx("p",{className:"ppc-sub",children:r?"La thèse n’est pas encore publiée sur votre page cibles.":"The thesis is not published on your targets page yet."}):e.jsxs("div",{className:"ppc-these-load","aria-busy":"true",children:[e.jsx("span",{className:"ppc-these-bar"}),e.jsx("p",{children:r?"Chargement de votre thèse…":"Loading your thesis…"})]}),e.jsxs("div",{className:"ppc-thumbs-table",id:"ppc-thumbs",children:[e.jsx("h3",{className:"ppc-h3",children:r?"Vos pouces — ce qui apprend à Stan":"Your thumbs — what teaches Stan"}),e.jsx("p",{className:"ppc-sub",style:{marginTop:0},children:r?"Chaque 👍 ou 👎 sur une société affine la thèse. C’est le même journal que dans le cockpit.":"Eac
3606h 👍 or 👎 on a company steers the thesis. Same journal as in the cockpit."}),e.jsxs("p",{className:"ppc-these-ang",children:["👍 ",O.yes," · 👎 ",O.no]}),E.length===0?e.jsx("p",{className:"ppc-sub",children:r?"Aucun pouce pour l’instant. Dans vos cibles, 👍/👎 sur une ligne s’inscrit ici.":"No thumbs yet. In your targets, 👍/👎 on a row will show up here."}):e.jsxs("table",{className:"ppc-thumbs",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:r?"Société":"Company"}),e.jsx("th",{children:r?"Avis":"Call"}),e.jsx("th",{children:"Date"}),e.jsx("th",{children:"Note"})]})}),e.jsx("tbody",{children:E.slice(0,40).map((M,re)=>e.jsxs("tr",{children:[e.jsx("td",{children:M.company||"—"}),e.jsx("td",{children:M.kind==="YES"?"👍":"👎"}),e.jsx("td",{children:jj(M.ts,r)}),e.jsx("td",{children:M.note||""})]},`${M.company}-${M.ts}-${re}`))})]})]}),e.jsx("h3",{className:"ppc-h3",children:r?"Corriger la thèse":"Edit the thesis"}),e.jsx("p",{className:"ppc-sub",style:{marginTop:0,maxWidth:"72ch"},children:r?"Dites ce qui cloche (un secteur à écarter, une société de référence, un angle trop large). Stan propose une correction. Rien n’est enregistré en base de données tant que vous ne validez pas. Le lendemain, le crible lit la nouvelle version.":"Say what is off (a sector to drop, a reference company, an angle that is too wide). Stan proposes an edit. Nothing is saved to the database until you accept. The next day the screen reads the new version."}),e.jsx("div",{className:"ppc-chips",children:bj.map(M=>e.jsx("button",{type:"button",className:"ppc-chip",disabled:w,title:r?`Ouvre le chat : ${M.ask}`:`Opens chat: ${M.ask}`,onClick:()=>void D(M.instruction,M.ask),children:M.label},M.label))}),e.jsxs("div",{className:"ppc-chat",children:[x.length===0&&!w&&e.jsx("p",{className:"ppc-chat-empty",children:r?"Exemple : « écarter les mutuelles 100 % France » ou cliquez un bouton ci-dessus. Stan répond ici, avec une proposition à valider.":"Example: “drop purely domestic mutuals” or click a button above. Stan replies here, with a proposal to accept."}),x.map((M,re)=>e.jsx("div",{className:`ppc-bubble ${M.who}`,children:M.text},re)),w&&e.jsx("p",{className:"ppc-sub",children:r?"Stan prépare une proposition…":"Stan is drafting a proposal…"})]}),e.jsxs("form",{className:"ppc-composer",onSubmit:M=>{M.preventDefault(),D(h)},children:[e.jsx("textarea",{rows:3,value:h,onChange:M=>b(M.target.value),placeholder:r?"Ou écrivez ici, en langage naturel : « écarter les mutuelles françaises »…":"Or write here, in plain language…",onKeyDown:M=>{M.key==="Enter"&&(M.ctrlKey||M.metaKey)&&(M.preventDefault(),D(h))}}),e.jsx("button",{type:"submit",className:"ppc-cta sm",disabled:w||h.trim().length<6,children:r?"Envoyer à Stan":"Send to Stan"})]})]})}const om={fr:{badge:"Essai gratuit · 14 jours",title:"Découvrez vos premières cibles",lead:t=>`Stan a tiré de votre mémo la stratégie de croissance externe de ${t}. Relisez-la, corrigez-la si besoin, puis lancez la recherche : chaque société de votre marché sera confrontée à votre thèse — retenue, ou écartée avec sa raison.`,steps:["Le mémo de votre société","Votre stratégie, à relire","Vos cibles, en 30 à 60 min"],exTitle:"Ce que vous recevrez",exTag:"exemple",exRows:[{ok:!0,name:"Société A",why:"coche vos critères — angle 1"},{ok:!1,name:"Société B",why:"écartée — hors de votre fourchette de taille"}
3606,{ok:!0,name:"Société C",why:"coche vos critères — angle 2"}],readK:"Ce que Stan a compris de vous",jump:"Aller au lancement ↓",loading:"Nous ouvrons votre stratégie…",deriving:"Votre mémo se termine : Stan met votre stratégie au propre. Cet écran se met à jour tout seul.",expired:"Pour lancer la recherche, confirmez votre email — un code, dix secondes.",expiredBtn:"Confirmer mon email →",error:"Votre stratégie ne s’affiche pas pour l’instant. Réessayez dans un instant, ou parlons-en.",retry:"Réessayer",fixK:"Corrigez ce qui est à côté",optional:"facultatif",chips:[{label:"L’hypothèse",seed:"Votre hypothèse est à côté : en réalité, "},{label:"Les angles",seed:"Sur les angles : "},{label:"La taille",seed:"Côté taille des cibles : "},{label:"La zone",seed:"Côté zone géographique : "}],fixPh:"Écrivez-le comme vous le diriez à votre équipe — Stan se recalibre dessus.",fixPhAnswer:"Répondez à Stan ici — (a), (b), ou vos mots.",fixSubmit:"Mettre à jour ma stratégie →",fixSending:"Stan recalibre votre stratégie…",fixApplied:"Correction appliquée — votre stratégie est à jour, à gauche.",updated:"✓ Mise à jour à l’instant",you:"Vous",goK:"Lancez la recherche",gets:["Votre page de cibles privée, remise à jour chaque matin","Chaque société jugée sur votre thèse, avec la raison écrite en clair","Vos angles corrigés à tout moment, en langage naturel","Un appel d’Alexandre pour les caler de vive voix"],phoneLabel:"Votre téléphone",phonePh:"+33 6 12 34 56 78",phoneHint:"Pour vous remettre vos cibles et caler vos angles de vive voix.",launch:"Lancer la recherche de mes cibles →",launching:"Lancement…",after:"Stan passe votre marché au crible : vos cibles retenues arrivent sous 30 à 60 minutes, sur cette page et par e-mail.",nudge:"Il nous faut un numéro pour vous remettre vos cibles — ou réservez un appel juste en dessous.",rdv:"Vous préférez en parler ? Réservez 20 minutes avec Alexandre"},en:{badge:"Free trial · 14 days",title:"Discover your first targets",lead:t=>`Stan drew ${t}'s external growth strategy from your memo. Review it, correct it if needed, then launch the search: every company in your market will be checked against your thesis — kept, or ruled out with its reason.`,steps:["Your company memo","Your strategy, to review","Your targets, in 30 to 60 min"],exTitle:"What you will get",exTag:"example",exRows:[{ok:!0,name:"Company A",why:"meets your criteria — angle 1"},{ok:!1,name:"Company B",why:"ruled out — outside your size range"},{ok:!0,name:"Company C",why:"meets your criteria — angle 2"}],readK:"What Stan understood about you",jump:"Go to launch ↓",loading:"Opening your strategy…",deriving:"Your memo is finishing: Stan is writing up your strategy. This screen updates on its own.",expired:"To launch the search, confirm your email — one code, ten seconds.",expiredBtn:"Confirm my email →",error:"Your strategy cannot be displayed right now. Try again in a moment, or let’s talk.",retry:"Retry",fixK:"Correct what is off",optional:"optional",chips:[{label:"The hypothesis",seed:"Your hypothesis is off: in fact, "},{label:"The angles",seed:"On the angles: "},{label:"The size",seed:"On target size: "},{label:"The region",seed:"On geography: "}],fixPh:"Write it as you would to your team — Stan recalibrates on it.",fixPhAnswer:"Answer Stan here — (a), (b), or your own words.",fixSubmit:"Update my strategy →",fixSending:"Stan is recalibrating your strategy…",fixApplied:"Correction applied — your strategy is up to date, on the left.",updated:"✓ Just updated",you:"You",goK:"Launch the search",gets:["Your private targets page, refreshed every morning","Every company judged on your thesis, with the reason in plain words","Your angles corrected at any time, in plain language","A call with Alexandre to tune them by voice"],phoneLabel:"Your phone number",phonePh:"+33 6 12 34 56 78",phoneHint:"So we can hand you your targets and tune your angles by voice.",launch:"Launch the search for my targets →",launching:"Launching…",after:"Stan screens your market: your kept targets arrive within 30 to 60 minutes, on this page and by email.",nudge:"We need a number to hand you your targets — or book a call just below.",rdv:"Prefer to talk? Book 20 minutes with Alexandre"}};function sc(t){const n=t instanceof Error?t.message:String(t);return/expir|invalide|401|Reconnectez|non vérifié|not verified/i.test(n)}function kj({fund:t,memberSession:n,lang:r,onLaunched:i,onNeedLogin:s,onRdv:a}){const o=om[r]||om.fr,[c,l]=m.useState(n?"loading":"expired"),[d,p]=m.useState(null),[u,g]=m.useState(!1),[f,L]=m.useState(""),[v,y]=m.useState([]),[h,b]=m.useState(!1),[x,A]=m.useState(""),[w,S]=m.useState(!1),[E,j]=m.useState(!1),[O,k]=m.useState(""),_=m.useRef(null),N=m.useRef(null),I=m.useRef(null),ce=m.useRef(null),K=(x.match(/\d/g)||[]).length>=8;function pe(){_.current&&window.clearInterval(_.current),_.current=null}function ee(H=!1){if(!n){l("expired");return}pe();let se=0;const ie=async()=>{se+=1;try{const he=await gx(n,H);if(he.state==="ready"&&he.criteria&&(he.criteria.lead||se>5)){pe(),p(he.criteria),l("ready");return}l(Le=>Le==="ready"?Le:"deriving")}catch(he){pe(),l(sc(he)?"expired":"error")}se>60&&pe()};ie(),_.current=window.setInterval(()=>void ie(),6e3)}m.useEffect(()=>(ee(!1),()=>{pe(),N.current&&window.clearInterval(N.current)}),[t,n]),m.useEffect(()=>{ce.current&&(ce.current.scrollTop=ce.current.scrollHeight)},[v,h]);async function P(H){H.preventDefault();const se=f.trim();if(!(!se||h)&&!(!v.some(ie=>ie.who==="stan")&&se.length<6)){b(!0),k(""),y(ie=>[...ie,{who:"you",text:se}
3606]),L("");try{const ie=await xx(n,se);if(!ie.job_id){const xe=wh(ie);xe&&y(oe=>[...oe,{who:"stan",text:xe}]),b(!1);return}const he=ie.job_id,Le=window.setInterval(async()=>{try{const xe=await Sp(he);if(!xe.done)return;window.clearInterval(Le);const oe=wh(xe);oe&&y(z=>[...z,{who:"stan",text:oe}]),xe.applied&&(y(z=>[...z,{who:"done",text:o.fixApplied}]),g(!0),ee(!0)),b(!1)}catch{}},6e3);N.current=Le}catch(ie){sc(ie)&&l("expired"),k(ie instanceof Error?ie.message:String(ie)),b(!1)}}}async function D(){var H;if(!(E||h)){if(!K){S(!0),(H=I.current)==null||H.focus();return}j(!0),k("");try{await fx(n,r,x),i()}catch(se){sc(se)?l("expired"):k(se instanceof Error?se.message:String(se)),j(!1)}}}const M=t,re=c==="ready";return e.jsxs("section",{className:"ppdt",id:"decouvrir","aria-labelledby":"ppdt-title",children:[e.jsx("style",{children:Aj}),e.jsxs("div",{className:"ppdt-head",children:[e.jsxs("div",{className:"ppdt-head-txt",children:[e.jsx("span",{className:"ppdt-badge",children:o.badge}),e.jsx("h2",{id:"ppdt-title",className:"ppdt-title",children:o.title}),e.jsx("p",{className:"ppdt-lead",children:o.lead(M)}),e.jsx("ol",{className:"ppdt-steps","aria-label":r==="fr"?"Votre parcours":"Your journey",children:o.steps.map((H,se)=>e.jsxs("li",{className:se===0?"done":se===1?"now":"todo",children:[e.jsx("b",{"aria-hidden":!0,children:se===0?"✓":se+1}),e.jsx("span",{children:H})]},H))}),e.jsx("a",{className:"ppdt-jump",href:"#ppdt-go",children:o.jump})]}),e.jsxs("div",{className:"ppdt-ex","aria-hidden":!0,children:[e.jsxs("div",{className:"ppdt-ex-h",children:[e.jsx("span",{children:o.exTitle}),e.jsx("em",{children:o.exTag})]}),o.exRows.map(H=>e.jsxs("div",{className:`ppdt-ex-row ${H.ok?"ok":"ko"}`,children:[e.jsx("span",{className:"ppdt-ex-dot",children:H.ok?"✓":"✕"}),e.jsx("span",{className:"ppdt-ex-name",children:H.name}),e.jsx("span",{className:"ppdt-ex-why",children:H.why})]},H.name))]})]}),e.jsxs("div",{className:"ppdt-grid",children:[e.jsxs("div",{className:"ppdt-card ppdt-read",children:[e.jsxs("p",{className:"ppdt-k",children:[e.jsx("b",{children:"1"}),o.readK]}),c==="ready"&&d?e.jsxs(e.Fragment,{children:[u&&e.jsx("p",{className:"ppdt-updated",children:o.updated}),e.jsx("div",{className:`ppdt-these${u?" fresh":""}`,children:e.jsx(ll,{criteria:d,lang:r,variant:"pour",exclusive:!0})})]}):c==="expired"?e.jsxs("div",{className:"ppdt-state",children:[e.jsx("p",{children:o.expired}),e.jsx("button",{type:"button",className:"ppdt-btn",onClick:s,children:o.expiredBtn})]}):c==="error"?e.jsxs("div",{className:"ppdt-state",children:[e.jsx("p",{children:o.error}),e.jsx("button",{type:"button",className:"ppdt-link",onClick:()=>{l("loading"),ee(!0)},children:o.retry})]}):e.jsxs("div",{className:"ppdt-state",children:[e.jsx("span",{className:"ppdt-bar","aria-hidden":!0}),e.jsx("p",{children:c==="deriving"?o.deriving:o.loading})]})]}),e.jsxs("aside",{className:"ppdt-side",children:[e.jsxs("form",{className:`ppdt-card ppdt-fix${re?"":" off"}`,onSubmit:P,children:[e.jsxs("p",{className:"ppdt-k",children:[e.jsx("b",{children:"2"}),o.fixK,e.jsx("em",{children:o.optional})]}),e.jsx("div",{className:"ppdt-chips",children:o.chips.map(H=>e.jsx("button",{type:"button",className:"ppdt-chip",disabled:!re||h,onClick:()=>L(se=>{const ie=se.trim(),he=o.chips.map(Le=>Le.seed.trim());return!ie||he.includes(ie)?H.seed:se.replace(/\s*$/,`
3607`)+H.seed}),children:H.label},H.label))}),!!v.length&&e.jsxs("div",{className:"ppdt-log",ref:ce,children:[v.map((H,se)=>e.jsxs("p",{className:`ppdt-msg ${H.who}`,children:[e.jsx("span",{className:"ppdt-who",children:H.who==="you"?o.you:H.who==="done"?"✓":"Stan"}),H.text]},`${se}-${H.text.slice(0,10)}`)),h&&e.jsxs("p",{className:"ppdt-msg stan pending",children:[e.jsx("span",{className:"ppdt-who",children:"Stan"}),e.jsxs("span",{className:"ppdt-dots",children:[e.jsx("i",{}),e.jsx("i",{}),e.jsx("i",{})]}),o.fixSending]})]}),e.jsx("textarea",{className:"ppdt-input ppdt-ta",rows:2,maxLength:12e3,placeholder:v.some(H=>H.who==="stan")?o.fixPhAnswer:o.fixPh,value:f,onChange:H=>L(H.target.value),disabled:!re||h}),e.jsx("button",{type:"submit",className:"ppdt-link",disabled:!re||h||!f.trim(),children:h?o.fixSending:o.fixSubmit})]}),e.jsxs("div",{id:"ppdt-go",className:`ppdt-card ppdt-go${re?"":" off"}`,children:[e.jsxs("p",{className:"ppdt-k",children:[e.jsx("b",{children:"3"}),o.goK]}),e.jsx("ul",{className:"ppdt-gets",children:o.gets.map(H=>e.jsx("li",{children:H},H))}),e.jsxs("label",{className:"ppdt-lbl",children:[o.phoneLabel,e.jsx("input",{ref:I,type:"tel",inputMode:"tel",autoComplete:"tel",placeholder:o.phonePh,value:x,onChange:H=>{A(H.target.value),S(!1)},disabled:!re||E,className:`ppdt-input${w?" nudge":""}`}),e.jsx("span",{className:"ppdt-fieldhint",children:o.phoneHint})]}),e.jsx("button",{type:"button",className:"ppdt-launch",disabled:!re||E||h,onClick:()=>void D(),children:E?o.launching:o.launch}),e.jsx("p",{className:`ppdt-after${w?" warn":""}`,children:w?o.nudge:o.after}),O&&e.jsx("p",{className:"ppdt-err",role:"alert",children:O}),e.jsxs("button",{type:"button",className:"ppdt-rdv",onClick:a,children:["📅 ",o.rdv]})]})]})]})]})}const Aj=`
3608.ppdt{margin:26px 0 6px;border:1px solid #CFE8DA;border-radius:18px;overflow:hidden;
3609background:#fff;box-shadow:0 18px 44px -28px rgba(14,138,68,.45)}
3610.ppdt *{box-sizing:border-box}
3611.ppdt-head{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:28px;align-items:center;
3612padding:28px 30px 26px;background:linear-gradient(135deg,#F1FAF4 0%,#E6F6EC 55%,#F7FBF9 100%);
3613border-bottom:1px solid #DDEFE4}
3614.ppdt-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;
3615background:#12A150;color:#fff;font-size:12px;font-weight:700;letter-spacing:.01em}
3616.ppdt-badge::before{content:"";width:6px;height:6px;border-radius:999px;background:#fff;opacity:.9}
3617.ppdt-title{margin:12px 0 0;font-size:clamp(24px,2.8vw,34px);line-height:1.1;letter-spacing:-.035em;
3618font-weight:800;color:#0F1D33}
3619.ppdt-lead{margin:12px 0 0;font-size:15px;line-height:1.62;color:#3D4F68;max-width:60ch}
3620.ppdt-steps{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
3621.ppdt-steps li{display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 6px;border-radius:999px;
3622background:#fff;border:1px solid #DDE7EF;font-size:12.5px;color:#8FA0B8;font-weight:600;white-space:nowrap}
3623.ppdt-jump{display:none;margin-top:14px;font-size:13.5px;font-weight:700;color:#0E8A44;text-decoration:none}
3624.ppdt-go{scroll-margin-top:84px}
3625.ppdt-steps b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
3626border-radius:999px;background:#EEF2F6;color:#8FA0B8;font-size:12px}
3627.ppdt-steps li.done{color:#0E8A44;border-color:#CFE8DA}
3628.ppdt-steps li.done b{background:#12A150;color:#fff}
3629.ppdt-steps li.now{color:#0F1D33;border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.12)}
3630.ppdt-steps li.now b{background:#0F1D33;color:#fff}
3631.ppdt-ex{background:#fff;border:1px solid #DDEFE4;border-radius:14px;padding:14px 14px 8px;
3632box-shadow:0 10px 26px -20px rgba(15,29,51,.35)}
3633.ppdt-ex-h{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 8px}
3634.ppdt-ex-h span{font-size:12px;font-weight:700;color:#0F1D33}
3635.ppdt-ex-h em{font-style:normal;font-size:11px;color:#8FA0B8}
3636.ppdt-ex-row{display:grid;grid-template-columns:22px auto 1fr;gap:8px;align-items:center;
3637padding:9px 2px;border-top:1px solid #EEF2F6;font-size:12.5px}
3638.ppdt-ex-row:first-of-type{border-top:0}
3639.ppdt-ex-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
3640border-radius:6px;font-size:11px;font-weight:800;color:#fff;background:#12A150}
3641.ppdt-ex-row.ko .ppdt-ex-dot{background:#C0353A}
3642.ppdt-ex-name{font-weight:700;color:#0F1D33;filter:blur(.4px)}
3643.ppdt-ex-why{color:#4B5E78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
3644.ppdt-ex-row.ko .ppdt-ex-why{color:#9B1C1C}
3645.ppdt-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:18px;padding:22px 30px 28px}
3646.ppdt-card{border:1px solid #E3E8F0;border-radius:14px;padding:18px 18px 16px;background:#fff}
3647.ppdt-card.off{opacity:.55}
3648.ppdt-side{display:flex;flex-direction:column;gap:14px;align-self:start;position:sticky;top:84px}
3649.ppdt-k{display:flex;align-items:center;gap:9px;margin:0 0 10px;font-size:14px;font-weight:750;color:#0F1D33}
3650.ppdt-k b{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;
3651border-radius:8px;background:#0F1D33;color:#fff;font-size:12px}
3652.ppdt-k em{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:600;color:#8FA0B8}
3653.ppdt-updated{margin:0 0 10px;font-size:12.5px;font-weight:700;color:#0E8A44}
3654.ppdt-these{border-radius:10px;transition:box-shadow .6s ease}
3655.ppdt-these.fresh{box-shadow:0 0 0 3px rgba(18,161,80,.18)}
3656.ppdt-these .pp-th{font-size:13.5px}
3657.ppdt-these .pp-th-lead{font-size:14.5px;line-height:1.6}
3658.ppdt-these .pp-th-h{font-size:12.5px}
3659.ppdt-state{padding:22px 4px 8px}
3660.ppdt-state p{margin:12px 0 0;font-size:14px;line-height:1.55;color:#4B5E78}
3661.ppdt-bar{display:block;height:6px;border-radius:99px;background:#E3E8F0;overflow:hidden;position:relative}
3662.ppdt-bar::after{content:"";position:absolute;inset:0;width:40%;background:#12A150;border-radius:99px;
3663animation:ppdtLoad 1.1s ease-in-out infinite}
3664@keyframes ppdtLoad{0%{transform:translateX(-20%)}100%{transform:translateX(250%)}}
3665.ppdt-chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
3666.ppdt-chip{font-size:12px;font-weight:650;color:#0E8A44;background:#F3FBF6;border:1px solid #BFE6CF;
3667border-radius:999px;padding:6px 11px;cursor:pointer}
3668.ppdt-chip:hover:not(:disabled){background:#E7F6EE}
3669.ppdt-chip:disabled{opacity:.55;cursor:default}
3670.ppdt-log{display:flex;flex-direction:column;gap:7px;max-height:220px;overflow:auto;margin:0 0 10px}
3671.ppdt-msg{margin:0;font-size:13px;line-height:1.5;padding:9px 11px;border-radius:12px;max-width:94%;white-space:pre-wrap}
3672.ppdt-msg.you{align-self:flex-end;background:#E7F6EE;color:#16233A}
3673.ppdt-msg.stan{align-self:flex-start;background:#F9FBFD;border:1px solid #E3E8F0;color:#16233A}
3674.ppdt-msg.done{align-self:flex-start;background:#E7F6EE;color:#0E8A44;font-weight:650}
3675.ppdt-who{display:block;font-size:11px;font-weight:700;color:#8FA0B8;margin-bottom:2px}
3676.ppdt-dots{display:inline-flex;gap:3px;margin-right:6px;vertical-align:middle}
3677.ppdt-dots i{width:5px;height:5px;border-radius:99px;background:#12A150;animation:ppdtDot 1s infinite ease-in-out}
3678.ppdt-dots i:nth-child(2){animation-delay:.15s}
3678.ppdt-dots i:nth-child(3){animation-delay:.3s}
3679@keyframes ppdtDot{0%,100%{opacity:.25}50%{opacity:1}}
3680.ppdt-input{width:100%;border:1px solid #E3E8F0;border-radius:10px;padding:10px 12px;font-size:14px;
3681font-family:inherit;color:#16233A;background:#fff}
3682.ppdt-input:focus{outline:none;border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.12)}
3683.ppdt-input.nudge{border-color:#E0A100;box-shadow:0 0 0 3px rgba(224,161,0,.18)}
3684.ppdt-ta{resize:vertical;line-height:1.5}
3685.ppdt-link{margin-top:8px;background:none;border:0;padding:0;font-size:13.5px;font-weight:700;
3686color:#0E8A44;cursor:pointer;text-align:left;font-family:inherit}
3687.ppdt-link:hover:not(:disabled){text-decoration:underline}
3688.ppdt-link:disabled{opacity:.5;cursor:default}
3689.ppdt-go{border-color:#BFE6CF;background:linear-gradient(180deg,#FFFFFF 0%,#F6FCF8 100%)}
3690.ppdt-gets{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:7px}
3691.ppdt-gets li{position:relative;padding-left:24px;font-size:13.5px;line-height:1.45;color:#16233A}
3692.ppdt-gets li::before{content:"✓";position:absolute;left:0;top:0;width:17px;height:17px;border-radius:5px;
3693background:#E7F6EE;color:#0E8A44;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
3694.ppdt-lbl{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:650;color:#4B5E78}
3695.ppdt-fieldhint{font-size:12px;font-weight:400;color:#8FA0B8}
3696.ppdt-launch{width:100%;margin-top:12px;border:0;border-radius:12px;padding:15px 18px;background:#12A150;
3697color:#fff;font-size:15.5px;font-weight:800;cursor:pointer;font-family:inherit;letter-spacing:-.01em;
3698box-shadow:0 10px 22px -12px rgba(18,161,80,.75);transition:transform .12s ease,background .12s ease}
3699.ppdt-launch:hover:not(:disabled){background:#0E8A44;transform:translateY(-1px)}
3700.ppdt-launch:disabled{opacity:.6;cursor:progress;transform:none}
3701.ppdt-after{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:#4B5E78}
3702.ppdt-after.warn{color:#9A6700;font-weight:600}
3703.ppdt-err{margin:10px 0 0;padding:9px 11px;border-radius:8px;background:#FDF3F3;color:#9B1C1C;font-size:13px}
3704.ppdt-rdv{margin-top:12px;width:100%;background:#fff;border:1px solid #E3E8F0;border-radius:10px;padding:10px 12px;
3705font-size:13px;font-weight:650;color:#16233A;cursor:pointer;font-family:inherit}
3706.ppdt-rdv:hover{border-color:#12A150;color:#0E8A44}
3707.ppdt-btn{margin-top:12px;border:0;border-radius:10px;padding:11px 16px;background:#0F1D33;color:#fff;
3708font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
3709@media (max-width:900px){
3710  .ppdt-head{grid-template-columns:1fr;padding:22px 18px}
3711  .ppdt-grid{grid-template-columns:1fr;padding:16px 16px 20px}
3712  .ppdt-side{position:static}
3713  .ppdt-jump{display:inline-flex}
3714  .ppdt-steps li{white-space:normal}
3715}
3716@media (prefers-reduced-motion: reduce){
3717  .ppdt-bar::after,.ppdt-dots i{animation:none}
3718  .ppdt-launch{transition:none}
3719}
3720`,yd="pp_decouvrir";function Sj(){try{const t=new URLSearchParams(window.location.search).get("decouvrir")||"";return t.trim()?(sessionStorage.setItem(yd,t.trim()),t.trim()):(sessionStorage.getItem(yd)||"").trim()}catch{return""}}function lm(){try{sessionStorage.removeItem(yd)}catch{}}const cm=t=>(t||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),Ej="https://alexandre-79537--airtable-bridge-fastapi-app.modal.run",Nj="tblEgYhLpdBdcpKrw";async function Cj(t){var c;const n=encodeURIComponent(`LOWER({email_lead})="${t.toLowerCase().trim()}"`),r=`${Ej}/at/main/${Nj}?filterByFormula=${n}&fields%5B%5D=fund_type`,i=await fetch(r);if(!i.ok)return[];const s=await i.json(),a=new Set,o=[];for(const l of s.records||[]){const d=(((c=l.fields)==null?void 0:c.fund_type)||"").trim();d&&!a.has(d)&&(a.add(d),o.push(d))}return o.sort((l,d)=>l.localeCompare(d,"fr",{sensitivity:"base"})),o}function _j(t){const n=Math.max(0,Math.floor(t));return`${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}const dm=[{k:"these",fr:"Votre thèse est verrouillée",en:"Your thesis is locked in",whyFr:"Vos angles deviennent les critères de tri appliqués à chaque société.",whyEn:"Your angles become the criteria applied to every company."},{k:"sourcing",fr:"Recherche de vos cibles",en:"Searching for your targets",whyFr:"Stan balaie votre marché angle par angle, puis confronte chaque société à votre crible : retenue, ou écartée avec sa raison.",whyEn:"Stan sweeps your market angle by angle, then checks every company against your screen: kept, or ruled out with its reason."},{k:"publication",fr:"Publication de votre page",en:"Publishing your page",whyFr:"Vos cibles retenues prennent leur adresse définitive — vous y reviendrez chaque jour.",whyEn:"Your kept targets get their permanent address — you will c
3720ome back to it daily."}],Tj=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.fr","live.com","live.fr","yahoo.com","yahoo.fr","icloud.com","me.com","free.fr","orange.fr","wanadoo.fr","sfr.fr","laposte.net","protonmail.com","proton.me","gmx.com","aol.com","msn.com"]);function pm(t){const n=(t.split("@")[1]||"").trim().toLowerCase();return!n||Tj.has(n)?"":n}function qj(){try{return JSON.parse(localStorage.getItem("proplace_nl_prefs")||"{}")||{}}catch{return{}}}function um(t){try{localStorage.setItem("proplace_nl_prefs",JSON.stringify(t))}catch{}}function Fj(t,n,r){return rn(t)?r==="fr"?"/fr/carte#alertes":"/carte#alertes":`${n?pa(t):Tn(t)}#alertes`}function Oj(){const{lang:t}=ae(),n=new URLSearchParams(window.location.search),r=n.get("channel")||"",i=n.get("return_origin")||"https://analysis.proplace.co",s=["https://analysis.proplace.co","https://proplace.co","https://www.proplace.co","http://localhost:5173","http://127.0.0.1:5173"],a=/^[a-f0-9]{32}$/.test(r)&&s.includes(i),o=Ge(),c=n.get("fund")||(o==null?void 0:o.fund_type)||"",[l,d]=m.useState(!0),[p,u]=m.useState(!1),g=m.useRef(!1);function f(v,y=Ge()){!a||window.parent===window||window.parent.postMessage({type:v,channel:r,...v==="proplace:journey:authenticated"&&(y!=null&&y.member_session)?{session:y.member_session,fund:y.fund_type}:{}},i)}function L(){var v;(v=Ge())!=null&&v.member_session&&(u(!0),f("proplace:journey:authenticated"))}return m.useEffect(()=>{let v=!0;if(a&&!g.current&&(g.current=!0,f("proplace:journey:login-ready")),!a||!(o!=null&&o.email)||!o.member_session||!c){d(!1);return}return Cs({email:o.email,session:o.member_session,fund_type:c}).then(y=>{if(!v||!y.session)return;const h={email:y.email||o.email,fund_type:y.fund_type||c,ts:Date.now(),member_session:y.session};ur(h),u(!0),f("proplace:journey:authenticated",h)}).catch(()=>{}).finally(()=>{v&&d(!1)}),()=>{v=!1}},[]),a?l||p?e.jsxs("section",{className:"ppjc-connection","aria-busy":"true",children:[e.jsx("style",{children:`
3721      .ppjc-connection{max-width:480px;margin:48px auto;padding:24px;color:#10263b;font:16px/1.5 system-ui}
3722      .ppjc-connection [role=status]{font-weight:600}
3723      .ppjc-connection .ppjc-progress{height:8px;overflow:hidden;border-radius:8px;background:#e3e8f0}
3724      .ppjc-connection .ppjc-progress span{display:block;width:35%;height:100%;border-radius:8px;background:#246bce;animation:ppjc-waiting 1.4s ease-in-out infinite alternate}
3725      .ppjc-connection .ppjc-note{color:#526479;font-size:14px}
3726      @keyframes ppjc-waiting{from{transform:translateX(-100%)}to{transform:translateX(285%)}}
3727      @media(prefers-reduced-motion:reduce){.ppjc-connection .ppjc-progress span{animation:none}}
3728    `}),e.jsx("p",{role:"status",children:l?t==="fr"?"Connexion à votre compte Proplace…":"Connecting to your Proplace account…":t==="fr"?"Compte confirmé. Votre dossier s’ouvre dans le mémo.":"Account confirmed. Your dossier is opening in the memo."}),e.jsx("div",{className:"ppjc-progress",role:"progressbar","aria-label":t==="fr"?l?"Vérification de votre session":"Ouverture du dossier privé":l?"Checking your session":"Opening the private dossier",children:e.jsx("span",{"aria-hidden":"true"})}),e.jsx("p",{className:"ppjc-note",children:l?t==="fr"?"Nous vérifions votre session. Cela peut prendre quelques instants ; vous pouvez patienter ici.":"We are checking your session. This may take a few moments; you can stay here.":t==="fr"?"Votre session est confirmée. Patientez pendant l’ouverture de votre dossier privé.":"Your session is confirmed. Please wait while your private dossier opens."})]}):e.jsx(Ur,{intent:"login",loginOnly:!0,preferredLoginFund:c,notice:t==="fr"?"Connectez votre compte pour ouvrir le dossier privé. Aucun mémo ni sourcing ne sera lancé.":"Connect your account to open the private dossier. No memo or sourcing will start.",onClose:()=>f("proplace:journey:cancelled"),onAuthenticated:L}):e.jsx("p",{role:"alert",children:"Lien de connexion invalide. Revenez au mémo pour ouvrir la connexion."})}function g1(){const t=typeof window>"u"?null:new URLSearchParams(window.location.search);return(t==null?void 0:t.get("journey"))==="1"&&t.get("popup")==="1"?e.jsx(Oj,{}):e.jsx(Mj,{})}function Mj(){var T;const{lang:t,localizePath:n}
3728=ae(),r=t==="fr",i=da(),s=Ge(),[a,o]=m.useState(!1),[c,l]=m.useState(!1),[d,p]=m.useState(null),[u,g]=m.useState(!1),[f,L]=m.useState(0),[v,y]=m.useState(qj),[h,b]=m.useState([]),[x,A]=m.useState(""),[w,S]=m.useState(null),[E,j]=m.useState(0),[O,k]=m.useState(!1),[_,N]=m.useState(""),[I,ce]=m.useState(null),[K,pe]=m.useState(0),[ee,P]=m.useState(""),[D]=m.useState(Sj),M=m.useRef(!1),re=m.useRef(!1),H=(d==null?void 0:d.plan)||"free";ht({en:{title:"Settings · Proplace",description:"Account, newsletters, subscription."},fr:{title:"Paramètres · Proplace",description:"Compte, newsletters, abonnement."}}),m.useEffect(()=>{const C=new URLSearchParams(window.location.search);if(C.get("journey")!=="1"||re.current)return;re.current=!0;const q=C.get("fund")||(s==null?void 0:s.fund_type)||"",G=()=>{P(q),o(!0)};if(!(s!=null&&s.email)||!s.member_session||!q){G();return}Cs({email:s.email,session:s.member_session,fund_type:q}).then(F=>{ur({email:F.email||s.email,fund_type:F.fund_type||q,ts:Date.now(),member_session:F.session}),C.delete("journey"),C.delete("fund"),window.history.replaceState(window.history.state,"",window.location.pathname+(C.toString()?"?"+C.toString():"")+window.location.hash),A(r?"Accès au dossier confirmé. Revenez au mémo et cliquez sur « Reprendre avec mon compte ».":"File access confirmed. Return to the memo and click “Continue with my account”.")}).catch(G)},[s==null?void 0:s.email,s==null?void 0:s.fund_type,s==null?void 0:s.member_session,r]),m.useEffect(()=>{if(!(s!=null&&s.email))return;let C=!0;async function q(){try{const G=new URLSearchParams(window.location.search),F=G.get("session_id");if(F){const R=await(await fetch(`${_e}/inbound/credits/confirm`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:F})})).json().catch(()=>({}));R!=null&&R.ok&&A(r?R.plan?`Plan ${R.plan} activé — pipeline débloqué.`:`Paiement confirmé — +${R.credits||""} crédits.`:R.plan?`Plan ${R.plan} activated — pipeline unlocked.`:`Payment confirmed — +${R.credits||""} credits.`);const Q=new URL(window.location.href);Q.searchParams.delete("session_id"),Q.searchParams.delete("credits"),Q.searchParams.delete("plan"),window.history.replaceState(null,"",Q.pathname+Q.search)}else if(G.get("credits")==="cancel"||G.get("plan")==="cancel"){A
3728(r?"Paiement annulé.":"Payment cancelled.");const J=new URL(window.location.href);J.searchParams.delete("credits"),J.searchParams.delete("plan"),window.history.replaceState(null,"",J.pathname+J.search)}}catch{}try{const F=await(await fetch(`${_e}/inbound/credits`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email})})).json();if(!C)return;p(F),g(!1)}catch{C&&g(!0)}try{const G=await Cj(s.email);C&&b(G.length?G:[s.fund_type])}catch{C&&b([s.fund_type])}try{const F=await(await fetch(`${_e}/newsletter/status`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email})})).json();F!=null&&F.ok&&F.prefs&&typeof F.prefs=="object"&&C&&y(J=>{const R={...J,...F.prefs};return um(R),R})}catch{}}return q(),()=>{C=!1}},[s==null?void 0:s.fund_type,s==null?void 0:s.email,f,r]),m.useEffect(()=>{if(!(!D||M.current)){if(!s){P(D),o(!0);return}if(cm(D)===cm(s.fund_type)){lm();return}M.current=!0,(async()=>{try{if(!s.member_session)throw new Error("no session");const C=await Cs({email:s.email,session:s.member_session,fund_type:D});ur({email:s.email,fund_type:C.fund_type||D,ts:Date.now(),member_session:C.session}),window.location.reload()}catch{P(D),o(!0)}})()}},[D,s==null?void 0:s.email,s==null?void 0:s.fund_type,s==null?void 0:s.member_session]),m.useEffect(()=>{const C=(s==null?void 0:s.fund_type)||"";if(!C||rn(C))return;let q=!0;return ce(null),q2(C).then(G=>{q&&ce(G)}),()=>{q=!1}},[s==null?void 0:s.fund_type,K]);const[se,ie]=m.useState(0);m.useEffect(()=>{const C=s==null?void 0:s.email;if(!C)return;let q=!0,G;async function F(){try{const R=await(await fetch(`${_e}/inbound/onboard-status`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:C,fund:(s==null?void 0:s.fund_type)||""})})).json();if(!q)return;if(R.status==="absent"||R.status==="unknown"){if(se&&Date.now()/1e3-se<600){G=setTimeout(F,5e3);return}S(null);return}S(R),R.status==="running"&&(G=setTimeout(F,2e4))}catch{}}return F(),()=>{q=!1,clearTimeout(G)}},[s==null?void 0:s.email,s==null?void 0:s.fund_type,K,se]);async function he(C){const q=!v[C];if(y(J=>{const R={...J,[C]:q};return um(R),R}),!(s!=null&&s.email))return;const G=C==="general"?"general":C,F=q?"/newsletter/subscribe":"/newsletter/unsubscribe";try{await fetch(`${_e}${F}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email,sector:G,website:""})})}catch{}}async function Le(C){if(s!=null&&s.email)try{const q=window.location.origin+(r?"/fr/compte":"/compte"),F=await(await fetch(`${_e}/inbound/credits/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email,lookup_key:C,success_url:`${q}?credits=ok`,cancel_url:`${q}?credits=cancel`})})).json();if(F.url){window.location.href=F.url;return}throw new Error(F.detail||F.error||"Checkout unavailable")}catch(q){A(q instanceof Error?q.message:String(q))}}async function xe(C,q="year"){if(!(s!=null&&s.email)||O)return;const G=_.trim()||(rn(s.fund_type)?pm(s.email):s.fund_type);if(!G){A(r?"Indiquez le nom de votre société (ou un site) pour activer le plan.":"Enter your company name (or website) to activate the plan.");return}k(!0);try{const F=window.location.origin+(r?"/fr/compte":"/compte"),R=await(await fetch(`${_e}/inbound/credits/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email,plan:C,company:G,fund_type:s.fund_type||G,interval:q,success_url:`${F}?plan=ok`,cancel_url:`${F}?plan=cancel`})})).json();if(R.url){window.location.href=R.url;return}throw new Error(R.detail||R.error||"Checkout unavailable")}catch(F){A(F instanceof Error?F.message:String(F)),k(!1)}}m.useEffect(()=>{if((w==null?void 0:w.status)!=="running")return;const C=(w.started||0)>0?w.started*1e3:Date.now(),q=()=>j(Math.max(0,(Date.now()-C)/1e3));q();const G=window.setInterval(q,1e3);return()=>window.clearInterval(G)},[w==null?void 0:w.status,w==null?void 0:w.started]);async function oe(C){if(!(!s||!C||C===s.fund_type))try{const q=s.member_session?await Cs({email:s.email,session:s.member_session,fund_type:C}):null;ur({email:s.email,fund_type:(q==null?void 0:q.fund_type)||C,ts:Date.now(),...q!=null&&q.session?{member_session:q.session}:{}}),window.location.reload()}catch(q){A(q instanceof Error?q.message:String(q)),o(!0)}}if(!s)return e.jsxs(e.Fragment,{children:[e.jsx(zn,{}),e.jsxs("main",{className:"ppc",children:[e.jsx("style",{children:hm}),e.jsxs("div",{className:"ppc-wrap",children:[e.jsx("div",{className:"ppc-eyeb",children:r?"Compte":"Account"}),e.jsx("h1",{className:"ppc-h1",children:r?"Paramètres":"Settings"}),e.jsx("p",{className:"ppc-lead",children:r?"Connectez-vous ou créez votre compte pour gérer newsletters, abonnement et deal flow.":"Log in or create your account to manage newsletters, subscription and deal flow."}),e.jsx("button",{type:"button",className:"ppc-cta",onClick:()=>o(!0),children:ee?r?"Confirmer mon email et découvrir mes cibles →":"Confirm my email and discover my targets →":r?"Se connecter ou créer un compte →":"Log in or create an account →"})]})]}),e.jsx(Nt,{}),a&&e.jsx(Ur,{onClose:()=>o(!1),intent:"login",...ee?{fundForLogin:ee,notice:r?`Confirmez votre email pour découvrir les cibles de ${ee}.`:`Confirm your email to discover ${ee}'s targets.`,onAuthenticated:()=>window.location.reload()}:{}})]});const z=s.fund_type,Y=H==="enterprise"?r?"Entreprise":"Enterprise":H==="standard"?"Standard":r?"Essai / Free":"Trial / Free",B=kp(d==null?void 0:d.plan),X=B?pa(z):Tn(z),te=bh(z,!1),Ae=bh(z,!0),Ze=Fj(z,B,t),Ke=!rn(z)&&I===!1&&(!w||w.status==="absent"),st=!!(w&&w.status!=="done"&&w.status!=="error"&&(w.step==="sourcing"||w.step==="publication")&&s.member_session);function Ct(){lm();const C=Date.now()/1e3;ie(C),S(q=>q&&q.status==="running"?q:{...q||{},status:"running",step:"these",pct:3,company:z||"",phase:r?"Lancement de votre recherche…":"Starting your search…"}),pe(q=>q+1),window.setTimeout(()=>window.scrollTo({top:0,behavior:"smooth"}),300)}return e.jsxs(e.Fragment,{children:[e.jsx(zn,{}),e.jsxs("main",{className:"ppc",children:[e.jsx("style",{children:hm}),e.jsx("section",{className:"ppc-sec",children:e.jsxs("div",{className:"ppc-wrap",children:[e.jsx("div",{className:"ppc-eyeb",children:r?"Compte":"Account"}),e.jsxs("div",{className:"ppc-hero",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"ppc-h1",children:r?"Paramètres":"Settings"}),e.jsx("p",{className:"ppc-email",children:s.email}),e.jsxs("div",{className:"ppc-meta",children:[e.jsx("span",{className:`ppc-pill plan-${H}`,children:Y}),h.length>1?e.jsxs("label",{className:"ppc-fund",children:[e.jsx("span",{children:r?"Fonds":"Fund"}),e.jsx("select",{value:z,onChange:C=>oe(C.target.value),"aria-label":r?"Changer de fonds":"Switch fund",children:h.map(C=>e.jsxs("option",{value:C,children:[C,rn(C)?" · member":""]},C))})]}):e.jsx("span",{className:"ppc-fund-id",children:z})]})]}),e.jsx("div",{className:"ppc-credits",children:d!=null&&d.unlimited?e.jsx("div",{className:"ppc-cred-n",children:r?"Illimité":"Unlimited"}):u?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ppc-cred-state",children:r?"Crédits indisponibles":"Credits unavailable"}),e.jsx("button",{type:"button",className:"ppc-linkbtn",onClick:()=>L(C=>C+1),children:r?"Réessayer":"Retry"})]}):d===null?e.jsx("div",{className:"ppc-cred-state",children:r?"Chargement…":"Loading…"}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ppc-cred-n",children:d.total_available}),e.jsx("div",{className:"ppc-cred-l",children:r?"crédits":"credits"}),e.jsxs("div",{className:"ppc-cred-sub",children:[d.daily_left,"/",d.daily_grant," ",r?"offerts":"daily",(d.purchased||0)>0?` + ${d.purchased}`:""]})]})})]}),Ke&&e.jsx(kj,{fund:z,memberSession:s.member_session||"",lang:t,onLaunched:Ct,onNeedLogin:()=>{P(z),o(!0)},onRdv:()=>l(!0)}),!Ke&&I===!1&&!rn(z)&&e.jsxs("div",{className:"ppc-cta-wait",role:"status",children:[e.jsx("span",{className:"ppc-cta ppc-cta-off","aria-disabled":"true",children:r?"Ouvrir mon deal flow →":"Open my deal flow →"}),e.jsx("p",{className:"ppc-cta-note",children:r?"Votre deal flow s’ouvrira ici dès que votre page sera publiée — la recherche de vos cibles est en cours ou n’a pas encore abouti.":"Your deal flow will open here as soon as your page is published — the search for your targets is running or has not completed yet."})]}),!Ke&&!(I===!1&&!rn(z))&&e.jsxs(e.Fragment,{children:[e.jsx("a",{className:"ppc-cta",href:X,children:r?B?"Ouvrir mon deal flow (vue complète) →":"Ouvrir mon deal flow (aperçu) →":B?"Open my deal flow (full view) →":"Open my deal flow (preview) →"}),e.jsx("div",{className:"ppc-links",children:B?e.jsxs("div",{className:"ppc-linkcard",children:[e.jsx("b",{children:r?"Lien public · vue complète":"Public link · full view"}),e.jsx("span",{children:r?"Standard et Entreprise — /cibles/<fonds>/open/.":"Standard and Enterprise — /cibles/<fund>/open/."}),e.jsx("a",{href:Ae,children:Ae})]}):e.jsxs("div",{className:"ppc-linkcard",children:[e.jsx("b",{children:r?"Lien public · aperçu":"Public link · preview"}),e.jsx("span",{children:r?"Essai — /cibles/<fonds>/ (sans /open/).":"Trial — /cibles/<fund>/ (no /open/)."}),e.jsx("a",{href:te,children:te})]})})]}),w&&w.status!=="absent"&&e.jsx("div",{className:`ppc-onb ${w.status}${st?" has-film":""}`,children:w.status==="done"?e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:[e.jsx("strong",{children:r?"Votre page est prête.":"Your page is ready."})," ",w.company]}),w.page_url&&e.jsx("a",{className:"ppc-cta sm",href:w.page_url,children:r?"Ouvrir →":"Open →"}),s.member_session&&e.jsx(Ld,{session:s.member_session,flat:!0,collapsible:!0,maxhNarrow:0,heading:r?"Comment vos cibles ont été trouvées":"How your targets were found",style:{display:"block",margin:"14px 0 0"}})]}):w.status==="error"?e.jsx("p",{children:r?"Cela prend plus de temps que prévu — notre équipe finalise votre page.":"Taking longer than expected — our team is finishing your page."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"ppc-onb-head",children:[e.jsx("strong",{children:r?"Construction de votre espace":"Building your space"}),e.jsx("span",{className:"ppc-onb-clock",children:_j(E)})]}),e.jsx("p",{className:"ppc-onb-phase",children:w.phase||(r?"en cours…":"in progress…")}
3728),e.jsx("div",{className:"ppc-onb-bar","aria-hidden":!0,children:e.jsx("span",{style:{width:`${Math.max(3,Math.min(100,w.pct||0))}%`}})}),e.jsx("ol",{className:"ppc-onb-steps",children:dm.map((C,q)=>{const G=dm.findIndex(J=>J.k===(w.step||"these")),F=q<G?"done":q===G?"now":"todo";return e.jsxs("li",{className:F,children:[e.jsx("span",{className:"ppc-onb-dot","aria-hidden":!0}),e.jsx("span",{className:"ppc-onb-lbl",children:r?C.fr:C.en}),F==="now"&&e.jsx("span",{className:"ppc-onb-why",children:r?C.whyFr:C.whyEn})]},C.k)})}),st&&s.member_session&&e.jsx(Ld,{session:s.member_session,since:se||void 0,waiting:!0,flat:!0,maxh:360,maxhNarrow:0,eyebrow:"Sourcing",heading:r?"Comment Stan cherche vos cibles":"How Stan finds your targets",empty:r?"Le moteur démarre — le film commence dans un instant.":"The engine is starting — the film begins in a moment.",style:{display:"block",margin:"12px 0"}}),e.jsx("p",{className:"ppc-onb-eta",children:r?"Comptez 30 à 60 minutes. Vous pouvez fermer cette page : on vous appelle dès que vos cibles sont prêtes.":"Allow 30 to 60 minutes. You can close this page: we call you as soon as your targets are ready."})]})}),x&&e.jsx("p",{className:"ppc-flash",children:x})]})}),!Ke&&e.jsx("section",{className:"ppc-sec",children:e.jsxs("div",{className:"ppc-wrap",children:[e.jsx("div",{className:"ppc-eyeb",children:r?"Thèse":"Thesis"}),e.jsx("h2",{className:"ppc-h2",children:r?"Piloter votre thèse":"Steer your thesis"}),e.jsx("p",{className:"ppc-sub",children:r?"Identité du fonds, thèse telle que Stan la lit, pouces, puis corrections en langage naturel.":"Fund identity, thesis as Stan reads it, thumbs, then plain-language edits."}),e.jsx(wj,{fund:z,email:s.email,fr:r}),e.jsx("h2",{className:"ppc-h2",style:{marginTop:36},children:r?"Comment Stan a appris":"How Stan learned"}),e.jsx("p",{className:"ppc-sub",style:{marginBottom:18},children:r?"Chaque pouce et chaque correction sont consignés ici, datés.":"Every thumb and every edit is recorded here, dated."}),e.jsx(xj,{fund:z,lang:t})]})}),e.jsx("section",{className:"ppc-sec",children:e.jsxs("div",{className:"ppc-wrap",children:[e.jsx("div",{className:"ppc-eyeb",children:r?"Newsletters et alertes":"Newsletters and alerts"}),e.jsx("h2",{className:"ppc-h2",children:r?"Vos newsletter et alertes":"Your newsletters and alerts"}),e.jsx("p",{className:"ppc-sub",children:r?"Alertes marché du cockpit, newsletter généraliste, puis les 36 sectorielles. Un interrupteur par ligne.":"Cockpit market alerts, the general newsletter, then the 36 sector ones. One switch per row."}),e.jsxs("div",{className:"ppc-nl",children:[(w==null?void 0:w.status)!=="running"&&e.jsx("div",{className:"ppc-nl-row ppc-nl-alerts",children:e.jsx("a",{href:Ze,children:r?"🔔 Alertes marché (filtres du cockpit) →":"🔔 Market alerts (cockpit filters) →"})}),e.jsxs("div",{className:"ppc-nl-row ppc-nl-general",children:[e.jsxs("div",{children:[e.jsx("strong",{children:r?"Newsletter généraliste":"General newsletter"}),e.jsx("a",{className:"ppc-meta-txt",href:"/newsletter/",children:"proplace.co/newsletter"})]}),e.jsx("button",{type:"button",className:`ppc-sw${v.general?" on":""}`,onClick:()=>void he("general"),"aria-pressed":!!v.general,children:v.general?"On":"Off"})]}),e.jsx("div",{className:"ppc-nl-sectors",children:nr.map(C=>e.jsxs("div",{className:"ppc-nl-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:r?C.labelFr:C.label}),e.jsx("a",{className:"ppc-meta-txt",href:C.href,children:C.href})]}),e.jsx("button",{type:"button",className:`ppc-sw${v[C.id]?" on":""}`,onClick:()=>void he(C.id),"aria-pressed":!!v[C.id],children:v[C.id]?"On":"Off"})]},C.id))})]})]})}),e.jsx("section",{className:"ppc-sec",children:e.jsxs("div",{className:"ppc-wrap",children:[e.jsx("div",{className:"ppc-eyeb",children:r?"Abonnement":"Subscription"}),e.jsx("h2",{className:"ppc-h2",children:r?"Votre abonnement":"Your subscription"}),e.jsx("p",{className:"ppc-sub",children:r?"Choisissez une offre : appel stratégique pour la cadrer, ou abonnement annuel par virement sur facture Stripe (IBAN), renouvelé automatiquement chaque année. Tarifs HT.":"Choose a plan: a strategy call to scope it, or a yearly subscription paid by bank transfer on a Stripe invoice (IBAN), renewed automatically each year. Prices exclude tax."}),H==="free"&&rn(z)&&e.jsxs("label",{className:"ppc-cofield",children:[e.jsx("span",{children:r?"Votre société (ou site)":"Your company (or website)"}
3728),e.jsx("input",{type:"text",value:_,onChange:C=>N(C.target.value),onFocus:()=>{_||N(pm(s.email))},placeholder:r?"ex. acme.com":"e.g. acme.com"})]}),e.jsx(hl,{context:"account",currentPlan:H,onTrialCta:()=>l(!0),onRdvCta:()=>l(!0),accountExtras:{payBusy:O,onPay:(C,q)=>void xe(C,q),creditsLine:H==="free"?r?`Essai gratuit : ${(d==null?void 0:d.daily_grant)??3} crédits offerts chaque jour`:`Free trial: ${(d==null?void 0:d.daily_grant)??3} free credits every day`:void 0,creditsSub:H==="free"&&d?`${d.daily_left}/${d.daily_grant} ${r?"offerts":"daily"}`:H==="free"?r?"3/3 offerts":"3/3 daily":void 0,packs:H==="free"?e.jsxs("div",{className:"ppc-packs",children:[e.jsx("h3",{className:"ppc-h3",children:r?"Packs de crédits · 2 € l’unité":"Credit packs · €2 each"}),e.jsx("p",{className:"ppc-sub",children:r?"Une analyse avec mémo éclair coûte 1 crédit ; une analyse avec mémo détaillé coûte 3 crédits. Le sourcing quotidien ne consomme jamais de crédits.":"An analysis with an instant memo costs 1 credit; an analysis with a detailed memo costs 3 credits. Daily sourcing never spends credits."}),e.jsx("div",{className:"ppc-pack-grid",children:((T=d==null?void 0:d.packs)!=null&&T.length?d.packs:[{lookup_key:"pp-credits-5",credits:5,price_eur:10},{lookup_key:"pp-credits-20",credits:20,price_eur:40},{lookup_key:"pp-credits-50",credits:50,price_eur:100},{lookup_key:"pp-credits-100",credits:100,price_eur:200}]).map(C=>e.jsxs("div",{className:"ppc-pack",children:[e.jsxs("strong",{children:[C.credits," ",r?"crédits":"credits"]}),e.jsxs("span",{children:[C.price_eur," €"]}),e.jsx("button",{type:"button",className:"ppc-pack-btn",onClick:()=>void Le(C.lookup_key),children:r?"Acheter":"Buy"})]},C.lookup_key))})]}):null}})]})}),e.jsx("div",{className:"ppc-wrap ppc-foot",children:e.jsx("button",{type:"button",className:"ppc-logout",onClick:()=>{ux(),i(n("/"))},children:r?"Déconnexion":"Log out"})})]}),e.jsx(Nt,{}),c&&e.jsx(Pi,{onClose:()=>l(!1)}),a&&e.jsx(Ur,{onClose:()=>o(!1),intent:"login",...ee?{fundForLogin:ee,notice:r?`Confirmez votre email pour découvrir les cibles de ${ee}.`:`Confirm your email to discover ${ee}'s targets.`,onAuthenticated:()=>window.location.reload()}:{}})]})}const hm=`
3729.ppc{font-family:var(--pp-body);color:#16233A;
3730background:#fff;-webkit-font-smoothing:antialiased;padding:26px 0 64px;min-height:70vh}
3731.ppc,.ppc *{box-sizing:border-box}
3732.ppc button,.ppc input,.ppc select{font-family:inherit}
3733.ppc-wrap{max-width:1200px;margin:0 auto;padding:0 32px}
3734.ppc-sec{padding:36px 0;border-top:1px solid #E3E8F0}
3735.ppc-sec:first-of-type{border-top:0;padding-top:12px}
3736.ppc-eyeb{display:flex;align-items:center;gap:12px;margin:0 0 16px;
3737font-family:var(--pp-body);font-size:12px;font-weight:500;color:#8FA0B8;font-variant-numeric:tabular-nums}
3738.ppc-eyeb::before{content:"";display:block;width:22px;height:2px;background:#12A150;
3739border-radius:2px;flex:none}
3740.ppc-h1{margin:0;font-size:clamp(28px,3.6vw,42px);line-height:1.08;letter-spacing:-.04em;font-weight:700}
3741.ppc-h2{margin:0;font-size:clamp(22px,2.4vw,30px);line-height:1.14;letter-spacing:-.03em;font-weight:700}
3742.ppc-h3{margin:28px 0 8px;font-size:16px;font-weight:700}
3743.ppc-lead,.ppc-sub{margin:12px 0 0;font-size:15px;line-height:1.66;color:#4B5E78;max-width:62ch}
3744.ppc-email{margin:8px 0 0;font-size:15px;color:#4B5E78}
3745.ppc-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}
3746.ppc-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
3747.ppc-pill{display:inline-flex;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:650;
3748background:#E7F6EE;color:#0E8A44}
3749.ppc-pill.plan-standard{background:#e8f0ff;color:#1e3a8a}
3750.ppc-pill.plan-enterprise{background:#16233A;color:#fff}
3751.ppc-fund{display:inline-flex;flex-direction:column;gap:2px;font-size:11px;color:#8FA0B8}
3752.ppc-fund select{font-size:13px;padding:6px 10px;border:1px solid #E3E8F0;border-radius:8px;background:#fff;color:#16233A}
3753.ppc-fund-id{font-size:12px;color:#8FA0B8}
3754.ppc-credits{border:1px solid #E3E8F0;border-radius:12px;padding:16px 20px;min-width:132px;text-align:center;background:#F9FBFD}
3755.ppc-cred-n{font-size:28px;font-weight:800;line-height:1;letter-spacing:-.02em}
3756.ppc-cred-l{font-size:12px;color:#8FA0B8;margin-top:4px;font-weight:600}
3757.ppc-cred-sub{font-size:12px;color:#12A150;font-weight:600;margin-top:4px}
3758.ppc-cred-state{font-size:13px;color:#4B5E78;font-weight:600}
3759.ppc-cta{display:inline-flex;align-items:center;margin-top:8px;background:#12A150;color:#fff;font-size:14.5px;
3760font-weight:700;padding:14px 22px;border-radius:10px;text-decoration:none;border:0;cursor:pointer}
3761.ppc-cta:hover{background:#0E8A44;color:#fff}
3762.ppc-cta.sm{padding:10px 16px;font-size:13px;margin-top:10px}
3763.ppc-cta.ppc-cta-off,.ppc-cta.ppc-cta-off:hover{background:#C9D3DF;color:#fff;cursor:not-allowed}
3764.ppc-cta-note{font-size:13px;color:#4B5E78;margin:8px 0 0;max-width:620px;line-height:1.5}
3765.ppc-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;max-width:820px}
3766@media(max-width:720px){.ppc-links{grid-template-columns:1fr}}
3767.ppc-linkcard{border:1px solid #E3E8F0;border-radius:12px;padding:14px 16px;background:#F9FBFD;display:flex;flex-direction:column;gap:6px}
3768.ppc-linkcard b{font-size:13px}
3769.ppc-linkcard span,.ppc-linkcard em{font-size:12.5px;color:#4B5E78;line-height:1.45}
3770.ppc-linkcard a{font-size:13px;font-weight:650;color:#0E8A44;word-break:break-all}
3771.ppc-linkcard.dim{opacity:.72}
3772.ppc-linkcard code{font-size:12.5px;color:#4B5E78;word-break:break-all}
3773.ppc-thesis-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;max-width:820px}
3774@media(max-width:720px){.ppc-thesis-grid{grid-template-columns:1fr}}
3775a.ppc-linkcard{text-decoration:none;color:inherit}
3776a.ppc-linkcard:hover{border-color:#BFE6CF;background:#F3FBF6}
3777.ppc-thesis-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
3778.ppc-thesis-pilot{margin-top:18px;max-width:820px}
3779.ppc-idform{display:grid;gap:12px;margin-bottom:18px}
3780.ppc-idform .ppc-cofield{max-width:100%;margin:0}
3781.ppc-idform select{border:1px solid #E3E8F0;border-radius:10px;padding:9px 12px;font-size:14px;background:#fff;color:#16233A}
3782.ppc-logo-prev{height:36px;width:auto;max-width:160px;object-fit:contain;border:1px solid #E3E8F0;border-radius:8px;padding:4px;background:#fff}
3783.ppc-these-now{border:1px solid #E3E8F0;border-radius:12px;padding:14px 16px;background:#F9FBFD;margin:18px 0}
3784.ppc-these-now summary{cursor:pointer;font-size:13.5px;font-weight:650;color:#16233A}
3785.ppc-these-lead{margin:12px 0 0;font-size:14px;line-height:1.6;color:#4B5E78}
3786.ppc-these-ang{margin:8px 0 0;font-size:12.5px;color:#4B5E78}
3787.ppc-thumbs-table{margin:22px 0 8px;scroll-margin-top:84px}
3788.ppc-thumbs{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
3789.ppc-thumbs th,.ppc-thumbs td{text-align:left;padding:8px 10px;border-bottom:1px solid #E3E8F0;vertical-align:top}
3790.ppc-thumbs th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8FA0B8;font-weight:650}
3791.ppc-chat-empty{margin:0;padding:14px 16px;border:1px dashed #C9D4E2;border-radius:10px;background:#F9FBFD;font-size:13px;color:#4B5E78}
3792.ppc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
3793.ppc-chip{font-size:12px;font-weight:650;color:#0E8A44;background:#F3FBF6;border:1px solid #BFE6CF;border-radius:999px;padding:7px 12px;cursor:pointer}
3794.ppc-chip:hover:not(:disabled){background:#E7F6EE}
3795.ppc-chip:disabled{opacity:.55;cursor:progress}
3796.ppc-chat{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
3797.ppc-bubble{font-size:13.5px;line-height:1.5;padding:10px 12px;border-radius:12px;max-width:92%;white-space:pre-wrap}
3798.ppc-bubble.you{align-self:flex-end;background:#E7F6EE;color:#16233A}
3799.ppc-bubble.stan{align-self:flex-start;background:#F9FBFD;border:1px solid #E3E8F0;color:#16233A}
3800.ppc-bubble.done{align-self:flex-start;background:#E7F6EE;color:#0E8A44;font-weight:650}
3801.ppc-composer{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
3802.ppc-composer textarea{width:100%;border:1px solid #E3E8F0;border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.5;resize:vertical;font-family:inherit;color:#16233A}
3803.ppc-composer textarea:focus{outline:none;border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.12)}
3804.ppc-ghost{font-size:13.5px;font-weight:650;color:#0E8A44;text-decoration:none}
3805.ppc-ghost:hover{text-decoration:underline}
3806.ppc-onb-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
3807.ppc-onb-clock{font-family:var(--pp-body);font-size:13px;
3808font-variant-numeric:tabular-nums;color:#4B5E78}
3809.ppc-onb-phase{margin:2px 0 10px;font-size:13px;color:#4B5E78}
3810.ppc-onb-steps{list-style:none;margin:14px 0 0;padding:0 0 0 5px;
3811border-left:2px solid #E3E8F0;margin-left:6px}
3812.ppc-onb-steps li{position:relative;padding:6px 0 6px 20px;font-size:13.5px;line-height:1.45;color:#B3BCC6}
3813.ppc-onb-dot{position:absolute;
3813left:-1px;top:11px;width:7px;height:7px;border-radius:999px;
3814background:#fff;border:2px solid #DDE5EE;box-sizing:border-box}
3815.ppc-onb-steps li.done{color:#12A150}
3816.ppc-onb-steps li.done .ppc-onb-dot{background:#12A150;border-color:#12A150}
3817.ppc-onb-steps li.now{color:#0F1D33;font-weight:600}
3818.ppc-onb-steps li.now .ppc-onb-dot{background:#12A150;border-color:#12A150;
3819animation:ppcPulse 1.6s ease-in-out infinite}
3820@keyframes ppcPulse{0%,100%{box-shadow:0 0 0 0 rgba(18,161,80,.5)}50%{box-shadow:0 0 0 5px rgba(18,161,80,0)}}
3821.ppc-onb-why{display:block;margin-top:4px;font-size:12.5px;font-weight:400;line-height:1.5;
3822color:#4B5E78;background:#F1F7F3;border-radius:8px;padding:7px 10px}
3823.ppc-onb-eta{margin:12px 0 0;font-size:12px;line-height:1.5;color:#4B5E78}
3824@media (prefers-reduced-motion: reduce){.ppc-onb-steps li.now .ppc-onb-dot{animation:none}}
3825.ppc-onb{margin-top:22px;border:1px solid #E3E8F0;border-radius:12px;padding:14px 16px;background:#F9FBFD}
3826.ppc-onb.done{border-color:#cfe8da;background:#E7F6EE}
3827.ppc-onb.error{border-color:#f0d0d0;background:#fdf3f3}
3828.ppc-onb p{margin:0;font-size:13.5px;line-height:1.5;color:#0F1D33}
3829.ppc-onb-bar{height:7px;border-radius:999px;background:#E3E8F0;overflow:hidden;margin:10px 0 0}
3830.ppc-onb-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#12A150,#12A150);transition:width .6s ease}
3831.ppc-flash{margin:16px 0 0;padding:10px 12px;border-radius:8px;background:#E7F6EE;color:#0E8A44;font-size:13.5px}
3832.ppc-nl{margin-top:18px;border:1px solid #E3E8F0;border-radius:12px;overflow:hidden;background:#fff}
3833.ppc-nl-alerts{background:#F1F7F3}
3834.ppc-nl-alerts a{font-size:13.5px;font-weight:600;color:#12A150;text-decoration:none}
3835.ppc-nl-alerts a:hover{text-decoration:underline}
3836.ppc-nl-general{background:#F9FBFD}
3837.ppc-nl-sectors{display:grid;grid-template-columns:1fr 1fr}
3838@media (max-width:900px){.ppc-nl-sectors{grid-template-columns:1fr}}
3839.ppc-nl-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;
3840border-top:1px solid #E3E8F0}
3841.ppc-nl > .ppc-nl-row:first-child{border-top:0}
3842.ppc-nl-sectors .ppc-nl-row:nth-child(odd){border-right:1px solid #E3E8F0}
3843.ppc-nl-row strong{display:block;font-size:13px;font-weight:650;line-height:1.3}
3844.ppc-meta-txt{display:block;font-size:11px;color:#8FA0B8;margin-top:2px;text-decoration:none;word-break:break-all}
3845a.ppc-meta-txt:hover{color:#12A150}
3846.ppc-sw{flex:0 0 auto;min-width:52px;padding:6px 11px;border-radius:999px;border:1px solid #E3E8F0;background:#F9FBFD;
3847font-size:12px;font-weight:700;color:#4B5E78;cursor:pointer}
3848.ppc-sw.on{background:#12A150;border-color:#12A150;color:#fff}
3849.ppc-cofield{display:flex;flex-direction:column;gap:5px;max-width:360px;margin:16px 0 0}
3850.ppc-cofield span{font-size:12.5px;color:#4B5E78;font-weight:600}
3851.ppc-cofield input{border:1px solid #E3E8F0;border-radius:10px;padding:9px 12px;font-size:14px;background:#fff;color:#16233A}
3852.ppc-cofield input:focus{outline:none;border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.12)}
3853.ppc-pay-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:16px 0 0}
3854.ppc-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 0;max-width:820px}
3855@media(max-width:720px){.ppc-pay-grid{grid-template-columns:1fr}}
3856.ppc-pay-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid #E3E8F0;border-radius:12px;padding:16px 18px;background:#16233A;color:#fff;cursor:pointer;text-align:left}
3857.ppc-pay-btn.std{background:#12A150;border-color:#12A150}
3858.ppc-pay-btn.ent{background:#16233A}
3859.ppc-pay-btn em{font-style:normal;font-size:15px;font-weight:800}
3860.ppc-pay-btn span{font-size:12.5px;opacity:.88}
3861.ppc-pay-btn strong{margin-top:8px;font-size:14px}
3862.ppc-pay-btn:disabled{opacity:.55;cursor:progress}
3863.ppc-pay-link{background:none;border:0;padding:0;font-size:13.5px;font-weight:600;color:#12A150;cursor:pointer;text-align:left}
3864.ppc-pay-link:hover:not(:disabled){text-decoration:underline}
3865.ppc-pay-link:disabled{opacity:.55;cursor:progress}
3866.ppc-these-cockpit{margin:12px 0 8px;max-width:820px}
3867.ppc-these-load{margin:16px 0;padding:18px 16px;border:1px solid #E3E8F0;border-radius:12px;background:#F9FBFD}
3868.ppc-these-load p{margin:10px 0 0;font-size:13px;color:#4B5E78}
3869.ppc-these-bar{display:block;height:6px;border-radius:99px;background:#E3E8F0;overflow:hidden;position:relative}
3870.ppc-these-bar::after{content:"";position:absolute;inset:0;width:40%;background:#12A150;border-radius:99px;
3871animation:ppcLoad 1.1s ease-in-out infinite}
3872@keyframes ppcLoad{0%{transform:translateX(-20%)}100%{transform:translateX(250%)}}
3873.ppc-packs{margin-top:36px}
3874.ppc-pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:14px}
3875.ppc-pack{border:1px solid #E3E8F0;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;background:#F9FBFD}
3876.ppc-pack strong{font-size:14px}
3877.ppc-pack span{font-size:13px;color:#4B5E78}
3878.ppc-pack-btn{margin-top:6px;border:0;border-radius:8px;padding:9px 12px;background:#16233A;color:#fff;
3879font-size:13px;font-weight:700;cursor:pointer}
3880.ppc-pack-btn:hover{opacity:.9}
3881.ppc-foot{padding:32px 32px 0;max-width:1200px}
3882.ppc-logout{background:none;border:0;color:#8FA0B8;font-size:13px;font-weight:600;cursor:pointer;padding:0}
3883.ppc-logout:hover{color:#16233A}
3884.ppc-linkbtn{margin-top:6px;background:none;border:1px solid #E3E8F0;border-radius:8px;padding:4px 10px;
3885font-size:12px;color:#4B5E78;cursor:pointer}
3886@media (max-width:760px){
3887  .ppc{padding-top:60px}
3888  .ppc-wrap,.ppc-foot{padding-left:18px;padding-right:18px}
3889  .ppc-sec{padding:28px 0}
3890  .ppc-nl-sectors .ppc-nl-row:nth-child(odd){border-right:0}
3891}
3892/* 04/10 — téléphone : la carte de construction laisse au film du sourcing sa largeur,
3893   et ne double plus sa barre (figée à 30 % pendant tout le sourcing alors que celle du
3894   film avance) ni l'étape en cours (déjà dans la liste juste dessous). */
3895@media (max-width:640px){
3896  .ppc-onb{padding:14px 12px}
3897  .ppc-onb.has-film .ppc-onb-phase,.ppc-onb.has-film .ppc-onb-bar{display:none}
3898  .ppc-onb.has-film .ppc-onb-steps{margin-top:10px}
3899}
3900`,Uw=Object.freeze(Object.defineProperty({__proto__:null,default:g1},Symbol.toStringTag,{value:"Module"})),f1="+33 6 83 10 72 86",mm="[email protected]",Rj=`tel:${f1.replace(/[^\d+]/g,"")}`;function Vw(){return null}
3900function Pj(t){return(t||"").split(/(\s|-)/).map(n=>n.length>1?n[0].toUpperCase()+n.slice(1).toLowerCase():n).join("")}function Ij(t){try{const n=new URL(t,"https://proplace.co");return n.pathname=n.pathname.replace(/\/open\/?$/,"/"),n.pathname.endsWith("/")||(n.pathname+="/"),`${n.pathname}${n.search}`}catch{return(t||"/").replace(/\/open\/?/,"/")}}function Dj(){var x,A;const{fund:t}=yp(),n=wp(t||""),{lang:r}=ae(),i=r==="fr",[s,a]=m.useState(null),[o,c]=m.useState(""),[l,d]=m.useState(null),[p,u]=m.useState(!1);ht({en:{title:s!=null&&s.company?`${s.company} — your Proplace deal flow`:"Your Proplace deal flow",description:"Deal flow + AI Corporate Developer, steered by Alexandre."},fr:{title:s!=null&&s.company?`${s.company} — votre deal flow Proplace`:"Votre deal flow Proplace",description:"Deal flow + AI Corporate Developer, piloté par Alexandre."}}),m.useEffect(()=>{if(!n)return;let w=!0;return fetch(`${Zt}/pour/page`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fund_slug:n})}).then(S=>S.json()).then(S=>{if(w){if(!(S!=null&&S.ok)){c((S==null?void 0:S.error)||"introuvable");return}a(S)}}).catch(S=>{w&&c(String(S))}),()=>{w=!1}},[n]);const g=[s==null?void 0:s.first_name,s==null?void 0:s.last_name].filter(w=>!!w).map(Pj).join(" "),f=(s==null?void 0:s.company)||n,L=s==null?void 0:s.criteria,v=!!(L&&(L.lead||(x=L.angles)!=null&&x.length||(A=L.gate)!=null&&A.length)),y=s!=null&&s.cibles_url?Ij(s.cibles_url):"",h=((L==null?void 0:L.angles)||[]).slice(0,3).map(w=>w.title).filter(Boolean);async function b(w){if(!l){d(w),c("");try{const S=window.location.origin,j=await(await fetch(`${_e}/inbound/credits/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:((s==null?void 0:s.email)||"").trim().toLowerCase(),plan:w,company:f,website:(s==null?void 0:s.website)||"",fund_type:(s==null?void 0:s.fund)||f,interval:"year",success_url:`${S}${i?"/fr":""}/compte?plan=ok`,cancel_url:window.location.href})})).json();if(j!=null&&j.url){window.location.href=j.url;return}c(String((j==null?void 0:j.detail)||(j==null?void 0:j.error)||(i?"Paiement indisponible.":"Checkout unavailable.")))}catch(S){c(S instanceof Error?S.message:String(S))}d(null)}}return e.jsxs("div",{className:"pour-page",children:[e.jsx(zn,{}),e.jsxs("main",{className:"pour",children:[e.jsx("style",{children:zj}),e.jsxs("div",{className:"pour-grid",children:[e.jsxs("div",{className:"pour-who",children:[e.jsx("h1",{children:g||f}),!!((s==null?void 0:s.title)||"").trim()&&e.jsx("p",{className:"pour-role",children:s.title.trim()}),g&&f&&g.toLowerCase()!==f.toLowerCase()&&e.jsx("p",{className:"pour-co",children:f}),v&&e.jsx("div",{className:"pour-these",children:e.jsx(ll,{criteria:L,lang:i?"fr":"en",variant:"pour"})})]}),e.jsxs("aside",{className:"pour-pay",children:[e.jsx("p",{className:"pour-k",children:"Deal flow + AI Corporate Developer"}),e.jsx("p",{className:"pour-ksub",children:i?"Piloté par Alexandre — votre Corporate Developer humain.":"Steered by Alexandre — your human Corporate Developer."}),e.jsxs("div",{className:"pour-rdv",children:[e.jsx("p",{children:i?"Besoin d’aide ?":"Need a hand?"}),e.jsxs("p",{className:"pour-alex",children:["Alexandre — ",e.jsx("a",{href:Rj,children:f1})," · ",e.jsx("a",{href:`mailto:${mm}`,children:mm})]}),e.jsx("button",{type:"button",className:"pour-creneau",onClick:()=>u(!0),children:i?"Choisir un créneau":"Pick a slot"})]})]})]}),e.jsx("section",{className:"pour-offers","aria-label":i?"Les offres Proplace":"Proplace plans",children:e.jsx(hl,{context:"account",onTrialCta:()=>{window.location.href=y||(i?"/fr/#decouvrir":"/#decouvrir")},onRdvCta:()=>u(!0),accountExtras:{payBusy:!!l,onPay:w=>{b(w)}}})}),o&&e.jsx("p",{className:"pour-err",role:"alert",children:o}),y&&e.jsxs("a",{className:"pour-preview",href:y,children:[e.jsxs("span",{className:"pv-live",children:[e.jsx("i",{})," LIVE",e.jsx("span",{className:"pv-tick",children:i?"Aperçu du deal flow":"Deal flow preview"})]}),e.jsxs("span",{className:"pv-id",children:[e.jsx("b",{children:(f||"P").slice(0,1).toUpperCase()}),i?`Cibles pour ${f}`:`Targets for ${f}`]}),e.jsxs("span",{className:"pv-funnel",children:[e.jsxs("span",{children:[i?"À évaluer":"To screen"," 0"]}),e.jsxs("span",{className:"on",children:[i?"Retenues":"Kept"," ·"]}),e.jsxs("span",{children:[i?"Analysées":"Analyzed"," 0"]}),e.jsxs("span",{children:[i?"À trancher":"To decide"," 0"]})]}),e.jsx("span",{className:"pv-rows",children:(h.length?h.slice(0,2):[i?"Cible retenue — MATCH au crible":"Kept target — MATCH",i?"Cible en revue":"Target under review"]).map(w=>e.jsxs("span",{className:"pv-row",children:[e.jsx("em",{}),w]},w))}),e.jsx("span",{className:"pour-preview-cta",children:i?"Voir l’aperçu →":"See the preview →"})]})]}),e.jsx(Nt,{}),p&&e.jsx(Pi,{subject:(f||(s==null?void 0:s.website)||"").slice(0,80)||void 0,onClose:()=>u(!1)})]})}const zj=`
3901.pour-page{min-height:100dvh;display:flex;flex-direction:column;background:#fff}
3902.pour-page > .pour{flex:1 1 auto}
3903.pour-page > .ppf{margin-top:auto;flex:none}
3904.pour{max-width:1200px;width:100%;margin:0 auto;padding:28px 32px 48px;color:#0F1D33;box-sizing:border-box}
3905.pour,.pour *{box-sizing:border-box}
3906.pour-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start;margin-bottom:36px}
3907@media (max-width:860px){
3908  .pour-grid{grid-template-columns:1fr;gap:22px}
3909  .pour{padding:24px 18px 40px}
3910  .pour-pay{order:-1;position:static}
3911}
3912.pour-who h1{margin:0;font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;line-height:1.12}
3913.pour-role{margin:6px 0 0;font-size:15px;font-weight:600;color:#0F1D33}
3914.pour-co{margin:6px 0 0;font-size:15px;color:#4B5E78}
3915.pour-these{margin-top:22px}
3916.pour-offers{margin-bottom:30px}
3917.pour-pay{position:sticky;top:76px;padding:22px 18px 18px;border:1px solid #C9D6E6;border-radius:16px;background:#fff;
3918  box-shadow:0 16px 40px -16px rgba(15,29,51,.45)}
3919.pour-k{margin:0 0 4px;font-size:16px;font-weight:800;letter-spacing:-.02em;line-height:1.25;color:#0F1D33}
3920.pour-ksub{margin:0 0 16px;font-size:13px;line-height:1.45;color:#4B5E78}
3921.pour-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;margin:0 0 10px;padding:16px 18px;border:0;border-radius:12px;cursor:pointer;text-align:left;font:inherit;color:#fff;
3922  box-shadow:0 8px 20px -12px rgba(15,29,51,.55);transition:transform .12s,filter .12s,box-shadow .12s}
3923.pour-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 12px 24px -10px rgba(15,29,51,.5)}
3924.pour-btn:disabled{opacity:.45;cursor:default}
3925.pour-btn.std{background:#0F1D33}
3926.pour-btn.ent{background:#0E8A44}
3927.pour-btn em{font-style:normal;font-size:12px;font-weight:800;opacity:.78;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
3928.pour-btn .pour-row,.pour-btn .pour-due{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;font-size:13.5px;font-weight:600}
3929.pour-btn .pour-row i,.pour-btn .pour-due i{font-style:normal;font-weight:600;opacity:.78;font-size:12.5px}
3930.pour-btn .pour-row b{font-weight:800;font-size:15px;letter-spacing:-.02em}
3931.pour-btn .pour-due{margin-top:4px;padding-top:8px;border-top:1px solid rgba(255,255,255,.22)}
3932.pour-btn .pour-due b{font-weight:800;font-size:18px;letter-spacing:-.02em}
3933.pour-go{display:inline-block;margin-top:2px;padding-top:8px;border-top:0;
3934  font-size:14.5px;font-weight:800;letter-spacing:-.01em}
3935.pour-fine{margin:10px 0 0;font-size:11.5px;line-height:1.45;color:#7A8694}
3936.pour-rdv{margin-top:16px;padding-top:14px;border-top:1px solid #E3E8F0}
3937.pour-rdv p{margin:0 0 8px;font-size:12.5px;line-height:1.45;color:#4B5E78}
3938.pour-alex{font-size:12px!important;color:#7A8694!important}
3939.pour-alex a{color:#0F1D33;text-decoration:none;border-bottom:1px solid #E3E8F0}
3940.pour-alex a:hover{border-bottom-color:#0F1D33}
3941.pour-creneau{display:inline-block;margin-top:2px;padding:8px 12px;border:1px solid #E3E8F0;border-radius:8px;background:#fff;color:#4B5E78;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
3942.pour-creneau:hover{border-color:#0F1D33;color:#0F1D33}
3943.pour-err{padding:10px 12px;background:#FDECEC;color:#C0353A;border-radius:8px;font-size:13px;margin-bottom:16px}
3944.pour-preview{position:relative;display:block;max-width:720px;text-decoration:none;color:inherit;
3945  border:1px solid #E3E8F0;border-radius:12px;overflow:hidden;background:#F9FBFD;
3946  box-shadow:none;opacity:.88;transition:border-color .15s,opacity .15s}
3947.pour-preview:hover{border-color:#C9D6E6;opacity:1}
3948.pv-live{display:flex;align-items:center;gap:8px;padding:7px 14px;background:#F3F6F9;color:#4B5E78;
3949  font-size:10px;font-weight:800;letter-spacing:.12em;border-bottom:1px solid #E3E8F0}
3950.pv-live i{width:6px;height:6px;border-radius:50%;background:#E5484D}
3951.pv-tick{font-weight:600;letter-spacing:0;opacity:.8;text-transform:none}
3952.pv-id{display:flex;align-items:center;gap:8px;padding:10px 14px 6px;font-size:13.5px;font-weight:700;color:#4B5E78}
3953.pv-id b{width:22px;height:22px;border-radius:6px;background:#C9D6E6;color:#0F1D33;display:flex;align-items:center;justify-content:center;font-size:11px}
3954.pv-funnel{display:flex;gap:5px;padding:0 14px 8px;flex-wrap:wrap}
3955.pv-funnel span{padding:3px 8px;border-radius:999px;background:#EEF2F6;font-size:10.5px;font-weight:600;color:#7A8694}
3956.pv-funnel .on{background:#D8EDE0;color:#0E7F3F}
3957.pv-rows{display:flex;flex-direction:column;gap:6px;padding:0 14px 8px}
3958.pv-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #E3E8F0;border-radius:8px;
3959  font-size:12.5px;font-weight:600;color:#4B5E78;background:#fff}
3960.pv-row em{width:7px;height:7px;border-radius:50%;background:#9ED9B8;flex:none}
3961.pour-preview-cta{display:block;padding:10px 14px;background:transparent;color:#4B5E78;
3962  text-align:left;font-size:12.5px;font-weight:650;border-top:1px solid #E3E8F0}
3963.pour-preview:hover .pour-preview-cta{color:#0F1D33}
3964`,ac={name:"Global Innovation Index",edition:"2025",publisher:"WIPO (ONU)"},jd={CH:[66,1],SE:[62.6,2],US:[61.7,3],KR:[60,4],SG:[59.9,5],GB:[59.1,6],FI:[57.7,7],NL:[57,8],DK:[56.9,9],CN:[56.6,10],DE:[55.5,11],JP:[53.6,12],FR:[53.4,13],IL:[52.3,14],HK:[51.5,15],EE:[51.1,16],CA:[51.1,17],IE:[50.4,18],AT:[50.1,19],NO:[49.2,20],BE:[48.5,21],AU:[48,22],LU:[47.3,23],IS:[47,24],NZ:[45.5,25],CY:[45.5,26],MT:[45.4,27],IT:[44.9,28],ES:[44.6,29],AE:[44.2,30],PT:[43.9,31],CZ:[42,32],LT:[40.8,33],MY:[40.6,34],SI:[40.1,35],HU:[40,36],BG:[39.1,37],IN:[38.2,38],PL:[37.7,39],HR:[37.7,40],LV:[37.5,41],GR:[37.4,42],TR:[37.2,43],VN:[37.1,44],TH:[36.7,45],SA:[36,46],SK:[35.5,47],QA:[34.6,48],RO:[34.3,49],PH:[33.6,50],CL:[33.1,51],BR:[32.9,52],MU:[32.5,53],RS:[31.7,54],ID:[31.3,55],MA:[31.1,57],MX:[30.5,58],RU:[30.3,60],ZA:[30.1,61],BH:[30,62],MK:[29.8,63],ME:[29.8,64],JO:[29.7,65],UA:[29.7,66],AL:[29.6,67],UY:[28.8,68],OM:[28.7,69],CO:[28.5,71],KW:[28.2,73],MD:[27.4,74],TN:[27,76],AR:[26.8,77],PE:[26.5,80],BY:[25.1,85],EG:[24.7,86],SN:[23.8,89],LB:[23.6,90],BA:[26.3,92],LK:[22.9,93],PK:[22.1,99],KH:[21.9,100],GH:[21.9,101],KE:[21.4,103],RW:[21.1,104],NG:[21.1,105],BD:[21,106],CI:[19.7,110],DZ:[18.9,115],TZ:[17.5,121],UG:[17.1,124],ET:[14.4,134]};function Bj(t){if(!t||!jd[t])return 0;const n=jd[t][0];return n>=50?4:n>=40?3:n>=30?2:1}function Uj(t){return t&&jd[t]||null}const x1={fr:{toEval:"À évaluer",memo:"Mémo",ma:"M&A",levee:"Levée",why:"Pourquoi elle a passé le crible",how:"🔎 Comment Stan l’a trouvée",detected:"détectée le",hot:"🔥 Signal chaud — son contexte vient de bouger, fenêtre de tir ouverte.",note:"Repérée dans la note",evaluate:"⚡ Évaluer",openMemo:"Voir le mémo →",source:"La source ↗",openFile:"Le dossier complet ↓",site:"🌐 Site ↗",lead:"in · dirigeant ↗",coLi:"in · société ↗",empty:"Rien ici dans cette fenêtre."},en:{toEval:"To evaluate",memo:"Memo",ma:"M&A",levee:"Round",why:"Why it made the cut",how:"🔎 How Stan foun
3964d it",detected:"detected on",hot:"🔥 Hot signal — its context just moved, the window is open.",note:"Spotted in the note",evaluate:"⚡ Evaluate",openMemo:"Open the memo →",source:"View source ↗",openFile:"Full file ↓",site:"🌐 Site ↗",lead:"in · exec ↗",coLi:"in · company ↗",empty:"Nothing here in this window."}};function Vj(t,n){const r=x1[n];return t.kind==="op"?t.dealKind==="ma"?{label:r.ma,bg:"#16233A"}:{label:r.levee,bg:"#8f8f8a"}:t.kind==="memo"?{label:r.memo+(t.score!=null?" "+t.score:""),bg:"#0E7F3F"}:t.pub?{label:r.toEval,bg:"#0E7F3F"}:{label:l3(t,n),bg:$x[Bn(t)]||"#12A150"}}function Hj({objects:t,lang:n,onEvaluate:r,onOpen:i,max:s=60,sortBy:a="az",personal:o=!1,thumbs:c={},onThumb:l,onHover:d,openId:p=null,openAt:u=0,onUnfold:g}){const f=x1[n],[L,v]=m.useState({});m.useEffect(()=>{p&&(v(h=>({...h,[p]:!0})),window.setTimeout(()=>{const h=document.querySelector(`[data-cbrid="${CSS.escape(p)}"]`);h&&(h.scrollIntoView({behavior:"smooth",block:"nearest"}),h.classList.add("cbr-hit"),window.setTimeout(()=>h.classList.remove("cbr-hit"),2400))},80))},[p,u]);const y=t.slice().sort((h,b)=>a==="score"?(b.convictionScore??b.score??-1)-(h.convictionScore??h.score??-1)||h.name.localeCompare(b.name,"fr"):a==="date"&&(b.date||"").localeCompare(h.date||"")||h.name.localeCompare(b.name,"fr"));return y.length?e.jsxs("div",{className:"cbr",children:[e.jsx("style",{children:gm}),y.slice(0,s).map((h,b)=>{const x=Vj(h,n),A=!!L[h.id],w=typeof(h.convictionScore??h.score)=="number"?Math.round(h.convictionScore??h.score):null,S=Js(h.engine),E=h.hot||null,j=E?E.days:h.date?Math.max(0,Math.round((Date.now()-new Date(h.date+"T00:00:00").getTime())/864e5)):99,O=!!E||(h.engagement||0)>=20||h.isToday||j<=7&&(S==="jobs"||S==="funding"||S==="media"||h.dealKind==="levee"),k=E?`${E.emoji} ${n==="fr"?E.fr.charAt(0).toUpperCase()+E.fr.slice(1):E.en.charAt(0).toUpperCase()+E.en.slice(1)}`:S==="jobs"?n==="fr"?"💼 Recrute activement":"💼 Actively hiring":S==="funding"||h.dealKind==="levee"?n==="fr"?"💰 Vient de lever des fonds":"💰 Just raised":S==="media"?n==="fr"?"📰 Dans l’actualité":"📰 In the news":n==="fr"?"🔥 Signal chaud":"🔥 Hot signal";return e.jsxs("div",{className:"cbr-r"+(A?" open":""),"data-cbrid":h.id,onMouseEnter:()=>d&&d(h),onMouseLeave:()=>d&&d(null),children:[e.jsxs("button",{type:"button",className:"cbr-h",onClick:()=>{const _=!L[h.id];v(N=>({...N,[h.id]:!N[h.id]})),_&&g&&g(h)},children:[e.jsx("span",{className:"cbr-num",children:h.rank??b+1}),!o&&e.jsx("span",{className:"cbr-chip",style:{background:x.bg},children:x.label}),e.jsx("b",{className:"cbr-n",children:h.name}),O&&e.jsxs("span",{className:"cbr-hotb",children:[k,h.angle?" · "+h.angle.replace(/_/g," "):"",h.isToday?n==="fr"?" · aujourd’hui":" · today":j<=30?n==="fr"?` · il y a ${j} j`:` · ${j} d ago`:""]}),(h.tagline||h.reasoning)&&e.jsx("span",{className:"cbr-desc",children:(h.tagline||h.reasoning||"").slice(0,88)}),o&&h.kind==="target"&&e.jsx("span",{className:"cbr-st",title:n==="fr"?"Statut du funnel — se tranche sur votre page /cibles (bientôt ici)":"Funnel status — decided on your /cibles page (soon here)",children:["retenu","ana","pending","valide","ecarte"].map(_=>e.jsx("i",{className:Bn(h)===_?"on":"",style:Bn(h)===_?{background:$x[_]}:void 0,children:t1(_,n)},_))}),e.jsx("span",{className:"cbr-m",children:[h.cc?`${cl(h.cc)} ${Dn(h.cc,n)}`:"",h.sector,h.stage,h.amountEur?Br(h.amountEur,n):"",h.date].filter(Boolean).join(" · ")}),h.engine&&e.jsxs("span",{className:"cbr-eng",children:[zr(h.engine)," ",ud(h.engine,n)]}),(o||h.kind==="memo")&&w!=null&&e.jsxs("span",{className:"cbr-s",children:[w,"/100"]}),e.jsxs("span",{className:"cbr-go",role:"button",tabIndex:0,onClick:_=>{_.stopPropagation(),r(h)},onKeyDown:_=>{_.key==="Enter"&&(_.stopPropagation(),r(h))},children:["⚡ ",f.evaluate.replace("⚡ ","")]}),e.jsx("span",{className:"cbr-c",children:A?"▴":"▾"})]}),A&&e.jsxs("div",{className:"cbr-b",children:[(h.tagline||h.headline)&&e.jsx("p",{className:"cbr-tag",children:h.tagline||h.headline}),(h.sector||h.stage||h.cc||h.angle)&&e.jsx("p",{className:"cbr-tags",children:[h.sector,h.stage,h.cc?Dn(h.cc,n):"",h.angle?"ICP · "+h.angle.replace(/_/g," "):""].filter(
3964Boolean).map(_=>e.jsx("i",{children:_},_))}),h.reasoning&&e.jsxs("p",{className:"cbr-why",children:[e.jsx("b",{children:f.why})," — ",h.reasoning]}),h.engine&&e.jsxs("p",{className:"cbr-how",children:[e.jsx("b",{children:f.how})," — ",zr(h.engine)," ",e.jsx("b",{children:ud(h.engine,n)}),Do(h.engine,n)?` · ${Do(h.engine,n)}`:"",h.date?` · ${f.detected} ${h.date}`:""]}),E&&e.jsxs("p",{className:"cbr-hot",children:["🎯 ",e.jsx("b",{children:n==="fr"?"Fenêtre de tir":"Window of opportunity"})," — ",n==="fr"?E.fr:E.en," · ",n==="fr"?"signalé le":"flagged on"," ",E.date," · ",E.left>0?n==="fr"?`fenêtre encore ${E.left} j`:`${E.left} d left`:n==="fr"?"dernier jour":"last day",E.url&&e.jsxs(e.Fragment,{children:[" · ",e.jsx("a",{href:E.url,target:"_blank",rel:"noopener",children:n==="fr"?"voir la source ↗":"view source ↗"})]})]}),!E&&(h.engagement||0)>=20&&e.jsx("p",{className:"cbr-hot",children:f.hot}),h.noteTitle&&e.jsxs("p",{className:"cbr-how",children:["📚 ",f.note," ",h.noteUrl?e.jsxs("a",{href:h.noteUrl.startsWith("http")?h.noteUrl:"https://proplace.co"+h.noteUrl,target:"_blank",rel:"noopener",children:["« ",h.noteTitle," » ↗"]}):e.jsxs(e.Fragment,{children:["« ",h.noteTitle," »"]})]}),(h.contactName||h.website||h.contactLinkedin||h.linkedinCompany)&&e.jsxs("p",{className:"cbr-links",children:[h.contactName&&e.jsxs("b",{children:["🤝 ",h.contactName]}),h.website&&e.jsx("a",{href:h.website,target:"_blank",rel:"noopener",children:f.site}),h.contactLinkedin&&e.jsx("a",{href:h.contactLinkedin,target:"_blank",rel:"noopener",children:f.lead}),h.linkedinCompany&&e.jsx("a",{href:h.linkedinCompany,target:"_blank",rel:"noopener",children:f.coLi}),h.contactEmail&&e.jsxs("a",{href:"mailto:"+h.contactEmail,children:["✉ ",h.contactEmail]})]}),e.jsxs("div",{className:"cbr-act",children:[e.jsx("button",{type:"button",className:"cbr-btn main",onClick:()=>r(h),children:f.evaluate}),o&&h.kind==="target"&&l&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"cbr-btn thumb"+(c[h.id]==="yes"?" on":""),onClick:()=>l(h,"yes"),children:"👍"}),e.jsx("button",{type:"button",className:"cbr-btn thumb"+(c[h.id]==="no"?" on":""),onClick:()=>l(h,"no"),children:"👎"})]}),(h.memoUrl||h.kind==="memo"&&h.memoType!=="note"&&h.url)&&e.jsx("a",{className:"cbr-btn",href:h.memoUrl||h.url,target:"_blank",rel:"noopener",children:f.openMemo}),h.kind==="op"&&h.url&&e.jsx("a",{className:"cbr-btn",href:h.url,target:"_blank",rel:"noopener",children:f.source})]})]})]},h.id)}),y.length>s&&e.jsxs("p",{className:"cbr-empty",children:["+",y.length-s,"…"]})]}):e.jsxs("p",{className:"cbr-empty",children:[e.jsx("style",{children:gm}),f.empty]})}const gm=`
3965.cbr{display:flex;flex-direction:column;gap:0;border:1px solid var(--line,#E3E8F0);background:#fff}
3966.cbr-r{border-top:1px solid var(--line,#E3E8F0)}
3967.cbr-r:first-child{border-top:0}
3968.cbr-r.open{background:#FAFAF8}
3969.cbr-r.cbr-hit{outline:3px solid var(--green,#12A150);outline-offset:-2px;background:#E7F6EE}
3970.cbr-h{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}
3971.cbr-h:hover .cbr-n{color:var(--green-dk,#12A150)}
3972.cbr-chip{flex:0 0 auto;font-size:12px;font-weight:600;color:#fff;padding:2px 7px}
3973.cbr-n{font-size:13.5px;color:var(--ink,#16233A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
3974.cbr-m{flex:1;font-size:11.5px;color:var(--mid,#777);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
3975.cbr-s{font-size:12px;font-weight:800;color:var(--green-dk,#12A150);background:#E7F6EE;padding:1px 7px}
3976.cbr-eng{font-size:10.5px;color:var(--mid,#999);white-space:nowrap}
3977.cbr-num{flex:0 0 22px;width:22px;height:22px;border-radius:99px;background:var(--ink,#16233A);color:#fff;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
3978.cbr-hotb{flex:0 0 auto;background:#E5484D;color:#fff;font-size:9.5px;font-weight:800;padding:2px 8px;border-radius:99px;white-space:nowrap}
3979.cbr-desc{flex:1 2 auto;min-width:0;font-size:11px;
3979color:var(--mid,#888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
3980.cbr-st{display:inline-flex;gap:3px;flex:0 0 auto}
3981.cbr-st i{font-style:normal;font-size:9px;font-weight:800;padding:2px 6px;color:var(--mid,#999);background:var(--bg,#F5F7FA);border-radius:99px}
3982.cbr-st i.on{color:#fff}
3983.cbr-btn.thumb{padding:5px 8px}
3984.cbr-btn.thumb.on{border-color:var(--green,#12A150);background:#E7F6EE}
3985@media(max-width:900px){.cbr-desc{display:none}}
3986@media(max-width:760px){
3987  .cbr-h{flex-wrap:wrap;row-gap:6px;padding:11px 12px}
3988  .cbr-n{max-width:calc(100% - 130px)}
3989  .cbr-hotb{white-space:normal;text-align:left}
3990  .cbr-m{flex:1 1 100%;order:1;white-space:normal}
3991  .cbr-st{order:1;flex-wrap:wrap}
3992  .cbr-go{order:2;margin-left:auto;padding:8px 14px}
3993  .cbr-c{order:2}
3994}
3995.cbr-go{flex:0 0 auto;background:var(--green,#12A150);color:#fff;font-size:10.5px;font-weight:800;padding:3px 9px;cursor:pointer;border-radius:99px}
3996.cbr-go:hover{background:var(--green-dk,#0E7F3F)}
3997@media(max-width:760px){.cbr-eng{display:none}}
3998.cbr-c{color:var(--mid,#999);font-size:11px}
3999.cbr-b{padding:2px 14px 12px;display:grid;gap:7px}
4000.cbr-tag{margin:0;font-size:13px;line-height:1.55;color:var(--ink,#16233A)}
4001.cbr-tags{margin:0;display:flex;gap:6px;flex-wrap:wrap}
4002.cbr-tags i{font-style:normal;font-size:10.5px;font-weight:700;color:var(--sub,#444);background:var(--bg,#F5F7FA);border:1px solid var(--line,#E3E8F0);padding:2px 8px;border-radius:99px}
4003.cbr-why{margin:0;font-size:12.5px;line-height:1.5;color:var(--sub,#444);font-style:italic}
4004.cbr-how{margin:0;font-size:12px;line-height:1.5;color:var(--mid,#666)}
4005.cbr-how a{color:inherit;text-decoration:underline;text-underline-offset:2px}
4006.cbr-hot{margin:0;font-size:12.5px;font-weight:700;color:#96690E}
4007.cbr-links{margin:0;display:flex;gap:12px;flex-wrap:wrap;font-size:12px;align-items:center}
4008.cbr-links a{color:var(--ink,#16233A);text-decoration:underline;text-underline-offset:2px}
4009.cbr-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
4010.cbr-btn{border:1px solid rgba(10,10,10,.35);background:#fff;color:var(--ink,#16233A);font-size:11.5px;font-weight:700;padding:5px 11px;cursor:pointer;text-decoration:none;font-family:inherit}
4011.cbr-btn:hover{border-color:var(--green,#12A150);color:var(--green-dk,#12A150)}
4012.cbr-btn.main{background:var(--green,#12A150);color:#fff;border-color:var(--green,#12A150)}
4013.cbr-btn.main:hover{background:var(--green-dk,#0E7F3F);color:#fff}
4014.cbr-empty{font-size:12.5px;color:var(--mid,#777);margin:6px 0}
4015`;function Yj(){var y;const{cc:t}=yp(),n=(t||"").toUpperCase().slice(0,2),{lang:r}=ae(),i=r==="fr",[s,a]=m.useState([]),[o,c]=m.useState(null),[l,d]=m.useState(!1);m.useEffect(()=>{let h=!1;return Promise.all([gr(),Db(),_p(),Fp(),sy()]).then(([b,x,A,w,S])=>{if(h)return;const E=(A||[]).map(O=>Ox(O,r)).filter(Boolean),j=[...(b&&b.recent_ops||[]).map(O=>fd(O,r)).filter(Boolean),...(x||[]).map(O=>Wb(O)).filter(Boolean),...E,...w];a(j.filter(O=>O.cc===n)),c(S),d(!0),Px(E,r).then(O=>{h||a(k=>[...k,...O.filter(_=>_.cc===n&&!k.some(N=>N.name===_.name))])}).catch(()=>{})}),()=>{h=!0}},[n,r]);const p=Uj(n),u=o&&o.countries&&((y=o.countries[n])==null?void 0:y.level)||0,g=u||Bj(n),f=m.useMemo(()=>s.filter(h=>h.kind==="op"),[s]),L=f.filter(h=>h.dealKind==="ma").length,v=h=>{window.location.href=(i?"/fr/":"/")+"?pin="+encodeURIComponent(h.name)};return e.jsxs("div",{className:"pays-page",children:[e.jsx("style",{children:Gj}),e.jsx(Di,{}),e.jsxs("main",{className:"pays-main",children:[e.jsxs("p",{className:"pays-kicker",children:[i?"FICHE PAYS":"COUNTRY SHEET",p&&e.jsxs(e.Fragment,{children:[" · ",i?"NIVEAU":"LEVEL"," ",g,"/4",u?i?" (niveau du jour)":" (today’s level)":""," · ",ac.name," ",ac.edition," (",ac.publisher,")"]})]}),e.jsxs("h1",{children:[cl(n)," ",Dn(n,r)||n]}),e.jsxs("p",{className:"pays-meta",children:[f.length," ",i?"opérations dans la fenêtre":"deals in the window"," · ",L," M&A · ",f.length-L," ",i?"levées":"rounds",p&&e.jsxs(e.Fragment,{children:[" · GII ",p[0],"/100 · #",p[1]]})]}),e.jsx("p",{className:"pays-back",children:e.jsxs("a",{href:i?"/fr/":"/",children:["← ",i?"Le planisphère":"The world map"]})}),l?e.jsx(Hj,{objects:s,lang:r,max:120,sortBy:"date",onEvaluate:v,onOpen:v}):e.jsx("p",{className:"pays-meta",children:"…"})]}),e.jsx(Nt,{})]})}const Gj=`
4016.pays-main{max-width:1180px;margin:0 auto;padding:28px 24px 60px}
4017.pays-kicker{font-size:12px;font-weight:600;color:#12A150;margin:0 0 8px}
4018.pays-main h1{font-size:34px;margin:0 0 6px}
4019.pays-meta{color:var(--mid,#777);font-size:14px;margin:0 0 6px}
4020.pays-back{margin:0 0 18px;font-size:13px}
4021.pays-back a{color:var(--ink,#16233A);text-decoration:underline;text-underline-offset:3px}
4022`,Wj={retenu:1,ana:2,pending:3,valide:4,ecarte:5};function Uo(t){return Lt(t)?Wj[Bn(t)]??1:0}function Hw(t){return(t.angleId||(t.provQuery?"":t.gateAngleId)||"").replace(/_/g," ").trim()}function Qj(t){return t.memoUrl?(t.memoType||"").trim().toLowerCase()==="detailed"?2:1:0}function Yw(t){if(Bn(t)!=="pending"||!t.verdictDate)return null;const n=br(t.verdictDate);return n>=0&&n<3650?n:null}function Gw(t){return Bn(t)!=="pending"?null:(t.verdict||"").trim().toUpperCase().includes("CALL")?"auto":"cd"}function Ww(t){return(t.verdict||"").trim().toUpperCase()}const Qw={CALL:0,"CALL PENDING":.5,"CALL YES":.6,"CALL NO":.7,CONSIDER:1,MATCH:2,LEAD:2.5,MONITOR:3,"NO MATCH":4,PASS:5},Zw={MATCH:"#047857",LEAD:"#047857","NO MATCH":"#B91C1C",CALL:"#4AC67F","CALL PENDING":"#4AC67F","CALL YES":"#0E8A4F","CALL NO":"#B91C1C",CONSIDER:"#CA8A04",MONITOR:"#2563EB",PASS:"#DC2626"};function Zj(t){let n=(t.verdict||"").trim().toUpperCase();return(!n||n==="NEW"||n==="LEAD")&&(n=(t.cribleStatus||"").trim().toUpperCase()),!n||n==="NEW"||n==="LEAD"?null:n.includes("NO MATCH")?"NO MATCH":"MATCH"}const Kw={"CALL PENDING":"call","CALL YES":"v-yes","CALL NO":"v-no2",CONSIDER:"v-cons",MONITOR:"v-mon",PASS:"v-pass"};function Kj(t){const n=(t.verdict||"").trim().toUpperCase();return n.includes("CALL")?e1(t):n==="CONSIDER"||n==="MONITOR"||n==="PASS"?n:null}function Jw(t){const n=Zj(t);return n==="MATCH"?2:n==="NO MATCH"?1:0}function $w(t){switch(Kj(t)){case"CALL YES":return 6;case"CALL PENDING":return 5;case"CALL NO":return 4;case"CONSIDER":return 3;case"MONITOR":return 2;case"PASS":return 1;default:return 0}}const Xw={0:"--p0",1:"--p1",2:"--p2",3:"--p3",4:"--p4",5:"--p5",6:"--pf",7:"--pv"};function e8(t){return t<=3||t===6}function t8(t){return Uo(t)===3&&Qj(t)===1}function n8(t,n){const r={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0};for(const i of t){if(i.kind==="op")continue;const s=Uo(i);r[s]++,s>=1&&r[7]++,n.has(i.id)&&r[6]++}return r}function r8(t,n,r){return t.kind==="op"?!1:n===6?r.has(t.id):n===7?Uo(t)>=1:Uo(t)===n}function Jj(t){return typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=7}const $j=new Map([["kept",1],["ana",2],["pending",3],["callyes",4],["rej",5],["fav",6]]);function Xj(t){return $j.get((t||"").trim().toLowerCase())}function i8(t,n){return(t[3]||0)>0?3:1}function L1(t){const n=(t||"").trim().toLowerCase();if(n==="ma"||n==="levee")return[n];if(n==="acquereur"||n==="acquereurs")return["ma"]}function v1(t){return((t==null?void 0:t.get("acq"))||"").trim()}function e4(t){return((t==null?void 0:t.get("only"))||"").trim()}const Qn=t=>(t||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"");function fm(t){const n=(t||"").trim().match(/^(.*?)\s+for\s+(.+)$/i);if(!n)return null;const r=n[1].trim(),i=n[2].trim();return r&&i?{company:r,fund:i}:null}function s8(t,n,r){const i=Qn(n);if(!i)return;const s=t.find(d=>Qn(d.name||"")===i);if(s)return s;const a=Qn(r);if(!a)return;const o=t.find(d=>{const p=fm(d.name||"");return!!p&&Qn(p.company)===i&&Qn(p.fund)===a});if(o)return o;const c=fm(n);if(!c||Qn(c.fund)!==a)return;const l=Qn(c.company);return t.find(d=>Qn(d.name||"")===l)}const t4="pp-rdv-slot",n4=m.lazy(()=>Vr(()=>import("./AtelierV2Section-Cua_IQbO.js"),__vite__mapDeps([0,1,2,3,4]))),r4=`
4023/* Embed marchés / actualités : hauteur NATURELLE (pas de scroll interne liste).
4024   « Afficher plus » agrandit le bloc ; l'iframe suit via postMessage → parent.
4025   Scroll de page = document hôte uniquement. */
4026html,body{height:auto!important;margin:0;overflow:hidden!important;padding-top:0!important}
4027#root,.pp-embed-root{height:auto!important;min-height:0;max-width:100%;overflow:hidden}
4028.atl2{height:auto!important;max-height:none!important;overflow:hidden!important;border-radius:0!important}
4029.atl2 .live-stack,.atl2.cibles .live-stack{position:relative!important;top:auto!important;border-radius:0!important;max-width:100%;overflow:hidden!important}
4030.atl2 .ticker,.atl2 .live-stack--cibles .ticker{
4031  height:44px!important;max-height:44px!important;overflow:hidden!important;
4032  flex-wrap:nowrap!important;align-items:center}
4033.atl2 .ticker .win,.thesis-days,.pp-days{max-width:100%;overflow:hidden}
4034.pp-days .pp-dscroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
4035.pp-days .pp-dscroll::-webkit-scrollbar{display:none}
4036.atl2.cibles .fzone>.conts{overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap;scrollbar-width:none}
4037.atl2.cibles .conts .side{flex:none}
4038.atl2.cibles .readpane{overflow:visible!important;max-height:none!important;position:relative!important;top:auto!important}
4039.atl2 .app{height:auto!important;max-height:none!important;overflow:visible!important;
4040  display:flex;flex-direction:column}
4041.atl2 .list{overflow:visible!important;flex:none!important;min-height:0;
4042  max-height:none!important}
4043.atl2 .fzone{flex:none!important;height:auto!important;
4044  min-height:0!important;max-height:none!important;
4045  overflow:visible!important}
4046/* la SCÈNE contient sa carte (16/08 : « la carte déborde tous les menus ») —
4047   l'ancien layout 100dvh la bornait, la hauteur naturelle doit la laisser
4048   grandir jusqu'à max(carte, rail). */
4049.atl2 .stage{height:auto!important;min-height:0!important;
4050  max-height:none!important;overflow:visible!important;align-items:stretch}
4051.atl2 .mapzone{min-height:460px}
4052/* Bouton Afficher plus — CTA encre, pas un lien vert */
4053.atl2 .moregrp{display:flex;flex-direction:column;align-items:center;justify-content:center;
4054  gap:4px;width:100%;margin:0;padding:18px 16px 20px;border:0;border-top:1px solid #E3E8F0;
4055  background:#fff;cursor:pointer;font:inherit}
4056.atl2 .moregrp .more-label{display:inline-flex;align-items:center;justify-content:center;
4057  min-width:220px;padding:12px 22px;font-size:13.5px;font-weight:700;letter-spacing:-.01em;
4058  color:#fff;background:#16233A;border:1.5px solid #16233A;border-radius:0;
4059  transition:background .12s,border-color .12s,transform .12s}
4060.atl2 .moregrp:hover .more-label{background:#1B2F4E;border-color:#1B2F4E}
4061.atl2 .moregrp:active .more-label{transform:translateY(1px)}
4062.atl2 .moregrp .more-meta{font-family:var(--pp-body);font-size:12px;font-weight:600;color:#8FA0B8}
4063*{scrollbar-width:thin;scrollbar-color:rgba(15,29,51,.18) transparent}
4064`,oc=`
4065/* overflow-y:auto sur #root/.pp-cockpit (height:auto) crée un containing
4066   block sticky qui ne défile pas → Coller une URL / funnel ne collent plus.
4067   Le scroll reste celui du viewport. */
4068html,body,#root,.pp-cockpit{height:auto!important;max-height:none!important;
4069  overflow:visible!important}
4070.pp-cockpit{--atelier-h:auto!important}
4071.atl2,.atl2 .app{height:auto!important;max-height:none!important;
4072  overflow:visible!important}
4073.atl2 .list,.atl2.cibles .desk-list .list,.atl2.cibles .desk-list{overflow:visible!important;
4074  max-height:none!important;flex:none!important}
4075`;function xm({forceUi:t}){var v;const n=typeof window<"u"?new URLSearchParams(window.location.search):null,r=(n==null?void 0:n.get("guest"))==="lp",i=typeof window<"u"&&(n==null?void 0:n.get("embed"))==="1",s=typeof window<"u"&&(n==null?void 0:n.get("chrome"))==="1"&&!r,a=typeof window<"u"&&!!new URLSearchParams(window.location.search).get("cb"),{lang:o}=ae(),c=t??d1(),[l,d]=m.useState(()=>{if(typeof window>"u")return!1;try{return localStorage.getItem("ppmap:navFolded")==="1"}catch{return!1}});m.useEffect(()=>{document.body.classList.toggle("pp-navfold",l);try{localStorage.setItem("ppmap:navFolded",l?"1":"0")}catch{}return()=>document.body.classList.remove("pp-navfold")},[l]),m.useEffect(()=>i&&!s?(document.body.classList.add("np-flush"),()=>document.body.classList.remove("np-flush")):(document.body.classList.add("pp-desk"),()=>document.body.classList.remove("pp-desk")),[i,s]),m.useEffect(()=>{if(!s&&!i)return;const y=x=>{if(!x.querySelector("style[data-hide-v1lnk]")){const A=x.createElement("style");A.setAttribute("data-hide-v1lnk","1"),A.textContent="a.v1lnk{display:none!important;visibility:hidden!important;pointer-events:none!important}",(x.head||x.documentElement).appendChild(A)}x.querySelectorAll("a.v1lnk").forEach(A=>A.remove())},h=()=>{try{y(document)}catch{}try{window.parent&&window.parent!==window&&y(window.parent.document)}catch{}};h();const b=window.setTimeout(h,400);return()=>window.clearTimeout(b)},[i,s]),m.useEffect(()=>{if(!i)return;const y=document.createElement("base");return y.target="_top",document.head.appendChild(y),()=>{try{document.head.removeChild(y)}catch{}}},[i]),ht({en:{title:"Proplace — The M&A evaluation workshop",description:"Every company our engines detected — live signals, 7-day firing windows — evaluate any of them against your criteria."},fr:{title:"Proplace — L’atelier d’évaluation M&A",description:"Toutes les sociétés détectées par nos moteurs — signaux en direct, fenêtres de tir de 7 jours — évaluez-les selon vos critères."}});const p=m.useMemo(()=>{if(typeof window>"u")return{};const y=new URLSearchParams(window.location.search),h=y.get("ptab"),b=h&&h.trim()!==""?Number(h):NaN,x=y.get("dens"),A=(y.get("research")||"").trim(),w=(y.get("search")||y.get("eval")||"").trim(),S={};w&&(S.search=w);const E=e4(y);E&&(S.onlyCompany=E);const j=(y.get("secteurs")||"").split(",").map(pe=>
4075pe.trim()).filter(Boolean);j.length&&(S.sector=j);const O=v1(y);O&&(S.acquirer=O,S.win="all");const k=(y.get("win")||"").trim();(k==="1"||k==="7"||k==="30"||k==="all")&&(S.win=k);const _=(y.get("day")||y.get("jour")||"").trim();/^\d{4}-\d{2}-\d{2}$/.test(_)&&(S.day=_);const N=(y.get("type")||"").trim(),I=L1(N);I&&(S.dealKind=I);const ce=(y.get("source")||"").trim().toLowerCase(),K=(window.location.hash||"").replace(/^#/,"").trim().toLowerCase();return{source:A?{research:A}:ce==="ops"?"ops":"default",initialUi:{ptab:Jj(b)?b:Xj(y.get("tab")),dens:x==="liste"||x==="deplie"||x==="ligne"||x==="maxi"?x:void 0,modal:K==="rdv"?"rdv":K==="alertes"||K==="alert"?"alert":K==="criteres"||K==="crit"?"crit":K==="connecter"||K==="plug"?"plug":void 0},initialFilters:Object.keys(S).length?S:void 0}},[]);m.useEffect(()=>{var y;if((y=p.initialUi)!=null&&y.modal)try{window.history.replaceState(null,"",window.location.pathname+window.location.search)}catch{}},[(v=p.initialUi)==null?void 0:v.modal]);const u=typeof window<"u"&&((n==null?void 0:n.get("ticker"))==="0"||r),g=typeof window<"u"&&((n==null?void 0:n.get("onb"))==="0"||r);m.useEffect(()=>{if(typeof window>"u")return;const y=new URLSearchParams(window.location.search),h=(y.get("eval")||"").trim(),b=(y.get("similar")||"").trim(),x=(y.get("queue")||"").split("|").map(O=>O.trim()).filter(Boolean),A=(y.get("analyse")||"").trim(),w=(y.get("memo")||"").trim().toLowerCase(),S=w==="detailed",E=!!((y.get("sel")||y.get("only")||"").trim()&&(w==="instant"||w==="detailed"));if(!h&&!b&&!x.length&&!A&&!E)return;const j=window.setTimeout(()=>{if(x.length)try{window.dispatchEvent(new CustomEvent("ppmap:queue",{detail:{names:x}}))}catch{}if(A&&!E)try{window.dispatchEvent(new CustomEvent("ppmap:analyse",{detail:{name:A}}))}catch{}if(h&&!E){try{window.dispatchEvent(new CustomEvent("ppmap:evaluate",{detail:{name:h}}))}catch{}if(S)try{window.dispatchEvent(new CustomEvent("ppmap:deep-memo",{detail:{name:h}}))}catch{}}if(b){try{sessionStorage.setItem("pp:similar",b)}catch{}try{window.dispatchEvent(new CustomEvent("ppmap:similar",{detail:{name:b}}))}catch{}}},600);return()=>window.clearTimeout(j)},[]);const f=c==="v2"?e.jsx(m.Suspense,{fallback:e.jsx("div",{style:{height:"var(--atelier-h, 100dvh)"}}),children:e.jsx(n4,{source:p.source,initialUi:p.initialUi,initialFilters:p.initialFilters,capsOverride:{...u?{showTicker:!1}:null,...g?{showOnb:!1}:null}})}):e.jsx(c1,{});if(m.useEffect(()=>{if(!i)return;const y=h=>{if(!(!(h.ctrlKey||h.metaKey)||h.altKey)&&(h.key||"").toLowerCase()==="p"){h.preventDefault();try{window.print()}catch{}}};return document.addEventListener("keydown",y,!0),()=>document.removeEventListener("keydown",y,!0)},[i]),m.useEffect(()=>{if(!i||s||r||In())return;const y=()=>{try{const x=Math.ceil(Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.offsetHeight));x>0&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"pp-ck-h",h:x},"*")}catch{}};y();const h=typeof ResizeObserver<"u"?new ResizeObserver(()=>y()):null;h&&h.observe(document.documentElement);const b=window.setInterval(y,800);return window.addEventListener("load",y),()=>{h==null||h.disconnect(),window.clearInterval(b),window.removeEventListener("load",y)}},[i,s,r]),i&&r)return e.jsxs("div",{className:"pp-cockpit",style:{"--pp-gap":"0px","--atelier-h":"auto"},children:[e.jsx("style",{children:`html,body{padding-top:0!important;margin:0;overflow:auto!important}#root{min-height:0}${oc}.pp-cockpit{--pp-live-h:0px;--demand-h:0px}.atl2.cibles .listhead{top:0!important}`}),f]});if(i&&In())return e.jsxs("div",{className:"pp-cockpit",style:{"--pp-gap":"0px","--atelier-h":"auto"},children:[e.jsx("style",{children:`html,body{padding-top:0!important;margin:0;overflow:auto!important}#root{min-height:0}${oc}`}),f]});if(i&&!s)return e.jsxs("div",{className:"pp-embed-root",style:{height:"auto","--atelier-h":"auto","--pp-gap":"0px"},children:[e.jsx("style",{children:r4}),f]});const L=(s?60:68)-(l?34:0);return e.jsxs("div",{className:"pp-cockpit",style:{"--pp-gap":`${L}px`},children:[e.jsx("style",{children:i4}),s&&e.jsx("style",{children:oc}),s?e.jsx(Di,{active:"direct"}):e.jsx(zn,{}),!s&&e.jsx("button",{type:"button",className:"pp-navfold-btn",onClick:()=>d(y=>!y),"aria-expanded":!l,title:l?"Déplier l’en-tête":"Replier l’en-tête",children:l?"⌄":"⌃"}),e.jsxs("div",{style:{maxWidth:"none",margin:0,padding:"0 0 24px"},children:[f,s&&a&&e.jsx("div",{id:t4})]}),e.jsx(Nt,{})]})}const i4=`
4076/* HAUTEUR DE L'APP — « il faut allonger l'app » (Antoine, 09/08).
4077   La boite est fixe et seule la liste a le droit d'y grandir. Mesure en prod
4078   avant correctif, fenetre 900 px : les douze bandeaux permanents (519 px) plus
4079   la carte (316 px) depassaient a eux seuls la boite (832 px) — la liste
4080   tombait a ZERO ligne. C'est le produit qui disparaissait, pas un detail.
4081   D'ou un plancher : sous 1000 px la page defile, au lieu d'ecraser la liste.
4082   Reserve aux grands ecrans — sur telephone la mise en page est empilee et un
4083   plancher de 1000 px n'aurait aucun sens. */
4084.pp-cockpit { --atelier-h: calc(100dvh - var(--pp-gap)); }
4085@media (min-width: 861px) {
4086  .pp-cockpit { --atelier-h: max(1000px, calc(100dvh - var(--pp-gap))); }
4087}
4088/* Liste courte : le pied de page va en bas de l'écran, pas sous la dernière
4089   carte. Le header sticky est DANS la colonne quand le body est np-flush
4090   (/cibles) ; sinon la nav fixe a déjà réservé --pp-gap. */
4091.pp-cockpit{min-height:calc(100dvh - var(--pp-gap, 60px));
4092  display:flex;flex-direction:column}
4093body.np-flush .pp-cockpit{min-height:100dvh}
4094.pp-cockpit>.ppf{margin-top:auto;flex:none;width:100%}
4095/* IMPRESSION : la nav du site et le pied de page ne veulent rien dire sur
4096   papier ; la mention « lien prive » si, on la garde. Le decalage de body
4097   (index.css pose padding-top:60px pour la nav fixe) doit sauter aussi, sinon
4098   chaque page imprimee commence par 60 px de blanc. */
4099@media print {
4100  body { padding-top: 0 !important; }
4101  .pp-nav, .pp-navfold-btn, .pp-foot, footer { display: none !important; }
4102  /* le planificateur de rendez-vous occupait la derniere page imprimee : un
4103     document que le dirigeant pose devant son comite n'a pas a se terminer par
4104     un choix de creneau. La mention « lien prive », elle, reste : elle dit d'ou
4105     vient la selection et qu'elle ne se transfere pas. */
4106  #pp-rdv-slot { display: none !important; }
4107}
4108body.pp-navfold { padding-top: 26px; }
4109body.pp-navfold .pp-nav { height: 26px; }
4110body.pp-navfold .pp-nav-end,
4111body.pp-navfold .pp-nav-min-r { display: none; }
4112body.pp-navfold .pp-nav-brand img { height: 15px; }
4113.pp-navfold-btn {
4114  position: fixed; z-index: 61; top: 18px; right: 14px;
4115  width: 24px; height: 24px; line-height: 1;
4116  display: flex; align-items: center; justify-content: center;
4117  font: 13px/1 system-ui; color: var(--sub, #4B5E78);
4118  background: #fff; border: 1px solid rgba(0,0,0,.10); border-radius: 7px;
4119  cursor: pointer; opacity: .55; transition: opacity .15s ease, top .15s ease;
4120}
4121.pp-navfold-btn:hover { opacity: 1; color: var(--ink, #16233A); }
4122body.pp-navfold .pp-navfold-btn { top: 2px; }
4123@media (max-width: 760px) { .pp-navfold-btn { display: none; } }
4124`,Lm="pp-socialcard-style",vm="20261009";let os=null;function s4(){if(!os)if(document.getElementById(Lm))os=Promise.resolve(!0);else{const t=n=>fetch(n).then(r=>r.ok?r.text():"");os=t(`/social-card.css?v=${vm}`).catch(()=>"").then(n=>n||t(`https://proplace.co/social-card.css?v=${vm}`).catch(()=>"")).then(n=>{if(!n)return!1;const r=document.createElement("style");return r.id=Lm,r.textContent=n,document.head.appendChild(r),!0}).catch(()=>(os=null,!1))}return os}function W(t,n,r){const i=document.createElement(t);return n&&(i.className=n),r!==void 0&&(i.textContent=r),i}const a4=t=>t.length<=13?"":t.length<=20?"sm":"xs",o4=new Set(["rachat","levee_une","en_cours","presse","recrutement","nomination","signal"]),l4=new Set(["acquired","raise","pending","press","hiring","appointment"]),b1=["january","february","march","april","may","june","july","august","september","october","november","december"],c4={fr:{rachat:"M&A",en_cours:"M&A",levee_une:"Levée de fonds",presse:"Actualité",recrutement:"Recrutement",nomination:"Nomination",signal:"Signal"},en:{rachat:"M&A",en_cours:"M&A",levee_une:"Funding round",presse:"News",recrutement:"Hiring",nomination:"Appointment",signal:"Signal"}},d4={fr:{buyer:"Acquéreur",target:"Cible",verb:"acquiert",quote:"À la une",source:"Source",tag:"Du signal à la signature."},en:{buyer:"Acquirer",target:"Target",verb:"acquires",quote:"Headline",source:"Source",tag:"From signal to signature."}},p4=new Set(["ma","vc","rh","actu","hr","news"]),u4=new Set(["montant","amount"]);function Vo(t){return String(t||"").normalize("NFKD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function ls(t,n){const r=Vo(t);
4124return!!r&&r===Vo(n)}function lc(t){return/\d/.test(t)&&/[€$£]|\bCHF\b|\b(?:M|Md|Mds|bn|k)\b/i.test(t)}function h4(t){let n=String(t||"").trim().toLowerCase();for(const r of b1)n.includes(r)&&(n=n.split(r).join(r.charAt(0).toUpperCase()+r.slice(1)));return n}function bm(t,n,r){return t.length<=n?"":t.length<=r?"s-m":"s-s"}function m4(t){const n=t.band;return o4.has(t.kind)&&!(n&&(n.type==="top"||n.type==="list"))}function g4(t){const n=t.kind,r=String(t.word||"").trim(),i=l4.has(r.toLowerCase())||b1.some(k=>String(t.date_fr||"").toLowerCase().includes(k))?"en":"fr",s=c4[i][n]||String(t.kicker||"").trim(),a=t.band||null,o=a&&a.type==="deal"&&a.left&&a.right?a:null,c=String(t.kicker||"").trim(),l=String(t.who||"").trim(),d=String(t.what||"").trim(),p=String(t.meta||"").trim(),u=a&&a.type==="rows"?(a.cells||[]).slice(0,3):[];let g=o?String(o.amount||"").trim():"";if(!g&&c&&lc(c)&&(g=c),!g){const k=u.find(_=>u4.has(Vo(_.k))&&lc(String(_.v||"")));k&&(g=String(k.v||"").trim())}const f=n==="presse"&&!l,L=!r||n==="presse"||o?"":r,v=g||L,y=g&&L&&n!=="levee_une"?L:"",h=[];for(const k of u){const _=String(k.v||"").trim();!_||ls(_,l)||ls(_,g)||h.push({k:String(k.k||"").trim(),v:_})}const b=[l,g,s,L,...o?[o.left||"",o.right||""]:[],...h.map(k=>k.v)],x=[],A=[c&&!lc(c)&&!p4.has(Vo(c))?c:"",...p.split(" · ")].map(k=>k.trim());for(const k of A)k&&!b.some(_=>ls(k,_))&&!x.some(_=>ls(k,_))&&x.push(k);const w=f?d:"";let S=a&&a.type==="quote"?String(a.text||"").trim():"";S&&ls(S,w||d)&&(S="");const E=t.media&&t.media.items||[];let j="";f&&E[0]&&String(E[0].kind||"").toLowerCase()==="name"&&(j=String(E[0].alt||E[0].text||"").trim());const O=o||f?[]:E.slice(0,2).filter(k=>String(k.kind||"").toLowerCase()==="logo"&&k.src).map(k=>({src:String(k.src),alt:String(k.alt||k.cap||"")}));return{lang:i,cat:s,date:h4(t.date_fr),ma:n==="rachat"||n==="en_cours",eye:y,hero:v,heroIsAmount:!!g,title:o||f?"":l,head:w,ctx:o||f?"":d,meta:x.join(" · "),source:j,deal:o?{left:String(o.left||""),leftSub:String(o.left_sub||""),right:String(o.right||""),rightSub:String(o.right_sub||"")}:null,facts:h,quote:S,logos:O}}function f4(t,n="x"){const r=g4(t),i=d4[r.lang],s=r.facts.length?"facts":r.quote?"quote":r.logos.length?"logos":"",a=W("div",`ppcard ${n==="li"?"f-li":"f-x"} v2 k-${t.kind}${r.ma?" bg-ma":""}`),o=W("div","s-hd"),c=document.createElement("img");c.className="s-logo",c.src="https://proplace.co/logo.png",c.alt="Proplace",o.appendChild(c),o.appendChild(W("span","s-sp"));const l=W("span","s-lab");r.cat&&l.appendChild(W("span","s-cat",r.cat)),r.date&&l.appendChild(W("span","s-dt",r.date)),o.appendChild(l),a.appendChild(o);const d=W("div",s?"s-body":"s-body s-solo"),p=W("div","s-txt");if(r.eye&&p.appendChild(W("div","s-eye",r.eye)),r.hero&&p.appendChild(W("div",r.heroIsAmount?"s-hero":"s-hero s-w",r.hero)),r.deal&&r.meta&&p.appendChild(W("div","s-meta",r.meta)),r.deal){const f=(v,y,h)=>{const b=W("div","s-pt");b.appendChild(W("span","s-role",v));const x=bm(y,14,24);return b.appendChild(W("span",x?`s-pn ${x}`:"s-pn",y)),h&&b.appendChild(W("span","s-ps",h)),b},L=W("div","s-deal");L.appendChild(f(i.buyer,r.deal.left,r.deal.leftSub)),L.appendChild(W("span","s-verb",i.verb)),L.appendChild(f(i.target,r.deal.right,r.deal.rightSub)),p.appendChild(L)}if(r.head&&p.appendChild(W("div","s-title s-head",r.head)),r.title){const f=bm(r.title,18,28);p.appendChild(W("div",f?`s-title ${f}`:"s-title",r.title))}if(r.ctx&&p.appendChild(W("div","s-ctx",r.ctx)),r.meta&&!r.deal&&p.appendChild(W("div","s-meta",r.meta)),r.source&&p.appendChild(W("div","s-src",`${i.source} · ${r.source}`)),d.appendChild(p),s){const f=W("div","s-aside");if(s==="facts"){const L=W("div","s-facts");for(const v of r.facts){const y=W("div","s-f");v.k&&y.appendChild(W("span","s-k",v.k)),y.appendChild(W("span","s-v",v.v)),L.appendChild(y)}f.appendChild(L)}else if(s==="quote"){const L=W("div","s-quote");L.appendChild(W("span","s-qk",i.quote)),L.appendChild(W("div","s-qt",r.quote)),f.appendChild(L)}else{const L=W("div","s-logos");for(const v of r.logos){const y=W("div","s-tile"),h=document.createElement("img");h.src=v.src,h.alt=v.alt,y.appendChild(h),L.appendChild(y)}f.appendChild(L)}d.appendChild(f)}a.appendChild(d);const u=W("div","s-ft"),g=W("span","s-cta","proplace.co/actualites");return g.appendChild(W("span","s-arr","→")),u.appendChild(g),u.appendChild(W("span","s-tag",i.tag)),a.appendChild(u),a}function x4(t){if(t.card)return t.card;if(t.kind!=="signal")return null;const n=t.cls==="pr";return!t.text&&!t.name?null:{kind:n?"presse":"signal",kicker:n?"Actualité":"Signal",tint:n?"t-w":"t-k",date_fr:"",word:t.big||t.label.replace(/^[^\s]+\s/,""),who:[t.name,t.sector].filter(
4124Boolean).join(" · ")||null,what:null,band:n&&t.text?{type:"quote",text:t.text}:null}}function L4(t){if(!t||!t.items||!t.items.length)return null;const n=t.layout||(t.items.length>=2?"duo":"solo"),r=W("div",`media ${n}`);for(const i of t.items.slice(0,2)){const s=(i.kind||"").toLowerCase();if(s==="name"){const c=(i.text||i.alt||"").trim();if(!c)continue;const l=W("div","im name");i.color&&/^#[0-9A-Fa-f]{6}$/.test(i.color)&&(l.style.background=i.color),l.appendChild(W("span",i.name_cls?`nm ${i.name_cls}`:"nm",c)),i.sub&&l.appendChild(W("em","cap2",i.sub)),i.cap&&l.appendChild(W("span","cap",i.cap)),r.appendChild(l);continue}if(!i.src)continue;const a=W("div",s==="logo"?"im logo":s==="mono"?"im mono":"im"),o=document.createElement("img");o.src=i.src,o.alt=i.alt||i.cap||"",a.appendChild(o),i.sub&&a.appendChild(W("em","cap2",i.sub)),i.cap&&a.appendChild(W("span","cap",i.cap)),r.appendChild(a)}return r.childNodes.length?r:null}function v4(t){const n=W("div","band");if(t.type==="deal"){const r=W("div","deal"),i=(s,a)=>{if(!a)return W("span","lg",s);const o=W("span","side");return o.appendChild(W("span","lg",s)),o.appendChild(W("em","lgs",a)),o};return t.left&&r.appendChild(i(t.left,t.left_sub)),t.left&&t.right&&r.appendChild(W("span","ar","→")),t.right&&r.appendChild(i(t.right,t.right_sub)),t.amount&&r.appendChild(W("span","amt",t.amount)),r.childNodes.length?(n.appendChild(r),n):null}if(t.type==="rows"){const r=W("div","rows");for(const i of(t.cells||[]).slice(0,3)){const s=String(i.v||""),a=W("div",`r1${s.length<=6?"":s.length<=12?" s":" s2"}`);a.appendChild(W("b",void 0,s)),a.appendChild(W("span",void 0,i.k||"")),r.appendChild(a)}return r.childNodes.length?(n.appendChild(r),n):null}if(t.type==="top"){const r=W("div","top");return(t.rows||[]).forEach((i,s)=>{const a=W("div","tr");a.appendChild(W("span","tn",String(s+1))),a.appendChild(W("span","tl",i.label||"")),i.amount&&a.appendChild(W("span","ta",i.amount)),r.appendChild(a)}),r.childNodes.length?(n.appendChild(r),n):null}if(t.type==="list"){const r=(t.rows||[]).length,i=Math.min(3,Math.max(1,t.cols||(r>28?3:r>10?2:1))),s=W("div",`list c${i}`);for(const a of t.rows||[]){if(!a.label)continue;const o=W("div","li");o.appendChild(W("span","ln",a.label)),a.amount&&o.appendChild(W("span","la",a.amount)),s.appendChild(o)}return s.childNodes.length?(n.appendChild(s),n):null}return t.type==="quote"&&t.text?(n.appendChild(W("div","quote",t.text)),n):null}async function b4(t,n){if(!await s4())return null;const r=x4(t);return r?y4(r,n):null}function y4(t,n){var b,x;const s=n/1200,a=W("div","ppstage");if(a.style.width=`${n}px`,a.style.height=`${Math.round(675*s)}px`,m4(t)){const A=f4(t,"x");return A.style.transform=`scale(${s})`,a.appendChild(A),a}const o=t.band?v4(t.band):null,c=L4(t.media),l=c?"":" nomedia",d=((x=(b=t.band)==null?void 0:b.rows)==null?void 0:x.length)||0,p=d>=4?" crowded":"",u=W("div",`ppcard f-x ${t.tint}${l}${p}${o?"":" noband"}`);d&&u.setAttribute("data-n",String(d)),u.style.transform=`scale(${s})`;const g=W("div","hd"),f=W("span","lv");f.appendChild(W("i")),f.appendChild(document.createTextNode("LIVE")),g.appendChild(f),g.appendChild(W("span",t.kicker_cls?`kk ${t.kicker_cls}`:"kk",t.kicker)),g.appendChild(W("span","sp")),g.appendChild(W("span","dt",t.date_fr||"")),u.appendChild(g);const L=W("div","main");c&&L.appendChild(c);const v=W("div","txt");v.appendChild(W("div",`word ${t.word_cls??a4(t.word)}`,t.word)),t.who&&v.appendChild(W("div","who",t.who)),t.what&&v.appendChild(W("div","said",t.what)),t.meta&&v.appendChild(W("div","who-meta",t.meta)),L.appendChild(v),u.appendChild(L),o&&u.appendChild(o);const y=W("div","ft");y.appendChild(W("span","u","proplace.co/actualites"));const h=document.createElement("img");return h.src="https://proplace.co/logo.png",h.alt="Proplace",t.tint!=="t-w"&&(h.className="inv"),y.appendChild(h),u.appendChild(y),a.appendChild(u),a}const ym="pp-lmod-style-v3",ri='var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif)',j4=`
4125.pp-lmod{position:fixed;inset:0;z-index:1200;background:rgba(15,29,51,.55);display:flex;
4126align-items:center;justify-content:center;padding:22px;
4127font-family:var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif);color:#0F1D33}
4128.pp-lmod,.pp-lmod *{box-sizing:border-box}
4129.pp-lcard{width:min(880px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:12px;
4130box-shadow:0 30px 80px rgba(15,29,51,.4)}
4131/* LA GRAMMAIRE DE LA LIGNE DÉPLIÉE (16/08) : texte en mesure de lecture à
4132   gauche, carte fixe à droite, une rangée de chips méta, une rangée d'actions. */
4133.pp-lgrid{display:flex;gap:20px;padding:16px 0 4px;align-items:flex-start}
4134.pp-lmain{flex:1;min-width:0}
4135.pp-lside{flex:none;width:340px}
4136@media (max-width:760px){.pp-lgrid{flex-direction:column}.pp-lside{width:100%}}
4137.pp-ldec h4{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
4138.pp-ldec p{margin:0 0 10px;font-size:13.5px;color:#33404E;line-height:1.7}
4139.pp-ldec a{color:#1E5FCC;text-decoration:none;border-bottom:1px solid #C7DDFA}
4140.pp-lhead{margin:0;font-size:15.5px;font-weight:600;font-style:italic;line-height:1.5;color:#1E2A38}
4141.pp-lmeta{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 0}
4142.pp-lmeta span,.pp-lmeta button{font-family:${ri};font-size:12px;
4143color:#4B5E78;background:none;border:1px solid #E3E8F0;border-radius:4px;padding:3px 8px;font-weight:600}
4144.pp-lmeta button{cursor:pointer}
4145.pp-lmeta button:hover{color:#0F1D33;border-color:#0F1D33}
4146.pp-lsrc{display:inline-block;margin-top:10px;font-family:${ri};font-size:10.5px;
4147color:#4B5E78;text-decoration:none;border-bottom:1px dotted #B9C6D2}
4148.pp-lsrc:hover{color:#0F1D33;border-bottom-color:#0F1D33}
4149.pp-lfoot{display:flex;gap:8px;justify-content:flex-end;padding:12px 0 0;margin-top:12px;
4150border-top:1px solid #E3E8F0}
4151.pp-lh{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid #E3E8F0}
4152.pp-lh b{font-size:19px;font-weight:600;letter-spacing:-.02em}
4153.pp-lh .pp-sp{flex:1}
4154.pp-lx{background:none;border:0;font-size:22px;color:#8496A8;cursor:pointer;line-height:1;padding:0}
4155.pp-lsig{font-size:10.5px;font-weight:600;color:#fff;border-radius:3px;padding:4px 9px}
4156.pp-lsig.lv{background:#E5484D}.pp-lsig.ma{background:#7C3AED}.pp-lsig.jb{background:#E0A81E}
4157.pp-lsig.pr{background:#0F1D33}.pp-lsig.nt{background:#1E5FCC}.pp-lsig.fil{background:#12A150}
4158.pp-lb2{padding:6px 20px 20px}
4159.pp-lacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
4160.pp-lbtn{background:#12A150;color:#fff;border:0;border-radius:8px;padding:9px 14px;
4161font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none;
4162display:inline-block}
4163.pp-lbtn:hover{background:#0E8A44;text-decoration:none}
4164.pp-lghost{background:#fff;border:1px solid #C9D6E6;border-radius:8px;padding:9px 14px;
4165font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;color:#0F1D33;
4166text-decoration:none;display:inline-block}
4167.pp-lghost:hover{border-color:#0F1D33;background:#F5F7FA;text-decoration:none}
4168.pp-lcardimg{min-height:150px;border-radius:8px;background:#0E8A44;color:#fff;
4169padding:14px 16px 12px;margin-top:4px;overflow:hidden;display:flex;flex-direction:column}
4170.pp-lclive{font-family:${ri};font-size:12px;background:#E5484D;
4171border-radius:3px;padding:4px 8px;display:block;width:fit-content;margin-bottom:12px;font-weight:600}
4172.pp-lcw{display:block;font-size:34px;font-weight:700;letter-spacing:-.04em;line-height:1.05;
4173text-transform:uppercase;word-break:break-word}
4174.pp-lcq{display:block;font-size:14px;font-style:italic;line-height:1.45;opacity:.92;margin-top:8px}
4175.pp-lcs{display:block;font-family:${ri};font-size:12px;opacity:.8;margin-top:8px;font-weight:600}
4176.pp-lcm{display:block;margin-top:auto;padding-top:10px;text-align:right;
4177font-family:${ri};font-size:9px;opacity:.7}
4178.pp-ltag{display:block;margin-top:9px;font-family:${ri};font-size:12px;color:#8496A8;font-weight:600}
4179/* l'emplacement de la VRAIE carte (live/card.ts) — bordé, pour qu'on voie que
4180   c'est un objet fini et pas un bloc de la page */
4181.pp-lcardhold{margin-top:4px;border:1px solid #E3E8F0;overflow:hidden;line-height:0}
4182`,w4={fr:{s1none:"Signal détecté par nos moteurs — pas de lien public.",ev:"⚡ Évaluer cette société",search:"🔍 Chercher ce signal dans mon deal flow",similar:"🧬 Trouver des similaires",rs:"🔎 Extraire les sociétés de l'article",explore:"🔎 Explorer les sociétés pertinentes",cockpit:"Voir dans le cockpit",source:"Voir la source",x:"𝕏 Voir sur X",li:"in Suivre sur LinkedIn",close:"Fermer"},en:{s1none:"Signal detected by our engines — no public link.",ev:"⚡ Evaluate this company",search:"🔍 Find this signal in my deal flow",similar:"🧬 Find similar companies",rs:"🔎 Extract companies from this article",explore:"🔎 Explore relevant companies",cockpit:"Open in the cockpit",source:"See the source",x:"𝕏 See on X",li:"in Follow on LinkedIn",close:"Close"}};function k4(){if(document.getElementById(ym))return;const t=document.createElement("style");t.id=ym,t.textContent=j4,document.head.appendChild(t)}function A4(t,n={}){k4();const r=n.lang==="en"?"en":"fr",i=w4[r],s=document.createElement("div");s.className="pp-lmod";const a=document.createElement("div");a.className="pp-lcard",s.appendChild(a);const o=document.createElement("div");o.className="pp-lh";const c=document.createElement("span");c.className="pp-lsig "+t.cls,c.textContent=t.label,o.appendChild(c);const l=document.createElement("b");
4182l.textContent=t.kind==="fil"?t.name||t.big||(r==="fr"?"Édition du jour":"Today's edition"):t.name||t.big,o.appendChild(l);const d=document.createElement("span");d.className="pp-sp",o.appendChild(d);const p=document.createElement("button");p.type="button",p.className="pp-lx",p.setAttribute("aria-label",i.close),p.textContent="×",o.appendChild(p),a.appendChild(o);const u=document.createElement("div");u.className="pp-lb2",a.appendChild(u);const g=document.createElement("div");g.className="pp-lgrid";const f=document.createElement("div");f.className="pp-lmain",g.appendChild(f);const L=document.createElement("div");f.appendChild(L);const v=document.createElement("p");v.className="pp-lhead",v.textContent=t.text||(t.url?"":i.s1none),v.textContent&&L.appendChild(v);const y=document.createElement("div");if(y.className="pp-lmeta",t.sector){const z=document.createElement("button");z.type="button",z.textContent=t.sector,z.addEventListener("click",()=>{var Y,B;try{window.dispatchEvent(new CustomEvent("ppmap:filter",{detail:{sector:t.sector}}))}catch{}try{const X=document.querySelector("#pp-market-ck");(Y=X==null?void 0:X.contentWindow)==null||Y.postMessage({type:"pp-filter",sector:t.sector},"*"),(B=document.querySelector(".atl2")||X)==null||B.scrollIntoView({behavior:"smooth",block:"start"})}catch{}xe()}),y.appendChild(z)}for(const z of[t.amount,t.when].filter(Boolean)){const Y=document.createElement("span");Y.textContent=z,y.appendChild(Y)}if(y.childNodes.length&&f.appendChild(y),t.url){const z=(()=>{try{return new URL(t.url).hostname.replace(/^www\./,"")}catch{return""}})(),Y=document.createElement("a");Y.className="pp-lsrc",Y.href=t.url,Y.target="_blank",Y.rel="nofollow noopener",Y.textContent=(r==="fr"?"lire la source":"read the source")+(z?" · "+z:"")+" ↗",f.appendChild(Y)}const h=document.createElement("div");h.className="pp-lside",g.appendChild(h);const b=document.createElement("div");b.className="pp-lcardhold";const x=document.createElement("div");x.className="pp-lcardimg";const A=document.createElement("span");A.className="pp-lclive",A.textContent="● LIVE",x.appendChild(A);const w=document.createElement("span");if(w.className="pp-lcw",w.textContent=t.name||t.big,x.appendChild(w),t.text){const z=document.createElement("span");z.className="pp-lcq",z.textContent=t.text,x.appendChild(z)}const S=[t.name?t.big:"",t.sector].filter(Boolean).join(" · ");if(S){const z=document.createElement("span");z.className="pp-lcs",z.textContent=S.toUpperCase(),x.appendChild(z)}const E=document.createElement("span");E.className="pp-lcm",E.textContent="proplace.co",x.appendChild(E),b.appendChild(x),h.appendChild(b),u.appendChild(g);const j=z=>{try{const B=document.cookie.split("; ").filter(X=>X.indexOf("proplace_auth=")===0)[0];if(B){const X=JSON.parse(atob(decodeURIComponent(B.split("=")[1])));if(X&&X.fund_type){const te=String(X.member_session||"").trim();return"/cibles/go/?fund="+encodeURIComponent(X.fund_type)+(te?"&session="+encodeURIComponent(te):"")+"&"+z}}}catch{}return(!location.pathname.startsWith("/en/")?"/actualites/":"/en/actualites/")+"?"+z},O=document.createElement("div");O.className="pp-lacts";
4182const k=(z,Y,B,X)=>{const te=document.createElement("a");te.className=B?"pp-lbtn":"pp-lghost",te.href=z,te.textContent=Y,X!=null&&X.blank&&(te.target="_blank",te.rel="nofollow noopener"),X!=null&&X.onClick&&te.addEventListener("click",X.onClick),O.appendChild(te)},_=t.name.length>28?t.name.slice(0,27)+"…":t.name,N=t.name?i.ev.replace(/cette société|this company/,_):i.ev,I=t.name.length>=2&&dl(t.name),ce=/\/actualites(\/|$)/.test(location.pathname.replace(/^\/en(?=\/)/,"")),K=!!t.url,pe=t.kind==="fil"||t.cls==="pr"||t.cls==="fil"||t.rub==="actualites"||t.rub==="nominations"||t.rub==="recrutements",ee=[t.name?"eval="+encodeURIComponent(t.name):"",t.date?"jour="+encodeURIComponent(t.date.slice(0,10)):"",t.rub==="ma"?"type=ma":t.rub==="levees"?"type=levee":"",t.sector?"q="+encodeURIComponent(t.sector):""].filter(Boolean).join("&"),P=()=>!!document.querySelector(".atl2")||!!document.getElementById("pp-direct-atelier"),D=()=>{var z;try{const Y=document.querySelector("#pp-market-ck");(z=document.querySelector(".atl2")||document.getElementById("pp-direct-atelier")||Y)==null||z.scrollIntoView({behavior:"smooth",block:"start"})}catch{}},M=z=>{var B;z.preventDefault();const Y={};t.sector&&(Y.sector=t.sector),t.date&&(Y.day=t.date.slice(0,10)),t.name&&(Y.search=t.name),(t.rub==="ma"||t.rub==="levees")&&(Y.dealKind=t.rub==="ma"?"ma":"levee");try{window.dispatchEvent(new CustomEvent("ppmap:filter",{detail:Y}))}catch{}try{const X=document.querySelector("#pp-market-ck");(B=X==null?void 0:X.contentWindow)==null||B.postMessage({type:"pp-filter",...Y},"*")}catch{}D(),xe()},re=z=>{if(ce){z.preventDefault();let Y=!1;try{const B=document.cookie.split("; ").filter(X=>X.indexOf("proplace_auth=")===0)[0];if(B){const X=JSON.parse(atob(decodeURIComponent(B.split("=")[1])));Y=!!(X&&X.fund_type)}}catch{}if(Y)window.location.assign(j("eval="+encodeURIComponent(t.name)));else try{window.dispatchEvent(new CustomEvent("ppmap:signup",{detail:{name:t.name}}))}catch{}xe();return}if(!(!P()||!I)){z.preventDefault();try{window.dispatchEvent(new CustomEvent("ppmap:evaluate",{detail:{name:t.name}}))}catch{}D(),xe()}},H=z=>{if(ce&&I){z.preventDefault();let B=!1;try{const X=document.cookie.split("; ").filter(te=>te.indexOf("proplace_auth=")===0)[0];if(X){const te=JSON.parse(atob(decodeURIComponent(X.split("=")[1])));B=!!(te&&te.fund_type)}}catch{}if(B)window.location.assign(j("similar="+encodeURIComponent(t.name)));else try{window.dispatchEvent(new CustomEvent("ppmap:signup",{detail:{name:t.name}}))}catch{}xe();return}if(!(!(P()&&location.pathname.indexOf("/cibles")>=0)||!I)){z.preventDefault();try{sessionStorage.setItem("pp:similar",t.name)}catch{}try{window.dispatchEvent(new CustomEvent("ppmap:filter",{detail:{search:t.name}})),window.dispatchEvent(new CustomEvent("ppmap:similar",{detail:{name:t.name}}))}catch{}D(),xe()}},se=(z,Y)=>{if(P()){z.preventDefault();try{window.dispatchEvent(new CustomEvent("ppmap:research",{detail:Y}))}catch{}D(),xe()}};if(K&&pe&&k(j("rs="+encodeURIComponent(t.url)),i.rs,!0,{onClick:z=>se(z,{url:t.url})}),I&&(k(j("eval="+encodeURIComponent(t.name)),N,!pe,{onClick:re}),k(j("similar="+encodeURIComponent(t.name)),i.similar,!1,{onClick:H})),K&&!pe&&k(j("rs="+encodeURIComponent(t.url)),i.rs,!1,{onClick:z=>se(z,{url:t.url})}),!K&&(t.text||I)){const z=[t.name,t.text,t.sector].filter(Boolean).join(`
4183`);k(j("rstext="+encodeURIComponent(z)),i.explore,!I,{onClick:Y=>se(Y,{text:z})})}ee&&k(j(ee),i.cockpit,!1,{onClick:M}),K&&k(t.url,i.source,!1,{blank:!0}),u.appendChild(O);const ie=document.createElement("div");ie.className="pp-lfoot";const he=document.createElement("a");he.className="pp-lghost",he.href="https://x.com/Proplace_co",he.target="_blank",he.rel="noopener",he.textContent=i.x,ie.appendChild(he);const Le=document.createElement("a");Le.className="pp-lghost",Le.href="https://www.linkedin.com/in/alexandre-proplace/",Le.target="_blank",Le.rel="noopener",Le.textContent=i.li,ie.appendChild(Le),u.appendChild(ie);const xe=()=>{document.removeEventListener("keydown",oe),s.remove()},oe=z=>{z.key==="Escape"&&xe()};p.addEventListener("click",xe),s.addEventListener("click",z=>{z.target===s&&xe()}),document.addEventListener("keydown",oe),document.body.appendChild(s),b4(t,Math.max(240,b.clientWidth||340)).then(z=>{z&&b.isConnected&&b.replaceChildren(z)}),Tx().then(z=>{const Y=((z==null?void 0:z.date)||"").slice(0,10);if(!Y||(t.date||"").slice(0,10)!==Y)return;const B=Ib(z);if(!B.length||!L.isConnected)return;const X=Pb(B,new Set,t.name,t.text||t.big),te=document.createElement("div");if(te.className="pp-ldec",X>=0){te.innerHTML=B[X].html,L.replaceChildren(te);return}if(t.kind==="fil"){for(const Ae of B){const Ze=document.createElement("div");Ze.innerHTML=Ae.html,te.appendChild(Ze)}te.childNodes.length&&L.replaceChildren(te)}}).catch(()=>{})}const y1={fr:{dow:["D","L","M","M","J","V","S"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],op:t=>`${t} op.`,none:"—",legend:"Les éditions du jour",fold:"Masquer les jours",unfold:"Voir les jours",daysBtn:"Jours",read:"ouvrir cette édition",noPage:"pas encore d’édition ce jour-là",soon:"à venir",unknown:"aucun relevé pour ce jour",inWin:"dans les 7 jours du direct",prev:"Mois précédent",next:"Mois suivant",left:"Défiler vers la gauche",right:"Défiler vers la droite",today:"aujourd’hui"},en:{dow:["S","M","T","W","T","F","S"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],op:t=>`${t} deal${t>1?"s":""}`,none:"—",legend:"The day’s editions",fold:"Hide the days",unfold:"Show the days",daysBtn:"Days",read:"open this edition",noPage:"no edition that day yet",soon:"upcoming",unknown:"no record for that day",inWin:"within the 7 days of the live feed",prev:"Previous month",next:"Next month",left:"Scroll left",right:"Scroll right",today:"today"}},S4=()=>typeof location<"u"&&location.hostname.endsWith("proplace.co")?"":"https://proplace.co";let Wa=null;function j1(){return Wa||(Wa=fetch(S4()+"/actualites/manifest.json",{cache:"no-cache"}).then(t=>t.ok?t.json():[]).then(t=>Array.isArray(t)?t:[]).catch(()=>(Wa=null,[]))),Wa}const jm="pp-days-style-v4",w1="ppdays:open",na="pp-days-open";function wd(){try{return localStorage.getItem(w1)==="1"}catch{return!1}}function E4(t){try{localStorage.setItem(w1,t?"1":"0")}catch{}try{window.dispatchEvent(new CustomEvent(na,{detail:{open:t}}))}catch{}}const cs='var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif)',N4=`
4184.pp-days{font-family:var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif);color:#fff;
4185background:#0F1D33;padding:9px 12px 10px}
4186.pp-days,.pp-days *{box-sizing:border-box}
4187.pp-days .pp-dh{display:flex;align-items:center;gap:10px;padding:0 2px 8px}
4188.pp-days .pp-dm{display:inline-flex;align-items:center;gap:5px}
4189.pp-days .pp-dmb{border:1px solid #1B2F4E;background:transparent;width:24px;height:24px;
4190line-height:1;font-size:12px;color:#A7B6CC;cursor:pointer;font-family:inherit;padding:0}
4191.pp-days .pp-dmb:hover:not(:disabled){border-color:#5FD39B;color:#fff}
4192.pp-days .pp-dmb:disabled{opacity:.28;cursor:default}
4193.pp-days .pp-dt{font-family:${cs};font-size:12px;font-weight:600;color:#A7B6CC;min-width:11ch;text-align:center}
4194.pp-days .pp-dsp{flex:1}
4195.pp-days .pp-dleg{font-family:${cs};font-size:12px;color:#5A6E85;white-space:nowrap;font-weight:600}
4196/* REPLI (retour Antoine 10/08 : « un moyen d'afficher / réduire les jours ») —
4197   la bande n'est pas toujours ce qu'on vient chercher ; elle se range, et le
4198   choix est mémorisé par navigateur. */
4199.pp-days .pp-dfold{display:inline-flex;align-items:center;gap:7px;border:1px solid #1B2F4E;
4200background:transparent;color:#A7B6CC;font-family:${cs};font-size:12px;padding:5px 10px;cursor:pointer;white-space:nowrap;font-weight:600}
4201.pp-days .pp-dfold:hover{border-color:#5FD39B;color:#fff}
4202.pp-days .pp-dfold i{font-style:normal;font-size:9px;line-height:1}
4203.pp-days[hidden]{display:none!important}
4204.pp-days .pp-dfold{display:none}
4205/* les gouttières des flèches : elles vivent DANS la marge, jamais par-dessus
4206   une case (sinon la première et la dernière du mois sont à moitié cachées) */
4207.pp-days .pp-dbox{position:relative;padding:0 30px}
4208.pp-days .pp-dscroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
4209scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
4210.pp-days .pp-dscroll::-webkit-scrollbar{display:none}
4211.pp-days .pp-drow{display:flex;gap:4px;width:max-content;min-width:100%}
4212/* margin/text-transform remis à zéro EXPRÈS : la bande est montée dans des
4213   pages qui ont leurs propres classes courtes — MarchesPage définit un .win
4214   mono, en capitales, avec 18px de marge, qui tombait pile sur les cases de la
4215   fenêtre (elles partaient 18px plus bas, en majuscules). D'où aussi le
4216   renommage de la classe de fenêtre en .dwin. */
4217.pp-days .pp-dc{flex:none;width:58px;display:flex;flex-direction:column;align-items:center;
4218justify-content:center;gap:1px;height:54px;text-decoration:none;border:1px solid transparent;
4219position:relative;margin:0;text-transform:none;
4220transition:background .14s ease,border-color .14s ease}
4221.pp-days .pp-dc em{font-style:normal;font-family:${cs};font-size:12px;opacity:.7;font-weight:600}
4222.pp-days .pp-dc b{font-size:17px;font-weight:700;letter-spacing:-.03em;line-height:1.05}
4223.pp-days .pp-dc span{font-family:${cs};font-size:12px;opacity:.62;
4224white-space:nowrap;font-weight:600}
4225/* ① une édition existe : cliquable, encre claire (a = navigate, button = local /cibles) */
4226.pp-days a.pp-dc,.pp-days button.pp-dc{background:#16233A;color:#fff;cursor:pointer}
4227.pp-days a.pp-dc:hover,.pp-days button.pp-dc:hover{background:#1E3050;border-color:#5FD39B;text-decoration:none}
4228.pp-days button.pp-dc{font:inherit;padding:0;appearance:none;-webkit-appearance:none}
4229/* ② l'édition ouverte */
4230.pp-days .pp-dc.cur{background:#12A150;color:#fff;border-color:#12A150}
4231.pp-days a.pp-dc.cur:hover,.pp-days button.pp-dc.cur:hover{background:#12A150;border-color:#5FD39B}
4232/* la FENÊTRE du direct (pages marché) : toute la semaine en vert, un cran
4233   sous le jour d'ancrage — on voit d'un regard ce que le LIVE regroupe */
4234.pp-days .pp-dc.dwin{background:#0B6B3E;color:#fff;border-color:#12A150}
4235.pp-days a.pp-dc.dwin:hover,.pp-days button.pp-dc.dwin:hover{background:#12A150;border-color:#5FD39B}
4236/* ③ pas d'édition : inerte, et ça se voit */
4237.pp-days span.pp-dc{background:#0E1A2C;color:#47586E;cursor:default}
4238.pp-days .pp-dc.tdy::after{content:"";position:absolute;left:50%;bottom:4px;width:12px;height:2px;
4239background:currentColor;transform:translateX(-50%);opacity:.75}
4240.pp-days .pp-darr{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:26px;
4241height:26px;border:1px solid #1B2F4E;background:#0F1D33;color:#A7B6CC;font-size:13px;line-height:1;
4242cursor:pointer;display:grid;place-items:center;font-family:inherit;padding:0}
4243.pp-days .pp-darr:hover{border-color:#5FD39B;color:#fff}
4244.pp-days .pp-darr.l{left:0}.pp-days .pp-darr.r{right:0}
4245@media (max-width:760px){
4246.pp-days{padding:8px 8px 9px}
4247.pp-days .pp-dbox{padding:0}
4248.pp-days .pp-dc{width:50px;height:50px}
4249.pp-days .pp-dc b{font-size:15px}
4250.pp-days .pp-darr,.pp-days .pp-dleg{display:none}
4251}
4252@media (prefers-reduced-motion:reduce){.pp-days .pp-dscroll{scroll-behavior:auto}}
4253/* Thème clair — cockpit /cibles (collé sous LIVE, surface page) */
4254.pp-days.pp-days-light{color:#16233A;background:transparent;padding:8px 0 6px}
4255.pp-days.pp-days-light .pp-dmb{border-color:#E3E8F0;color:#4B5E78}
4256.pp-days.pp-days-light .pp-dmb:hover:not(:disabled){border-color:#12A150;color:#16233A}
4257.pp-days.pp-days-light .pp-dt{color:#4B5E78}
4258.pp-days.pp-days-light .pp-dleg{color:#8FA0B8}
4259.pp-days.pp-days-light .pp-dfold{border-color:#E3E8F0;color:#4B5E78}
4260.pp-days.pp-days-light .pp-dfold:hover{border-color:#12A150;color:#16233A}
4261.pp-days.pp-days-light a.pp-dc,
4262.pp-days.pp-days-light button.pp-dc{background:#F5F7FA;color:#16233A;border-color:transparent}
4263.pp-days.pp-days-light a.pp-dc:hover,
4264.pp-days.pp-days-light button.pp-dc:hover{background:#E3E8F0;border-color:#12A150}
4265.pp-days.pp-days-light .pp-dc.cur{background:#12A150;color:#fff;border-color:#12A150}
4266.pp-days.pp-days-light .pp-dc.dwin{background:#E7F6EE;color:#16233A;border-color:#86EFAC}
4267.pp-days.pp-days-light a.pp-dc.cur:hover,
4268.pp-days.pp-days-light button.pp-dc.cur:hover{background:#12A150;border-color:#12A150}
4269.pp-days.pp-days-light span.pp-dc{background:#F9FBFD;color:#8FA0B8}
4270.pp-days.pp-days-light .pp-darr{border-color:#E3E8F0;background:#fff;color:#4B5E78}
4271.pp-days.pp-days-light .pp-darr:hover{border-color:#12A150;color:#16233A}
4272`;function C4(){if(document.getElementById(jm))return;const t=document.createElement("style");t.id=jm,t.textContent=N4,document.head.appendChild(t)}const ra=t=>String(t).padStart(2,"0"),Qa=t=>t.slice(0,7);function wm(t){const n=Number(t.slice(0,4)),r=Number(t.slice(5,7));return!n||!r||r<1||r>12?0:new Date(Date.UTC(n,r,0)).getUTCDate()}function cc(t,n){const r=Number(t.slice(0,4)),i=Number(t.slice(5,7)),s=new Date(Date.UTC(r,i-1+n,1));return`${s.getUTCFullYear()}-${ra(s.getUTCMonth()+1)}`}function _4(t){const n=Date.parse(t+"T00:00:00Z");return Number.isNaN(n)?0:new Date(n).getUTCDay()}function T4(t,n){const r=Date.parse(t+"T00:00:00Z");if(Number.isNaN(r))return t;const i=new Date(r+n*864e5);return`${i.getUTCFullYear()}-${ra(i.getUTCMonth()+1)}-${ra(i.getUTCDate())}`}const q4=(t,n)=>{const r=Number(t.slice(5,7));return`${y1[n].months[r-1]||t} ${t.slice(0,4)}`};
4272function F4(t,n={}){C4();const r=n.lang==="en"?"en":"fr",i=y1[r],s=n.mode==="local",a=n.theme==="light",o=xn();let c=(n.current||"").slice(0,10);const l=Math.max(0,Math.min(31,Math.floor(Number(n.windowDays)||0))),d=l>1&&c?T4(c,-(l-1)):"";let p=(n.month||"").slice(0,7)||Qa(c||o);wm(p)||(p=Qa(o));let u=!0;const g=new Map,f=new Set,L=new Map,v=new Set,y=new Set((n.editionDays||[]).map(oe=>oe.slice(0,10)).filter(oe=>/^\d{4}-\d{2}-\d{2}$/.test(oe))),h=(n.urlPrefix||"").replace(/\/?$/,"/"),b=(n.sector||"").trim().toLowerCase();let x="",A="",w=!1;const S=oe=>{const z=(Y,B)=>{/^\d{4}-\d{2}-\d{2}$/.test(Y)&&(g.set(Y,B),v.add(Y),(!x||Y<x)&&(x=Y),(!A||Y>A)&&(A=Y))};if(Array.isArray(oe))for(const Y of oe){const B=((Y==null?void 0:Y.date)||"").slice(0,10),X=Number(Y==null?void 0:Y.count);z(B,Number.isFinite(X)&&X>=0?X:0)}else if(oe&&typeof oe=="object")for(const[Y,B]of Object.entries(oe)){const X=Number(B);z(Y.slice(0,10),Number.isFinite(X)&&X>=0?X:0)}w=x!==""};n.dayCounts&&S(n.dayCounts);const E=document.createElement("div");E.className="pp-days"+(a?" pp-days-light":"");const j=document.createElement("div");j.className="pp-dh";const O=document.createElement("span");O.className="pp-dm";const k=document.createElement("button");k.type="button",k.className="pp-dmb",k.textContent="‹",k.title=i.prev,k.setAttribute("aria-label",i.prev);const _=document.createElement("span");_.className="pp-dt";const N=document.createElement("button");N.type="button",N.className="pp-dmb",N.textContent="›",N.title=i.next,N.setAttribute("aria-label",i.next),O.appendChild(k),O.appendChild(_),O.appendChild(N),j.appendChild(O),j.appendChild(Object.assign(document.createElement("span"),{className:"pp-dsp"}));const I=document.createElement("span");I.className="pp-dleg",I.textContent=i.legend,j.appendChild(I),E.appendChild(j);const ce=oe=>{E.hidden=!oe};ce(wd());const K=oe=>{var z;ce(!!((z=oe.detail)!=null&&z.open))};window.addEventListener(na,K);const pe=document.createElement("div");pe.className="pp-dbox";const ee=document.createElement("div");ee.className="pp-dscroll";const P=document.createElement("div");P.className="pp-drow",ee.appendChild(P),pe.appendChild(ee);const D=document.createElement("button");D.type="button",D.className="pp-darr l",D.textContent="‹",D.title=i.left,D.setAttribute("aria-label",i.left);const M=document.createElement("button");M.type="button",M.className="pp-darr r",M.textContent="›",M.title=i.right,M.setAttribute("aria-label",i.right),pe.appendChild(D),pe.appendChild(M),E.appendChild(pe),t.appendChild(E);function re(oe,z,Y,B){const X=`${Number(oe.slice(8,10))} ${i.months[Number(oe.slice(5,7))-1]} ${oe.slice(0,4)}`,te=[];return B&&te.push(i.inWin),te.push(z===null?oe>(A||o)?i.soon:i.unknown:i.op(z)),te.push(Y?i.read:i.noPage),`${X} — ${te.join(" · ")}`}function H(){_.textContent=q4(p,r);const oe=wm(p);P.textContent="";let z=null;for(let Y=1;Y<=oe;Y++){const B=`${p}-${ra(Y)}`,X=w&&!!x&&B>=x&&B<=A;let te="";s||(h?!n.inPlace&&y.has(B)&&(te=`${h}${B}/`):(L.get(B)||g.has(B)||f.has(B))&&(te=`/actualites/?jour=${B}`));const Ae=!!te||g.has(B)||f.has(B),Ze=!s&&!!h&&!!n.inPlace&&!te&&B<=o&&(X||y.has(B)||g.has(B)),Ke=!s&&!h&&!!n.inPlace&&Ae&&B<=o,st=Ze||Ke,Ct=s&&(v.has(B)||g.has(B)),T=s?Ct:!!te||st,C=X||Ct?g.get(B)||0:null,q=document.createElement(s?T?"button":"span":st?"button":te?"a":"span"),G=!!d&&B>=d&&B<=c;q.className="pp-dc"+(B===c?" cur":G?" dwin":"")+(B===o?" tdy":""),!s&&te&&!st&&(q.href=te,B===c&&q.setAttribute("aria-current","page")),(s&&T||st)&&(q.type="button",B===c&&q.setAttribute("aria-current","true")),q.addEventListener("click",Q=>{var ge;if(!(!T&&!s)&&!((s||st)&&(Q.preventDefault(),Q.stopPropagation(),!T))){(s||st)&&(c=B,H());try{(ge=n.onPick)==null||ge.call(n,B)}catch{}try{window.dispatchEvent(new CustomEvent("pp-edition-day",{detail:{day:B}}))}catch{}}}),q.title=re(B,C,T,G||B===c);const F=document.createElement("em");F.textContent=i.dow[_4(B)];const J=document.createElement("b");J.textContent=ra(Y);const R=document.createElement("span");R.textContent=C===null?i.none:i.op(C),q.appendChild(F),q.appendChild(J),q.appendChild(R),P.appendChild(q),(B===c||!c&&B===o)&&(z=q)}requestAnimationFrame(()=>{if(u)if(z){const Y=z.offsetLeft-(ee.clientWidth-z.offsetWidth)/2;ee.scrollLeft=Math.max(0,Y)}else ee.scrollLeft=ee.scrollWidth}
4272),k.disabled=!!x&&cc(p,-1)<Qa(x),N.disabled=p>=Qa(o)}H(),s?n.daysUrl?fetch(n.daysUrl,{cache:"no-cache"}).then(oe=>oe.ok?oe.json():null).then(oe=>{if(!u||!oe)return;const z=Array.isArray(oe.days)?oe.days:Array.isArray(oe)?oe:[];S(z),v.has(o)||(v.add(o),g.has(o)||g.set(o,0),(!x||o<x)&&(x=o),(!A||o>A)&&(A=o),w=!0),H()}).catch(()=>{}):n.dayCounts?(v.has(o)||(v.add(o),g.has(o)||g.set(o,0)),H()):(v.add(o),g.set(o,0),x=A=o,w=!0,H()):Promise.all([Cp(),j1()]).then(([oe,z])=>{if(u){for(const Y of z){const B=(Y&&Y.date?String(Y.date):"").slice(0,10);if(!B)continue;const X=Y.url||"",te=Y.url_en||(X?"/en"+X:""),Ae=r==="en"&&te||X;Ae&&L.set(B,Ae)}for(const Y of oe){const B=(Y&&Y.date?String(Y.date):"").slice(0,10);if(!B||b)continue;const X=Number(Y.count);Number.isFinite(X)&&X>=0&&g.set(B,X);const te=Y.masthead;te&&typeof te=="object"&&(g.set(B,Object.values(te).reduce((Ae,Ze)=>Ae+(Number(Ze)||0),0)),f.add(B)),(!x||B<x)&&(x=B),(!A||B>A)&&(A=B)}w=x!=="",H(),gr().then(Y=>{if(!u||!Y)return;const B=new Map;for(const te of Y.recent_ops||[]){const Ae=(te._pool_date||te.published||"").slice(0,10);if(!Ae)continue;if(b&&String(te.product_category_above||"").trim().toLowerCase()!==b){B.has(Ae)||B.set(Ae,new Set);continue}B.has(Ae)||B.set(Ae,new Set);const Ze=Fx(te.company_name);Ze&&B.get(Ae).add(Ze)}let X=!1;B.forEach((te,Ae)=>{if(f.has(Ae))return;const Ze=te.size;g.get(Ae)!==Ze&&(g.set(Ae,Ze),X=!0),(!x||Ae<x)&&(x=Ae,X=!0),(!A||Ae>A)&&(A=Ae,X=!0)}),w=w||x!=="",X&&H()})}});const se=()=>Math.max(140,Math.round(ee.clientWidth*.72)),ie=()=>{ee.scrollLeft-=se()},he=()=>{ee.scrollLeft+=se()},Le=()=>{p=cc(p,-1),H()},xe=()=>{p=cc(p,1),H()};return D.addEventListener("click",ie),M.addEventListener("click",he),k.addEventListener("click",Le),N.addEventListener("click",xe),()=>{u=!1,window.removeEventListener(na,K),D.removeEventListener("click",ie),M.removeEventListener("click",he),k.removeEventListener("click",Le),N.removeEventListener("click",xe),E.remove()}}const km=["ma","levees","nominations","recrutements","actualites"],Ip={fr:{ops:"OPÉRATIONS",emptyDay:"Aucune opération relevée ce jour-là — les autres éditions sont dans la bande ci-dessous.",notInFeed:t=>`Les ${t===1?"détails de l'opération":`détails des ${t} opérations`} de ce jour ne sont pas dans le fil — ouvrez l'édition dans la bande ci-dessous.`,ev:"Évaluer",ma:"🤝 Rachetée",lv:"💰 Lève des fonds",hire:"💼 Recrute",nom:"👤 Nomination",other:"📰 Actualité",bigMa:"Rachetée",bigLv:"Levée",bigHire:"Recrute",bigNom:"Nomination",bigOther:"Signal",today:"aujourd'hui",yesterday:"hier",ago:t=>`il y a ${t} j`,left:t=>`encore ${t} j`,filAll:"Tout",edito:"Afficher Edito du jour",filWire:"Actualités",grpOps:"Opérations",grpNews:"Actualités",grpSig:"Signaux (vos moteurs)",scopeDay:t=>`Le LIVE regroupe les événements ${t}.`,scopeWin:t=>`Le LIVE regroupe les événements des ${t} derniers jours.`,scopeToday:"d'aujourd'hui",scopeOf:t=>`du ${t}`,scopeOn:t=>` Périmètre : ${t}.`,scopeMa:"fusions-acquisitions",scopeLv:"levées de fonds",rub:{ma:"🤝 M&A",levees:"🚀 Levées de fonds",nominations:"👤 Nominations",recrutements:"💼 Offres d'emploi",actualites:"📰 Autres actualités"}},en:{ops:"DEALS",emptyDay:"No deal recorded that day — the other editions are in the strip below.",notInFeed:t=>`The ${t===1?"deal":`${t} deals`} of that day are not in the ticker — open the edition in the strip below.`,ev:"Evaluate",ma:"🤝 Acquired",lv:"💰 Raising",hire:"💼 Hiring",nom:"👤 Appointment",other:"📰 News",bigMa:"Acquired",bigLv:"Raise",bigHire:"Hiring",bigNom:"Appointment",bigOther:"Signal",today:"today",yesterday:"yesterday",ago:t=>`${t} d ago`,left:t=>`${t} d left`,filAll:"All",edito:"Show today's editorial",filWire:"News",grpOps:"Deals",grpNews:"News",grpSig:"Signals (your engines)",scopeDay:t=>`LIVE covers ${t}.`,scopeWin:t=>`LIVE covers the events of the last ${t} days.`,scopeToday:"today's events",scopeOf:t=>`the events of ${t}`,scopeOn:t=>` Scope: ${t}.`,scopeMa:"M&A",scopeLv:"fundraising",rub:{ma:"🤝 M&A",levees:"🚀 Fundraising",nominations:"👤 Appointments",recrutements:"💼 Job offers",actualites:"📰 Other news"}}},Za={hiring:{fr:"Recrute",en:"Hiring",cls:"jb",emoji:"💼",bigFr:"Recrute",bigEn:"Hiring",rub:"recrutements"},raised:{fr:"Lève des fonds",en:"Raising",cls:"lv",emoji:"💰",bigFr:"Levée",bigEn:"Raise",rub:"levees"},news:{fr:"Presse",en:"Press",cls:"pr",emoji:"📰",bigFr:"Presse",bigEn:"Press",rub:"actualites"},posting:{fr:"Publie",en:"Posting",cls:"nt",emoji:"📣",bigFr:"Publie",bigEn:"Posting",rub:"actualites"},building:{fr:"Construit",en:"Building",cls:"nt",emoji:"💻",bigFr:"Construit",bigEn:"Building",rub:"actualites"},community:{fr:"Communauté",en:"Community",cls:"nt",emoji:"💬",bigFr:"Actif",bigEn:"Active",rub:"actualites"},registry:{fr:"Nouveau",en:"New",cls:"nt",emoji:"🆕",bigFr:"Nouveau",bigEn:"New",rub:"actualites"},exodus:{fr:"Départs",en:"Exodus",cls:"pr",emoji:"👋",bigFr:"Départs",bigEn:"Exo
4272dus",rub:"actualites"}},Am="pp-live-style-v16",ii='var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif)',O4=`
4273/* Le bandeau tient la largeur DE LA PAGE, pas celle de l'écran (retour Antoine
4274   10/08) : mêmes métriques que .pp-nav-inner / .pph .in (1200 / 32) — son bord
4275   gauche tombe donc exactement sous le logo. Règle MIROIR dans le Python
4276   (execution/site_publish.py · PROPLACE_HEADER_CSS) pour que les pages bakées
4277   n'aient pas de saut de mise en page avant le chargement du bundle. */
4278.pp-livewrap{max-width:1200px;margin:0 auto;padding:0 32px}
4279@media (max-width:760px){.pp-livewrap{padding:0 18px}}
4280/* UNE SEULE SURFACE (retour Antoine 10/08 : « le LIVE et les dates doivent
4281   former le même menu, retire les bords arrondis ») : la barre et la bande des
4282   dates vivent dans le même cadre d'encre, séparées par un simple filet. */
4283.pp-band{background:#0F1D33;border:1px solid #1B2F4E}
4284.pp-band .pp-live{border-bottom:1px solid #1B2F4E}
4285.pp-live{display:flex;height:44px;background:#0F1D33;color:#fff;overflow:hidden;align-items:stretch;font-family:var(--pp-body,"Instrument Sans",system-ui,-apple-system,sans-serif);line-height:1.2}
4286.pp-live,.pp-live *{box-sizing:border-box;margin:0}
4287/* Le badge LIVE de la maquette : 11px/700, pastille blanche, coins 4px.
4288   Il etait en 9,5px capitales espacees — illisible, et c'est justement le
4289   seul mot rouge de la barre. La bande fait 44px : on garde 12px de rabat
4290   pour que le fil ne perde pas de largeur. */
4291.pp-live .pp-lb{flex:none;display:flex;align-items:center;gap:7px;padding:0 12px;background:#E5484D;font-size:11px;font-weight:700;color:#fff}
4292.pp-live .pp-lb i{width:6px;height:6px;border-radius:50%;background:#fff;animation:pp-live-bk 1.6s infinite}
4293@keyframes pp-live-bk{0%,100%{opacity:1}50%{opacity:.3}}
4294.pp-live .pp-win{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent)}
4295.pp-live .pp-run{display:flex;width:max-content;height:44px;animation:pp-live-roll 62s linear infinite}
4296.pp-live:hover .pp-run{animation-play-state:paused}
4297@keyframes pp-live-roll{to{transform:translateX(-50%)}}
4298@media (prefers-reduced-motion:reduce){.pp-live .pp-run{animation:none}}
4299.pp-live .pp-tk{display:flex;align-items:center;gap:10px;padding:0 16px;height:44px;border-right:1px solid #1B2F4E;white-space:nowrap}
4300.pp-live .pp-tk.pp-act{cursor:pointer}
4301.pp-live .pp-tk.pp-act:hover{background:#16233A}
4302.pp-live .pp-sg{font-size:9.5px;font-weight:700;border-radius:3px;padding:3px 8px;color:#fff}
4303.pp-live .pp-sg.lv{background:#E5484D}.pp-live .pp-sg.ma{background:#7C3AED}
4304.pp-live .pp-sg.jb{background:#E0A81E}.pp-live .pp-sg.pr{background:#4B5E78}
4305.pp-live .pp-sg.nt{background:#2563EB}.pp-live .pp-sg.fil{background:#12A150;letter-spacing:.12em}
4306.pp-live .pp-tk.pp-filtk{background:#0E1A2C;gap:12px;padding:0 18px;max-width:min(42ch,70vw)}
4307.pp-live .pp-tk.pp-filtk .pp-wt{color:#fff;font-weight:550;font-size:13px;letter-spacing:-.01em;
4308overflow:hidden;text-overflow:ellipsis;max-width:36ch}
4309.pp-live .pp-fl{font-size:15px;line-height:1}
4310/* Texte plus clair (retour Antoine) : blanc net, plus de gris #A7B6CC illisible. */
4311.pp-live .pp-co{font-weight:700;font-size:14px;color:#fff;letter-spacing:-.01em}
4312.pp-live .pp-am{font-family:${ii};font-size:12px;font-weight:700;color:#fff;background:rgba(255,255,255,.16);border-radius:3px;padding:2px 8px}
4313.pp-live .pp-wt{font-size:12.5px;font-weight:500;color:#E8EEF5}
4314.pp-live .pp-soc{flex:none;display:flex;align-items:center;gap:2px;padding:0 8px 0 4px;border-left:1px solid #1B2F4E}
4315.pp-live .pp-soc a,.pp-live .pp-dytog{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;color:#C5D4E3}
4316.pp-live .pp-soc a:hover,.pp-live .pp-dytog:hover{background:#16233A;color:#fff}
4317.pp-live .pp-soc svg,.pp-live .pp-dytog svg{display:block}
4318.pp-live .pp-edito{flex:none;display:inline-flex;align-items:center;gap:6px;height:28px;
4319margin:0 6px 0 2px;padding:0 10px;border:1px solid #1B2F4E;border-radius:5px;
4320background:transparent;color:#E8EEF5;font:inherit;font-size:11.5px;font-weight:650;
4321cursor:pointer;white-space:nowrap}
4322.pp-live .pp-edito:hover{background:#16233A;color:#fff;border-color:#5FD39B}
4323.pp-live .pp-edito[aria-pressed="true"]{color:#7FD8A6;background:#0E1A2C;border-color:#12A150}
4324.pp-live .pp-dytog{flex:none;width:40px;height:44px;border:0;border-left:1px solid #1B2F4E;border-radius:0;
4325background:transparent;cursor:pointer;color:#C5D4E3}
4326.pp-live .pp-dytog:hover{background:#16233A;color:#fff}
4327.pp-live .pp-dytog[aria-pressed="true"]{color:#7FD8A6;background:#0E1A2C}
4328/* FILTRE : un bouton compact — le fil garde sa largeur — menu déroulant vers le bas. */
4329.pp-live .pp-fil{flex:none;position:relative;display:flex;align-items:center;padding:0 10px;border-right:1px solid #1B2F4E}
4330.pp-live .pp-filb{display:inline-flex;align-items:center;gap:7px;font-family:${ii};font-size:12px;font-weight:600;color:#D5E3F0;background:transparent;border:1px solid #1B2F4E;border-radius:4px;padding:5px 9px;cursor:pointer;white-space:nowrap}
4331.pp-live .pp-filb:hover{color:#fff;border-color:#5FD39B}
4332.pp-live .pp-filab{min-width:0}
4333.pp-live .pp-filb b,.pp-film button b{font-family:${ii};font-size:10px;font-weight:700;letter-spacing:0;color:#fff;background:rgba(255,255,255,.16);border-radius:3px;padding:1px 6px}
4334.pp-live .pp-filb b{background:#12A150}
4335/* Le menu VIT SUR document.body : .pp-live a overflow:hidden, et iOS recadre
4336   alors un position:fixed enfant — le déroulant recouvrait tout le fil (25/08). */
4337.pp-film{position:fixed;z-index:1300;min-width:0;max-width:calc(100vw - 20px);width:max-content;display:flex;flex-direction:column;background:#0F1D33;border:1px solid #1B2F4E;border-radius:8px;padding:4px;box-shadow:0 16px 40px rgba(0,0,0,.45);box-sizing:border-box;overflow-x:hidden}
4338.pp-film[hidden]{display:none!important}
4339.pp-film button{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-family:${ii};font-size:12px;font-weight:600;color:#D5E3F0;background:transparent;border:0;border-radius:5px;padding:8px 10px;cursor:pointer;white-space:normal;line-height:1.25;min-width:0}
4340.pp-film button:hover{background:#16233A;color:#fff}
4341.pp-film button[aria-pressed="true"]{background:#12A150;color:#fff}
4342.pp-film button[hidden]{display:none!important}
4343.pp-filscope{display:block;max-width:290px;padding:9px 10px 10px;margin-bottom:3px;
4344border-bottom:1px solid #1B2F4E;font-family:${ii};font-size:12px;line-height:1.6;font-weight:600;color:#9DB2CA;white-space:normal;text-transform:none}
4345.pp-filg{font-family:${ii};font-size:12px;font-weight:600;
4346color:#5A6E85;padding:9px 10px 4px}
4347.pp-filg[hidden]{display:none!important}
4348/* Voile sous le bandeau LIVE seulement — le texte qui défile reste lisible. */
4349.pp-filveil{position:fixed;z-index:1290;background:rgba(15,29,51,.32);touch-action:none}
4350.pp-filveil[hidden]{display:none!important}
4351/* TÉLÉPHONE : la puce RESTE (elle porte le compteur — la masquer priverait le
4352   mobile du seul nombre de la barre) et c'est tout le reste qui s'efface pour
4353   lui laisser la place. MESURÉ à 390px avant correctif : « LIVE » 73,6 px +
4354   puce 109,2 px + réseaux 83 px = 265,8 px incompressibles sur 352, il ne
4355   restait que 86 px de fil (16 px à 320 px !) — un fragment coupé en plein mot.
4356   Partent donc : le MOT « LIVE » (le point rouge suffit, il clignote) et les
4357   icônes réseaux (elles sont au pied de page). Le libellé de portée, lui,
4358   n'existe plus nulle part : sa phrase est dans le menu des puces (16/08). */
4359@media (max-width:860px){
4360.pp-live .pp-lb b{display:none}
4361.pp-live .pp-lb{padding:0 12px}
4362.pp-live .pp-soc a{display:none}
4363.pp-live .pp-soc{padding:0 6px}
4364.pp-live .pp-edito{padding:0 8px;font-size:11px;max-width:38vw;overflow:hidden}
4365.pp-live .pp-edito .pp-edlab{overflow:hidden;text-overflow:ellipsis}
4366/* Le bouton reste compact même après un filtre long — le fil garde sa place. */
4367.pp-live .pp-fil{max-width:min(36vw,128px);padding:0 6px}
4368.pp-live .pp-filb{max-width:100%;overflow:hidden;padding:5px 7px;gap:5px}
4369.pp-live .pp-filab{overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:6.5ch}
4370/* Feuille en BAS d'écran : le ticker du haut reste entièrement visible. */
4371.pp-film:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:2px;
4372left:10px;right:10px;bottom:12px;top:auto;width:auto;min-width:0;max-width:none;
4373max-height:min(48vh,340px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
4374box-sizing:border-box;border-radius:14px;padding:8px 6px 12px}
4375.pp-filscope,.pp-filg{grid-column:1/-1}
4376.pp-filscope{max-width:none}
4377.pp-film button{padding:9px 8px;gap:8px;white-space:normal;line-height:1.25}
4378}
4379@media (max-width:430px){
4380.pp-live .pp-edito .pp-edlab{display:none}
4381.pp-live .pp-edito{padding:0 8px;max-width:none;gap:0}
4382}
4383/* Mode compact (cases hub) : pas de réseaux sociaux, tout le fil. Et la barre
4384   tient sur UNE ligne quoi qu'il arrive — un message d'attente qui s'enroulait
4385   la faisait doubler de hauteur dans la brique (16/08). */
4386.pp-live.pp-live-compact .pp-tk{white-space:nowrap}
4387.pp-live.pp-live-compact .pp-wt{overflow:hidden;text-overflow:ellipsis}
4388.pp-live.pp-live-compact .pp-soc{display:none}
4389.pp-live.pp-live-compact .pp-dytog{display:none}
4390.pp-live.pp-live-compact .pp-fil{display:none}
4391/* Point rouge seul (pas le mot LIVE) — libère ~48 px pour le texte. */
4392.pp-live .pp-lb.pp-lb-dot{padding:0 10px;min-width:0}
4393.pp-live .pp-lb.pp-lb-dot i{width:8px;height:8px}
4394`;function M4(){if(document.getElementById(Am))return;const t=document.createElement("style");t.id=Am,t.textContent=O4,document.head.appendChild(t)}function k1(t){const n=`${t.headline_fr||""} ${t.headline||""} ${t.title||""}`;if(/\b(?:sells?|sold|sale of|divests?|disposed of)\b.{0,80}\b(?:stake|share|shares|interest|asset|assets|business|pipeline|unit)\b/i.test(n))return"ma";const i=String(t.rubrique||"").toLowerCase();if(i==="ma")return"ma";if(i==="levees")return"levee";if(i==="recrutements")return"recrutement";if(i==="nominations")return"nomination";if(/(r[eè]gles?\s+(?:de\s+)?l['’]?acquisitions?|strat[eé]gie\s+d['’]acquisition|l['’]acquisition\s+en\s+\d{4}|red[eé]finit.{0,48}acquisition|comment\s+l['’]ia\b|\bseo\b.{0,120}\bgeo\b)/i.test(n))return"presse";const s=/\b(acquires?|acquired|acquisition|to acquire|buyout|merger|merges?|takeover|rach[eè]te|rachat|acquiert|m&a|in talks for .{0,48}sale)\b/i.test(n),a=/\b(l[eè]ve|lev[ée]e de fonds|raises?|raised|bags?|secures?|funding rounds?|funding deals?|series [a-e]|s[ée]rie [a-d]|seed|pre-seed|tour de table|first close)\b/i.test(n);if(i==="actualites"||i==="actualités"||!i){if(s&&!a)return"ma";if(a&&!s)return"levee";if(s&&a)return"ma"}const o=t.card,c=((o==null?void 0:o.kind)||"").toLowerCase();if(c==="rachat"||c==="en_cours"||c==="ma")return"ma";if(c==="levee_une"||c==="levee")return"levee";if(c==="recrutement")return"recrutement";if(c==="nomination")return"nomination";if(c==="presse"||c==="signal")return"presse";const l=String(t.item_kind||t.deal_type||"").toLowerCase();if(["hiring","recrutement","jobs"].includes(l))return"recrutement";if(["nomination","appointment"].includes(l))return"nomination";if(["news","presse","actualité","actualite"].includes(l))return"presse";if(/\b(nomination|nomm[eé]e?\b|appoint|named\s+(?:as\s+)?(?:ceo|cfo|cto|vp)|devient\s+(?:ceo|directeur))/i.test(n))return"nomination";if(/\b(recrute(?:nt|ra|r)?\b|embauche(?:nt|ra|r)?\b|is\s+hiring|hires\s+\d+|ouvre\s+\d+\s+postes?|\+\s?\d+\s+(?:postes?|recrutements?|embauches?))/i.test(n)&&!/\b(licenci|layoff|plan\s+social)/i.test(n))return"recrutement";if(/\b(licence|license|agr[ée]ment|autorisation|accr[ée]ditation|homologation|certification)\b/i.test(n)&&!/\b(acquiert|rach[eè]te|rachat|acquisition|acquires?|merger|fusionn)\b/i.test(n))return"presse";const d=l;return d==="ma"||d.startsWith("acq")||d.includes("fusion")||d.includes("rachat")?"ma":d==="vcpe"||d.includes("lev")||d.includes("fund")||d.includes("raise")?"levee":/\b(acquires?|acquired|acquisition|rachete|rachat|merger|acquiert|m&a|in talks for .{0,48}sale)\b/i.test(n)?"ma":/\b(raises?|raised|bags?|levée|lev[ée]e|series\s+[a-e]|seed|funding rounds?|funding deals?|first close)\b/i.test(n)?"levee":"presse"}const A1=(t,n)=>t.length>n?t.slice(0,n-1).trimEnd()+"…":t;function S1(t,n){const r=Date.parse(t),i=Date.parse(n);return!isFinite(r)||!isFinite(i)?9999:Math.round((r-i)/864e5)}function R4(t,n){const r=Ip[n],i=Math.max(0,S1(xn(),t));return i===0?r.today:i===1?r.yesterday:i>
4394999?"":r.ago(i)}const dc=7,P4=300;function I4(t,n){const r=Ip[n],i=k1(t),s=(t.company_name||"").trim(),a=Br(t.amount_eur,n),o=i==="ma"?"ma":i==="levee"?"lv":i==="recrutement"?"jb":i==="nomination"?"nt":"pr",c=i==="ma"?r.ma:i==="levee"?r.lv:i==="recrutement"?r.hire:i==="nomination"?r.nom:r.other,l=a||(i==="ma"?r.bigMa:i==="levee"?r.bigLv:i==="recrutement"?r.bigHire:i==="nomination"?r.bigNom:r.bigOther),d=i==="ma"?"ma":i==="levee"?"levees":i==="recrutement"?"recrutements":i==="nomination"?"nominations":"actualites",p=(t._pool_date||t.published||"").slice(0,10),u=d==="actualites"?Ex(t):void 0;return{kind:"op",cls:o,rub:d,newsTheme:u,label:c,flag:cl(Kt(t.country)),name:s.length>=2&&dl(s)?s:"",amount:i==="ma"||i==="levee"?a:"",text:A1(((n==="fr"?t.headline_fr:t.headline)||t.headline||t.title||"").trim(),90),sector:t.product_category_above||"",when:R4(p,n),url:t.url||"",big:l,date:p,card:t.card}}const D4='<svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor"><path d="M18.9 2H22l-7.1 8.1L23.2 22h-6.6l-5.2-6.8L5.5 22H2.4l7.6-8.7L1.2 2h6.8l4.7 6.2L18.9 2Zm-1.1 18h1.8L7.3 3.9H5.4L17.8 20Z"/></svg>',z4='<svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm7 0h3.8v1.7h.05c.53-.95 1.83-1.95 3.77-1.95C21.4 8.75 22 11 22 14v7h-4v-6.2c0-1.5-.03-3.4-2.1-3.4-2.1 0-2.42 1.6-2.42 3.3V21h-4V9Z"/></svg>',B4='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.4"><rect x="2" y="3.5" width="12" height="10.5" rx="1.5"/><path d="M2 6.5h12M5.5 2v3M10.5 2v3"/></svg>';function U4(t,n={}){M4();const r=n.lang==="en"?"en":"fr",i=Ip[r],s=n.scope||{},a=(s.sector||"").trim().toLowerCase(),o=/^\d{4}-\d{2}-\d{2}$/.test(s.day||"")?s.day:"";let c=!0;const l=document.createElement("div");l.className="pp-live"+(n.compact?" pp-live-compact":"");const d=document.createElement("span");if(d.className="pp-lb"+(n.compact?" pp-lb-dot":""),d.appendChild(document.createElement("i")),!n.compact){const T=document.createElement("b");T.textContent="LIVE",d.appendChild(T)}d.setAttribute("aria-label","LIVE"),l.appendChild(d);const p=!!n.compact,u=T=>{try{return new Date(T+"T12:00:00Z").toLocaleDateString(r==="fr"?"fr-FR":"en-GB",{day:"numeric",month:"long"})}catch{return T}},g=()=>{const T=[];return s.sector&&T.push(String(s.sector).trim()),s.type&&T.push(s.type==="ma"?i.scopeMa:i.scopeLv),T.join(" · ")||(n.scopeLabel||"").trim()},f=()=>{const T=g(),C=T?i.scopeOn(T):"";return o?i.scopeDay(o===xn()?i.scopeToday:i.scopeOf(u(o)))+C:i.scopeWin(dc)+C},L=T=>{const C=Za[T];return C?(C.emoji||"🔔")+" "+(r==="fr"?C.fr:C.en):"🔔 Signal"};let v="all";const y=T=>T==="all"?i.filAll:T==="fil"?i.filWire:T.startsWith("sig:")?L(T.slice(4)):T.startsWith("news:")?vb(T.slice(5),r):i.rub[T]||T,h=T=>{if(T==="all")return i.filAll;if(T==="fil")return i.filWire;if(T==="ma")return"M&A";if(T==="levees")return r==="fr"?"Levées":"Raises";if(T==="nominations")return r==="fr"?"Nomin.":"Appts";if(T==="recrutements")return r==="fr"?"Offres":"Jobs";if(T==="actualites")return r==="fr"?"Actus":"News";if(T.startsWith("sig:")){const C=Za[T.slice(4)];return C?C.emoji:"🔔"}return y(T)},b=document.createElement("span");b.className="pp-fil";const x=document.createElement("button");x.type="button",x.className="pp-filb";const A=document.createTextNode(i.filAll),w=document.createElement("span");w.className="pp-filab",w.appendChild(A);const S=document.createElement("b");S.textContent="…",x.appendChild(w),x.appendChild(S),x.appendChild(document.createTextNode("▾")),x.setAttribute("aria-expanded","false"),x.setAttribute("aria-haspopup","listbox"),b.appendChild(x);const E=document.createElement("div");E.className="pp-film",E.hidden=!0;const j=document.createElement("div");j.className="pp-filveil",j.hidden=!0;const O=T=>{E.hidden=!T,j.hidden=!T,x.setAttribute("aria-expanded",T?"true":"false"),T&&K()},k=[],_=[],N=T=>{const C=document.createElement("button");C.type="button",C.appendChild(document.createTextNode(y(T)));const q=document.createElement("b");C.appendChild(q),C.setAttribute("aria-pressed",T==="all"?"true":"false"),C.addEventListener("click",()=>{v=T,O(!1),te()}),E.appendChild(C),k.push({key:T,el:C,n:q})},I=T=>{const C=document.createElement("span");C.className="pp-filg",C.textContent=T,E.appendChild(C),_.push({title:T,el:C})},ce=document.createElement("span");ce.className="pp-filscope",ce.textContent=f(),E.appendChild(ce),N("all"),I(i.grpOps),N("ma"),N("levees"),I(i.grpNews),N("nominations"),N("recrutements");for(const T of Sx)T!=="media"&&N("news:"+T);N("actualites"),I(i.grpSig);for(const T of Object.keys(Za))N("sig:"+T);function K(){if(E.hidden)return;const T=l.getBoundingClientRect(),C=10,q=Math.max(160,window.innerWidth-C*2),G=window.innerWidth<=860;if(j.style.top=`${Math.max(0,Math.round(T.bottom))}px`,j.style.left="0px",j.style.right="0px",j.style.bottom="0px",G)E.style.top="auto",E.style.bottom="12px",E.style.left=`${C}px`,E.style.right=`${C}px`,E.style.width="auto",E.style.maxWidth=`${q}px`,E.style.maxHeight="min(48vh, 340px)";else{const F=x.getBoundingClientRect(),J=Math.min(Math.max(E.offsetWidth||280,240),q);let R=F.left;R+J>window.innerWidth-C&&(R=window.innerWidth-C-J),R<C&&(R=C),E.style.top=`${F.bottom+4}px`,E.style.bottom="auto",E.style.left=`${Math.round(R)}px`,E.style.right="auto",E.style.width=`${Math.round(J)}px`,E.style.maxWidth=`${q}px`,E.style.maxHeight="min(70vh, 480px)"}}x.addEventListener("click",T=>{T.stopPropagation(),O(E.hidden)}),j.addEventListener("click",()=>O(!1)),window.addEventListener("resize",K),window.addEventListener("scroll",K,!0);const pe=T=>{if(E.hidden)return;const C=T.target;!b.contains(C)&&!E.contains(C)&&O(!1)};document.addEventListener("click",pe),n.compact||(l.appendChild(b),document.body.appendChild(j),document.body.appendChild(E));const ee=document.createElement("span");ee.className="pp-win";const P=document.createElement("span");if(P.className="pp-run",ee.appendChild(P),l.appendChild(ee),!n.compact){const T=document.createElement("span");T.className="pp-soc";const C=typeof location<"u"&&location.pathname||"";if(n.showEdito===!0||n.showEdito!==!1&&/^\/actualites\/?$/i.test(C)){const F=document.createElement("button");F.type="button",F.className="pp-edito";
4394const J=document.createElement("span");J.className="pp-edico",J.textContent="📖";const R=document.createElement("span");R.className="pp-edlab",R.textContent=i.edito,F.append(J,R),F.title=i.edito,F.setAttribute("aria-label",i.edito),F.addEventListener("click",()=>{try{window.dispatchEvent(new CustomEvent("ppmap:edito"))}catch{}}),T.appendChild(F)}const G=(F,J,R)=>{const Q=document.createElement("a");Q.href=F,Q.target="_blank",Q.rel="noopener",Q.title=J,Q.setAttribute("aria-label",J),Q.innerHTML=R,T.appendChild(Q)};G("https://x.com/Proplace_co","Proplace sur X",D4),G("https://www.linkedin.com/in/alexandre-proplace/","Proplace sur LinkedIn",z4),l.appendChild(T)}let D=null;const M=T=>{D&&(D.setAttribute("aria-pressed",T?"true":"false"),D.title=T?r==="fr"?"Masquer les jours":"Hide the days":r==="fr"?"Voir les jours":"Show the days",D.setAttribute("aria-label",D.title))};n.compact||(D=document.createElement("button"),D.type="button",D.className="pp-dytog",D.innerHTML=B4,M(wd()),D.addEventListener("click",()=>E4(!wd())),l.appendChild(D));const re=T=>{var C;M(!!((C=T.detail)!=null&&C.open))};window.addEventListener(na,re),t.appendChild(l);let H=[],se=null,ie=null,he=[],Le=!1,xe=!1,oe=[];function z(T,C){const q=document.createElement("span");q.className="pp-tk"+(T.kind==="fil"?" pp-filtk":"")+(T.name||T.url||T.kind==="fil"?" pp-act":""),q.dataset.i=String(C);const G=document.createElement("span");if(G.className="pp-sg "+T.cls,G.textContent=T.label,q.appendChild(G),T.kind==="fil"){const R=document.createElement("span");return R.className="pp-wt",R.textContent=T.text,q.appendChild(R),q}const F=document.createElement("span");if(F.className="pp-fl",F.textContent=T.flag,q.appendChild(F),T.name){const R=document.createElement("span");R.className="pp-co",R.textContent=T.name,q.appendChild(R)}if(T.amount){const R=document.createElement("span");R.className="pp-am",R.textContent=T.amount,q.appendChild(R)}if(T.text){const R=document.createElement("span");R.className="pp-wt",R.textContent=T.text,q.appendChild(R)}const J=[T.sector,T.when].filter(Boolean).join(" · ");if(J){const R=document.createElement("span");R.className="pp-wt",R.textContent="· "+J,q.appendChild(R)}return q}function Y(T){const C={ma:0,levees:0,nominations:0,recrutements:0,actualites:0},q={},G={};let F=0;for(const Q of T){if(Q.kind==="signal"){const ge=Q.theme||"other";q[ge]=(q[ge]||0)+1;continue}Q.kind==="op"&&(Q.newsTheme&&Q.newsTheme!=="media"?G[Q.newsTheme]=(G[Q.newsTheme]||0)+1:Q.rub==="actualites"&&(F+=1))}const J=T.filter(Q=>Q.kind==="op"),R=T.length-J.length;if(se){let Q=0;for(const ge of km)C[ge]=Number(se[ge]||0),Q+=C[ge];if(Q>0)return C.actualites=F,{by:C,bySig:q,byNews:G,total:Q+R};for(const ge of km)C[ge]=0}if(o){const Q=new Set;for(const ge of J){const Se=Fx(ge.name);!Se||Q.has(Se)||(Q.add(Se),ge.rub!=="actualites"&&(C[ge.rub]+=1))}return C.actualites=F,!T.length&&ie&&ie>0?{by:C,bySig:q,byNews:G,total:ie}:{by:C,bySig:q,byNews:G,total:Q.size}}for(const Q of J)Q.kind==="signal"||Q.kind==="fil"||Q.rub!=="actualites"&&(C[Q.rub]+=1);return C.actualites=F,{by:C,bySig:q,byNews:G,total:T.length}}const B=(T,C,q,G,F)=>T==="all"?F:T.startsWith("news:")?G[T.slice(5)]||0:T.startsWith("sig:")?q[T.slice(4)]||0:T==="actualites"?C.actualites||0:C[T]||0;function X(T,C,q,G){for(const{key:F,el:J,n:R}of k){const Q=B(F,T,C,q,G);R.textContent=String(Q),J.setAttribute("aria-pressed",F===v?"true":"false"),J.hidden=F!=="all"&&Q===0&&F!==v}for(const F of _){if(!F)continue;let J=!1;for(let R=F.el.nextElementSibling;R&&!R.classList.contains("pp-filg");R=R.nextElementSibling)if(!R.hidden){J=!0;break}F.el.hidden=!J}A.data=h(v),x.title=y(v),S.textContent=String(B(v,T,C,q,G))}function te(){var Dt,yn;const T=o||xn(),C=he.concat(H),{by:q,bySig:G,byNews:F,total:J}=Y(C);if(X(q,G,F,J),n.onCounts)try{n.onCounts({total:J,ops:H.length,signals:he.length,byRub:{...q},bySignal:{...G},windowDays:o?1:dc})}catch{}const R=be=>v==="all"?!0:v==="ma"||v==="levees"||v==="nominations"||v==="recrutements"?be.kind==="op"&&be.rub===v:v.startsWith("news:")?be.kind==="op"&&be.newsTheme===v.slice(5):v==="actualites"?be.kind==="op"&&be.rub==="actualites"&&(!be.newsTheme||be.newsTheme==="media"):v.startsWith("sig:")?be.kind==="signal"&&(be.theme||"other")===v.slice(4):be.kind==="op"&&be.rub===v,Q=C.filter(R);Q.sort((be,ve)=>{const Je=be.date===T?0:1,me=ve.date===T?0:1;return Je!==me?Je-me:be.date<ve.date?1:be.date>ve.date?-1:0});const ge=Q.slice(0,P4),Se=Q.length-ge.length;if(oe=ge,!oe.length){if(o||a||v!=="all"){if(l.style.display="",P.textContent="",Le){const be=document.createElement("span");be.className="pp-tk";const ve=document.createElement("span");ve.className="pp-wt",ve.textContent=o?ie&&ie>
43940?i.notInFeed(ie):i.emptyDay:p?r==="en"?"Quiet this week":"Calme cette semaine":r==="en"?"No deal in this market this week.":"Aucune opération sur ce marché cette semaine.",be.appendChild(ve),P.appendChild(be)}return}l.style.display=Le&&xe?"none":"",P.textContent="";return}l.style.display="",P.textContent="";const mt=Math.max(1,Math.ceil(10/oe.length));for(let be=0;be<2*mt;be++){for(let ve=0;ve<oe.length;ve++)P.appendChild(z(oe[ve],ve));if(Se>0){const ve=document.createElement("span");ve.className="pp-tk";const Je=document.createElement("span");Je.className="pp-wt",Je.textContent=r==="fr"?`+ ${Se} autres — filtrez par rubrique pour les voir`:`+ ${Se} more — filter by section to see them`,ve.appendChild(Je),P.appendChild(ve)}}const _t=()=>{const be=P.scrollWidth||oe.length*mt*240;be<200||(P.style.animationDuration=Math.max(18,Math.round(be/130))+"s")};_t(),requestAnimationFrame(()=>{requestAnimationFrame(_t)}),window.setTimeout(_t,1200);try{(yn=(Dt=document.fonts)==null?void 0:Dt.ready)==null||yn.then(_t)}catch{}}const Ae=T=>{var F,J,R;const C=(J=(F=T.target).closest)==null?void 0:J.call(F,".pp-tk.pp-act");if(!C||!P.contains(C))return;const q=oe[Number(C.dataset.i||-1)];if(!q||p)return;if(!!document.getElementById("pp-direct-atelier")||!!document.querySelector(".atl2 .desk-list")){try{window.dispatchEvent(new CustomEvent("ppmap:focus",{detail:{name:q.name,url:q.url,text:q.text,card:q.card,kind:q.kind}}))}catch{}document.querySelector(".atl2 .desk-list")||(R=document.querySelector(".atl2 .demand")||document.getElementById("pp-direct-atelier"))==null||R.scrollIntoView({behavior:"auto",block:"nearest"});return}A4(q,{lang:r})};if(P.addEventListener("click",Ae),o&&!a&&!s.type){const T=C=>{se=C,te()};_x(o).then(C=>{if(c){if(C&&C.masthead&&(Number(C.masthead.ma)||0)+(Number(C.masthead.levees)||0)>0){T(C.masthead);return}return Cp().then(q=>{if(!c)return;const G=q.find(F=>(F.date||"").slice(0,10)===o);G&&(typeof G.count=="number"&&(ie=G.count),G.masthead?T(G.masthead):te())})}})}(n.feedUrl?fetch(n.feedUrl,{cache:"no-cache"}).then(T=>T.ok?T.json():null).catch(()=>null):gr()).then(T=>{if(!c)return;const C=T&&T.recent_ops||[],q=(T&&T.date||xn()).slice(0,10);H=[];for(const G of C){const F=k1(G);if(s.type==="ma"&&F!=="ma"||s.type==="levee"&&F!=="levee"||a&&!((G.product_category_above||"")+"|"+(G.market_tags||[]).join("|")).toLowerCase().includes(a))continue;const J=(G._pool_date||G.published||"").slice(0,10);J&&((o?J!==o:S1(q,J)>dc-1)||H.push(I4(G,r)))}Le=!0,te()});let Ke=0,st=!1;const Ct=()=>{Fp().then(T=>{if(c){he=[];for(const C of T){const q=C.hot;if(!q||typeof q.left!="number"||q.left<=0||s.type&&!(s.type==="levee"&&q.theme==="raised")||a&&!(C.sector||"").toLowerCase().includes(a))continue;const G=Za[q.theme]||{fr:"Signal",en:"Signal",cls:"nt",emoji:"🔔",bigFr:"Signal",bigEn:"Signal",rub:"actualites"};he.push({kind:"signal",cls:G.cls,rub:G.rub,theme:q.theme||"other",label:(q.emoji||G.emoji)+" "+(r==="fr"?G.fr:G.en),flag:cl(C.cc),name:C.name,amount:"",text:A1(((r==="en"?q.en:q.fr)||q.fr||q.en||"").trim(),90),sector:C.sector||"",when:i.left(q.left),url:q.url||"",big:r==="fr"?G.bigFr:G.bigEn,date:(q.date||"").slice(0,10)})}xe=!0,te()}})};return o?xe=!0:typeof window.requestIdleCallback=="function"?(st=!0,Ke=window.requestIdleCallback(Ct,{timeout:2500})):Ke=window.setTimeout(Ct,2500),()=>{c=!1,window.removeEventListener(na,re),document.removeEventListener("click",pe),window.removeEventListener("resize",K),window.removeEventListener("scroll",K,!0),E.remove(),j.remove(),st&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Ke):window.clearTimeout(Ke),P.removeEventListener("click",Ae),l.remove()}}function Dp({scope:t,scopeLabel:n,boxed:r=!1,compact:i=!1,showEdito:s=!1,onCounts:a}){const o=m.useRef(null),{lang:c}=ae(),l=(t==null?void 0:t.sector)||"",d=t==null?void 0:t.type,p=(t==null?void 0:t.day)||"",u=m.useRef(a);return u.current=a,m.useEffect(()=>{const g=o.current;return g?U4(g,{scope:{sector:l||void 0,type:d,day:p||void 0},scopeLabel:n,lang:c,compact:i,showEdito:s,onCounts:L=>{var v;(v=u.current)==null||v.call(u,L)}}):void 0}
4394,[l,d,p,n,c,i,s]),e.jsx("div",{ref:o,className:r?"pp-livewrap":void 0})}function V4({month:t,current:n,mode:r,theme:i,onPick:s,daysUrl:a,dayCounts:o,urlPrefix:c,editionDays:l,windowDays:d,inPlace:p,sector:u}){const g=m.useRef(null),{lang:f}=ae(),L=m.useRef(s);return L.current=s,m.useEffect(()=>{const v=g.current;return v?F4(v,{month:t,current:n,lang:f,mode:r||"navigate",theme:i||"dark",daysUrl:a,dayCounts:o,urlPrefix:c,editionDays:l,windowDays:d,inPlace:p,sector:u,onPick:h=>{var b;try{(b=L.current)==null||b.call(L,h)}catch{}}}):void 0},[t,n,f,r,i,a,o,c,l,d,p,u]),e.jsx("div",{ref:g})}function H4(t){const n=new URLSearchParams(t),r=(n.get("eval")||"").trim();if(!r)return null;const i=(n.get("memo")||"").trim().toLowerCase()==="detailed"?"detailed":void 0;return i?{name:r,memo:i}:{name:r}}function a8(t,n,r){if(!t||t.state==="anonymous")return null;const i=n==="fr",s=i?"Ouvrir mon cockpit →":"Open my cockpit →",a=!!(r!=null&&r.alreadyInCockpit);return!(r!=null&&r.publicEdition)?t.state==="ready"&&a?{title:"",body:i?"Les sociétés que vous évaluez ici sont enregistrées dans votre cockpit.":"Companies you screen here are saved in your cockpit.",cta:"",tone:"ok"}:t.state==="checking"?{title:"",body:i?"Vérification de votre espace…":"Checking your workspace…",cta:"",tone:"wait"}:null:t.state==="checking"?{title:"",body:i?"Vérification de votre espace…":"Checking your workspace…",cta:t.ciblesUrl?s:"",tone:"wait"}:t.state==="ready"?{title:i?"Vous êtes connecté":"You’re signed in",body:i?"Cette page est l’édition publique du jour. Une évaluation ici part dans votre cockpit. Pour voir votre pipeline (À évaluer, à trancher…), ouvrez-le — y compris en essai.":"This page is the public daily edition. A screen here is saved to your cockpit. To see your pipeline (To evaluate, to decide…), open it — including on a trial.",cta:s,tone:"push"}:t.state==="mismatch"?{title:i?"Ce n’est pas votre cockpit":"This isn’t your cockpit",body:i?"Ce navigateur est encore lié à un autre espace. Ouvrez votre cockpit pour évaluer au bon endroit. Rien n’a été enregistré.":"This browser is still tied to another workspace. Open your cockpit to screen in the right place. Nothing was saved.",cta:s,tone:"block"}:{title:i?"Vous êtes connecté":"You’re signed in",body:i?"Cette page est l’édition publique du jour — elle n’enregistre rien chez vous. Ouvrez votre cockpit (même en essai) pour évaluer selon vos critères et retrouver vos dossiers.":"This page is the public daily edition — it doesn’t save anything to your workspace. Open your cockpit (including on a trial) to screen against your criteria and find your files.",cta:s,tone:"block"}}function Y4(t){return t==="fr"?{body:"Vous êtes connecté. Cette page est l’édition publique du jour — votre pipeline est dans votre cockpit, y compris en essai.",cta:"Ouvrir mon cockpit →"}:{body:"You’re signed in. This page is the public daily edition — your pipeline lives in your cockpit, including on a trial.",cta:"Open my cockpit →"}}function o8(t,n,r){const i=(r||"").trim(),s=t.ciblesUrl||"";if(!s||!i)return s;const a=s.includes("?")?"&":"?";return`${s}${a}${n==="open"?"sel":n}=${encodeURIComponent(i)}`}function l8(t){return t==="fr"?"Ouvrez votre cockpit pour évaluer selon vos critères. Aucune société n’a été enregistrée.":"Open your cockpit to screen against your criteria. No company was saved."}function G4(t,n,r=""){const i=!r||Ih(r)===Ih(n),s=n?i?"ready":"mismatch":"error";return{state:s,token:s==="ready"?t:"",fund:n,expectedFund:r,ciblesUrl:Ir(s==="ready"?n:r||n)}}function c8(t,n,r){const i=m.useMemo(()=>t?"":r||(n!=="default"?Hb():""),[t,n,r]),s=m.useMemo(()=>{var c;return t?"":((c=Ge())==null?void 0:c.fund_type)||""},[t]),[a,o]=m.useState(null);return m.useEffect(()=>{if(!i)return;let c=!0;return Op(i).then(l=>{c&&o({token:i,access:G4(i,(l==null?void 0:l.fund)||"",s)})}),()=>{c=!1}},[i,s]),i?(a==null?void 0:a.token)===i?a.access:{state:"checking",token:"",fund:"",expectedFund:s,ciblesUrl:s?Ir(s):""}:{state:s?"needs_token":"anonymous",token:"",fund:"",expectedFund:s,ciblesUrl:s?Ir(s):""}}const W4=m.lazy(()=>Vr(()=>import("./AtelierV2Section-Cua_IQbO.js"),__vite__mapDeps([0,1,2,3,4]))),Q4={showTicker:!1},Z4="auto",K4={en:{h1Fallback:"What moved on your market",lead:"Every deal of the day, evaluable in one click — then told in full.",readFull:"Read the full piece →",analysisKicker:"THE DAY’S ANALYSIS",analysisOf:t=>`The analysis of ${t}`,nlTitle:"Follow the daily M&A and fundraising news in France and Europe, on your own criteria.",nlBody:"M&A deals and fundraisings in France & Europe, decoded every day. Free, one-click unsubscribe.",nlCta:"Subscribe to the newsletter →",nlAll:"…or pick a sector newsletter →",nlTitleSector:t=>`Get ${t} deals by email`,nlBodySector:t=>"One email on the days this market moves — never the others. Free, one-click unsubscribe.",nlCtaSector:"Subscribe to this newsletter →",nlPopK:"Sector newsletter",nlPopLead:t=>`Leave your email to follow ${t}. The cockpit of this market opens right after.`,nlPopSkip:"See the cockpit without subscribing",nlDockK:"Get the morning edition by email",nlDockKSector:t=>`Get ${t} deals by email`,nlDockCta:"Subscribe",noDeal:t=>`No deal recorded on ${t}. The other editions are in the strip above.`,cockpitShift:(t,n,r)=>`No named deal on ${t} — public cockpit centred on ${n} (${r} dossiers).`,mapTitle:"One day, one radar — three readings",mapRadar:t=>`Radar · ${t} companies evaluable in the cockpit`,mapUne:(t,n)=>t>0?`In focus · ${t} pieces decoded${n?` (${n})`:""}`:"In focus · the deals we decode in full below",mapLists:t=>t?`Full lists · exhaustive by type (${t})`:"Full lists · exhaustive by type under each section",mapNote:"The day cell and the cockpit count the same radar. The TOC breaks it down: in-focus first, then the full lists.",uneLabel:"In focus",listLabel:"Full list"},fr:{h1Fallback:"Ce qui a bougé sur votre marché",lead:"Toutes les opérations de la journée, évaluables en un clic — puis racontées en entier.",readFull:"Lire l’article complet →",analysisKicker:"L’ANALYSE DU JOUR",analysisOf:t=>`L’analyse du ${t}`,nlTitle:"Suivre l’actualité quotidienne du M&A et des levées de fonds en France et en Europe selon vos propres critères.",nlBody:"Les opérations M&A et levées de fonds en France & Europe, décryptées tous les jours. Gratuit, désinscription en un clic.",nlCta:"S’abonner à la newsletter →",nlAll:"…ou choisir une newsletter par secteur →",nlTitleSector:t=>`Recevoir les opérations ${t} par email`,nlBodySector:t=>"Un email les jours où ce marché bouge — jamais les autres. Gratuit, désinscription en un clic.",nlCtaSector:"S’abonner à cette newsletter →",nlPopK:"Newsletter sectorielle",nlPopLead:t=>`Laissez votre email pour suivre ${t}. Le cockpit de ce marché s’ouvre juste après.`,nlPopSkip:"Voir le cockpit sans s’abonner",nlDockK:"Recevoir l’édition du matin par email",nlDockKSector:t=>`Recevoir les opérations ${t} par email`,nlDockCta:"S’abonner",noDeal:t=>`Aucune opération relevée le ${t}. Les autres éditions sont dans la bande en haut de cette page.`,cockpitShift:(t,n,r)=>`Aucune opération nommée le ${t} — cockpit public centré sur le ${n} (${r} dossiers).`,mapTitle:"Un seul jour, un seul radar — trois lectures",mapRadar:t=>`Radar · ${t} sociétés évaluables dans le cockpit`,mapUne:(t,n)=>t>0?`À la une · ${t} décryptages${n?` (${n})`:""}`:"À la une · les opérations décryptées en entier ci-dessous",mapLists:t=>t?`Listes · l’exhaustif par type (${t})`:"Listes · l’exhaustif par type sous chaque rubrique",mapNote:"La case du jour et le cockpit comptent le même radar. Le sommaire le découpe : d’abord l’à-la-une, puis les listes complètes.",uneLabel:"À la une",listLabel:"Liste complète"}};function pc(t,n){if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return"";const r=new Date(t+"T12:00:00Z");if(Number.isNaN(r.getTime()))return t;try{return r.toLocaleDateString(n==="fr"?"fr-FR":"en-GB",{weekday:"long",day:"numeric",month:"long",year:"numeric",timeZone:"UTC"})}catch{return t}}const kn=t=>/^\d{4}-\d{2}-\d{2}$/.test(t);function Sm(){var G;const{lang:t,localizePath:n}
4394=ae(),r=K4[t],{slug:i=""}=yp(),s=(i||"").trim().toLowerCase(),a=nr.find(F=>F.id===s),[o,c]=m.useState(()=>{if(!s||typeof window>"u")return!i;try{return localStorage.getItem(Em(s))==="1"}catch{return!1}}),[l,d]=m.useState(()=>{if(!s||typeof window>"u")return!1;try{return localStorage.getItem(Nm(s))==="1"}catch{return!1}}),p=m.useCallback(()=>{if(s){try{localStorage.setItem(Em(s),"1")}catch{}c(!0)}},[s]),u=m.useCallback(()=>{if(s){try{localStorage.setItem(Nm(s),"1")}catch{}d(!0)}p()},[s,p]),g=(a==null?void 0:a.label)||"";ht(a?{en:{title:`${a.label} — live M&A and fundraisings | Proplace`,description:`Every ${a.label} deal, evaluable in one click — ticker, editorial and cockpit scoped to this market.`},fr:{title:`${a.labelFr} — M&A et levées en direct | Proplace`,description:`Toutes les opérations ${a.labelFr}, évaluables en un clic — ticker, édito et cockpit bornés à ce marché.`}}:{en:{title:"Live — what moved on your market today | Proplace",description:"Today’s fundraisings and M&A deals, screened by Stan: every company evaluable in one click, with its verdict and reason."},fr:{title:"Le direct — ce qui bouge aujourd’hui sur votre marché | Proplace",description:"Levées de fonds et opérations M&A du jour, criblées par Stan : chaque société évaluable en un clic, avec son verdict et son motif."}});const[f,L]=m.useState(""),[v,y]=m.useState(()=>new Set),[h,b]=m.useState(null),[x,A]=m.useState(null),[w,S]=m.useState(""),[E,j]=m.useState(()=>new Map),O=m.useRef(E);O.current=E;const k=m.useRef(h);k.current=h;const[_,N]=m.useState(!1),[I,ce]=m.useState(!1),[K,pe]=m.useState(!1),[ee,P]=m.useState(""),[D,M]=m.useState(g),re=m.useRef(g);re.current=D;const[H,se]=m.useState([]),ie=m.useRef(s);ie.current=s;const[he,Le]=m.useState(()=>typeof window>"u"?"":new URLSearchParams(window.location.search).get("q")||""),[xe,oe]=m.useState(0),[z,Y]=m.useState(null);m.useEffect(()=>{document.body.classList.add("pp-desk");const F=document.querySelector(".pp-flow .pp-band, body.pp-desk .pp-band"),J=()=>{const Q=Math.round((F==null?void 0:F.getBoundingClientRect().height)||44);document.documentElement.style.setProperty("--pp-live-h",`${Q}px`)};J();const R=F&&typeof ResizeObserver<"u"?new ResizeObserver(J):null;return F&&R&&R.observe(F),window.addEventListener("resize",J),()=>{document.body.classList.remove("pp-desk"),R==null||R.disconnect(),window.removeEventListener("resize",J)}},[]),m.useEffect(()=>{if(!f)return;let F=!0;return _x(f).then(J=>{F&&Y(J)}),()=>{F=!1}},[f]),m.useEffect(()=>{let F=!0;return Promise.all([j1(),gr(),Tx()]).then(async([J,R,Q])=>{var yr;if(!F)return;const ge=new Map;for(const Ne of J){const He=((Ne==null?void 0:Ne.date)||"").slice(0,10),yt=(Ne==null?void 0:Ne.url)||"",Jt=(Ne==null?void 0:Ne.url_en)||(yt?"/en"+yt:""),$t=t==="en"&&Jt||yt;He&&$t&&ge.set(He,$t)}j(ge);const Se=R;b(Q);const mt=((Q==null?void 0:Q.date)||"").slice(0,10);kn(mt)&&P(mt);const _t=typeof window>"u"?"":(new URLSearchParams(window.location.search).get("jour")||"").trim(),Dt=[...ge.keys()].filter(kn).sort(),yn=new Map,be=new Map;for(const Ne of(Se==null?void 0:Se.recent_ops)||[]){const He=(Ne._pool_date||Ne.published||"").slice(0,10),yt=(Ne.company_name||"").trim().toLowerCase();!He||!yt||(be.has(He)||be.set(He,new Set),be.get(He).add(yt))}be.forEach((Ne,He)=>yn.set(He,Ne.size));const ve=[...yn.keys()].filter(kn).sort(),Je=kn(_t);ce(Je);const me=(Je?_t:"")||(kn(mt)?mt:"")||Dt[Dt.length-1]||ve[ve.length-1]||((Se==null?void 0:Se.date)||"").slice(0,10)||xn();L(me);const Re=ge.get(me)||(Q==null?void 0:Q.url)||"";S(Re),Je&&kn(me)&&me!==mt&&Re&&za(Re,me).then(Ne=>{F&&(ei(me,Ne),A(Ne),oe(He=>He+1))});const jn=new Set;let Ue=0;for(const Ne of(Se==null?void 0:Se.recent_ops)||[]){const He=(Ne._pool_date||Ne.published||"").slice(0,10),yt=(Ne.company_name||"").trim().toLowerCase();if(He===me&&yt&&jn.add(yt),He===me){const Jt=qp(Ne);(Jt==="ma"||Jt==="levee")&&(Ue+=1)}}y(jn),pe(!Je&&Ue<3);const zi=typeof window>"u"?"":(new URLSearchParams(window.location.search).get("secteurs")||"").split(",")[0].trim().toLowerCase(),wn=ie.current||zi;if(wn){const Ne=new Set;for(const jt of(Se==null?void 0:Se.recent_ops)||[]){const dn=(jt.product_category_above||"").trim();dn&&Ne.add(dn)}
4394const He=[...Ne].find(jt=>py(jt)===wn)||((yr=nr.find(jt=>jt.id===wn))==null?void 0:yr.label)||"";M(He);const yt=await Cp();if(!F)return;const Jt=yt.filter(jt=>(jt.sector_articles||[]).includes(wn)).map(jt=>(jt.date||"").slice(0,10)).filter(kn);se(Jt);const $t=[...Jt].sort().pop()||me;if(kn($t)){const jt=`/actualites/operations/secteur/${wn}/${$t}/`,dn=await za(jt,$t);if(!F)return;dn&&(ei($t,dn,He),A(dn),S(jt),oe(Bi=>Bi+1))}}N(!0)}),()=>{F=!1}},[t]);const B=typeof window<"u"&&!!window.location.search.replace(/^\?/,"").length;m.useEffect(()=>{if(!B)return;const F=document.createElement("meta");return F.name="robots",F.content="noindex,follow",document.head.appendChild(F),()=>{try{document.head.removeChild(F)}catch{}}},[B]);const X=m.useMemo(()=>{const F=typeof window>"u"?null:new URLSearchParams(window.location.search),J=((F==null?void 0:F.get("type"))||"").trim(),R=L1(J),Q=v1(F),ge=((F==null?void 0:F.get("jour"))||"").trim(),mt=!!D&&!kn(ge)||K;return{day:Q||mt?"":f,win:Q?"all":mt?"7":"all",sector:D?[D]:[],search:he,acquirer:Q,...R?{dealKind:R}:{}}},[f,D,he,K]),te=m.useCallback(()=>{var F;typeof document>"u"||(F=document.getElementById("pp-direct-atelier"))==null||F.scrollIntoView({behavior:"smooth",block:"start"})},[]),[Ae,Ze]=m.useState(()=>typeof window>"u"?null:H4(window.location.search)),Ke=m.useCallback((F,J=!1)=>{var Q;const R=F.trim();if(R){if(J){const ge=String(((Q=Ge())==null?void 0:Q.fund_type)||"");if(ge){const Se=Ir(ge);window.location.assign(Se+(Se.includes("?")?"&":"?")+"eval="+encodeURIComponent(R));return}try{window.dispatchEvent(new CustomEvent("ppmap:signup",{detail:{name:R}}))}catch{}return}if(!v.has(R.toLowerCase())){te(),Ze(ge=>({name:R,request:((ge==null?void 0:ge.request)||0)+1}));return}Le(R),oe(ge=>ge+1),te()}},[v,te]),st=m.useMemo(()=>{const F=typeof window>"u"?"":(new URLSearchParams(window.location.search).get("type")||"").trim().toLowerCase();return{sector:D||void 0,day:D||K?void 0:f||void 0,type:F==="ma"||F==="levee"?F:F==="acquereur"||F==="acquereurs"?"ma":void 0}},[f,K,D]),Ct=m.useRef(!1);m.useEffect(()=>{if(Ct.current||!_||typeof window>"u")return;const F=new URLSearchParams(window.location.search),J=(F.get("eval")||"").trim(),R=J||(F.get("search")||"").trim(),Q=(F.get("similar")||"").trim();if(Ct.current=!0,R&&Ke(R,!!J),Q){try{window.dispatchEvent(new CustomEvent("ppmap:similar",{detail:{name:Q}}))}catch{}R||Ke(Q,!1)}},[_,Ke]),m.useEffect(()=>{const F=J=>{var Dt,yn,be;const R=String(((Dt=J.detail)==null?void 0:Dt.day)||"").slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(R))return;L(R),ce(!0);const Q=(((yn=k.current)==null?void 0:yn.date)||"").slice(0,10),ge=ie.current,Se=ge?`/actualites/operations/secteur/${ge}/${R}/`:O.current.get(R)||R===Q&&((be=k.current)==null?void 0:be.url)||"";S(Se||"");const mt=gr().then(ve=>{const Je=new Set;for(const me of(ve==null?void 0:ve.recent_ops)||[]){const Re=(me._pool_date||me.published||"").slice(0,10),jn=(me.company_name||"").trim().toLowerCase();Re===R&&jn&&Je.add(jn)}y(Je)}),_t=ge?za(Se,R).then(ve=>{ei(R,ve,re.current),A(ve)}):R===Q?Promise.resolve().then(()=>{ei("",null),A(null)}):Se?za(Se,R).then(ve=>{ei(R,ve),A(ve)}):Promise.resolve().then(()=>{ei(R,null),A(null)});Promise.all([mt,_t]).then(()=>oe(ve=>ve+1))};return window.addEventListener("pp-edition-day",F),()=>window.removeEventListener("pp-edition-day",F)},[]);const T=!_||!I||!f||!ee||ee===f?"":r.cockpitShift(pc(ee,t),pc(f,t),v.size),C=((G=Ge())==null?void 0:G.fund_type)||"",q=C?Y4(t):null;return e.jsxs(e.Fragment,{children:[e.jsx(Di,{active:"direct"}),e.jsxs("div",{className:"ppd pp-flow has-nldock",children:[e.jsx("style",{children:t6}),e.jsxs("div",{className:"pp-band",children:[e.jsx(Dp,{scope:st,showEdito:!0}),e.jsx(V4,{current:f||void 0,inPlace:!0,sector:D||void 0,windowDays:D?7:void 0,urlPrefix:s?`/actualites/operations/secteur/${s}/`:void 0,editionDays:H.length?H:void 0})]}),q&&e.jsx("div",{className:"ppd-ckpush-bar",children:e.jsxs("div",{className:"ppd-ckpush",children:[e.jsx("p",{children:q.body}),e.jsx("a",{href:Ir(C),children:q.cta})]})}),e.jsx("div",{id:"pp-direct-atelier",className:"ppd-anchor"}),T?e.jsx("div",{className:"ppd-appwrap",children:e.jsx("p",{className:"ppd-shift",children:T})}
4394):null,s&&!o&&e.jsx(e6,{label:(t==="fr"?a==null?void 0:a.labelFr:a==null?void 0:a.label)||D||s,sector:s,cta:r.nlDockCta,t:r,onUnlock:u,onSkip:p}),!s||o?e.jsx($4,{ready:_,gen:xe,initialFilters:X,evaluation:Ae,empty:_&&!D&&v.size===0,emptyLabel:r.noDeal(pc(f,t))}):e.jsx("div",{className:"ppd-appwrap",children:e.jsx("p",{className:"ppd-nodeal",children:r.nlPopLead((t==="fr"?a==null?void 0:a.labelFr:a==null?void 0:a.label)||D||"")})}),e.jsx(Nt,{}),(!s||o&&!l)&&e.jsx(X4,{sector:s||"general",title:s?r.nlDockKSector((t==="fr"?a==null?void 0:a.labelFr:a==null?void 0:a.label)||D||s):r.nlDockK,cta:r.nlDockCta,allLabel:s?void 0:r.nlAll,allHref:s?void 0:"/actualites/operations/secteurs/",onSubscribed:s?u:void 0})]})]})}class J4 extends m.Component{constructor(){super(...arguments);eu(this,"state",{err:!1})}static getDerivedStateFromError(){return{err:!0}}render(){return this.state.err?e.jsxs("p",{className:"ppd-nodeal",children:["Le cockpit n’a pas pu s’ouvrir."," ",e.jsx("button",{type:"button",onClick:()=>window.location.reload(),children:"Recharger"})]}):this.props.children}}function $4({ready:t,gen:n,initialFilters:r,evaluation:i,empty:s,emptyLabel:a}){const o=m.useRef(null),[c,l]=m.useState(!!i);m.useEffect(()=>{i&&l(!0)},[i]),m.useEffect(()=>{const p=o.current;if(!p)return;const u=new IntersectionObserver(g=>{g[0]&&g[0].isIntersecting&&(l(!0),u.disconnect())},{rootMargin:"600px"});return u.observe(p),()=>u.disconnect()},[]);const d=c&&t;return s&&!i?e.jsx("div",{className:"ppd-appwrap",ref:o,children:e.jsx("p",{className:"ppd-nodeal",children:a})}):e.jsx("div",{className:"ppd-appwrap",ref:o,children:e.jsx("div",{className:"ppd-app",style:{"--atelier-h":Z4},children:d?e.jsx(J4,{children:e.jsx(m.Suspense,{fallback:e.jsx("div",{style:{minHeight:120}}),children:e.jsx(W4,{capsOverride:Q4,source:"ops",initialFilters:r,initialEvaluation:i},n)})}):e.jsx("div",{style:{minHeight:120}})})})}function Em(t){return`pp-nl-seen:${t}`}function Nm(t){return`pp-nl-sub:${t}`}function X4({sector:t,title:n,cta:r,allLabel:i,allHref:s,onSubscribed:a}){const[o,c]=m.useState(""),[l,d]=m.useState(""),{state:p,errMsg:u,submit:g,copy:f}=fl(t);return e.jsx("div",{className:"ppd-nldock",role:"region","aria-label":n,children:e.jsxs("form",{className:"ppd-nldock-form",noValidate:!0,onSubmit:async L=>{L.preventDefault(),await g(o,l)&&(c(""),a==null||a())},children:[e.jsx("p",{className:"ppd-nldock-k",children:n}),e.jsxs("div",{className:"ppd-nldock-row",children:[e.jsx("input",{type:"email",required:!0,value:o,placeholder:f.placeholder,"aria-label":f.placeholder,onChange:L=>c(L.target.value)}),e.jsx("input",{type:"text",name:"website",value:l,tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"ppd-nlhp",onChange:L=>d(L.target.value)}),e.jsx("button",{className:"ppd-nlcta",type:"submit",disabled:p==="sending",children:p==="sending"?f.sending:r}),i&&s?e.jsx("a",{className:"ppd-nlall",href:s,children:i}):null]}),(p==="ok"||p==="err")&&e.jsx("p",{className:"ppd-nlmsg"+(p==="err"?" err":""),"aria-live":"polite",children:p==="ok"?f.ok:u})]})})}function e6({label:t,sector:n,cta:r,t:i,onUnlock:s,onSkip:a}){const[o,c]=m.useState(""),[l,d]=m.useState(""),{state:p,errMsg:u,submit:g,copy:f}=fl(n);return e.jsx("div",{className:"ppd-nlpop",role:"dialog","aria-modal":"true","aria-labelledby":"ppd-nlpop-h",children:e.jsxs("div",{className:"ppd-nlpop-stack",children:[e.jsxs("div",{className:"ppd-nlpop-card",children:[e.jsx("p",{className:"ppd-nlpop-k",children:i.nlPopK}),e.jsx("h2",{id:"ppd-nlpop-h",children:i.nlTitleSector(t)}),e.jsx("p",{className:"ppd-nlpop-lead",children:i.nlPopLead(t)}),e.jsxs("form",{className:"ppd-nlpop-form",noValidate:!0,onSubmit:async L=>{L.preventDefault(),await g(o,l)&&(c(""),s())},children:[e.jsx("input",{type:"email",required:!0,value:o,placeholder:f.placeholder,"aria-label":f.placeholder,onChange:L=>c(L.target.value)}),e.jsx("input",{type:"text",name:"website",value:l,tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"ppd-nlhp",onChange:L=>d(L.target.value)}),e.jsx("button",{className:"ppd-nlcta",type:"submit",disabled:p==="sending",children:p==="sending"?f.sending:r}),(p==="ok"||p==="err")&&e.jsx("p",{className:"ppd-nlmsg"+(p==="err"?" err":""),"aria-live":"polite",children:p==="ok"?f.ok:u})]})]}),e.jsx("button",{type:"button",className:"ppd-nlpop-tab",onClick:a,children:i.nlPopSkip})]})})}const t6=`
4395.ppd{font-family:var(--pp-body);color:#16233A;
4396background:#fff;-webkit-font-smoothing:antialiased}
4397.ppd,.ppd *{box-sizing:border-box}
4398.ppd button,.ppd input,.ppd select{font-family:inherit}
4399.ppd-wrap{max-width:1200px;margin:0 auto;padding:0 32px}
4400.ppd-bandwrap{max-width:none;margin:0;padding:0}
4401.ppd-bandwrap .pp-band{border-left:0;border-right:0}
4402.pp-flow .pp-band{position:sticky;top:var(--pp-gap,60px);z-index:45;border-left:0;border-right:0}
4403.ppd-ckpush-bar{background:#E7F6EE;border-bottom:1px solid #C8EBD6}
4404.ppd-ckpush{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
4405  max-width:1200px;margin:0 auto;padding:10px 32px}
4406.ppd-ckpush p{margin:0;font-size:13.5px;line-height:1.45;color:#16233A;flex:1 1 16em}
4407.ppd-ckpush a{flex:none;display:inline-flex;align-items:center;justify-content:center;
4408  padding:8px 14px;border-radius:999px;background:#12A150;color:#fff;font-weight:700;
4409  font-size:13.5px;text-decoration:none;white-space:nowrap}
4410.ppd-ckpush a:hover{background:#0E8A44;color:#fff}
4411@media (max-width:860px){
4412  .pp-flow .pp-band{position:static!important;top:auto!important;z-index:auto}
4413  .ppd-ckpush{padding:10px 12px}
4414  .ppd-ckpush a{width:100%}
4415}
4416/* Liste courte (2 sociétés) : le footer reste en bas d'écran, pas collé à la liste. */
4417.ppd.pp-flow{min-height:calc(100dvh - var(--pp-gap,60px));display:flex;flex-direction:column}
4418.ppd.pp-flow .ppd-appwrap{flex:1 1 auto}
4419.ppd.pp-flow .ppf{margin-top:auto;flex:none}
4420
4421/* ── chapeaux et titres (miroir .h3-eyeb / .h3-h1 / .h3-h2 / .h3-lead) ── */
4422.ppd-eyeb{display:flex;align-items:center;gap:12px;margin:0 0 16px;
4423font-family:var(--pp-body);font-size:12px;font-weight:500;color:#8FA0B8;font-variant-numeric:tabular-nums}
4424.ppd-eyeb::before{content:"";display:block;width:22px;height:2px;background:#12A150;
4425border-radius:2px;flex:none}
4426/* Titre du jour : UNE ligne sur desktop (retour 11/08 — le titre long
4427   « Analyse des opérations M&A & levée de fonds du JJ mois » cassait en 2).
4428   Mobile : 2 lignes max, clamp plus bas. */
4429.ppd-h1{margin:0;font-size:clamp(18px,2.35vw,32px);line-height:1.18;letter-spacing:-.03em;
4430font-weight:700;text-wrap:balance;max-width:none;overflow-wrap:anywhere}
4431@media (min-width:960px){
4432.ppd-h1{white-space:nowrap;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;
4433font-size:clamp(21px,1.95vw,29px)}}
4434.ppd-shift{margin:14px 0 0;padding:12px 0 0;font-size:13.5px;line-height:1.45;color:#4B5E78;
4435border-top:1px solid rgba(15,29,51,.08)}
4436.ppd-h2{margin:0;font-size:clamp(23px,2.6vw,33px);line-height:1.14;letter-spacing:-.036em;
4437font-weight:700;text-wrap:balance;max-width:none}
4438.ppd-lead{margin:22px 0 0;font-size:clamp(16px,1.3vw,18.5px);line-height:1.66;color:#4B5E78;
4439max-width:none;text-wrap:pretty}
4440.ppd-sub{margin:12px 0 0;font-size:15px;line-height:1.66;color:#4B5E78;max-width:none}
4441
4442/* Carte de lecture unifiée (radar = cockpit = case jour) */
4443.ppd-map{margin:28px 0 0;padding:18px 20px;border:1px solid #E3E8F0;background:#F9FBFD;border-radius:12px}
4444.ppd-map-h{margin:0 0 10px;font-family:var(--pp-body);font-size:12px;
4445font-weight:600;color:#12A150;font-variant-numeric:tabular-nums}
4446.ppd-map-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
4447.ppd-map-list li{font-size:14.5px;line-height:1.45;color:#16233A}
4448.ppd-map-list li strong{font-weight:700}
4449.ppd-map-note{margin:12px 0 0;font-size:13px;line-height:1.5;color:#4B5E78}
4450/* UN SEUL masthead — désormais celui DU CORPS serveur (bande cockpit en tête
4451   des boîtes moteur) : le bloc SPA « L'édition du jour » a déménagé dans le
4452   pli « À propos de cette édition » (14/08 soir — plus de pile d'en-tête). */
4453.ppd-plus{margin:26px 0 0;background:#F9FBFD;border:1px solid #E3E8F0;border-radius:8px}
4454.ppd-plus>summary{cursor:pointer;list-style:none;padding:11px 16px;
4455font-family:var(--pp-body);font-size:12px;font-weight:600;color:#16233A;font-variant-numeric:tabular-nums}
4456.ppd-plus>summary::-webkit-details-marker{display:none}
4457.ppd-plus>summary::after{content:" ▾";color:#0E8A44}
4458.ppd-plus[open]>summary::after{content:" ▴"}
4459.ppd-plus .ppd-plus-b{padding:14px 16px 18px;background:#fff;
4460border-top:1px solid #E3E8F0;border-radius:0 0 8px 8px}
4461.ppd-plus .ppd-plus-b .ppd-h1{font-size:clamp(19px,2vw,26px);margin:6px 0 10px}
4462.ppd-plus .ppd-plus-b .ppd-lead{margin:0 0 12px}
4463
4464/* ── ③ l'atelier ── */
4465.ppd-anchor{scroll-margin-top:74px}
4466.ppd-appwrap{max-width:none;margin:0;padding:0}
4467/* la journée sans opération : une ligne entre deux filets, pas un cadre vide */
4468.ppd-nodeal{margin:0;padding:26px 0;font-size:15px;color:#4B5E78;
4469border-top:1px solid rgba(15,29,51,.10);border-bottom:1px solid rgba(15,29,51,.10)}
4470.ppd-app{background:#fff;border:1px solid rgba(15,29,51,.10);overflow:hidden;
4471box-shadow:0 1px 2px rgba(15,29,51,.04),0 24px 54px -34px rgba(15,29,51,.30)}
4472.ppd-seolink{display:inline-block;margin:0 0 14px;font-family:var(--pp-body);
4473font-size:12px;color:#0E8A44;text-decoration:none;border-bottom:1px solid rgba(14,127,63,.35);font-weight:600;font-variant-numeric:tabular-nums}
4474.ppd-seolink:hover{border-bottom-color:#0E8A44}
4475/* la ligne de repli des autres jours (« Édition du … ») garde l'ancien style */
4476.ppd-lead2{margin:26px 0 16px;font-size:15px;line-height:1.72;color:#46566B;
4477font-weight:400}
4478.ppd-lead2 strong{font-weight:650;color:#16233A;letter-spacing:-.01em}
4479@media (max-width:1264px){.ppd-app{border-left:0;border-right:0}}
4480/* Cockpit = la page. Hauteur naturelle, « Afficher plus » allonge la liste.
4481   ⚠️ AtelierFrame est monté HORS de .ppd : sélecteurs depuis .ppd-app. */
4482.ppd-app{border:0!important;box-shadow:none!important;overflow:visible;
4483  background:#F5F7FA!important}
4484.ppd-app .atl2{height:auto!important;max-height:none!important;overflow:visible!important;
4485  background:transparent}
4486/* Même gouttière 28 px : planisphère, Coller une URL, liste+édito. */
4487.ppd-app .atl2.ops{--v3-pad:28px}
4488.ppd-app .atl2.ops .fzone{margin:12px 0 20px;background:transparent}
4489.ppd-app .atl2.ops .fzone>.conts,.ppd-app .atl2.ops .fzone>.contpick{
4490  padding-left:28px!important;padding-right:28px!important;box-sizing:border-box}
4491.ppd-app .atl2.ops .stage:not(.folded){
4492  margin:0 28px!important;border:1px solid #E3E8F0!important;
4493  border-radius:12px!important;background:#F2F6FA!important}
4494.ppd-app .atl2.ops .eval-stick{padding:0!important;background:#fff!important}
4495.ppd-app .atl2.ops .demand{margin:16px 28px 0!important;padding:18px 22px!important;
4496  border:1px solid #E3E8F0!important;border-radius:14px!important;background:#fff!important;
4497  box-sizing:border-box}
4498.ppd-app .atl2.ops .desk{
4499  display:grid!important;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr)!important;
4500  gap:24px!important;align-items:start!important;
4501  margin:24px 28px 32px!important;padding:0!important;
4502  border:0!important;border-top:0!important;background:transparent!important}
4503.ppd-app .atl2.ops .desk-list{
4504  border:1px solid #E3E8F0!important;border-radius:12px!important;
4505  background:#fff!important;min-width:0;overflow:visible!important}
4506.ppd-app .atl2.ops .readpane,
4507.ppd-app .atl2.ops .readpane.is-edito,
4508body.pp-desk .ppd-app .atl2.ops .readpane,
4509body.pp-desk .ppd-app .atl2.ops .readpane.is-edito{
4510  background:transparent!important;border:0!important;border-left:0!important;
4511  box-shadow:none!important;padding:0!important;gap:14px!important;
4512  display:flex!important;flex-direction:column!important}
4513.ppd-app .atl2.ops .readpane .zoom,
4514.ppd-app .atl2.ops .readpane.is-edito .zoom,
4515.ppd-app .atl2.ops .readpane .card.ops-open{
4516  border:1px solid #E3E8F0!important;border-radius:14px!important;
4517  background:#fff!important;max-width:none!important;margin:0!important;
4518  padding:24px 28px 32px!important;box-sizing:border-box!important;
4519  box-shadow:none!important}
4520.ppd-app .atl2.ops .readpane.is-edito .zoom-h{padding-right:8px;overflow-wrap:anywhere}
4521.ppd-app .atl2.ops .readpane .edito-go{
4522  border:1px solid #E3E8F0!important;border-radius:12px!important;
4523  background:#fff!important;margin:0!important}
4524/* LISTE | LIGNE | MAXI : le segment de /cibles, pas des pilules cassées */
4525.ppd-app .atl2.ops .listhead .dens{
4526  display:inline-flex!important;align-items:stretch!important;height:30px!important;
4527  box-sizing:border-box!important;border:1px solid #E3E8F0!important;
4528  border-radius:8px!important;overflow:hidden!important;background:#fff!important;
4529  gap:0!important}
4530.ppd-app .atl2.ops .listhead .dens button{
4531  display:inline-flex!important;align-items:center!important;justify-content:center!important;
4532  border:0!important;border-radius:0!important;background:transparent!important;
4533  height:100%!important;width:34px!important;padding:0!important;box-shadow:none!important;
4534  font:inherit!important;color:#8FA0B8!important;cursor:pointer;white-space:nowrap}
4535.ppd-app .atl2.ops .listhead .dens button i{display:block!important;width:16px!important;height:12px!important;position:relative!important}
4536.ppd-app .atl2.ops .listhead .dens button b{display:none!important}
4537.ppd-app .atl2.ops .listhead .dens button[aria-pressed="true"],
4538.ppd-app .atl2.ops .listhead .dens button.on{
4539  background:#0F1D33!important;color:#fff!important;border:0!important}
4540/* Champ URL : pilule /cibles (point d'état, pas un cadre). */
4541.ppd-app .atl2.ops .demand .drow{display:flex!important;flex-wrap:nowrap!important;
4542  align-items:center!important;gap:10px!important;min-width:0!important}
4543.ppd-app .atl2.ops .demand .dfield{
4544  display:flex!important;align-items:center!important;gap:10px!important;
4545  flex:1 1 auto!important;min-width:0!important;box-sizing:border-box;
4546  border:1px solid #E3E8F0!important;border-radius:999px!important;
4547  padding:0 8px 0 18px!important;background:#F9FBFD!important;box-shadow:none!important}
4548.ppd-app .atl2.ops .demand .dfield::before{content:"";width:8px;height:8px;flex:none;
4549  border-radius:50%;background:#C9D6E6}
4550.ppd-app .atl2.ops .demand .dfield:focus-within{border-color:#9ED9B8!important;
4551  box-shadow:0 0 0 4px rgba(18,161,80,.14)!important;background:#fff!important}
4552.ppd-app .atl2.ops .demand .dfield:focus-within::before{background:#12A150}
4553.ppd-app .atl2.ops .demand .dfield input{border:0!important;background:transparent!important;
4554  box-shadow:none!important;outline:none!important;padding:13px 0!important;
4555  font:inherit!important;font-size:14px!important;min-width:0;flex:1}
4556.ppd-app .atl2.ops .demand .dacts{display:flex!important;align-items:center!important;
4557  gap:10px!important;flex:none!important;flex-wrap:nowrap!important;min-width:0!important}
4558.ppd-app .atl2.ops .demand .evalbtn{height:42px!important;border-radius:999px!important;
4559  padding:0 22px!important;box-sizing:border-box}
4560/* Site | Source : UN segment, pas deux pastilles décalées */
4561.ppd-app .atl2.ops .demand .dacts .sitepair{
4562  display:inline-flex!important;align-items:stretch!important;flex-direction:row!important;
4563  height:42px!important;box-sizing:border-box;flex:none!important;
4564  border:1px solid #E3E8F0!important;border-radius:999px!important;
4565  overflow:hidden!important;background:#fff!important}
4566.ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm{
4567  display:inline-flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
4568  align-items:center!important;justify-content:center!important;
4569  height:100%!important;margin:0!important;padding:0 14px!important;
4570  border:0!important;border-radius:0!important;background:transparent!important;
4571  color:#4B5E78!important;font-size:12.5px!important;font-weight:600!important;
4572  text-decoration:none!important;white-space:nowrap!important;box-shadow:none!important}
4573.ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm + .viewbtn.sm{
4574  border-left:1px solid #E3E8F0!important}
4575.ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm:not(.off){
4576  background:#0F1D33!important;color:#fff!important}
4577.ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm.off{opacity:.4;background:transparent!important}
4578.ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm.searching{
4579  background:#E7F6EE!important;color:#0E8A44!important;opacity:1}
4580.ppd-app .atl2.ops .demand .dacts .sitepair .xwin{display:inline!important;flex:none;
4581  font-size:11px;margin-left:2px}
4582body.pp-desk .ppd-app .atl2.ops .eval-stick{
4583  z-index:33!important;background:#fff!important;
4584  box-shadow:none!important}
4585/* Rideau blanc UNIQUEMENT au sticky — au repos il recouvrait le haut de
4586   la box « 64 dans l'édition du jour » (bord + radius). */
4587body.pp-desk .ppd-app .atl2.ops.url-stuck .eval-stick,
4588body.pp-desk .ppd-app .atl2.ops .eval-stick.is-stuck{
4589  padding-left:0!important;padding-right:0!important;padding-bottom:0!important;
4590  background:#fff!important;box-shadow:0 28px 0 #fff!important}
4591body.pp-desk .ppd-app .atl2.ops.url-stuck .demand{
4592  border:0!important;border-radius:0!important}
4593body.pp-desk .ppd-app .atl2.ops.url-stuck .desk{margin-top:0!important}
4594body.pp-desk .ppd-app .atl2.ops.url-stuck .desk-list{
4595  border-radius:0!important;border-top:0!important}
4596body.pp-desk .ppd-app .atl2.ops .listhead,
4597body.pp-desk .ppd-app .atl2.ops .listhead.mapoff{
4598  z-index:34!important;background:#fff!important;
4599  top:calc(var(--pp-gap,60px) + var(--pp-live-h,0px) + var(--demand-h,0px) - 1px)!important;
4600  box-shadow:none!important;border-radius:12px 12px 0 0}
4601body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead,
4602body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead.mapoff{
4603  box-shadow:0 -8px 0 #fff,0 1px 0 #E3E8F0!important;border-radius:0!important}
4604body.pp-desk .ppd-app .atl2.ops.list-short .eval-stick{
4605  box-shadow:none!important}
4606body.pp-desk .ppd-app .atl2.ops.list-short .desk-list{
4607  position:sticky!important;z-index:32;align-self:start;
4608  top:calc(var(--pp-gap,60px) + var(--pp-live-h,0px) + var(--demand-h,0px))!important}
4609body.pp-desk .ppd-app .atl2.ops.list-short .listhead,
4610body.pp-desk .ppd-app .atl2.ops.list-short .listhead.mapoff,
4611body.pp-desk .ppd-app .atl2.ops.list-short .desk-list .listhead{
4612  position:static!important;top:auto!important;box-shadow:none!important}
4613body.pp-desk .ppd-app .atl2.ops .desk-list .list .row,
4614body.pp-desk .ppd-app .atl2.ops .desk-list .list .dcard{z-index:0}
4615@media (max-width:1000px){
4616  .ppd-app .atl2.ops .desk{grid-template-columns:1fr!important;gap:16px!important;
4617    margin-left:14px!important;margin-right:14px!important}
4618  .ppd-app .atl2.ops .stage:not(.folded){margin-left:14px!important;margin-right:14px!important}
4619  .ppd-app .atl2.ops .demand{margin-left:14px!important;margin-right:14px!important}
4620  .ppd-app .atl2.ops .demand .drow{flex-wrap:wrap!important}
4621  .ppd-app .atl2.ops .demand .dfield{flex:1 1 100%!important;width:100%!important}
4622  .ppd-app .atl2.ops .demand .dacts{flex:1 1 100%!important;width:100%!important;
4623    flex-wrap:wrap!important;min-width:0!important}
4624  .ppd-app .atl2.ops .demand .dacts .evalbtn{flex:1 1 100%!important;width:100%!important}
4625  .ppd-app .atl2.ops .demand .dacts .sitepair{flex:1 1 100%!important;width:100%!important;
4626    max-width:100%!important}
4627}
4628/* Mobile scroll : URL compacte, mais Filtres + Évaluer + LISTE restent là. */
4629@media (max-width:860px){
4630  body.pp-desk .ppd-app .atl2.ops.url-stuck .dhead,
4631  body.pp-desk .ppd-app .atl2.ops.url-stuck .dunder,
4632  body.pp-desk .ppd-app .atl2.ops.url-stuck .rsp,
4633  body.pp-desk .ppd-app .atl2.ops.url-stuck .sitepair,
4634  body.pp-desk .ppd-app .atl2.ops.url-stuck .credits{display:none!important}
4635  body.pp-desk .ppd-app .atl2.ops.url-stuck .demand{
4636    margin:0!important;border:0!important;border-radius:0!important;
4637    padding:8px 12px!important;box-shadow:none!important}
4638  body.pp-desk .ppd-app .atl2.ops.url-stuck .drow{
4639    flex-wrap:nowrap!important;gap:8px!important}
4640  body.pp-desk .ppd-app .atl2.ops.url-stuck .dacts{flex-wrap:nowrap!important;flex:none!important;width:auto!important}
4641  body.pp-desk .ppd-app .atl2.ops.url-stuck .dacts .evalbtn{flex:none!important;width:auto!important}
4642  body.pp-desk .ppd-app .atl2.ops.url-stuck .dfield{padding:0 10px 0 14px!important}
4643  body.pp-desk .ppd-app .atl2.ops.url-stuck .dfield input{padding:8px 0!important;font-size:13px!important}
4644  body.pp-desk .ppd-app .atl2.ops.url-stuck .evalbtn{height:36px!important;padding:0 14px!important;
4645    font-size:13px!important;flex:none}
4646  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fstrip-a,
4647  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fsrch,
4648  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .frow2,
4649  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .lh-funnel,
4650  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .lh-dock,
4651  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .groupbar,
4652  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .ctx,
4653  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fpuce{display:none!important}
4654  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead,
4655  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead.mapoff{
4656    max-height:none!important;padding:8px 12px!important;overflow:visible!important;
4657    border-radius:0!important}
4658  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .lh-tools{padding:0 0 8px!important;margin:0!important;border:0!important}
4659  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .lh-top{
4660    flex-wrap:wrap!important;gap:8px!important;padding:0!important;margin:0!important;
4661    border:0!important}
4662  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .dens{flex:none}
4663  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .doable{display:inline-flex!important;flex:none}
4664  body.pp-desk .ppd-app .atl2.ops.url-stuck .eval-stick{padding:0!important;background:#fff!important}
4665}
4666.ppd-app .atl2 .app{height:auto!important;max-height:none;overflow:visible!important;
4667display:flex;flex-direction:column}
4668.ppd-app .atl2 .fzone{flex:none!important;max-height:none}
4669@media (max-width:860px){
4670.ppd-app{overflow:visible!important}
4671.ppd-app .atl2{height:auto!important;max-height:none!important;overflow:visible!important}
4672.ppd-app .atl2 .app{height:auto!important;overflow:visible!important;min-height:0!important;
4673justify-content:flex-start}
4674.ppd.pp-flow .ppd-appwrap{flex:none}
4675.ppd-app .atl2.ops .fzone,.ppd-app .atl2.ops .mapzone,.ppd-app .atl2.ops .stage{
4676display:none!important;height:0!important;min-height:0!important;max-height:0!important;
4677overflow:hidden!important;flex:none!important}
4678.ppd-app .atl2.ops .readpane{min-height:0!important;height:auto!important;max-height:none!important}}
4679/* 24/08 — l'article inbound (M&A, levées, et le reste) est DÉPLIÉ : le
4680   cockpit ne porte que les ops nouvelles, masquer .ed-box vidait la page.
4681   Les écartés restent masqués (audit, pas l'article). */
4682.ppd .ppart .ed-box,
4683.ppd .ppart .ed-box.ed-box-ops,
4684.ppd .ppart .ed-rest,
4685.ppd .ppart .ed-plus{display:block}
4686.ppd .ppart .ed-ecartes{display:none}
4687
4688/* Édito /actualites = même air que le panneau droit /cibles. */
4689.ppd-artsec .ppd-wrap{padding:8px 32px 40px}
4690.ppd .ppart{max-width:none}
4691.ppd .ppart h3::before,.ppd .ppart h3.art-sub::before{content:none!important;display:none!important}
4692.ppd .ppart h3,.ppd .ppart h3.art-sub{display:block!important;margin:28px 0 14px!important}
4693.ppd .ppart .art-secviz,.ppd .ppart .art-viz2{display:none!important}
4694/* Les cartes M&A / levées font partie de l'édito, y compris sur les pages
4695   sectorielles. Elles étaient générées puis masquées par la règle ci-dessus. */
4696.ppd .ppart .art-mktcard{display:block!important;width:100%;max-width:100%;
4697  margin:14px 0 20px;overflow:hidden}
4698.ppd .ppart .art-allops>ul,.ppd .ppart ul.ed-flat{columns:1!important;column-count:1!important;
4699  counter-reset:edop;list-style:none;margin:0;padding:0}
4700.ppd .ppart .art-allops>ul>li,.ppd .ppart ul.ed-flat>li{counter-increment:edop;
4701  display:grid!important;grid-template-columns:1.75em minmax(0,1fr);column-gap:10px;
4702  align-items:start;padding:18px 0!important;border-bottom:1px solid #EAF0F6;
4703  break-inside:auto}
4704.ppd .ppart .art-allops>ul>li::before,.ppd .ppart ul.ed-flat>li::before{
4705  content:counter(edop) ".";font-size:14px;font-weight:800;color:#12A150;line-height:1.5}
4706.ppd .ppart .art-allops>ul>li>*,.ppd .ppart ul.ed-flat>li>*{grid-column:2;min-width:0}
4707.ppd .ppart .aa-d{white-space:normal;overflow:visible}
4708.ppd .ppart .ed-box{margin:28px 0 0;padding:0}
4709.ppd .ppart .ed-decrypt,.ppd .ppart .ed-decrypt-solo{margin:12px 0 0;padding:0;
4710  background:none;border:0}
4711.ppd .ppart .lead,.ppd .ppart .ed-lead{margin:0 0 22px;padding:0 0 18px 14px;
4712  border-left:2px solid #12A150}
4713.ppd .ppart p{margin:0 0 14px;font-size:15px;line-height:1.7}
4714.atl2.ops .readpane .zoom,.atl2.ops .readpane.is-edito .zoom{
4715  padding:24px 24px 32px;box-sizing:border-box}
4716.atl2.ops .readpane .zoom-k,.atl2.ops .readpane .zoom-h,
4717.atl2.ops .readpane .zoom-meta{margin-left:0;margin-right:0}
4718
4719/* ── ④ l'article du jour ── */
4720.ppd-sec{padding:86px 0;border-top:1px solid #E3E8F0;margin-top:64px}
4721.ppd-artsec{border-top:0;margin-top:0;padding-top:12px;padding-bottom:48px}
4722/* Le sommaire et le corps de l'article sont habillés par /article.css — LA
4723   feuille partagée avec la page bakée (classes .pptoc et .ppart). Les règles
4724   qui vivaient ici ont été retirées : les garder aurait fait deux sources. */
4725/* la journée affichée a son analyse ailleurs : une carte, pas un faux article */
4726.ppd-artcard{display:block;border:1px solid #E3E8F0;padding:30px 32px;text-decoration:none;
4727color:#16233A;background:#F9FBFD;transition:border-color .16s,transform .16s}
4728.ppd-artcard:hover{border-color:#16233A;transform:translateY(-2px)}
4729.ppd-artcard .k{display:block;font-family:var(--pp-body);font-size:12px;color:#8FA0B8;margin-bottom:12px;font-weight:600;font-variant-numeric:tabular-nums}
4730.ppd-artcard b{display:block;font-size:clamp(21px,2.2vw,29px);font-weight:700;letter-spacing:-.036em;
4731line-height:1.16}
4732.ppd-artcard em{display:block;margin-top:14px;font-style:normal;font-size:14px;font-weight:700;
4733color:#0E8A44}
4734
4735/* ── barre sticky newsletter (bas de /actualites et des pages secteur) ── */
4736.ppd.has-nldock{padding-bottom:96px}
4737.ppd-nldock{position:fixed;left:0;right:0;bottom:0;z-index:90;
4738background:#0F1D33;color:#C7D5E5;padding:10px 32px 14px;border-top:1px solid #1B2F4E;
4739box-shadow:0 -16px 36px -20px rgba(15,29,51,.55)}
4740.ppd-nldock-form{max-width:1100px;margin:0 auto}
4741.ppd-nldock-k{margin:0 0 8px;font-size:13px;font-weight:700;color:#fff;letter-spacing:-.01em}
4742.ppd-nldock-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
4743.ppd-nldock-row input[type=email]{flex:1 1 240px;min-width:180px;height:44px;padding:0 14px;
4744font-family:inherit;font-size:14.5px;color:#0F1D33;background:#fff;border:1px solid #24344C;
4745border-radius:10px;outline:none}
4746.ppd-nldock-row input[type=email]:focus{border-color:#12A150;box-shadow:0 0 0 3px rgba(18,161,80,.28)}
4747.ppd-nldock-row input[type=email]::placeholder{color:#7C8CA0}
4748.ppd-nlhp{position:absolute;
4748left:-9999px;height:0;width:0;border:0;padding:0}
4749.ppd-nldock .ppd-nlcta{margin:0;height:44px;padding:0 20px;border:0;border-radius:10px;
4750background:#12A150;color:#fff;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;
4751letter-spacing:-.01em}
4752.ppd-nldock .ppd-nlcta:hover{background:#0E8A44}
4753.ppd-nldock .ppd-nlcta[disabled]{opacity:.62;cursor:default}
4754.ppd-nldock .ppd-nlmsg{min-height:0;margin:8px 0 0;font-size:13px;color:#7FD8A6}
4755.ppd-nldock .ppd-nlmsg.err{color:#F5C6C8}
4756.ppd-nldock .ppd-nlall{margin:0;color:#A7B6CC;font-size:13px;text-decoration:none;
4757border-bottom:1px solid rgba(159,182,202,.34);white-space:nowrap}
4758.ppd-nldock .ppd-nlall:hover{color:#fff;border-bottom-color:#fff}
4759
4760/* overlay au-dessus de la barre sticky — l'inscription se fait DANS la barre */
4761.ppd-nlpop{position:fixed;inset:0;z-index:120;background:rgba(15,29,51,.72);
4762display:flex;align-items:center;justify-content:center;padding:24px}
4763.ppd-nlpop-form{display:flex;flex-direction:column;gap:8px;margin-top:16px;text-align:left}
4764.ppd-nlpop-form input[type=email]{height:44px;padding:0 14px;font:inherit;font-size:14.5px;
4765color:#0F1D33;background:#fff;border:0;border-radius:10px;outline:none;width:100%;box-sizing:border-box}
4766.ppd-nlpop-form .ppd-nlcta{height:44px;border:0;border-radius:10px;background:#12A150;color:#fff;
4767font:inherit;font-size:14.5px;font-weight:700;cursor:pointer}
4768.ppd-nlpop-form .ppd-nlcta:hover{background:#0E8A44}
4769.ppd-nlpop-form .ppd-nlmsg{margin:0;font-size:13px;color:#7FD8A6}
4770.ppd-nlpop-form .ppd-nlmsg.err{color:#F5C6C8}
4771.ppd-nlpop-stack{display:flex;flex-direction:column;align-items:center;width:min(520px,100%)}
4772.ppd-nlpop-card{width:100%;background:#0F1D33;color:#fff;border-radius:18px;
4773padding:28px 26px 22px;box-shadow:0 30px 72px -24px rgba(15,29,51,.85);text-align:center}
4774.ppd-nlpop-k{margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.08em;
4775text-transform:uppercase;color:#7FD8A6}
4776.ppd-nlpop-card h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1.25}
4777.ppd-nlpop-lead{margin:12px 0 0;font-size:14.5px;line-height:1.5;color:#C5D4E3}
4778/* languette blanche sous la carte — lisible sur le voile, plus de navy/navy */
4779.ppd-nlpop-tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;
4780margin-top:-1px;padding:9px 22px 12px;border:0;border-radius:0 0 14px 14px;
4781background:#fff;color:#0F1D33;font:inherit;font-size:13px;font-weight:700;
4782letter-spacing:-.01em;cursor:pointer;
4783box-shadow:0 12px 28px -14px rgba(15,29,51,.55)}
4784.ppd-nlpop-tab:hover{background:#F3F8F5;color:#0E7F3F}
4785
4786@media (max-width:760px){.ppd-wrap{padding:0 18px}
4787 .ppd.has-nldock{padding-bottom:128px}
4788 .ppd-nldock{padding:10px 18px 14px}
4789 .ppd-nldock-row .ppd-nlcta{flex:1 1 100%}
4790 .ppd-nlpop{inset:0}
4791}
4792@media (max-width:820px){
4793 .ppd-sec{padding:56px 0;margin-top:40px}
4794 .ppd-artsec{padding-top:8px;padding-bottom:32px}
4795 .ppd-art{margin-top:32px}
4796 .ppd-art h2{margin-top:44px}
4797}
4798@media (prefers-reduced-motion:reduce){
4799 .ppd *{transition:none!important;animation:none!important}
4800}
4801
4802/* 07/09 — sitepair-under, engine-stick, maxi-clip, live-film-clamp, filt-tab */
4803@media (max-width:860px){
4804  .ppd-app .atl2.ops .demand .drow{flex-wrap:wrap!important;min-width:0!important}
4805  .ppd-app .atl2.ops .demand .dfield{flex:1 1 100%!important;width:100%!important;min-width:0!important}
4806  .ppd-app .atl2.ops .demand .dacts{display:flex!important;flex-direction:row!important;
4807    flex-wrap:wrap!important;flex:1 1 100%!important;width:100%!important;
4808    min-width:0!important;gap:8px!important}
4809  .ppd-app .atl2.ops .demand .evalbtn,
4810  .ppd-app .atl2.ops .demand .dacts .evalbtn{flex:1 1 100%!important;width:100%!important;
4811    max-width:100%!important;box-sizing:border-box!important}
4812  .ppd-app .atl2.ops .demand .dacts .sitepair{display:flex!important;flex:1 1 100%!important;
4813    width:100%!important;max-width:100%!important;height:40px!important;
4814    box-sizing:border-box!important}
4815  .ppd-app .atl2.ops .demand .dacts .sitepair .viewbtn.sm{flex:1 1 0%!important;min-width:0!important}
4816  .ppd-app .atl2.ops .chrome-tog{display:none!important}
4817  body.pp-desk .ppd-app .atl2.ops .eval-stick{z-index:110!important}
4818  body.pp-desk .ppd-app .atl2.ops .filt-tab,
4819  body.pp-desk .ppd-app .atl2.ops .filt-dock{z-index:111!important}
4820  body.pp-desk .ppd-app .atl2.ops.url-stuck .eval-stick,
4821  body.pp-desk .ppd-app .atl2.ops .eval-stick.is-stuck{box-shadow:none!important}
4822  body.pp-desk .ppd-app .atl2.ops .listhead,
4823  body.pp-desk .ppd-app .atl2.ops .listhead.mapoff{
4824    z-index:34!important;
4825    top:calc(var(--pp-gap,60px) + var(--pp-live-h,0px) + var(--demand-h,0px))!important}
4826  .ppd-app .atl2.ops .filt-tab{display:flex!important}
4827  .ppd-app .atl2.ops .filt-dock{display:block!important}
4828  .ppd-app .atl2.ops .listhead .lh-tools{display:none!important}
4829  body.pp-desk:has(.atl2.ops.filt-open) .ppd-nldock{display:none!important}
4830  body.pp-desk .ppd-app .atl2.ops.filt-open .dhead,
4831  body.pp-desk .ppd-app .atl2.ops.filt-open .dunder,
4832  body.pp-desk .ppd-app .atl2.ops.filt-open .rsp,
4833  body.pp-desk .ppd-app .atl2.ops.filt-open .sitepair,
4834  body.pp-desk .ppd-app .atl2.ops.filt-open .credits{display:none!important}
4835  body.pp-desk .ppd-app .atl2.ops.filt-open .demand{
4836    margin:0!important;border:0!important;border-radius:0!important;
4837    padding:8px 12px!important}
4838  body.pp-desk .ppd-app .atl2.ops.filt-open.url-stuck .listhead .fstrip-a,
4839  body.pp-desk .ppd-app .atl2.ops.filt-open.url-stuck .listhead .fsrch,
4840  body.pp-desk .ppd-app .atl2.ops.filt-open.url-stuck .listhead .frow2{
4841    display:flex!important}
4842  .ppd-app .atl2.ops .list.maxi,
4843  .ppd-app .atl2.ops .desk-list .list.maxi{display:grid!important;
4844    grid-template-columns:minmax(0,1fr)!important;width:100%!important;
4845    max-width:100%!important;min-width:0!important;overflow-x:clip!important;
4846    box-sizing:border-box!important}
4847  .ppd-app .atl2.ops .list.maxi .dcard,
4848  .ppd-app .atl2.ops .list.maxi .dcard.dops,
4849  .ppd-app .atl2.ops .list.maxi .grp-h{min-width:0!important;max-width:100%!important;
4850    width:100%!important;box-sizing:border-box!important}
4851  .ppd-app .atl2.ops .list.maxi .dact,
4852  .ppd-app .atl2.ops .list.maxi .dact .cell{width:100%!important;min-width:0!important}
4853  .ppd-app .atl2.ops .list.maxi .rev,
4854  .ppd-app .atl2.ops .list.maxi .memobtn,
4855  .ppd-app .atl2.ops .list.maxi .evalbtn{width:100%!important;max-width:100%!important;
4856    min-width:0!important;box-sizing:border-box!important;overflow:hidden!important;
4857    white-space:normal!important;height:auto!important;line-height:1.25!important}
4858  .ppd-app .atl2.ops .list.maxi .rev .lbl{overflow:hidden!important;white-space:normal!important;
4859    min-width:0!important}
4860  .ppd-app .atl2.ops .list:not(.maxi) .grp-h{position:sticky!important;z-index:31!important;
4861    top:calc(var(--pp-gap,48px) + var(--pp-live-h,44px) + var(--demand-h,56px) + var(--listhead-h,52px))!important;
4862    background:#fff!important}
4863}
4864body.pp-desk .ppd-app .atl2.ops .list:not(.maxi) .grp-h{
4865  position:sticky;z-index:31;
4866  top:calc(var(--pp-gap,60px) + var(--pp-live-h,44px) + var(--demand-h,56px) + var(--listhead-h,52px));
4867  background:#fff}
4868/* 16/09 — mobile : menus en haut, languette pour remonter. Gagne par cascade. */
4869@media (max-width:860px){
4870  .pp-flow .pp-band{position:static!important;top:auto!important;z-index:auto}
4871  body.pp-desk .ppd-app .atl2.ops .eval-stick,
4872  body.pp-desk .ppd-app .atl2.ops.url-stuck .eval-stick,
4873  body.pp-desk .ppd-app .atl2.ops .eval-stick.is-stuck{
4874    position:static!important;top:auto!important;z-index:auto!important;
4875    box-shadow:none!important}
4876  body.pp-desk .ppd-app .atl2.ops .listhead,
4877  body.pp-desk .ppd-app .atl2.ops .listhead.mapoff{
4878    position:static!important;top:auto!important;z-index:auto!important}
4879  body.pp-desk .ppd-app .atl2.ops .list:not(.maxi) .grp-h,
4880  .ppd-app .atl2.ops .list:not(.maxi) .grp-h{
4881    position:static!important;top:auto!important;z-index:auto!important}
4882  .ppd-app .atl2.ops .filt-tab,
4883  .ppd-app .atl2.ops .filt-dock,
4884  body.pp-desk .ppd-app .atl2.ops .filt-tab,
4885  body.pp-desk .ppd-app .atl2.ops .filt-dock{display:none!important}
4886  .ppd-app .atl2.ops .listhead .lh-tools,
4887  body.pp-desk .ppd-app .atl2.ops .listhead .lh-tools{display:block!important}
4888  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fstrip-a,
4889  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fsrch,
4890  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .frow2,
4891  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .ctx,
4892  body.pp-desk .ppd-app .atl2.ops.url-stuck .listhead .fpuce{
4893    display:flex!important}
4894}
4895`,ds={en:{crumb:"36 markets",home:"Home",news:"News",h1:"Get every morning the deals of the markets you follow.",leadA:"Tick your sectors, leave your email: you receive ",leadB:"one digest",leadC:" with the day’s M&A, fundraisings and news. ",leadD:"Only on the days they move",leadE:".",fieldLabel:"Your email for the daily briefing",dockPh:"[email protected]",dockGo:"Get the daily briefing",dockSending:"…",dockOk:"Done — one email every morning for your markets.",dockErr:"Something went wrong — try again in a few seconds.",dockNeed:"Tick the markets to follow, just below.",dockEmail
4895:"Enter your email.",dockEmailBad:"That email is not valid.",d7:"deals",d7one:"deal",openMk:t=>`See ${t} →`,quiet:"Quiet this week — open the market for the full history.",more:t=>`+${t} more this week`,gridSubCold:"The full taxonomy. Counts are unavailable right now — every tile still opens its cockpit.",chipMa:"M&A",chipLev:"Fundraising",chipPress:"News",follow:t=>`Add ${t} to my briefing`,followLbl:"Add this sector to my briefing",followOn:"In my briefing",checkAll:"Select all",checkNone:"Clear",dockN:t=>t===1?"Daily briefing · 1 market":`Daily briefing · ${t} markets`,dockIdle:"Tick at least one market, then send.",seoT:"Get every morning the deals of the markets you follow",seoD:"Tick your sectors, leave your email: one daily digest of M&A, fundraisings and news."},fr:{crumb:"36 marchés",home:"Accueil",news:"Actualités",h1:"Recevez chaque matin les opérations des marchés que vous suivez.",leadA:"Cochez vos secteurs, laissez votre email : vous recevez ",leadB:"un seul digest",leadC:" — M&A, levées et actualités du jour. ",leadD:"Uniquement les jours où ils bougent",leadE:".",fieldLabel:"Votre email pour la veille quotidienne",dockPh:"[email protected]",dockGo:"Recevoir la veille quotidienne",dockSending:"…",dockOk:"C’est noté — un email agrégé chaque matin pour vos marchés.",dockErr:"Une erreur est survenue — réessayez dans quelques secondes.",dockNeed:"Cochez ci-dessous les marchés à suivre.",dockEmail:"Indiquez votre email.",dockEmailBad:"Cet email n’est pas valide.",d7:"opérations",d7one:"opération",openMk:t=>`Voir ${t} →`,quiet:"Calme cette semaine — ouvrez le marché pour tout l’historique.",more:t=>`+${t} cette semaine`,gridSubCold:"La taxonomie complète. Les compteurs ne sont pas disponibles pour l’instant — chaque brique ouvre quand même son cockpit.",chipMa:"M&A",chipLev:"Levées",chipPress:"Presse",follow:t=>`Ajouter ${t} à ma veille`,followLbl:"Ajouter ce secteur à ma veille",followOn:"Dans ma veille",checkAll:"Tout cocher",checkNone:"Tout décocher",dockN:t=>t===1?"Veille du matin · 1 marché":`Veille du matin · ${t} marchés`,dockIdle:"Cochez au moins un marché, puis envoyez.",seoT:"Recevez chaque matin les opérations des marchés que vous suivez",seoD:"Cochez vos secteurs, laissez votre email : un digest quotidien des M&A, levées et actualités."}},n6=7,Cm=3,E1="pp-follow-sectors";function r6(t){var o;const n=`${t.headline_fr||""} ${t.headline||""} ${t.title||""}`;if(/\b(?:sells?|sold|sale of|divests?|disposed of)\b.{0,80}\b(?:stake|share|shares|interest|asset|assets|business|pipeline|unit)\b/i.test(n))return"ma";const i=(t.rubrique||"").toLowerCase();if(i==="ma")return"ma";if(i==="levees")return"levee";if(i==="nominations"||i==="recrutements"||i==="actualites")return"other";const s=(((o=t.card)==null?void 0:o.kind)||"").toLowerCase();if(s==="rachat"||s==="en_cours"||s==="ma")return"ma";if(s==="levee_une"||s==="levee")return"levee";const a=String(t.item_kind||t.deal_type||"").toLowerCase();return a==="ma"||a.startsWith("acq")||a.includes("fusion")?"ma":a==="vcpe"||a.includes("lev")||a.includes("fund")?"levee":"other"}function i6(t,n,r){const i=new Map,s=(t==null?void 0:t.recent_ops)||[],a=((t==null?void 0:t.date)||"").slice(0,10),o=Date.parse(a),c=isFinite(o)?new Date(o-(n6-1)*864e5).toISOString().slice(0,10):"";let l=0;for(const d of s){const p=(d._pool_date||d.published||"").slice(0,10);if(!p||c&&p<c||a&&p>a)continue;l+=1;const u=((d.product_category_above||"")+"|"+(d.market_tags||[]).join("|")).toLowerCase(),g=(d.company_name||d.title||"").trim();if(!g)continue;const f=(d.country||"").trim(),L=Kt(f&&f!=="?"?f:"Europe")||Kt(f)||"",v={name:g,acquirer:(d.acquirer_name||"").trim(),headline:(r==="fr"?d.headline_fr:d.headline)||d.headline||d.title||"",amount:Number(d.amount_eur)||0,date:p,cc:L,country:f&&f!=="?"?f:"Europe",kind:r6(d)};for(const y of n){if(!u.includes(y.toLowerCase()))continue;const h=i.get(y)||{n:0,amountEur:0,nMa:0,nLev:0,nOther:0,ops:[]};h.n+=1,h.amountEur+=v.amount,v.kind==="ma"?h.nMa+=1:v.kind==="levee"?h.nLev+=1:h.nOther+=1,h.ops.push(v),i.set(y,h)}}for(const d of i.values())d.ops.sort((p,u)=>u.date.localeCompare(p.date)||u.amount-p.amount);return{by:i,total:l,from:c,to:a}}function s6(){try{const t=JSON.parse(localStorage.getItem(E1)||"[]");return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}catch{return[]}}function a6({cc:t,label:n}){const r=s1(t);return r?e.jsx("img",{className:"mkc-flag",src:r,width:18,height:13,alt:"",title:n}):e.jsx("span",{className:"mkc-flag em",title:n,children:"🌐"})}function o6({sector:t}){const n=m.useRef(null),[r,i]=m.useState(!1);return m.useEffect(()=>{const s=n.current;if(!s||r)return;if(typeof IntersectionObserver>"u"){i(!0);return}const a=new IntersectionObserver(o=>{o.some(c=>c.isIntersecting)&&(i(!0),a.disconnect())},{rootMargin:"280px 0px",threshold:.01});return a.observe(s),requestAnimationFrame(()=>{const o=s.getBoundingClientRect();o.top<window.innerHeight+280&&o.bottom>-40&&i(!0)}),()=>a.disconnect()},[r,t]),e.jsx("div",{ref:n,className:"mkc-live","data-sector":t,children:r?e.jsx(Dp,{scope:{sector:t},scopeLabel:t,compact:!0}):e.jsx("div",{className:"mkc-live-ph","aria-hidden":"true",children:e.jsx("span",{className:"mkc-live-ph-lbl",children:"LIVE"})})})}function l6({variant:t,email:n,onEmail:r,selected:i,labels:s,t:a,onNeedPick:o}){const c=Ge(),[l,d]=m.useState(""),[p,u]=m.useState("idle"),[g,f]=m.useState(""),L=m.useRef(null);m.useEffect(()=>{c!=null&&c.email&&r(c.email)},[c==null?void 0:c.email]);const v=async()=>{var b,x;if(p==="sending")return;if(!i.length){f(a.dockNeed),u("err"),o();return}const h=n.trim();
4895if(!h){f(a.dockEmail),u("err"),(b=L.current)==null||b.focus();return}if(!/^[^@\s]+@[^@\s]+\.[^@\s]{2,}$/.test(h)){f(a.dockEmailBad),u("err"),(x=L.current)==null||x.focus();return}u("sending"),f("");try{const A=await fetch(`${_e}/mes-secteurs/subscribe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:h.toLowerCase(),sectors:s,countries:[],source:"marches-hub",website:l})}),w=await A.json().catch(()=>null);if(A.ok&&w&&w.ok===!0){u("ok");return}f(w&&w.error||a.dockErr),u("err")}catch{f(a.dockErr),u("err")}},y=i.length;return e.jsxs("form",{className:"mail "+t,noValidate:!0,onSubmit:h=>{h.preventDefault(),v()},children:[t==="hero"&&e.jsx("div",{className:"fieldlbl",children:a.fieldLabel}),t==="dock"&&e.jsx("p",{className:"dock-k",children:y?a.dockN(y):a.dockIdle}),e.jsxs("div",{className:"mail-row",children:[e.jsx("span",{className:"uf",children:e.jsx("input",{ref:L,type:"email",required:!0,value:n,placeholder:a.dockPh,autoComplete:"email",inputMode:"email","aria-label":a.dockPh,onChange:h=>{r(h.target.value),p!=="idle"&&u("idle")}})}),e.jsx("input",{type:"text",name:"website",value:l,tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"mkc-nlhp",onChange:h=>d(h.target.value)}),e.jsx("button",{type:"submit",className:"ub",disabled:p==="sending",children:p==="sending"?a.dockSending:a.dockGo})]}),p!=="idle"&&p!=="sending"&&e.jsx("p",{className:"mail-msg"+(p==="err"?" err":""),"aria-live":"polite",children:p==="ok"?a.dockOk:g})]})}function c6(){const{lang:t,localizePath:n}=ae(),r=ds[t],[i,s]=m.useState(null),[a,o]=m.useState(()=>typeof window>"u"?[]:s6()),[c,l]=m.useState(()=>{var k;return((k=Ge())==null?void 0:k.email)||""}),[d,p]=m.useState(!1),[u,g]=m.useState(!0),f=m.useRef(null);ht({en:{title:`${ds.en.seoT} | Proplace`,description:ds.en.seoD},fr:{title:`${ds.fr.seoT} | Proplace`,description:ds.fr.seoD}}),m.useEffect(()=>{let k=!0;return gr().then(_=>{k&&s(i6(_,nr.map(N=>N.label),t))}),()=>{k=!1}},[t]),m.useEffect(()=>{try{localStorage.setItem(E1,JSON.stringify(a))}catch{}},[a]),m.useEffect(()=>{const k=f.current;if(!k||typeof IntersectionObserver>"u")return;const _=new IntersectionObserver(([N])=>g(N.isIntersecting),{threshold:.15});return _.observe(k),()=>_.disconnect()},[]);const L=!!i&&i.total>0,v=m.useMemo(()=>new Set(a),[a]),y=nr.map((k,_)=>{const N=i==null?void 0:i.by.get(k.label),I=(N==null?void 0:N.ops)||[];return{name:k.label,label:t==="en"?k.label:k.labelFr,slug:k.id,n7:(N==null?void 0:N.n)||0,nMa:(N==null?void 0:N.nMa)||0,nLev:(N==null?void 0:N.nLev)||0,nOther:(N==null?void 0:N.nOther)||0,amount:N&&N.amountEur>0?Br(N.amountEur,t):"",preview:I.slice(0,Cm),extra:Math.max(0,I.length-Cm),i:_}}).sort((k,_)=>k.label.localeCompare(_.label,t,{sensitivity:"base"})||k.i-_.i),h=k=>`/actualites/operations/secteur/${k}/`,b=k=>{p(!1),o(_=>_.includes(k)?_.filter(N=>N!==k):[..._,k])},x=k=>{p(!1),o(_=>_.includes(k)?_:[..._,k])},A=nr.map(k=>k.id),w=a.length===A.length,S=nr.filter(k=>v.has(k.id)).map(k=>k.label),E=()=>{var k;p(!0),(k=document.getElementById("pp-mk-grid"))==null||k.scrollIntoView({behavior:"smooth",block:"start"})},j=k=>e.jsx(l6,{variant:k,email:c,onEmail:l,selected:a,labels:S,t:r,onNeedPick:E}),O=!u&&a.length>0;return e.jsxs("div",{className:"pp-marches"+(O?" has-dock":""),children:[e.jsx("style",{children:d6}),e.jsx(Di,{active:"marches"}),e.jsx("section",{className:"hero",children:e.jsxs("div",{className:"pp-mk-wrap",children:[e.jsxs("nav",{className:"ppcrumb","aria-label":"Fil d’Ariane",children:[e.jsx("a",{href:`${n("/")}`,children:r.home}),e.jsx("span",{"aria-hidden":"true",children:"›"}),e.jsx("a",{href:`${n("/actualites")}/`,children:r.news}),e.jsx("span",{"aria-hidden":"true",children:"›"}),e.jsx("b",{children:r.crumb})]}),e.jsx("h1",{children:r.h1}),e.jsxs("p",{className:"lead",children:[r.leadA,e.jsx("b",{children:r.leadB}),r.leadC,e.jsx("b",{children:r.leadD}),r.leadE]}),e.jsx("div",{ref:f,className:"hero-field",children:j("hero")})]})}),e.jsx("section",{className:"sec",id:"pp-mk-grid",children:e.jsxs("div",{className:"pp-mk-wrap",children:[e.jsxs("div",{className:"sec-tools",children:[!L&&e.jsx("p",{className:"sub2",children:r.gridSubCold}),e.jsx("button",{type:"button",className:"ghost",onClick:()=>{p(!1),o(w?[]:A)},children:w?r.checkNone:r.checkAll})]}),e.jsx("div",{className:"mk"+(d?" need":""),children:y.map(k=>{const _=h(k.slug),N=v.has(k.slug),I=k.n7>1?r.d7:r.d7one,ce=[k.preview[0]||null,k.preview[1]||null,k.preview[2]||null];return e.jsxs("article",{className:"mkc"+(N?" on":""),onClick:K=>{const pe=K.target;pe!=null&&pe.closest("a, button, input, label")||x(k.slug)},children:[N&&e.jsx("span",{className:"mkc-onflag",children:r.followOn}),e.jsx(o6,{sector:k.name}),e.jsxs("header",{className:"mkc-head",children:[e.jsxs("div",{className:"mkc-title",children:[e.jsx("h2",{className:"mkc-name",children:k.label}),e.jsxs("label",{className:"mkc-chk",children:[e.jsx("input",{type:"checkbox",checked:N,"aria-label":r.follow(k.label),onChange:()=>b(k.slug)}),e.jsx("span",{className:"mkc-chklbl",children:N?r.followOn:r.followLbl})]})]}),e.jsxs("p",{className:"mkc-facts",children:[e.jsx("b",{children:k.n7}),e.jsx("span",{className:"mkc-word",children:I}),k.nMa>0&&e.jsxs("span",{className:"chip",children:[k.nMa," ",r.chipMa]}),k.nLev>0&&e.jsxs("span",{className:"chip",children:[k.nLev," ",r.chipLev]}),k.nOther>0&&e.jsxs("span",{className:"chip",children:[k.nOther," ",r.chipPress]}),k.amount?e.jsx("span",{className:"chip",children:k.amount}):null]})]}),k.preview.length?e.jsx("ul",{className:"mkc-list",children:ce.map((K,pe)=>K?e.jsxs("li",{className:"mkc-row",children:[e.jsx(a6,{cc:K.cc,label:K.country}),e.jsxs("span",{className:"nd",children:[e.jsxs("span",{className:"rnm",children:[K.name,K.acquirer?e.jsxs("em",{children:[" ← ",K.acquirer]}):null]}),e.jsx("span",{className:"rds",children:K.headline&&K.headline!==K.name?K.headline:""})]}),e.jsxs("span",{className:"meta",children:[e.jsx("span",{className:"kind "+K.kind,children:K.kind==="ma"?r.chipMa:K.kind==="levee"?r.chipLev:r.chipPress}),e.jsx("span",{className:"amt"+(K.amount?"":" none"),children:K.amount?Br(K.amount,t):"—"})]})]},K.name+K.date+pe):e.jsx("li",{className:"mkc-row empty","aria-hidden":"true"},"empty-"+pe))}):e.jsx("div",{className:"mkc-list quiet",children:e.jsx("p",{className:"mkc-quiet",children:r.quiet})}),e.jsx("p",{className:"mkc-more",children:k.extra>0?r.more(k.extra):" "}),e.jsx("a",{className:"mkc-cta",href:_,children:r.openMk(k.label)})]},k.slug)})})]})}),O&&e.jsx("div",{className:"dock-wrap",role:"region","aria-label":r.fieldLabel,children:j("dock")}),e.jsx(Nt,{})]})}const d6=`
4896.pp-marches{font-family:var(--pp-body);
4897color:#16233A;background:#fff}
4898.pp-marches.has-dock{padding-bottom:92px}
4899.pp-marches .pp-mk-wrap{max-width:1200px;margin:0 auto;padding:0 32px}
4900.pp-marches,.pp-marches *{box-sizing:border-box}
4901
4902.pp-marches .ppcrumb{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
4903font-family:var(--pp-body);font-size:12px;color:#8FA0B8;margin:0 0 28px;font-weight:600;font-variant-numeric:tabular-nums}
4904.pp-marches .ppcrumb a{color:#8FA0B8;text-decoration:none;border-bottom:1px solid #E3E8F0}
4905.pp-marches .ppcrumb a:hover{color:#16233A;border-bottom-color:#16233A}
4906.pp-marches .ppcrumb b{color:#16233A;font-weight:500}
4907
4908/* ── hero façon home ──────────────────────────────────────────────────── */
4909.pp-marches .hero{padding:56px 0 36px;text-align:center}
4910.pp-marches h1{margin:0 auto;max-width:18em;font-size:clamp(32px,4.8vw,54px);font-weight:700;
4911letter-spacing:-.042em;line-height:1.06;text-wrap:balance}
4912.pp-marches .lead{margin:26px auto 0;max-width:62ch;font-size:clamp(16.5px,1.35vw,19px);
4913line-height:1.66;color:#4B5E78}
4914.pp-marches .lead b{color:#16233A;font-weight:600}
4915
4916.pp-marches .hero-field{margin:42px auto 0;max-width:600px;text-align:left}
4917.pp-marches .fieldlbl{margin:0 0 13px;font-family:var(--pp-body);
4918font-size:12px;color:#8FA0B8;font-weight:600;font-variant-numeric:tabular-nums}
4919.pp-marches .mail-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
4920.pp-marches .uf{display:flex;align-items:center;flex:1 1 240px;min-width:0;height:56px;
4921padding:0 18px;border:1px solid rgba(15,29,51,.11);border-radius:14px;background:#fff;
4922box-shadow:0 1px 2px rgba(15,29,51,.04)}
4923.pp-marches .uf:focus-within{border-color:rgba(15,29,51,.30);box-shadow:0 0 0 4px rgba(15,29,51,.05)}
4924.pp-marches .uf input{flex:1;min-width:0;border:0;outline:none;background:none;
4925font:inherit;font-size:16.5px;color:#16233A;letter-spacing:-.01em}
4926.pp-marches .uf input::placeholder{color:#8FA0B8}
4927.pp-marches .ub{flex:none;height:56px;padding:0 26px;border:0;border-radius:14px;
4928background:#12A150;color:#fff;font:inherit;font-size:15.5px;font-weight:700;cursor:pointer;
4929white-space:nowrap;letter-spacing:-.01em;
4930box-shadow:0 2px 4px rgba(18,161,80,.20),0 14px 28px -16px rgba(18,161,80,.75)}
4931.pp-marches .ub:hover{background:#0E8A44}
4932.pp-marches .ub[disabled]{opacity:.6;cursor:default}
4933.pp-marches .mail-msg{margin:10px 0 0;font-size:14px;color:#0E8A44}
4934.pp-marches .mail-msg.err{color:#C0353A}
4935
4936.pp-marches .sec{padding:8px 0 56px}
4937.pp-marches .sec-tools{display:flex;align-items:center;justify-content:space-between;
4938gap:16px;margin:0 0 16px}
4939.pp-marches .sub2{font-size:15px;color:#4B5E78;margin:0;line-height:1.6;max-width:80ch}
4940.pp-marches .ghost{flex:none;margin-left:auto;border:1px solid #E3E8F0;background:#fff;
4941font:inherit;font-family:var(--pp-body);font-size:12px;color:#4B5E78;padding:8px 12px;cursor:pointer;font-weight:600;font-variant-numeric:tabular-nums}
4942.pp-marches .ghost:hover{border-color:#16233A;color:#16233A}
4943
4944/* ── mini-cockpits ───────────────────────────────────────────────────────
4945   2 colonnes, même gabarit : LIVE collé en haut (44px, jamais 2 lignes),
4946   puis titre + case, puis 3 lignes de deals de hauteur fixe. Dans une
4947   rangée, tous les bandeaux LIVE tombent donc sur la même ligne. */
4948.pp-marches .mk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;
4949align-items:stretch}
4950.pp-marches .mk.need .mkc-chk{animation:mkc-pulse 1.1s ease-in-out 3}
4951@keyframes mkc-pulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 4px rgba(18,161,80,.28)}}
4952.pp-marches .mkc{position:relative;border:1px solid #E3E8F0;background:#fff;display:flex;
4953flex-direction:column;cursor:pointer;overflow:hidden;border-radius:12px;min-width:0;
4954transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease,background .16s ease}
4955.pp-marches .mkc:hover{border-color:#16233A;transform:translateY(-2px)}
4956.pp-marches .mkc.on{border:2px solid #12A150;background:#E7F6EE;
4957box-shadow:0 0 0 4px rgba(18,161,80,.22),0 18px 36px -14px rgba(18,161,80,.55)}
4958.pp-marches .mkc-onflag{position:absolute;top:8px;right:10px;z-index:2;
4959font-family:var(--pp-body);font-size:12px;font-weight:600;color:#fff;background:#12A150;
4960padding:4px 8px;border-radius:4px;pointer-events:none;font-variant-numeric:tabular-nums}
4961
4962.pp-marches .mkc-live{margin:0;flex:none;height:44px;overflow:hidden;background:#0F1D33}
4963.pp-marches .mkc-live .pp-livewrap{max-width:none!important;margin:0!important;padding:0!important}
4964.pp-marches .mkc-live .pp-live,
4965.pp-marches .mkc-live .pp-live .pp-run,
4966.pp-marches .mkc-live .pp-live .pp-tk,
4967.pp-marches .mkc-live .pp-live .pp-win{height:44px!important}
4968.pp-marches .mkc-live .pp-tk{white-space:nowrap}
4969.pp-marches .mkc-live-ph{height:44px;background:#0F1D33;display:flex;align-items:center;padding:0 12px}
4970.pp-marches .mkc-live-ph-lbl{font-family:var(--pp-body);
4971font-size:12px;font-weight:600;color:#fff;background:#E5484D;padding:4px 10px;font-variant-numeric:tabular-nums}
4972
4973.pp-marches .mkc-head{padding:14px 16px 12px;border-bottom:1px solid #F5F7FA;flex:none}
4974.pp-marches .mkc-title{display:flex;align-items:flex-start;justify-content:space-between;
4975gap:12px}
4976.pp-marches .mkc-name{margin:0;flex:1;min-width:0;font-size:22px;font-weight:700;
4977letter-spacing:-.03em;line-height:1.2;color:#16233A;
4978display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
4979min-height:2.4em}
4980.pp-marches .mkc-chk{display:inline-flex;align-items:center;gap:8px;cursor:pointer;flex:none;
4981max-width:18em;padding:6px 10px 6px 6px;border:1px solid #E3E8F0;background:#F9FBFD;border-radius:8px}
4982.pp-marches .mkc:hover .mkc-chk{border-color:#12A150;background:#E7F6EE}
4983.pp-marches .mkc.on .mkc-chk{border-color:#0E8A44;background:#12A150}
4984.pp-marches .mkc.on .mkc-chklbl{color:#fff}
4985.pp-marches .mkc-chk input{width:18px;height:18px;margin:0;accent-color:#12A150;cursor:pointer;flex:none}
4986.pp-marches .mkc-chklbl{font-size:12.5px;font-weight:650;color:#16233A;letter-spacing:-.01em;
4987line-height:1.25}
4988
4989.pp-marches .mkc-facts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;
4990margin:10px 0 0;min-height:28px;font-size:14px;line-height:1.2;color:#0F1D33}
4991.pp-marches .mkc-facts b{font-size:22px;font-weight:700;letter-spacing:-.04em;line-height:1;
4992font-variant-numeric:tabular-nums;color:#16233A}
4993.pp-marches .mkc-facts .mkc-word{font-weight:650;color:#16233A}
4994.pp-marches .mkc-facts .chip{font-variant-numeric:tabular-nums;font-size:12.5px;
4995padding:3px 8px;border:1px solid #E3E8F0;border-radius:999px;color:#0F1D33;background:#F9FBFD}
4996
4997.pp-marches .mkc-list{list-style:none;margin:0;padding:0;flex:none;height:168px}
4998.pp-marches .mkc-list.quiet{display:flex;align-items:center}
4999.pp-marches .mkc-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;
5000gap:10px;align-items:center;height:56px;padding:0 16px;border-bottom:1px solid #F5F7FA}
5001.pp-marches .mkc-row.empty{border-bottom-color:transparent}
5002.pp-marches .mkc-flag{display:block;width:18px;height:13px;object-fit:cover}
5003.pp-marches .mkc-flag.em{font-size:13px;line-height:13px}
5004.pp-marches .nd{min-width:0}
5005.pp-marches .rnm{display:block;font-size:15px;font-weight:650;letter-spacing:-.015em;
5006color:#16233A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
5007.pp-marches .rnm em{font-style:normal;font-weight:500;color:#0E8A44}
5008.pp-marches .rds{display:block;font-size:13px;line-height:1.35;color:#4B5E78;
5009white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
5010.pp-marches .meta{display:flex;flex-direction:column;align-items:flex-end;
5010gap:3px;flex:none}
5011.pp-marches .kind{font-family:var(--pp-body);font-size:12px;color:#0F1D33;border:1px solid #E3E8F0;padding:3px 6px;font-weight:600;font-variant-numeric:tabular-nums}
5012.pp-marches .kind.ma{color:#16233A;border-color:#16233A}
5013.pp-marches .kind.levee{color:#0E8A44;border-color:#12A150}
5014.pp-marches .amt{font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;color:#16233A}
5015.pp-marches .amt.none{color:#8FA0B8;font-weight:400}
5016
5017.pp-marches .mkc-quiet{margin:0 16px;font-size:14px;line-height:1.45;color:#4B5E78}
5018.pp-marches .mkc-more{margin:0;padding:8px 16px 0;font-size:13px;color:#4B5E78;min-height:28px}
5019.pp-marches .mkc-cta{display:block;margin-top:auto;padding:14px 16px;text-decoration:none;
5020font-size:15px;font-weight:700;letter-spacing:-.015em;color:#0E8A44;border-top:1px solid #F5F7FA;
5021background:#F9FBFD}
5022.pp-marches .mkc:hover .mkc-cta,.pp-marches .mkc-cta:hover{background:#E7F6EE;color:#064e2b}
5023.pp-marches .mkc.on .mkc-cta{background:#12A150;color:#fff;border-top-color:#0E8A44}
5024.pp-marches .mkc.on .mkc-cta:hover,.pp-marches .mkc.on:hover .mkc-cta{background:#0E8A44;color:#fff}
5025.pp-marches .mkc.on .mkc-head{background:#E7F6EE;border-bottom-color:#BBF7D0}
5026.pp-marches .mkc.on .mkc-name{color:#064E2B}
5027
5028.pp-marches .mkc-nlhp{position:absolute;left:-9999px;height:0;width:0;border:0;padding:0}
5029
5030.pp-marches .dock-wrap{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#0F1D33;
5031color:#C7D5E5;padding:12px 32px 16px;border-top:1px solid #1B2F4E}
5032.pp-marches .mail.dock{max-width:1200px;margin:0 auto}
5033.pp-marches .dock-k{margin:0 0 8px;font-family:var(--pp-body);
5034font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
5035.pp-marches .mail.dock .uf{background:transparent;border-radius:0;height:44px;box-shadow:none}
5036.pp-marches .mail.dock .ub{border-radius:var(--pp-r-pill,999px);height:44px}
5037.pp-marches .mail.dock .mail-msg{color:#7FD8A6}
5038.pp-marches .mail.dock .mail-msg.err{color:#F5C6C8}
5039
5040@media(max-width:900px){
5041 .pp-marches .mk{grid-template-columns:1fr}
5042}
5043@media(max-width:760px){
5044 .pp-marches.has-dock{padding-bottom:128px}
5045 .pp-marches .pp-mk-wrap{padding:0 18px}
5046 .pp-marches .hero{padding:32px 0 20px}
5047 .pp-marches .mkc-title{flex-direction:column;align-items:stretch}
5048 .pp-marches .mkc-chk{max-width:none}
5049 .pp-marches .dock-wrap{padding:12px 18px 16px}
5050 .pp-marches .mail-row{flex-wrap:wrap}
5051 .pp-marches .mail.dock .ub,.pp-marches .hero .ub{flex:1 1 100%}
5052}
5053
5054/* ═════════════════════════════════════════════════════════════════════════
5055   RESTYLE v3 — géométrie de la maquette Veille.html. Les couleurs viennent
5056   déjà des jetons ; ce bloc pose les formes.
5057   ═════════════════════════════════════════════════════════════════════════ */
5058
5059/* Le champ email du hero : la même pilule que l'accueil, point vert compris.
5060   Une seule promesse, un seul geste : les deux pages doivent le dessiner
5061   pareil, sinon la seconde a l'air d'une copie approximative. */
5062.pp-marches .mail-row{gap:0;background:#fff;border:1px solid var(--pp-line);
5063  border-radius:var(--pp-r-pill);padding:6px 6px 6px 20px;align-items:center;
5064  flex-wrap:nowrap;box-shadow:var(--pp-sh-float);
5065  transition:border-color .18s,box-shadow .18s}
5066.pp-marches .mail-row:hover,.pp-marches .mail-row:focus-within{
5067  border-color:var(--pp-green-soft);box-shadow:0 16px 40px rgba(18,161,80,.16)}
5068.pp-marches .mail-row::before{content:"";width:8px;height:8px;border-radius:50%;
5069  background:var(--pp-green);flex:none;margin-right:11px}
5070.pp-marches .mail-row .uf{border:0;box-shadow:none;background:transparent;
5071  height:auto;padding:0;border-radius:0}
5072.pp-marches .mail-row .ub,.pp-marches .mail.dock .ub{height:44px;padding:0 22px;flex:none;
5073  border-radius:var(--pp-r-pill,999px);box-shadow:var(--pp-sh-cta);cursor:pointer}
5074@media (max-width:560px){
5075  .pp-marches .mail-row{flex-wrap:wrap;border-radius:var(--pp-r-l);padding:12px 14px;gap:10px}
5076  .pp-marches .mail-row .ub{width:100%}
5077}
5078
5079/* Cartes marché : rayon de carte de contenu, ombre douce, survol qui éclaire
5080   au lieu de soulever — la page en aligne trente-six, un soulèvement de 2px
5081   sur chacune faisait vibrer la grille. */
5082.pp-marches .mkc{border-radius:var(--pp-r-l);box-shadow:var(--pp-sh-card)}
5083.pp-marches .mkc:hover{border-color:var(--pp-line-strong);transform:none;
5084  background:var(--pp-bg-hover)}
5085.pp-marches .mkc.on{border:1px solid var(--pp-green-bd);background:#fff;
5086  box-shadow:0 0 0 2px rgba(18,161,80,.16),var(--pp-sh-card)}
5087.pp-marches .mkc-onflag{border-radius:var(--pp-r-pill);padding:3px 10px;font-size:11px}
5088
5089/* Le bandeau LIVE de la carte se termine en fondu : jamais un mot coupé net. */
5090.pp-marches .mkc-live{-webkit-mask-image:linear-gradient(to right,#000 88%,transparent);
5091  mask-image:linear-gradient(to right,#000 88%,transparent)}
5092
5093/* La case « Dans ma veille » est une CHIP : même hauteur que partout ailleurs. */
5094.pp-marches .mkc-chk{height:28px;box-sizing:border-box;border-radius:var(--pp-r-pill);
5095  padding:0 12px;font-size:12px;font-weight:600;white-space:nowrap}
5096.pp-marches .mkc-chk input{width:14px;height:14px}
5097.pp-marches .mkc-name{font-size:20px}
5098
5099/* Le bouton « Tout cocher » : un secondaire, pas une étiquette qui crie. */
5100.pp-marches .ghost{height:28px;box-sizing:border-box;display:inline-flex;
5101  align-items:center;border-radius:var(--pp-r-pill);padding:0 14px;
5102  font-size:12px;font-weight:600;color:var(--pp-ink-3);white-space:nowrap}
5103.pp-marches .ghost:hover{border-color:var(--pp-line-strong);color:var(--pp-ink)}
5104
5105/* Fil d'Ariane : casse normale, comme partout depuis le restyle. */
5106.pp-marches .ppcrumb{font-size:12px;font-weight:600;color:var(--pp-ink-4)}
5107`,p6={en:{title:"We find the companies you should track, fund or acquire.",body:"Stan is your AI Corporate Developer. Enter your site: he derives your criteria and delivers your first ten targets. You validate them live with a human Corporate Developer, who learns to reason like you and tunes Stan into your decisive competitive edge.",placeholder:"yoursite.com",cta:"Discover my targets"},fr:{title:"Nous trouvons les entreprises que vous devriez suivre, financer ou racheter.",body:"Stan est votre AI Corporate Developer. Indiquez votre site : il en déduit vos critères et vous rend vos dix premières cibles. Vous les validez de vive voix avec un Corporate Developer humain, qui apprend à raisonner comme vous et paramètre Stan pour en faire votre avantage concurrentiel décisif.",placeholder:"votresite.com",cta:"Découvrir mes cibles"}};function u6({title:t,note:n}){const{lang:r}=ae(),i=p6[r];return e.jsxs("div",{className:"pp-ask",children:[e.jsx("style",{children:h6}),e.jsx("h2",{children:t||i.title}),n?e.jsx("p",{className:"pp-ask-body",children:n}):e.jsx("p",{className:"pp-ask-body",children:i.body}),e.jsx(ta,{placeholder:i.placeholder,cta:i.cta})]})}const h6=`
5108.pp-ask{padding:56px 24px;border-top:1px solid #E3E8F0;text-align:center;background:#F9FBFD;
5109font-family:var(--pp-body);color:#0F1D33}
5110.pp-ask h2{margin:0 auto 16px;font-size:clamp(21px,2.4vw,30px);font-weight:600;
5111letter-spacing:-.035em;line-height:1.14;max-width:34ch}
5112.pp-ask-body{font-size:15px;color:#4B5E78;margin:0 auto 22px;max-width:62ch;line-height:1.65}
5113.pp-ask .ur{display:flex;align-items:center;gap:0;max-width:600px;margin:0 auto;
5114background:#fff;border:1px solid var(--pp-line);border-radius:var(--pp-r-pill);
5115padding:6px 6px 6px 20px;box-shadow:var(--pp-sh-float);
5116transition:border-color .18s,box-shadow .18s}
5117.pp-ask .ur:hover,.pp-ask .ur:focus-within{border-color:var(--pp-green-soft);
5118box-shadow:0 16px 40px rgba(18,161,80,.16)}
5119.pp-ask .ur::before{content:"";width:8px;height:8px;border-radius:50%;
5120background:var(--pp-green);flex:none;margin-right:11px}
5121.pp-ask .uf{display:flex;align-items:center;gap:9px;flex:1;height:auto;padding:0;
5122background:transparent;border:0;border-radius:0;font-size:15px}
5123.pp-ask .uf input{flex:1;border:0;outline:none;font-size:15px;background:none;
5124font-family:inherit;min-width:0}
5125.pp-ask .uf input.shake{animation:pp-ask-shk .42s}
5126@keyframes pp-ask-shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
5127.pp-ask .ur:has(.uf-err){border-color:#E5484D;box-shadow:0 0 0 4px rgba(229,72,77,.12)}
5128.pp-ask .uf-err-msg{margin:10px auto 0;font-size:13px;color:#E5484D;font-weight:500;max-width:600px}
5129.pp-ask .ub{flex:none;height:44px;padding:0 22px;border:0;border-radius:var(--pp-r-pill);background:#12A150;box-shadow:var(--pp-sh-cta);
5130color:#fff;font-size:14.5px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}
5131.pp-ask .ub:hover{background:#0E8A44}
5132.pp-ask .usug{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap;justify-content:center}
5133.pp-ask .usg{border:1px solid #E3E8F0;background:#fff;border-radius:99px;padding:5px 12px;
5134font-size:12.5px;color:#4B5E78;cursor:pointer;font-family:inherit}
5135.pp-ask .usg:hover{border-color:#0F1D33;color:#0F1D33}
5136.pp-ask p{font-size:13.5px;color:#4B5E78;margin:15px auto 0;max-width:82ch;line-height:1.6}
5137.pp-ask p b{color:#0F1D33;font-weight:600}
5138.pp-ask .ok2{color:#0E8A44}.pp-ask .no2{color:#E5484D}
5139`,ps={en:{eyebrow:"RESEARCH · THE OTHER WAY IN",h1:"Give an article. Stan turns it into a thesis — and into the companies that carry it.",leadA:"The same gesture as on the home page, through another door. ",leadB:"There you give your website and Stan derives your criteria; here you give an article and Stan derives an investment thesis.",leadC:" A thesis that does not end in an i
5139dea — it ends in a list of companies to evaluate.",fieldPh:"paste the URL of an article, a video or a note",fieldCta:"Request this thesis →",fieldNote:"Leave the link and your details: Stan builds the mind map, the angles and the companies to evaluate, then we send it over. Nothing is generated on the spot — this is a request, not a button.",thesesTitle:"The theses already produced",thesesSub:"Each one ends in companies — that is what separates it from a blog post.",unreachable:"The research directory is unreachable right now. Try again in a moment.",none:"No thesis published yet.",loading:"Loading theses…",more:"Show more",mindmap:"MIND MAP",open:"Open in the workshop →",archive:"Previous version of this page →",askTitle:"A thesis ends in companies. What about yours?",seoT:"Research — from an article to a thesis, and the companies behind it",seoD:"Give us an article: Stan turns it into an investment thesis, its angles, and the list of companies to evaluate."},fr:{eyebrow:"LA RECHERCHE · L’AUTRE PORTE D’ENTRÉE",h1:"Donnez un article. Stan en tire une thèse — et les sociétés qui la portent.",leadA:"Le même geste que sur la page d’accueil, avec une autre entrée. ",leadB:"Là vous donnez votre site et Stan en déduit vos critères ; ici vous donnez un article et Stan en déduit une thèse d’investissement.",leadC:" Une thèse qui ne finit pas par une idée — elle finit par une liste de sociétés à évaluer.",fieldPh:"collez l’URL d’un article, d’une vidéo ou d’une note",fieldCta:"Demander cette thèse →",fieldNote:"Vous laissez le lien et vos coordonnées : Stan produit la carte mentale, les angles et les sociétés à évaluer, puis on vous l’envoie. Rien n’est généré à la volée — c’est une demande, pas un bouton.",thesesTitle:"Les thèses déjà produites",thesesSub:"Chacune finit par des sociétés — c’est ce qui la distingue d’un article de blog.",unreachable:"L’annuaire de la recherche est injoignable pour l’instant. Réessayez dans un instant.",none:"Aucune thèse publiée pour l’instant.",loading:"Chargement des thèses…",more:"Afficher plus",mindmap:"CARTE MENTALE",open:"Ouvrir dans l’atelier →",archive:"Version précédente de cette page →",askTitle:"Une thèse finit par des sociétés. Et la vôtre ?",seoT:"La recherche — d’un article à une thèse, et aux sociétés qui la portent",seoD:"Donnez un article : Stan en tire une thèse d’investissement, ses angles, et la liste des sociétés à évaluer."}},_m=12,m6=()=>typeof location<"u"&&location.hostname.endsWith("proplace.co")?"":"https://proplace.co";function g6(t){if(!t)return"";try{return new URL(t).hostname.replace(/^www\./,"")}catch{return""}}function f6({placeholder:t,cta:n}){const{openRdv:r}=pl(),i=m.useRef(null),[s,a]=m.useState(""),[o,c]=m.useState(!1),l=()=>{var p;const d=s.trim().replace(/\s+/g,"");if(!d||!/^(https?:\/\/)?[^./\s]+\.[^\s]{2,}/.test(d)){(p=i.current)==null||p.focus(),c(!0),window.setTimeout(()=>c(!1),450);return}r(d)};return e.jsxs("div",{className:"ur",children:[e.jsxs("span",{className:"uf",children:[e.jsx("span",{"aria-hidden":"true",children:"🔗"}),e.jsx("input",{ref:i,value:s,placeholder:t,autoComplete:"off",spellCheck:!1,inputMode:"url",className:o?"shake":void 0,onChange:d=>a(d.target.value),onKeyDown:d=>{d.key==="Enter"&&l()}})]}),e.jsx("button",{type:"button",className:"ub",onClick:l,children:n})]})}function Tm({src:t,label:n}){const[r,i]=m.useState(!1);return!t||r?e.jsx("span",{className:"ph",children:n}):e.jsx("img",{src:t,alt:"",loading:"lazy",decoding:"async",onError:()=>i(!0)})}function x6(){const{lang:t,localizePath:n}=ae(),r=ps[t],[i,s]=m.useState(null),[a,o]=m.useState(_m);ht({en:{title:`${ps.en.seoT} | Proplace`,description:ps.en.seoD},fr:{title:`${ps.fr.seoT} | Proplace`,description:ps.fr.seoD}}),m.useEffect(()=>{let p=!0;return _p().then(u=>{if(!p)return;if(!u){s({ok:!1,list:[]});return}s({ok:!0,list:u.filter(f=>(f.title||"").trim()).sort((f,L)=>(L.published||"").localeCompare(f.published||""))})}),()=>{p=!1}},[]);const c=n("/carte"),l=(i==null?void 0:i.list)||[],d=l.slice(0,a);return e.jsxs("div",{className:"pp-research",children:[e.jsx("style",{children:v6}),e.jsx(Di,{active:"research"}),e.jsx(Dp,{boxed:!0}),e.jsx("div",{className:"pp-rs-wrap",children:e.jsxs("div",{className:"hd",children:[e.jsx("div",{className:"eyeb",children:r.eyebrow}),e.jsx("h1",{children:r.h1}),e.jsxs("p",{className:"lead",children:[r.leadA,e.jsx("b",{children:r.leadB}),r.leadC]}),e.jsxs("div",{className:"field",children:[e.jsx(f6,{placeholder:r.fieldPh,cta:r.fieldCta}),e.jsx("p",{className:"fnote",children:r.fieldNote})]})]})}),e.jsx("section",{className:"sec",children:e.jsxs("div",{className:"pp-rs-wrap",children:[e.jsx("h2",{children:r.thesesTitle}),e.jsx("p",{className:"sub2",children:r.thesesSub}),i===null&&e.jsx("p",{className:"state",children:r.loading}),i!==null&&!i.ok&&e.jsx("p",{className:"state",children:r.unreachable}),i!==null&&i.ok&&l.length===0&&e.jsx("p",{className:"state",children:r.none}),d.length>0&&e.jsx("div",{className:"notes",children:d.map(p=>{var x,A,w;const u=p.slug||"",g=t==="en"&&!!p.en,f=(g&&((x=p.en)==null?void 0:x.title)||p.title||"").trim(),L=g&&((A=p.en)==null?void 0:A.summary)||p.summary||"",v=g&&((w=p.en)==null?void 0:w.market)||p.market||p.industry||"",y=u?`${g?"/en":""}/research/${u}/`:p.url||"",h=p.mindmap?m6()+(g&&u?`/en/research/mindmaps/${u}.png`:p.mindmap):"",b=(p.author||"").trim()||g6(p.source_url);return e.jsxs("article",{className:"nt",children:[y?e.jsx("a",{className:"im",href:y,tabIndex:-1,"aria-hidden":"true",children:e.jsx(Tm,{src:h,label:r.mindmap},h)}):e.jsx("span",{className:"im",children:e.jsx(Tm,{src:h,label:r.mindmap},h)}),e.jsxs("div",{className:"bd",children:[b&&e.jsxs("div",{className:"au",children:["✍ ",b.toUpperCase()]}),y?e.jsx("a",{className:"ti",href:y,children:f}):e.jsx("span",{className:"ti",children:f}),L&&e.jsx("p",{className:"su",children:L})]}),e.jsxs("div",{className:"fo",children:[e.jsx("span",{children:v}),u&&e.jsx("a",{className:"evb",href:`${c}?research=${encodeURIComponent(u)}`,children:r.open})]})]},u||f)})}),a<l.length&&e.jsxs("button",{type:"button",className:"more",onClick:()=>o(p=>p+_m),children:["▾ ",r.more," · ",l.length-a]}),e.jsx("p",{className:"arch",children:e.jsx("a",{href:"/research/v1/",children:r.archive})})]})}),e.jsx(u6,{title:r.askTitle}),e.jsx(Nt,{})]})}function L6(){return e.jsx(ul,{children:e.jsx(x6,{})})}const v6=`
5140.pp-research{font-family:var(--pp-body);color:#0F1D33;background:#fff}
5141.pp-research .pp-rs-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
5142.pp-research .hd{padding:34px 0 26px}
5143.pp-research .eyeb{font-family:var(--pp-body);font-size:12px;color:#8496A8;margin-bottom:11px;font-weight:600;font-variant-numeric:tabular-nums}
5144.pp-research h1{margin:0 0 9px;font-size:clamp(25px,2.9vw,40px);font-weight:600;
5145letter-spacing:-.04em;line-height:1.1;max-width:24ch}
5146.pp-research .lead{font-size:16px;color:#4B5E78;line-height:1.6;max-width:88ch;margin:0}
5147.pp-research .lead b{color:#0F1D33;font-weight:600}
5148.pp-research .field{margin-top:22px;max-width:760px}
5149.pp-research .ur{display:flex;gap:9px}
5150.pp-research .uf{display:flex;align-items:center;gap:9px;flex:1;min-width:0;height:50px;
5151padding:0 15px;background:#fff;border:1px solid #C9D6E6;border-radius:8px;font-size:15px}
5152.pp-research .uf input{flex:1;border:0;outline:none;font-size:15px;background:none;
5153font-family:inherit;min-width:0;color:inherit}
5154.pp-research .uf input.shake{animation:pp-rs-shk .42s}
5155@keyframes pp-rs-shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
5156.pp-research .ub{flex:none;height:50px;padding:0 22px;border:0;border-radius:8px;background:#12A150;
5157color:#fff;font-size:14.5px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}
5158.pp-research .ub:hover{background:#0E8A44}
5159.pp-research .fnote{margin:11px 0 0;font-size:12.5px;color:#4B5E78;line-height:1.6;max-width:80ch}
5160.pp-research .sec{padding:40px 0;border-top:1px solid #E3E8F0}
5161.pp-research .sec h2{margin:0 0 8px;font-size:clamp(21px,2.1vw,28px);font-weight:600;letter-spacing:-.03em}
5162.pp-research .sub2{font-size:14.5px;color:#4B5E78;margin:0 0 20px;line-height:1.6;max-width:88ch}
5163.pp-research .state{font-size:13.5px;color:#4B5E78;margin:0}
5164.pp-research .notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
5165.pp-research .nt{border:1px solid #E3E8F0;border-radius:12px;overflow:hidden;background:#fff;
5166display:flex;flex-direction:column}
5167.pp-research .nt:hover{border-color:#C9D6E6}
5168.pp-research .nt .im{height:130px;background:#F9FBFD;display:grid;place-items:center;
5169border-bottom:1px solid #E3E8F0;overflow:hidden}
5170/* contain, pas cover : une carte mentale recadrée ne veut plus rien dire —
5171   même traitement que la vignette des fiches bakées (research_publish.py). */
5172.pp-research .nt .im img{width:100%;height:100%;object-fit:contain;display:block;background:#F9FBFD}
5173.pp-research .nt .im .ph{font-family:var(--pp-body);font-size:12px;color:#8496A8;font-weight:600;font-variant-numeric:tabular-nums}
5174.pp-research .nt .bd{padding:15px;flex:1}
5175.pp-research .nt .au{font-family:var(--pp-body);font-size:12px;color:#0E8A44;font-weight:600;margin-bottom:7px;overflow:hidden;
5176text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
5177.pp-research .nt .ti{display:block;font-size:15.5px;font-weight:600;letter-spacing:-.02em;
5178line-height:1.25;margin-bottom:8px;color:#0F1D33;text-decoration:none}
5179.pp-research .nt .ti:hover{text-decoration:underline}
5180.pp-research .nt .su{font-size:12.5px;color:#4B5E78;line-height:1.55;margin:0}
5181.pp-research .nt .fo{display:flex;align-items:center;gap:8px;border-top:1px solid #E3E8F0;
5182padding:11px 15px;background:#F9FBFD}
5183.pp-research .nt .fo span{flex:1;min-width:0;font-size:11.5px;color:#4B5E78;overflow:hidden;
5184text-overflow:ellipsis;white-space:nowrap}
5185.pp-research .nt .evb{flex:none;background:#12A150;color:#fff;border-radius:8px;padding:7px 12px;
5186font-size:11.5px;font-weight:600;white-space:nowrap;text-decoration:none}
5187.pp-research .nt .evb:hover{background:#0E8A44}
5188.pp-research .more{display:block;width:100%;margin-top:16px;background:#F9FBFD;border:1px solid #E3E8F0;
5189border-radius:8px;padding:11px;font-family:var(--pp-body);font-size:12px;color:#4B5E78;cursor:pointer;font-weight:600;font-variant-numeric:tabular-nums}
5190.pp-research .more:hover{border-color:#0F1D33;color:#0F1D33}
5191.pp-research .arch{margin:22px 0 0}
5192.pp-research .arch a{font-size:12px;color:#8496A8;text-decoration:none;border-bottom:1px dotted #C9D6E6}
5193.pp-research .arch a:hover{color:#0F1D33}
5194@media(max-width:760px){
5195 .pp-research .pp-rs-wrap{padding:0 16px}
5196 .pp-research .hd{padding:24px 0 20px}
5197 .pp-research .sec{padding:30px 0}
5198 .pp-research .ur{flex-wrap:wrap}
5199 .pp-research .ub{width:100%}
5200}
5201`,N1="pp-demo-access",b6=/@proplace\.(?:co|tech)$/i,qm=/^[^@\s]+@[^@\s]+\.[^@\s]{2,}$/;function y6(){var t;try{if(localStorage.getItem(N1))return!0}catch{}return!!((t=Ge())!=null&&t.email)}function Fm(t){try{localStorage.setItem(N1,JSON.stringify({email:t,at:new Date().toISOString()}))}catch{}}function j6({lang:t,onGranted:n}){const r=t==="fr",[i,s]=m.useState(""),[a,o]=m.useState(""),[c,l]=m.useState(""),[d,p]=m.useState(!1),u=m.useRef(null);m.useEffect(()=>{var v;(v=u.current)==null||v.focus()},[]);const g=i.trim().toLowerCase(),f=qm.test(g)&&b6.test(g);m.useEffect(()=>{if(!f)return;const v=window.setTimeout(()=>{Fm(g),n()},350);return()=>window.clearTimeout(v)},[f,g,n]);const L=async v=>{if(v.preventDefault(),!d){if(!qm.test(g)){l(r?"Indiquez une adresse email valide.":"Enter a valid email address.");return}if(!f&&(a.match(/\d/g)||[]).length<8){l(r?"Indiquez votre numéro de téléphone.":"Enter your phone number.");return}if(l(""),p(!0),!f)try{await fetch(`${_e}/inbound/demo-access`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:g,phone:a.trim(),lang:t})})}catch{}Fm(g),n()}};return e.jsx("div",{className:"pp-demo-gate",role:"dialog","aria-modal":"true","aria-labelledby":"pp-demo-gate-title",children:e.jsxs("form",{className:"pp-demo-gate-card",onSubmit:v=>{L(v)},noValidate:!0,children:[e.jsx("span",{className:"pp-demo-gate-eyebrow",children:r?"Démo du cockpit Standard":"Standard cockpit demo"}),e.jsx("h2",{id:"pp-demo-gate-title",children:r?"Accédez à la démo":"Access the demo"}),e.jsx("p",{className:"pp-demo-gate-lead",children:r?"Suivez une cible de sa découverte à la signature, avec un vrai mémo détaillé et les vrais emails. Laissez votre email et votre téléphone : Alexandre, votre Corporate Developer, peut vous rappeler pour l’adapter à votre stratégie.":"Follow one target from discovery to signing, with a real detailed memo and the real emails. Leave your email and phone: Alexandre, your Corporate Developer, can call you back to tailor it to your strategy."}),e.jsxs("label",{children:[e.jsx("span",{children:r?"Email professionnel":"Work email"}),e.jsx("input",{ref:u,type:"email",inputMode:"email",autoComplete:"email",required:!0,placeholder:r?"[email protected]":"[email protected]",value:i,onChange:v=>{s(v.target.value),l("")}})]}),e.jsxs("label",{children:[e.jsx("span",{children:r?"Téléphone":"Phone"}),e.jsx("input",{type:"tel",inputMode:"tel",autoComplete:"tel",required:!f,placeholder:"+33 6 12 34 56 78",value:a,onChange:v=>{o(v.target.value),l("")}})]}),c&&e.jsx("p",{className:"pp-demo-gate-error",role:"alert",children:c}),e.jsx("button",{type:"submit",className:"pp-demo-gate-go",disabled:d,children:d?r?"Ouverture…":"Opening…":r?"Lancer la démo →":"Start the demo →"}),e.jsx("small",{className:"pp-demo-gate-note",children:r?"Vos coordonnées servent uniquement à vous recontacter au sujet de Proplace ; elles ne sont jamais partagées.":"Your details are only used to contact you about Proplace; they are never shared."})]})})}const w6=m.lazy(()=>Vr(()=>import("./TutorialExperience-5ry8LDJZ.js"),__vite__mapDeps([5,2]))),k6={fr:{title:"Démo du cockpit Standard | Proplace",description:"Explorez le cockpit Proplace Standard en plein écran : huit parties guidées, de la découverte d’une cible à la signature d’une acquisition."},en:{title:"Standard cockpit demo | Proplace",description:"Explore the Proplace Standard cockpit in full screen: eight guided parts, from discovering a target to signing an acquisition."}};function A6(){const{lang:t,switchLang:n,localizePath:r}=ae(),i=da(),[s]=j2(),a=Number(s.get("chapter")||1),o=Number.isInteger(a)&&a>=1&&a<=8?a-1:0;ht(k6);const[c,l]=m.useState(()=>y6());return e.jsxs("main",{className:"pp-cockpit-demo-page","aria-label":t==="fr"?"Démo du cockpit":"Cockpit demo",children:[e.jsx(m.Suspense,{fallback:e.jsx("div",{className:"pp-native-loading",role:"status",children:t==="fr"?"Ouverture du cockpit Standard…":"Opening the Standard cockpit…"}),children:e.jsx(w6,{lang:t,initialChapter:o,initialMode:"journey",autoPlay:c,immersive:!0,onLanguageChange:n,onClose:()=>i(r("/")+"#tutoriel")})}),!c&&e.jsx(j6,{lang:t,onGranted:()=>l(!0)})]})}const Om="pp_cookie_ack_v1",S6={en:{consent:t=>e.jsxs(e.Fragment,{children:["We use strictly necessary cookies to operate this site (session, security). No anal
5201ytics or advertising cookies. See our ",t,"."]}),privacyLabel:"Privacy Policy",accept:"Got it"},fr:{consent:t=>e.jsxs(e.Fragment,{children:["Nous utilisons uniquement des cookies strictement nécessaires au fonctionnement de ce site (session, sécurité). Aucun cookie de mesure d’audience ni de publicité. Consultez notre ",t,"."]}),privacyLabel:"Politique de confidentialité",accept:"J’ai compris"}};function E6(){const{lang:t,localizePath:n}=ae(),r=S6[t],[i,s]=m.useState(!1);m.useEffect(()=>{try{localStorage.getItem(Om)||s(!0)}catch{s(!0)}},[]);const a=()=>{try{localStorage.setItem(Om,new Date().toISOString())}catch{}s(!1)};if(!i)return null;const o=e.jsx(Ti,{to:n("/privacy"),style:{color:"var(--green)",textDecoration:"none"},children:r.privacyLabel});return e.jsxs("div",{role:"dialog","aria-live":"polite",style:{position:"fixed",bottom:16,left:16,right:16,maxWidth:540,margin:"0 auto",background:"#fff",border:"1px solid var(--line, rgba(0,0,0,.1))",borderRadius:10,boxShadow:"0 10px 30px rgba(0,0,0,.08)",padding:"14px 16px",display:"flex",alignItems:"center",gap:12,zIndex:9999,fontFamily:"Inter, -apple-system, BlinkMacSystemFont, sans-serif"},children:[e.jsx("p",{style:{margin:0,fontSize:12.5,color:"var(--sub)",lineHeight:1.55,flex:1},children:r.consent(o)}),e.jsx("button",{type:"button",onClick:a,style:{fontSize:12,fontWeight:600,color:"#fff",background:"var(--ink, #111)",border:"none",borderRadius:6,padding:"8px 14px",cursor:"pointer",flexShrink:0},children:r.accept})]})}function N6(){const[t,n]=m.useState(!1),[r,i]=m.useState(!1);if(m.useEffect(()=>{try{if(window.parent!==window)return;const d=new URLSearchParams(window.location.search),p=(d.get("cb")||d.get("token")||"").trim();if(!/^[A-Za-z0-9]{16}$/.test(p)||!kx(navigator.userAgent||""))return;n(!0)}catch{}},[]),!t)return null;const s=window.location.pathname.includes("/fr"),a=window.location.href,o=/Android/i.test(navigator.userAgent||""),c=()=>{if(o){const p=a.replace(/^https?:\/\//,"");window.location.href=`intent://${p}#Intent;scheme=https;action=android.intent.action.VIEW;end`;return}if(!window.open(a,"_blank","noopener")){const p=document.createElement("a");p.href=a,p.target="_blank",p.rel="noopener",p.click()}},l=async()=>{try{await navigator.clipboard.writeText(a),i(!0)}catch{i(!1)}};return e.jsx("div",{style:{position:"fixed",inset:0,zIndex:400,background:"#F9FBFD",display:"flex",alignItems:"center",justifyContent:"center",padding:24,fontFamily:"Georgia, serif",color:"#0f172a"},children:e.jsxs("div",{style:{maxWidth:440},children:[e.jsx("h1",{style:{fontSize:26,lineHeight:1.25,margin:"0 0 12px"},children:s?"Ouvrir dans le navigateur":"Open in the browser"}),e.jsx("p",{style:{fontSize:15,lineHeight:1.55,color:"#334155",margin:"0 0 16px"},children:s?"Cette fenêtre du mail ne garde pas la connexion. Ouvrez ce lien dans Safari ou Chrome, une seule fois. Ensuite vous restez connecté sur cet appareil : chaque visite prolonge la session, jusqu’à un an.":"This mail window does not keep you signed in. Open this link in Safari or Chrome, once. After that you stay signed in on this device: each visit extends the session, up to a year."}),e.jsx("p",{style:{fontSize:13,lineHeight:1.45,wordBreak:"break-all",background:"#fff",border:"1px solid #dbe7df",borderRadius:8,padding:"10px 12px",margin:"0 0 14px"},children:a}),e.jsx("button",{type:"button",onClick:c,style:{display:"block",width:"100%",background:"#0E8A44",color:"#fff",border:0,borderRadius:10,padding:"12px 16px",fontWeight:700,fontSize:15,cursor:"pointer"},children:s?"Ouvrir dans le navigateur":"Open in the browser"}),e.jsx("button",{type:"button",onClick:()=>{l()},style:{display:"block",width:"100%",marginTop:8,background:"#fff",color:"#0E8A44",border:"1px solid #BFE6CF",borderRadius:10,padding:"10px 16px",fontWeight:700,fontSize:14,cursor:"pointer"},children:r?s?"Lien copié":"Link copied":s?"Copier le lien":"Copy the link"}),e.jsx("button",{type:"button",onClick:()=>n(!1),style:{display:"block",width:"100%",marginTop:14,background:"none",border:0,color:"#64748b",fontSize:13,cursor:"pointer",textDecoration:"underline"},children:s?"Continuer dans cette fenêtre":"Continue in this window"})]})})}const Mm=[{path:"",element:e.jsx(Kx,{})},{path:"home-v1",element:e.jsx(H3,{})},{path:"home-v2",element:e.jsx(d5,{})},{path:"accueil-avant",element:e.jsx(h5,{})},{path:"outbound-B2B",element:e.jsx(j5,{})},{path:"documentation",element:e.jsx(nj,{})},{path:"setup",element:e.jsx(sj,{})},{path:"terms",element:e.jsx(aj,{})},{path:"privacy",element:e.jsx(pj,{})},{path:"newsletter",element:e.jsx(m1,{})},{path:"compte",element:e.jsx(g1,{})},{path:"pour/:fund",element:e.jsx(Dj,{})},{path:"pays/:cc",element:e.jsx(Yj,{})},{path:"carte",element:e.jsx(xm,{})},{path:"demo",element:e.jsx(A6,{})},{path:"v1/carte",element:e.jsx(xm,{forceUi:"v1"})}],Rm=[{path:"actualites",element:e.jsx(Sm,{})},{path:"actualites/operations/secteurs",element:e.jsx(c6,{})},{path:"actualites/operations/secteur/:slug",element:e.jsx(Sm,{})},{path:"research",element:e.jsx(L6,{})}];function Pm(){if(typeof window<"u"){const{pathname:t,search:n,hash:r}=window.location;window.location.replace(t.replace(/^\/(?:fr|en)\/cibles\//,"/cibles/")+n+r)}return null}function C6(){return e.jsx(L2,{children:e.jsxs(N2,{children:[e.jsxs(d2,{children:[e.jsx(An,{path:"/en/newsletter",element:e.jsx(m1,{})}),Mm.map(t=>e.jsx(An,{path:t.path===""?"/":`/${t.path}`,element:t.element},`en-${t.path}`)),Mm.map(t=>e.jsx(An,{path:t.path===""?"/fr":`/fr/${t.path}`,element:t.element},`fr-${t.path}`)),Rm.map(t=>e.jsx(An,{path:`/${t.path}`,element:t.element},`sfr-${t.path}`)),Rm.map(t=>
5201e.jsx(An,{path:`/en/${t.path}`,element:t.element},`sen-${t.path}`)),e.jsx(An,{path:"/fr/cibles/*",element:e.jsx(Pm,{})}),e.jsx(An,{path:"/en/cibles/*",element:e.jsx(Pm,{})}),e.jsx(An,{path:"*",element:e.jsx(Kx,{})})]}),!(typeof window<"u"&&new URLSearchParams(window.location.search).get("embed")==="1")&&e.jsx(E6,{}),e.jsx(N6,{})]})})}function Im(){uc.createRoot(document.getElementById("root")).render(e.jsx(Zm.StrictMode,{children:e.jsx(C6,{})}))}if(In())Vr(async()=>{const{installStandardTutorialRuntime:t}=await import("./realCockpitRuntime-BFcvKTRp.js").then(n=>n.r);return{installStandardTutorialRuntime:t}},[]).then(({installStandardTutorialRuntime:t})=>{t(),Im()});else if(dx()){const t=document.createElement("a");t.href="/fr/#tutoriel",t.textContent="Ouvrir la démonstration Standard / Open the Standard walkthrough",document.getElementById("root").append(t)}else Im();export{o8 as $,Ge as A,yw as B,Jy as C,gr as D,fd as E,dl as F,Mh as G,H6 as H,Tx as I,Ib as J,Pb as K,G6 as L,_p as M,Ox as N,Px as O,we as P,Op as Q,Ld as R,ow as S,iw as T,sw as U,Fp as V,_e as W,n3 as X,Gb as Y,q6 as Z,Pw as _,Vn as a,e8 as a$,Ix as a0,D6 as a1,Np as a2,tw as a3,nw as a4,w1 as a5,E4 as a6,na as a7,V4 as a8,Vr as a9,Hb as aA,H4 as aB,Ub as aC,a8 as aD,F6 as aE,W6 as aF,Q6 as aG,bx as aH,t8 as aI,M6 as aJ,ud as aK,Do as aL,Hw as aM,P6 as aN,cb as aO,R6 as aP,Rw as aQ,$6 as aR,Kw as aS,Tw as aT,n1 as aU,r1 as aV,b4 as aW,e1 as aX,V6 as aY,Xw as aZ,Gw as a_,Y6 as aa,Sx as ab,Lb as ac,vb as ad,U6 as ae,wd as af,Kj as ag,aw as ah,B6 as ai,z6 as aj,Mp as ak,Bo as al,vd as am,Br as an,Dn as ao,bd as ap,zr as aq,Ln as ar,Qw as as,Zw as at,fb as au,Js as av,zw as aw,kw as ax,Z6 as ay,K6 as az,r8 as b,Yw as b0,rb as b1,nb as b2,ae as b3,hl as b4,f1 as b5,Rj as b6,mm as b7,wp as b8,pa as b9,xw as bA,fw as bB,c8 as bC,Kt as bD,n8 as bE,i8 as bF,s8 as bG,Vw as bH,Ur as bI,Qr as bJ,s1 as bK,Yh as bL,d3 as bM,p3 as bN,ry as bO,ww as bP,l8 as bQ,iy as bR,jw as bS,lw as bT,T6 as bU,ll as bV,O6 as bW,Yy as bX,Uw as bY,Bn as ba,I6 as bb,Lw as bc,bw as bd,vw as be,xj as bf,uw as bg,dw as bh,cw as bi,Iw as bj,qw as bk,pw as bl,ey as bm,J6 as bn,ew as bo,X6 as bp,rw as bq,Cw as br,ly as bs,_w as bt,Fw as bu,Ow as bv,Mw as bw,mw as bx,hw as by,gw as bz,Qj as c,br as d,Yt as e,$w as f,Jw as g,Lt as h,In as i,e as j,Zj as k,Sw as l,Dw as m,H2 as n,Rt as o,Uo as p,Ew as q,m as r,Y2 as s,am as t,Nw as u,Ww as v,Aw as w,Bw as x,wh as y,ha as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.