/* Site INÉGAL : ne lit que les jetons (tokens.css). Aucune couleur ni police en dur. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--papier);color:var(--registre);font:400 16px/24px var(--font-text);hyphens:auto;text-rendering:optimizeLegibility}
a{color:var(--cyan-texte);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
p{margin:0}
h1,h2,h3{margin:0;color:var(--basalte);font-family:var(--font-display);font-weight:500;text-wrap:balance}
.skip{position:absolute;left:-9999px;top:0;background:var(--basalte);color:var(--sur-aplat);padding:var(--space-2) var(--space-4);z-index:20}
.skip:focus{left:var(--space-4);top:var(--space-2)}
.wrap{max-width:1200px;margin:0 auto;padding-inline:max(var(--space-4),env(safe-area-inset-left)) max(var(--space-4),env(safe-area-inset-right))}
.logo{display:block;height:var(--logo-h,28px);width:auto;flex:none}
.lg-ink{fill:var(--logo-ink)}.lg-top{fill:var(--logo-top)}.lg-mid{fill:var(--logo-mid)}.lg-bot{fill:var(--logo-bot)}.lg-acc{fill:var(--logo-acc)}
/* en-tête */
.top{position:sticky;top:0;z-index:10;background:var(--papier);border-bottom:1px solid var(--filet)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:64px;flex-wrap:wrap;padding-block:var(--space-2)}
.brand{display:flex;align-items:center;color:var(--basalte);text-decoration:none;min-height:44px}
nav.main{display:flex;gap:var(--space-5);flex-wrap:wrap;align-items:center}
nav.main a{font:500 14px/20px var(--font-text);color:var(--basalte);text-decoration:none;border-bottom:2px solid transparent;padding:var(--space-2) 0;min-height:44px;display:inline-flex;align-items:center}
nav.main a:hover,nav.main a[aria-current="page"]{border-bottom-color:var(--basalte)}
.tools{display:flex;gap:var(--space-2);align-items:center}
.tool{font:600 12px/16px var(--font-text);letter-spacing:.05em;color:var(--basalte);background:var(--papier);border:1px solid var(--registre-clair);border-radius:var(--radius-hair);padding:0 var(--space-3);height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}
.tool:hover{background:var(--velin)}
@media (max-width:860px){nav.main{order:3;width:100%;gap:var(--space-4)}}
/* hero */
.hero{border-bottom:1px solid var(--filet);background:linear-gradient(to right,var(--papier) 0 calc(max(0px,(100% - 1200px)/2) + 62%),transparent 0),repeating-linear-gradient(to bottom,transparent 0 23px,var(--filet) 23px 24px),var(--papier)}
.hero .in{padding-block:var(--space-9) var(--space-8);max-width:760px}
@media (max-width:860px){.hero{background:linear-gradient(to bottom,var(--papier) calc(100% - 72px),transparent 0),repeating-linear-gradient(to bottom,transparent 0 23px,var(--filet) 23px 24px),var(--papier)}.hero .in{padding-bottom:calc(var(--space-8) + 72px)}}
.label{font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre);text-transform:none}
.hero h1{font-size:clamp(40px,6.4vw,64px);line-height:1.1;letter-spacing:-.015em;margin-top:var(--space-5)}
.lead{font:400 20px/28px var(--font-text);color:var(--registre);max-width:56ch;margin-top:var(--space-5)}
.act{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.btn{font:600 15px/1 var(--font-text);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-hair);border:2px solid transparent;display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none;cursor:pointer}
.btn--p{background:var(--basalte);color:var(--sur-aplat)}
.btn--p:hover{background:var(--registre)}
.btn--s{background:var(--papier);color:var(--basalte);border-color:var(--registre-clair)}
.btn--s:hover{background:var(--velin)}
/* statut produit : transparence */
.statut{border-bottom:1px solid var(--filet);background:var(--velin)}
.statut .wrap{display:flex;gap:var(--space-4);align-items:flex-start;padding-block:var(--space-4);flex-wrap:wrap}
.statut .label{flex:none;padding-top:2px;color:var(--basalte)}
.statut p{font:400 14px/20px var(--font-text);max-width:90ch}
/* sections */
.sec{padding-block:var(--space-8) 0}
.open{border-top:1px solid var(--filet);padding-top:var(--space-4);display:flex;gap:var(--space-4);align-items:baseline;margin-bottom:var(--space-6);flex-wrap:wrap}
.open .n{font:500 14px/20px var(--font-data);color:var(--cyan-texte)}
.open h2{font-size:clamp(28px,4vw,40px);line-height:1.15;letter-spacing:-.005em}
.prose{max-width:68ch}
.prose p+p,.prose ul+p,.prose p+ul{margin-top:var(--space-4)}
.prose ul{padding-left:20px;margin:0}
.prose li{margin-top:var(--space-2)}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.cols,.cols--2{grid-template-columns:1fr}}
.card{background:var(--feuille);border:1px solid var(--filet);border-top:2px solid var(--basalte);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.card h3{font-size:22px;line-height:28px;letter-spacing:-.005em}
.card .k{font:500 12px/16px var(--font-data);color:var(--cyan-texte)}
.card p{font:400 14px/20px var(--font-text)}
.note{font:italic 400 14px/20px var(--font-text);color:var(--registre)}
.src{font:400 12px/16px var(--font-text);color:var(--registre)}
/* états */
.sg{width:16px;height:16px;fill:currentColor;flex:none;display:block}
.st{display:inline-flex;align-items:center;gap:var(--space-1);font:600 12px/16px var(--font-text);color:var(--registre);white-space:nowrap}
.st.is-juste{color:var(--cyan-texte)}.st.is-ecart{color:var(--cinabre)}
/* tableaux */
.tw{overflow-x:auto;border:1px solid var(--filet);background:var(--feuille)}
table{border-collapse:collapse;width:100%;font:400 14px/20px var(--font-text)}
th{background:var(--velin);text-align:left;font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre);padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--basalte);white-space:nowrap}
td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--filet);color:var(--basalte);vertical-align:top}
td.num,th.num{text-align:right;font-family:var(--font-data);font-weight:500;font-variant-numeric:tabular-nums}
/* démo */
.demo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-6);align-items:start}
@media (max-width:960px){.demo{grid-template-columns:1fr}}
.panel{background:var(--feuille);border:1px solid var(--filet);border-top:2px solid var(--basalte);padding:var(--space-5);min-width:0}
.panel h3{font-size:22px;line-height:28px;margin-bottom:var(--space-4)}
.presets{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-5)}
.preset{font:600 13px/1 var(--font-text);min-height:44px;padding:0 var(--space-4);background:var(--papier);color:var(--basalte);border:1px solid var(--registre-clair);border-radius:var(--radius-hair);cursor:pointer}
.preset[aria-pressed="true"]{background:var(--basalte);color:var(--sur-aplat);border-color:var(--basalte)}
.fld{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-3);align-items:center;margin-bottom:var(--space-4)}
.fld label{font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre)}
.fld output{font:500 14px/20px var(--font-data);color:var(--basalte);text-align:right}
.fld input[type=range]{grid-column:1/-1;width:100%;height:44px;margin:0;accent-color:var(--cyan)}
.fld .h{grid-column:1/-1;font:400 12px/16px var(--font-text);color:var(--registre)}
.fig-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--basalte);border-bottom:1px solid var(--filet);margin-bottom:var(--space-5)}
.fig-row>div{padding:var(--space-4) var(--space-3);border-left:1px solid var(--filet);min-width:0}
.fig-row>div:first-child{border-left:0;padding-left:0}
.fig-row .v{font:500 clamp(22px,3.4vw,32px)/1.2 var(--font-data);color:var(--basalte);letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fig-row .c{font:400 12px/16px var(--font-text);color:var(--registre);margin-top:var(--space-1)}
@media (max-width:520px){.fig-row{grid-template-columns:1fr}.fig-row>div{border-left:0;border-top:1px solid var(--filet);padding-left:0}.fig-row>div:first-child{border-top:0}}
.verdict{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin:var(--space-5) 0 var(--space-3)}
.verdict h3{font-size:32px;line-height:40px;margin:0}
.rules{list-style:none;margin:var(--space-4) 0 0;padding:0}
.rules li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--filet);font:400 14px/20px var(--font-text);color:var(--basalte);align-items:flex-start}
.rules li .st{flex:none}
.chart{width:100%;height:auto;display:block;margin-top:var(--space-3)}
.chart text{font:500 11px var(--font-data);fill:var(--registre)}
.chart .band{fill:var(--cyan);opacity:.28}
.chart .bandl{stroke:var(--cyan);stroke-width:2}
.chart .med{stroke:var(--basalte);stroke-width:3}
.chart .ax{stroke:var(--filet);stroke-width:1}
.chart .cst{stroke:var(--cinabre);stroke-width:2;stroke-dasharray:4 3}
.chart .ceil{stroke:var(--cyan);stroke-width:2;stroke-dasharray:4 3}
.chart text.t{fill:var(--basalte)}
.disc{border:1px solid var(--filet);border-left:4px solid var(--basalte);background:var(--velin);padding:var(--space-4);font:400 14px/20px var(--font-text);color:var(--basalte)}
/* équipe */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5)}
.person{background:var(--feuille);border:1px solid var(--filet);border-top:2px solid var(--basalte);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.person h3{font-size:28px;line-height:36px}
.person .role{font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre)}
.person a.ext{font:600 14px/20px var(--font-text);display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px}
.todo{border:1px dashed var(--cinabre);color:var(--cinabre);padding:0 var(--space-2);font:600 12px/16px var(--font-text)}
dl.kv{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:0;border-top:2px solid var(--basalte);margin:0;background:var(--feuille);border-bottom:1px solid var(--filet)}
dl.kv dt,dl.kv dd{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--filet);margin:0;font:400 14px/20px var(--font-text)}
dl.kv dt{font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre);background:var(--velin)}
dl.kv dd{color:var(--basalte)}
dl.kv dt:last-of-type,dl.kv dd:last-of-type{border-bottom:0}
@media (max-width:560px){dl.kv{grid-template-columns:1fr}dl.kv dt{border-bottom:0;padding-bottom:0;background:var(--feuille)}}
/* pied */
footer{border-top:2px solid var(--basalte);background:var(--feuille);padding-block:var(--space-7) var(--space-6);margin-top:var(--space-8)}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-6)}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
footer h2{font:700 11px/16px var(--font-text);letter-spacing:.05em;color:var(--registre);margin-bottom:var(--space-3)}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
footer li a{display:inline-flex;align-items:center;min-height:44px;font:400 14px/20px var(--font-text);color:var(--basalte)}
footer .tag{margin-top:var(--space-3);font:400 14px/20px var(--font-text);max-width:34ch}
.legal{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--filet);font:400 12px/16px var(--font-text);color:var(--registre)}
/* page de texte */
.page-h{padding-block:var(--space-8) var(--space-6);border-bottom:1px solid var(--filet);background:linear-gradient(to right,var(--papier) 0 calc(max(0px,(100% - 1200px)/2) + 62%),transparent 0),repeating-linear-gradient(to bottom,transparent 0 23px,var(--filet) 23px 24px),var(--papier)}
.page-h .in{max-width:760px}
@media (max-width:860px){.page-h{background:linear-gradient(to bottom,var(--papier) calc(100% - 48px),transparent 0),repeating-linear-gradient(to bottom,transparent 0 23px,var(--filet) 23px 24px),var(--papier);padding-bottom:calc(var(--space-6) + 48px)}}
.page-h h1{font-size:clamp(34px,5vw,52px);line-height:1.12;letter-spacing:-.01em;margin-top:var(--space-4)}
.eq{font:500 14px/20px var(--font-data);background:var(--velin);border:1px solid var(--filet);padding:var(--space-4);overflow-x:auto;color:var(--basalte);white-space:pre-wrap}
td.num .nw,.nw{white-space:nowrap}
code{font:500 .92em var(--font-data);color:var(--basalte)}
@media print{.top,.tools,.skip{display:none}}
