
:root{--o:#4F46E5;--o-soft:#EEEDFD;--ink:#1B2233;--muted:#6B7385;--line:#E6E8EE;--bg:#F7F8FA;--card:#fff;
--good:#0CCE6B;--ni:#FFA400;--poor:#FF4E42}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 80px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.surtitre{color:var(--o);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:600}
h1{font-size:44px;margin:10px 0 12px;letter-spacing:-.02em;line-height:1.1}
h2{font-size:22px;margin:0 0 14px;letter-spacing:-.01em}
h3{font-size:16px;margin:22px 0 8px}
.accroche{font-size:18px;color:#3B4354;max-width:66ch;margin:0 0 26px}
/* 2026-11-03 : anciens style="…" repetes, passes en regles (rendu identique, verifie aux styles calcules) */
.step h3{margin-top:0}
.step p.muted{margin:0;font-size:14px;line-height:1.6}
.lisible{max-width:74ch}
.brand{display:flex;align-items:center;gap:14px}
.brand svg{width:52px;height:52px;display:block;border-radius:13px}
.brand a.logo{flex:none;display:block;border-radius:13px;line-height:0;transition:opacity .12s}
.brand a.logo:hover{opacity:.85}
.brand a.logo:focus-visible{outline:2px solid var(--o);outline-offset:3px}
.lang{margin-left:auto;display:flex;gap:2px;align-items:center;font-size:12.5px;font-weight:700}
.lang a,.lang .on{padding:4px 10px;border-radius:8px;text-decoration:none;line-height:1.2}
.lang a{color:var(--muted);border:1px solid transparent}
.lang a:hover{color:var(--o);border-color:var(--line);background:#fff;text-decoration:none}
.lang .on{background:var(--o-soft);color:var(--o)}
.lang.foot{display:inline-flex;margin-left:0;font-size:12px}
.lang.foot a,.lang.foot .on{padding:1px 7px}
.suite{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
@media (max-width:640px){.suite{grid-template-columns:1fr}}
/* Mobile : le tableau des resultats devient une fiche empilee, chaque valeur
   sous son intitule, sans defilement lateral qui coupait les boutons. */
@media (max-width:640px){
table.res,table.res>tbody,table.res>tbody>tr,table.res>tbody>tr>td{display:block;width:100%}
table.res>thead{display:none}
table.res>tbody>tr>td{min-width:0;white-space:normal;border:0;padding:5px 0}
table.res>tbody>tr>td:first-child{padding-top:4px;font-size:17px}
table.res>tbody>tr>td[data-l]::before{content:attr(data-l);display:block;color:var(--muted);font-size:11px;
font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1px}
table.res>tbody>tr>td[colspan]{padding:6px 0 14px;overflow-wrap:anywhere}
table.res .row .mini{flex:1 1 auto;text-align:center}
.suite a{padding:16px}
}
.suite a{--c:var(--o);--cs:var(--o-soft);display:flex;align-items:center;gap:16px;padding:18px 20px;background:linear-gradient(135deg,var(--cs),var(--card) 70%);border:1px solid color-mix(in srgb,var(--c) 28%,transparent);
border-radius:16px;color:var(--ink);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.suite a:hover{border-color:var(--c);box-shadow:0 6px 20px -10px color-mix(in srgb,var(--c) 60%,transparent);transform:translateY(-1px);text-decoration:none}
.suite a:focus-visible{outline:2px solid var(--o);outline-offset:2px}
.suite .ic{flex:none;width:46px;height:46px;border-radius:12px;background:var(--c);color:#fff;display:grid;place-items:center}
.suite .ic svg{width:24px;height:24px}
.suite .tx{flex:1;min-width:0}
.suite b{display:block;font-size:16px;letter-spacing:-.01em;color:var(--c)}
.suite a.tr{--c:#0A8A55;--cs:#E3F5EC}
.shell.wb{background:linear-gradient(135deg,#FEF3E2,var(--card) 70%);border-color:#F3D9AE}
.shell.wb>.row b{color:#B45309}
.shell.wb>.row .mini{background:#B45309;border-color:#B45309;color:#fff}
.suite small{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-top:2px;overflow-wrap:anywhere}
.suite .fl{flex:none;color:var(--c);font-size:20px;transition:transform .15s}
.suite a:hover .fl{transform:translateX(4px)}
.shell{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.muted{color:var(--muted);font-size:13px}
input,select,button,textarea{font:inherit}
/* ⚠️ Le trait des champs est volontairement plus soutenu que `--line`, qui sert
   aux separations : pose sur une carte blanche, un liseré a 1 px dans cette
   couleur disparaissait et le champ ne se lisait plus comme un champ. Une ombre
   interne tres legere creuse la zone de saisie, ce que la bordure seule ne fait
   pas. Demande de Fabien, apres la page d'autorite. */
input[type=text]{padding:12px 15px;border:1.5px solid #C9CFDC;border-radius:10px;min-width:min(300px,100%);
flex:1;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px rgba(27,34,51,.06)}
input[type=text]::placeholder,textarea::placeholder{color:#9AA2B4}
input[type=text]:hover,textarea:hover{border-color:#AEB6C8}
input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--o);outline-offset:1px;
border-color:var(--o);box-shadow:none}
textarea{width:100%;padding:12px 15px;border:1.5px solid #C9CFDC;border-radius:10px;background:#fff;box-shadow:inset 0 1px 2px rgba(27,34,51,.06);
color:var(--ink);resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}
select{padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
button{padding:12px 20px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:600;color:var(--ink)}
button.p{background:var(--o);border-color:var(--o);color:#fff}
button.p:hover{filter:brightness(1.08)}
button:disabled{opacity:.5;cursor:default}
a{color:var(--o);text-decoration:none;font-weight:600}
a:hover{text-decoration:underline}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
td:nth-child(2){min-width:210px}
td:nth-child(1){min-width:150px}
td:nth-child(4),td:nth-child(5){white-space:nowrap}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.tbl-scroll{overflow-x:auto}
td.bots{white-space:normal;min-width:230px}
.bp{display:inline-block;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px;margin:1px 3px 1px 0;
border:1px solid transparent;cursor:help}
.bp.yes{background:#E7F7EF;color:#0A7A45;border-color:#BFE9D4}
.bp.no{background:#FFECEA;color:#B3261E;border-color:#FFD0CB;text-decoration:line-through}
.bp.unk{background:#FFF4E0;color:#8A5E00;border-color:#F3DFB4}
.bp.na{background:#F1F3F7;color:var(--muted);border-color:#E3E7EE}
.mini{padding:6px 12px;font-size:12.5px;border-radius:8px}
a.mini.dl{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);
text-decoration:none;font-weight:600}
a.mini.dl:hover{border-color:var(--o);color:var(--o);text-decoration:none}
.urllist{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:10px;background:#fff}
.urllist table{font-size:13px;table-layout:fixed;width:100%}
/* ⚠️ Les regles generales `td:nth-child(1){min-width:150px}` et
   `td:nth-child(2){min-width:210px}` visent le tableau de resultats, mais rien
   ne les empechait de s'appliquer ici aussi. Chrome les ignore en
   `table-layout:fixed`, pas les autres moteurs : chez eux la colonne Capture
   etait poussee a 210 px, le tableau depassait sa boite et la colonne Mots
   partait hors champ. On les neutralise explicitement. */
.urllist th,.urllist td{min-width:0}
.urllist th:nth-child(2),.urllist td:nth-child(2){width:96px}
.urllist th:nth-child(3),.urllist td:nth-child(3){width:58px}
.urllist th:nth-child(4),.urllist td:nth-child(4){width:64px}
.urllist th:nth-child(5),.urllist td:nth-child(5){width:72px}
/* Colonne de remplissage : elle absorbe l'espace laisse libre a droite, ce qui
   permet de coller les colonnes de donnees a la fin des URL au lieu de les
   repousser au bord du tableau. */
.urllist th:nth-child(6),.urllist td:nth-child(6){padding:0}
/* La liste Archive.org n'a que quatre colonnes : les largeurs ci-dessus, taillees
   pour le tableau Common Crawl, y poussaient la derniere hors champ. */
.wblist th:nth-child(2),.wblist td:nth-child(2){width:104px}
.wblist th:nth-child(3),.wblist td:nth-child(3){width:84px}
.wblist th:nth-child(4),.wblist td:nth-child(4){width:78px}
.wblist th:nth-child(5),.wblist td:nth-child(5){width:134px;padding-right:10px;white-space:nowrap}
.wbyears{margin:4px 0 12px}
.wby{display:flex;align-items:flex-end;gap:4px;height:72px}
.wbybar{flex:1;min-width:14px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.wbybar i{display:block;width:100%;background:var(--o);border-radius:3px 3px 0 0;opacity:.85}
.wbybar span{font-size:10px;color:var(--muted);margin-top:3px;font-family:ui-monospace,Menlo,monospace}
.wblist td.u{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.urllist th{position:sticky;top:0;background:#fff;box-shadow:0 1px 0 var(--line);z-index:1}
.urllist td,.urllist th{padding:7px 10px}
.urllist td.u{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.blbox{margin-top:6px}
.blhead{font-size:13.5px;margin:10px 0 6px}
/* Le bandeau « ce domaine redirige ailleurs » : il doit se voir sans hurler,
   c'est une orientation, pas une alerte. */
.blsoi{margin:10px 0 0;padding:9px 12px;border-radius:8px;font-size:13.5px;
  background:var(--o-soft);border:1px solid var(--o)}
.blsoi a{color:var(--o);font-weight:700}
/* La seconde ligne de filtres, celle du detail des erreurs : elle n'existe que
   lorsqu'on est entre dedans, et se distingue de la premiere par son retrait. */
.blsserr{margin:0 0 7px;padding-left:2px;font-size:12.5px;display:flex;flex-wrap:wrap;
  gap:3px 2px;align-items:center}
.blsserr .blssf{font-size:12px}
.blq{margin:0 0 6px;display:flex;align-items:center;gap:8px}
/* ⚠⚠ `var(--b)` N'EXISTE PAS dans ce jeu de variables, c'est `--line`. Une
   variable inconnue ne fait pas d'erreur en CSS, elle rend la propriete
   invalide : le champ sortait donc SANS BORDURE, et se lisait comme une phrase
   perdue au milieu de la page. Fabien, capture a l'appui le 2026-09-15 : « a
   quoi ça sert ça ? ». Il ne voyait pas que c'etait un champ. */
.blq input{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--line);
  border-radius:8px;width:min(340px,100%);background:#fff}
.blq label{font-size:12.5px;color:var(--muted);white-space:nowrap}
.blq{flex-wrap:wrap}
.blqaide{font-size:12.5px;flex:0 0 auto}
.blqaide summary{cursor:pointer;color:var(--o);white-space:nowrap}
.blqaidec{flex-basis:100%;margin-top:8px;padding:10px 13px;border:1px solid var(--line);
  border-radius:9px;background:#F8F9FB;max-width:640px}
.blqaidec p{margin:0 0 8px;line-height:1.5}
.blqaidec p:last-child{margin:8px 0 0}
.blqtab{border-collapse:collapse;font-size:12.5px}
.blqtab td{padding:2px 14px 2px 0;vertical-align:top}
.blqtab td:first-child{white-space:nowrap;color:var(--o)}
.blq input:focus{outline:none;border-color:var(--o)}
.blq .muted{font-size:12.5px}
.bltab tbody tr.blhorstexte{display:none!important}
/* Indice d'autorite. Trois paliers seulement : au-dela, l'oeil ne suit plus et
   la nuance de couleur ferait croire a une precision que le rang n'a pas. */
/* Indice d'autorite : cinq paliers. Trois ne suffisaient pas, un 21 et un 48
   tombaient dans la meme case grise alors qu'ils ne disent pas la meme chose.
   L'echelle va du rouge au vert franc, dans l'ordre ou on la lit. */
.blscore{display:inline-block;min-width:26px;text-align:center;font-size:11px;font-weight:700;
padding:1px 5px;border-radius:5px;margin-right:7px;font-family:inherit;
background:#FDEAE7;color:#B42318;border:1px solid #F5C8C1}
/* Score herite du domaine parent : bordure en pointille, pour qu'il se
   distingue au premier coup d'oeil d'une mesure reelle. */
.blscore.blsherite{border-style:dashed;opacity:.85}
/* L'hote qui porte reellement le lien, sous le nom du domaine payant. */
.blhotereel{font-size:11.5px;color:#6B7280;margin-top:2px;word-break:break-all}
.blscore.s2{background:#FFF0E2;color:#B4530E;border-color:#F5D5B4}
.blscore.mid,.blscore.s3{background:#FFF9E0;color:#8A6D0B;border-color:#EFE0A8}
.blscore.s4{background:#EAF6EC;color:#2E7D46;border-color:#C3E4CB}
.blscore.hi,.blscore.s5{background:#DFF3E5;color:#12693A;border-color:#A9DFBB}
.blauto{display:inline-block;font-size:12.5px;padding:2px 9px;border-radius:7px;margin-left:8px;
background:var(--o-soft);color:var(--o);font-weight:700}
/* Sous le nom du domaine, dans la colonne du tableau.
   En `block` et non en `flex` : les espaces du texte sont alors de vraies
   espaces, lisibles a l'ecran comme au copier-coller. */
.autoline{margin-top:5px;font-size:11.5px;line-height:1.5;color:var(--muted);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif}
.autoline .blscore{margin:0 2px 0 1px;vertical-align:1px}
.blpgbar{height:4px;background:#F1F3F7;border-radius:2px;margin:10px 0 6px;overflow:hidden}
.blpgbar i{display:block;height:100%;width:0;background:var(--o);transition:width .3s}
.blone{font:inherit;font-size:11px;background:#F1F3F7;border:1px solid var(--line);
  border-radius:10px;padding:1px 7px;margin-left:6px;cursor:pointer;color:var(--muted)}
.blone:hover{background:var(--o);border-color:var(--o);color:#fff}
.blone:disabled{opacity:.5;cursor:default}
.blres{font-size:12px;margin:3px 0 6px 2px;padding-left:8px;border-left:2px solid var(--line);word-break:break-all}
/* Tableau des referents : une ligne par domaine, l'autorite et la page cote a
   cote. Remplace la liste en trois colonnes, ou chaque reponse repoussait le
   reste de la colonne. */
.blscroll{overflow-x:auto;max-height:520px;overflow-y:auto;border:1px solid var(--line);
border-radius:12px;background:#fff;margin-top:8px}
.bltab{width:100%;border-collapse:collapse}
.bltab th{position:sticky;top:0;background:#F1F3F7;text-align:left;font-size:11px;
text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 12px;
border-bottom:1px solid var(--line);z-index:1}
.bltab td{padding:8px 12px;border-bottom:1px solid var(--line);font-size:12.5px;
vertical-align:top}
.bltab tr:last-child td{border-bottom:0}
/* ⚠ La colonne du nom se serre sur son contenu (`width:1%`), au lieu de se
   voir attribuer un tiers du tableau qu'elle laissait vide. Tout ce qu'elle
   rend est repris par « page qui fait le lien », la seule colonne dont le
   contenu soit long. Demande de Fabien le 2026-09-14 : « decaller autorite
   vers la gauche pour mieux voir les urls et ne pas avoir a scroller ».
   ⚠ `max-width` quand meme : un nom de domaine a rallonge ne doit pas
   reprendre a lui seul ce qu'on vient de liberer. */
.bltab td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  width:1%;min-width:175px;max-width:230px;overflow-wrap:anywhere}
/* ⚠ Un plancher ET un plafond. Sans plancher, le navigateur serrait la
   colonne a 86 px et coupait la plupart des noms sur deux lignes ; sans
   plafond, un nom de 39 caracteres lui reprenait 300 px. Mesure : la
   mediane des noms demande 128 px. */
.bltab td.blaut{padding-right:18px}
.bltab td.blaut{white-space:nowrap;width:1%}
.bltab td.blpage{word-break:break-all;min-width:260px}
.blpg{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.blanc{font-size:12px;margin-top:2px}
/* L'autorite reelle de l'hote, posee sous celle du domaine : une fleche qui
   descend, pour qu'on lise « et en descendant au sous-domaine, ca donne ça ». */
.blscoredom{font-size:11px;color:#9AA1AC;cursor:help;white-space:nowrap}
/* La dilution : discrete, et signalee seulement quand elle devient forte. */
.blsort{cursor:help}
.blsortfort{color:#B4530E;font-weight:600}
/* Le zero d'un hote ABSENT du classement : pointille, pour qu'il ne se lise pas
   comme une mesure. */
.blscore.blsabsent{border-style:dotted;background:#fff;color:#9AA1AC}
/* L'adresse visee : cliquable, mais elle ne prend pas le pas sur la page qui
   fait le lien, qui reste le lien principal de la ligne. */
.blcible{color:inherit;text-decoration:none}
.blcible:hover,.blcible:focus{color:var(--o);text-decoration:underline}
.blpg{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:10px}
.blpg th{text-align:left;padding:6px 8px;color:var(--muted);font-weight:600;font-size:11px;
  text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.blpg td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
/* Avec une colonne de plus, les deux colonnes de classement n'ont plus a
   occuper la moitie de la largeur : on les ramene vers le domaine. */
/* En largeur automatique le navigateur offrait 150 px a la colonne du rang,
   qui ne contient que deux chiffres, et poussait tout le reste a droite. */
.blpg.ro{table-layout:fixed}
/* Cinq pourcentages qui font exactement 100 : en `table-layout:fixed`, tout
   reliquat serait redistribue au prorata et rouvrirait le trou a gauche. */
.blpg.ro th:nth-child(1),.blpg.ro td:nth-child(1){width:5%}
.blpg.ro th:nth-child(2),.blpg.ro td:nth-child(2){width:33%}
.blpg.ro th:nth-child(3),.blpg.ro td:nth-child(3){width:19%}
.blpg.ro th:nth-child(4),.blpg.ro td:nth-child(4){width:13%}
.blpg.ro th:nth-child(5),.blpg.ro td:nth-child(5){width:30%}
.robar{display:inline-block;width:46px;height:6px;background:#F1F3F7;border-radius:3px;
overflow:hidden;vertical-align:middle;margin-right:7px}
.robar i{display:block;height:100%;background:var(--o)}
.rotag{display:inline-block;font-size:10.5px;font-weight:600;color:var(--muted);
background:#F1F3F7;border-radius:999px;padding:1px 7px;margin-left:5px;vertical-align:middle}
.blpg a{word-break:break-all}
.bllist{margin:0;padding:0;list-style:none;max-height:300px;overflow:auto;border:1px solid var(--line);
border-radius:10px;background:#fff;columns:3;column-gap:18px;padding:10px 12px}
.bllist li{font-size:12.5px;line-height:1.7;break-inside:avoid;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.bllist a{font-weight:500;color:var(--ink);text-decoration:none}
.bllist a:hover{color:var(--o);text-decoration:underline}
@media (max-width:900px){.bllist{columns:2}}
@media (max-width:600px){.bllist{columns:1}}
.blform{margin-top:10px;padding:14px 16px;border:1px dashed var(--line);border-radius:12px;background:#fff}
/* ⚠ La fenetre des URL manquantes. Fond sombre pour detacher, mais FERMETURE
   partout : croix, clic sur le fond, touche Echap. Une fenetre qu'on ne sait
   pas fermer est une fenetre qu'on subit. */
.blpop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;
  justify-content:center;padding:18px;background:rgba(17,22,34,.55)}
.blpopbox{position:relative;max-width:520px;width:100%;background:#fff;border-radius:16px;
  padding:22px 22px 18px;box-shadow:0 18px 60px rgba(17,22,34,.28)}
.blpopbox h3{margin:0 8px 6px 0;font-size:18px;line-height:1.3}
.blpopbox .blform{margin-top:12px}
.blpopx{position:absolute;top:10px;right:12px;border:0;background:none;font:inherit;
  font-size:22px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px}
.blpopx:hover{color:var(--ink)}
.blpopfin{margin:10px 0 0;text-align:right}
.blpopfin button{font:inherit;font-size:13px;padding:7px 14px;border:1px solid var(--line);
  border-radius:9px;background:#fff;color:inherit;cursor:pointer}
/* ⚠️⚠️ Le masquage des lignes sans page ne s'applique QUE si au moins une page
   est connue. Sans cette garde, thecoolrepublic.com sortait un tableau
   ENTIEREMENT VIDE : 389 referents sur 389 n'avaient pas encore de page
   cherchee, et le service semblait ne rien avoir trouve. La liste des referents
   est le produit lui-meme, elle ne disparait jamais entierement. */
.bltab.blfiltre tbody tr.blsansurl{display:none}
.bltab.blfiltre.bltout tbody tr.blsansurl{display:table-row}
.bldeja{font-size:11px;color:var(--muted);cursor:help;white-space:nowrap}
/* ⚠️ `!important` assume : c'est un mode d'affichage exclusif, qui doit primer
   sur le masquage des lignes sans page comme sur son bouton « Tout afficher ».
   Sans cela, un filtre « nofollow » laissait voir 14 lignes au lieu de 2, les
   douze sans page restant affichees par une regle plus specifique. */
.bltab.blrelon tbody tr{display:none!important}
.bltab.blrelon tbody tr.blgarde{display:table-row!important}
/* ⚠⚠⚠ LE FILTRE TEXTE PASSE APRES LA PASTILLE, ET IL DOIT GAGNER.
   Les deux regles portaient `!important`, mais celle de la pastille est plus
   specifique (`.bltab.blrelon tbody tr.blgarde`, trois classes) que celle du
   filtre texte (`.bltab tbody tr.blhorstexte`, deux). Des qu'une pastille etait
   allumee, le texte ne masquait plus rien : le compteur annonçait « 85 lignes »
   au-dessus des 628 lignes de la pastille. C'est ce que Fabien voyait, et je ne
   le reproduisais pas parce que je testais sans pastille active.
   Meme specificite, mais ecrite APRES : c'est le masquage qui l'emporte, ce qui
   est la bonne regle — deux filtres se CUMULENT, ils ne s'annulent pas. */
.bltab.blrelon tbody tr.blhorstexte{display:none!important}
.blrelf{font:inherit;font-size:inherit;color:inherit;background:none;border:0;padding:1px 4px;
border-radius:6px;cursor:pointer}
.blrelf:hover{background:var(--o-soft);color:var(--o)}
.blrelf.on{background:var(--o);color:#fff}
.blrelf.on strong{color:#fff}
/* ⚠ Une pastille active se retire en la recliquant, mais rien ne le disait :
   Fabien, le 2026-10-05, arrive par un lien en `&f=sansurl`, ne voyait que les
   118 « sans page » et « n'arrivait pas à les retirer ». La croix le dit.
   Pas sur « DR » (tout), absence de filtre, ni sur « URL ok », allume par
   blMarqueDefaut() pour dire la vue par defaut : il n'y a rien a y retirer. */
.blrelf.on:not([data-f="tout"]):not([data-f="avecurl"])::after{content:"\00a0\2715";font-weight:700}
/* ⚠️ Une couleur par nature de lien, et le VERT pour les liens suivis : ce
   sont les seuls qui transmettent de l'autorite, donc les seuls qui comptent
   vraiment dans un profil. Demande de Fabien le 2026-09-12. Les autres sont
   teintes sans crier : un nofollow n'est pas une faute, c'est une information.
   ⚠️ La couleur porte sur le CHIFFRE, pas sur le fond : sept pastilles pleines
   cote a cote sur une meme ligne deviendraient un arc-en-ciel illisible. */
.blrelf[data-f="suivis"] strong{color:#12693A}
.blrelf[data-f="suivis"]:hover{background:#DFF3E5;color:#12693A}
.blrelf[data-f="nofollow"] strong{color:#6B7280}
.blrelf[data-f="nofollow"]:hover{background:#EEF0F4;color:#374151}
.blrelf[data-f="ugc"] strong{color:#8A6D0B}
.blrelf[data-f="ugc"]:hover{background:#FFF9E0;color:#8A6D0B}
.blrelf[data-f="sponsored"] strong{color:#B4530E}
.blrelf[data-f="sponsored"]:hover{background:#FFF0E2;color:#B4530E}
/* Le bouton qui rejoue le test d'un referent en erreur. */
/* Le bouton « Conseils », entre le nom du site et son score. */
/* ⚠ Un souffle entre le bouton et les deux cartes de mesure. Elles forment un
   bloc a droite ; colle a elles, le bouton semblait en faire partie alors qu'il
   appelle une action. Demande de Fabien le 2026-09-15. Uniquement sur grand
   ecran : en colonne, la marge deviendrait un trou. */
.blconseilbtn{flex:0 0 auto;font:inherit;font-size:12.5px;font-weight:700;padding:6px 12px;
  margin-right:18px;
  border-radius:9px;border:1px solid #4F46E5;background:#4F46E5;color:#fff;cursor:pointer}
.blconseilbtn:hover{background:#4038C9;border-color:#4038C9}
.blconseilbtn.on{background:#fff;color:#4F46E5;border-color:#C7C4F5}
.blconseilbtn.on:hover{background:#EEF0FF}
.blconseils{margin:0 0 12px}
.blconseils ul{margin:8px 0 0;padding-left:18px}
.blconseils li{margin:0 0 10px;line-height:1.5}
.blconseils li:last-child{margin-bottom:0}
.blconseilurl{margin-top:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11.5px;color:#6B7280;word-break:break-all;white-space:pre-line}
/* La recommandation : derniere puce, separee par un trait pour qu'on voie
   qu'on change de registre entre le constat et le conseil commercial. */
.blconseils li.blpromo{margin-top:12px;padding-top:11px;border-top:1px solid var(--line);
  list-style:none;margin-left:-18px}
.blpromo a{font-weight:700}
/* Bouton au travail : la roue tourne dedans, et il ne repond plus au clic. */
.blmarche{opacity:.75;cursor:progress;pointer-events:none}
.blmarche .spin{border-top-color:currentColor;margin-right:6px}
.blrevoir{font:inherit;font-size:11px;padding:1px 7px;margin-left:6px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:#6B7280;cursor:pointer;white-space:nowrap}
.blrevoir:hover{background:#F1F3F7;color:#111}
.blcorrige{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#DFF3E5;color:#12693A;border:1px solid #A9DFBB}
/* Lien disparu de sa page, et lien confirme. */
.blretire{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#FDEAE7;color:#B42318;border:1px solid #F5C8C1}
/* Destination morte : le lien existe mais ne mene nulle part. */
/* La page a disparu : le lien est perdu, et ce n'est pas la meme chose qu'un
   lien retire par l'editeur. */
.blperdu{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#F3EEF9;color:#6B3FA0;border:1px solid #DCCCEE}
.blrelf[data-f="perdu"] strong{color:#6B3FA0}
.blrelf[data-f="perdu"]:hover{background:#F3EEF9;color:#6B3FA0}
.blcasse{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#FFF0E2;color:#B4530E;border:1px solid #F5D5B4}
/* ⚠️ GRIS, ET NON ORANGE. L'extension n'est pas couverte par l'index : ce n'est
   pas un defaut du domaine, c'est une limite de notre mesure, exactement comme
   le gris neutre choisi plus bas pour « on n'a rien constate ». Une pastille
   d'alerte ferait croire a un probleme sur le site. */
.blhorsindex-picto{display:inline-block;margin-left:6px;font-size:15px;font-weight:400;line-height:1;
  color:#B54708;cursor:help;vertical-align:1px}
.blhorsindex{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#EEF1F5;color:#44546A;border:1px solid #D4DBE4;
  margin-left:8px;cursor:help}
.blrelf[data-f="retire"] strong{color:#B42318}
.blrelf[data-f="retire"]:hover{background:#FDEAE7;color:#B42318}
.blrelf[data-f="casse"] strong{color:#B4530E}
.blrelf[data-f="casse"]:hover{background:#FFF0E2;color:#B4530E}
/* ⚠️ Ni « valide » ni « retire » : le site a refuse de nous ouvrir sa page, et
   on n'a rien constate du tout. Un gris neutre, parce que ce n'est pas un
   defaut du lien mais une limite de la mesure. */
.blcheck1{font:inherit;font-size:10.5px;line-height:1;margin-top:3px;padding:2px 6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#555;cursor:pointer}
.blcheck1:hover{border-color:#4F46E5;color:#4F46E5}
.blcheck1[disabled]{opacity:.55;cursor:default}
.blpanne{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:#FEF3C7;color:#92400E}
.bltiers{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:#EEF0FF;color:#3730A3;border:1px dashed #A5B4FC}
.blok{font:inherit;font-size:11px;font-weight:700;line-height:1;padding:2px 7px;border:1px solid #2E7D46;border-radius:999px;background:#fff;color:#2E7D46;cursor:pointer}
.blok:hover{background:#2E7D46;color:#fff}
.blok[disabled]{opacity:.5;cursor:default}
.blnonverif{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#F1F2F4;color:#5A6270;border:1px solid #DCDFE4}
.bltoujours{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#DFF3E5;color:#12693A;border:1px solid #A9DFBB}
/* Vers un sous-domaine : violet, comme la pastille qui le signale deja. */
.blrelf[data-f="sdom"] strong{color:#5B3FD9}
.blrelf[data-f="sdom"]:hover{background:#EEF0FF;color:#4F46E5}
/* Erreur : rouge, la seule couleur qui appelle une action. */
.blrelf[data-f="erreur"] strong{color:#B42318}
.blrelf[data-f="erreur"]:hover{background:#FDEAE7;color:#B42318}
/* Les trois compteurs de gauche parlent d'avancement, pas de nature du lien :
   vert pour ce qui est trouve, ambre pour ce qui reste a faire. */
.blrelf[data-f="avecurl"] strong{color:#12693A}
.blrelf[data-f="avecurl"]:hover{background:#DFF3E5;color:#12693A}
.blrelf[data-f="sansurl"] strong{color:#B4530E}
.blrelf[data-f="sansurl"]:hover{background:#FFF0E2;color:#B4530E}
/* Actif : le fond prend le dessus, le chiffre repasse en blanc. */
.blrelf.on strong,
.blrelf.on:hover strong{color:#fff!important}
/* ⚠️ `nowrap` et `inline-block` : la pastille se coupait en fin de ligne, un
   « s » restant seul avant « ous-domaine ». Un badge scinde en deux ne se lit
   plus comme un badge. */
/* Le point d'interrogation qui developpe une abreviation, et sa bulle.
   ⚠️ Une BULLE FLOTTANTE, pas un bloc sous la ligne. Premiere version en bloc :
   le texte poussait les compteurs et les filtres vers le bas a chaque clic, et
   la ligne « 39 DR » ne tenait plus en une ligne. Demande de Fabien. Posee en
   absolu, la bulle se superpose et ne deplace rien. */
/* Le decompte des lignes affichees, dans l'en-tete de colonne. En minuscules
   et sans gras : c'est une precision, pas un titre. */
/* ⚠ L'en-tete et son compte tiennent SUR UNE LIGNE. La colonne fait 175 px,
   « DOMAINE REFERENT 883 suivis » n'y entre pas et passait a la ligne, ce qui
   decalait tout l'en-tete. Quand un compte s'affiche, le titre se raccourcit
   en « REFERENT » : c'est le mot qui porte le sens, « domaine » est devinable
   d'un coup d'oeil sur la colonne. Demande de Fabien le 2026-09-14. */
.bltab th.blthref{white-space:nowrap}
.blaffiches{font-weight:400;text-transform:none;letter-spacing:0;color:#9AA1AC;margin-left:6px}
.blaffnb{padding:0;border:0;background:none;font:inherit;color:#6B7280;cursor:pointer;
  text-transform:none;letter-spacing:0;border-bottom:1px dashed #C9CFD8}
.blaffnb:hover{color:#111;border-bottom-color:#111}
/* Le nombre actif est celui qu'on regarde : souligne plein et sombre. */
.blaffnb.blaffon{color:#111;font-weight:700;border-bottom:2px solid #111;cursor:default}
/* La fiche du domaine : icone, nom, nombre de referents, autorite. */
/* ⚠⚠ LA LIGNE SE REPLIE AU LIEU D'ECRASER LE NOM. Avec la carte de portee, la
   bande porte cinq blocs ; le nom, seul element souple, etait comprime a la
   largeur d'un caractere et se lisait de haut en bas. Capture de Fabien le
   2026-09-15 : « busin / essdi / gital.f / r ». `flex-wrap` laisse la ligne
   passer a la ligne, et une largeur minimale garantit que le nom reste lisible
   avant que ça n'arrive. */
/* ⚠⚠⚠ PAS DE `flex-wrap` SUR GRAND ECRAN. Ajoute ce matin pour empecher le nom
   d'etre ecrase, il a introduit pire : le flex REPLIE AVANT DE RETRECIR, donc
   des que la somme des largeurs naturelles depassait la bande, la carte du
   score partait seule a la ligne suivante. Vu sur eskimoz.fr, fiche de 215 px
   de haut au lieu de 80. Sans repli, les blocs se serrent, et la largeur
   minimale du nom suffit a le garder lisible :
       40 + 190 + 175 + 130 + 208 + marges = 817 px, pour 852 disponibles.
   ⚠ Le repli reste utile ENTRE 560 et 900 px, ou ces minimums ne tiennent plus
   dans la bande et ou la colonne unique n'a pas encore pris le relais. */
.blfiche{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:0 0 12px;
  border:1px solid var(--line);border-radius:12px;background:#fff}
@media (max-width:900px){.blfiche{flex-wrap:wrap}}
.blfav{width:40px;height:40px;border-radius:9px;object-fit:contain;background:#F4F6FA;
  border:1px solid var(--line);flex:0 0 auto}
.blfavlettre{display:flex;align-items:center;justify-content:center;font-weight:800;
  font-size:18px;color:#4F46E5;background:#EEF0FF}
.blfichenom{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:190px}
/* ⚠ Un nom de domaine ne se coupe pas n'importe ou : pas de `break-all` ici. */
.blfichenom strong{overflow-wrap:anywhere;word-break:normal}
/* ⚠️ `overflow-wrap:anywhere` et NON `word-break:break-all` : le second coupe
   des que ca l'arrange, meme quand la place existe, et `korben.info` se
   retrouvait ecrit une lettre par ligne sur telephone. Le premier ne coupe que
   s'il n'y a vraiment pas d'autre solution. Signale par Fabien le 2026-09-13. */
.blfichenom strong{font-size:16px;overflow-wrap:anywhere}
.blfichenom .muted{font-size:12.5px}
/* Le score, a droite, lisible d'un coup d'oeil.
   ⚠️ Il reprend la palette des pastilles du tableau (s2 a s5), pour qu'un
   domaine a 55 ait ici la meme couleur qu'un referent a 55 juste en dessous.
   Deux echelles de couleur pour la meme mesure rendraient la page illisible. */
/* ⚠ Le curseur d'aide invite a survoler : sans lui, personne ne devine qu'il y
   a une explication derriere ce chiffre. */
/* ⚠⚠⚠ LE LIBELLE EST DANS LE FLUX, plus en position absolue sous la carte.
   Pose a `bottom:-15px`, il ne dependait d'aucune hauteur reelle : il suffisait
   que la carte grandisse ou retrecisse d'un cheveu pour qu'il vienne s'imprimer
   EN TRAVERS DU CHIFFRE. Constate en capture par Fabien le 2026-09-15, sur
   tablette puis sur ordinateur. Une position absolue sert a sortir un element
   du flux, pas a placer une etiquette sous son bloc : ici c'est un simple
   retour a la ligne, et il tient a toutes les largeurs sans compensation. */
.blfichescore{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;
  gap:0 2px;padding:6px 12px 5px;border-radius:10px;
  flex:0 0 auto;position:relative;cursor:help;text-align:center;
  background:#FDEAE7;color:#B42318;border:1px solid #F5C8C1}
.blfichescore.s2{background:#FFF0E2;color:#B4530E;border-color:#F5D5B4}
.blfichescore.s3{background:#FFF9E0;color:#8A6D0B;border-color:#EFE0A8}
.blfichescore.s4{background:#EAF6EC;color:#2E7D46;border-color:#C3E4CB}
.blfichescore.s5{background:#DFF3E5;color:#12693A;border-color:#A9DFBB}
/* La portee reprend la forme du score, en neutre : c'est une autre mesure, pas
   un autre palier de la meme. La couleur reste reservee a l'autorite. */
/* ⚠ La portee est une mesure SECONDAIRE : plus petite que l'autorite, en gris,
   et collee a elle. Elle l'accompagne, elle ne lui dispute pas la place. */
/* ⚠ Largeur BORNEE : sans elle, la carte s'etirait a 382 px, soit le double du
   score d'autorite, pour une mesure secondaire. Elle tient la largeur de sa
   courbe, et rien de plus. */
.blfichereach{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;
  gap:0 2px;padding:5px 10px 4px;border-radius:10px;flex:0 0 auto;text-align:center;
  width:130px;max-width:130px;
  cursor:help;background:var(--bg);color:var(--ink);border:1px solid var(--line);
  margin-right:6px}
.blfichereach .blfichenb{font-size:17px}
.blfichereach .blfichesur{font-size:10px}
.blfichereach .blfichelib{font-size:9.5px;margin-top:0}
.blfichereach .blfichehote{color:var(--muted);font-weight:600;font-size:10px}
.blfichereach .blfichehote{white-space:normal;line-height:1.25}
.blsrcl{color:var(--muted);text-decoration:none}
/* Le DR d'Ahrefs, meme forme neutre que la portee : une mesure d'ailleurs, pas un palier de la notre. */
.blfichedr{display:flex;flex-direction:column;align-items:center;padding:5px 10px 4px;border-radius:10px;
  flex:0 0 auto;text-align:center;cursor:help;background:var(--bg);color:var(--ink);
  border:1px solid var(--line);margin-left:6px;min-width:130px}
.blfichedr .blfichenb{font-size:17px}
.blfichedr .blfichelib{font-size:9.5px;margin-top:0}
.blfichedr .blsrcl{font-size:10px;font-weight:600}
.blsrcl:hover{color:var(--o);text-decoration:underline}
/* La courbe des douze derniers mois : un trait, sans axe ni graduation. Elle ne
   sert pas a lire une valeur, elle sert a voir un sens. */
.blcourbe{flex:0 0 100%;display:block;line-height:0;margin-top:3px}
.blcourbe svg{display:block;margin:0 auto;overflow:visible;max-width:100%;height:auto}
.blcourbe path{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
  stroke:var(--muted)}
.blc-hausse path{stroke:#2E7D46}
.blc-baisse path{stroke:#B4530E}
/* La source, en tout petit sous le palier : elle se lit quand on la cherche et
   ne dispute pas la place au chiffre. */
.blfichesrc{flex:0 0 100%;text-align:center;font-size:9.5px;letter-spacing:.3px;
  text-transform:uppercase;margin-top:1px}
.blfichesrc a{color:var(--muted);text-decoration:none}
.blfichesrc a:hover{color:var(--o);text-decoration:underline}
.blfichenb{font-size:26px;font-weight:800;line-height:1}
.blfichesur{font-size:12px;font-weight:600;opacity:.65}
/* ⚠⚠⚠ PAS D'`opacity` SUR CE CONTENEUR. Une opacite inferieure a 1 cree un
   CONTEXTE D'EMPILEMENT : le `z-index:40` de la bulle qu'il contient ne
   s'applique plus qu'a l'interieur de ce contexte, et la bulle repasse SOUS le
   champ de recherche et l'en-tete du tableau, qui viennent apres dans la page.
   Constate en capture par Fabien le 2026-09-15 : deux bandes blanches coupaient
   le texte en travers. L'attenuation se fait donc sur le MOT, pas sur le bloc. */
/* ⚠ Le bloc est une bande invisible large comme la carte, posee 15 px sous
   elle : remonte au premier plan, il avalait les clics de ce qui se trouve
   dessous. Il laisse donc passer, et seuls le picto et la bulle les recoivent. */
/* La note d'hote, en petit sous le chiffre du domaine : elle occupe sa propre
   ligne dans la carte, comme le libelle, et ne peut donc rien recouvrir. */
.blfichehote{flex:0 0 100%;text-align:center;font-size:11px;font-weight:700;
  opacity:.8;line-height:1.2;margin-top:2px;cursor:help}
.blfichehote.blsabsent{opacity:.55;font-weight:600}
.blfichelib{flex:0 0 100%;margin-top:1px;line-height:1.25;text-align:center;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;position:relative;z-index:50}
.blfichelib .blinfowrap,.blfichelib .blinfo,.blfichelib .blinfotexte{pointer-events:auto}
.blfichelibmot{opacity:.75}
/* ⚠ La bulle est du texte courant : elle ne doit herite ni des majuscules ni de
   l'interlettrage du libelle qui la porte, sinon elle sort illisible. */
/* ⚠⚠ ELLE SE POSE SUR UNE CARTE DE COULEUR, pas sur du blanc. Un `?` blanc
   cercle de gris y disparaissait, et une bulle blanche s'y confondait. Fabien,
   le 2026-09-15 : « on ne voit rien ». Picto vert plein, bulle noire, texte
   blanc : le contraste ne depend plus de la couleur du score, qui va du rouge
   au vert selon la note. */
.blfichelib .blinfo{opacity:1;vertical-align:baseline;background:#2E7D46;
  border-color:#2E7D46;color:#fff;width:15px;height:15px;font-size:10px}
.blfichelib .blinfo:hover{background:#215C34;border-color:#215C34;color:#fff}
.blfichelib .blinfo[aria-expanded="true"]{background:#111;border-color:#111;color:#fff}
/* ⚠ La bulle explique maintenant DEUX chiffres : elle a grandi, et sur un
   petit ecran elle debordait sous la fenetre, texte perdu. Plafonnee et
   defilable, elle reste entiere quelle que soit la hauteur disponible. */
.blfichelib .blinfotexte{text-transform:none;letter-spacing:normal;opacity:1;
  z-index:60;font-size:12px;left:auto;right:-8px;width:320px;
  max-height:min(65vh,460px);overflow-y:auto;overscroll-behavior:contain;
  background:#111;color:#F3F4F6;border-color:#111;
  box-shadow:0 8px 24px rgba(0,0,0,.35)}
.blfichelib .blinfotexte strong{color:#fff}
.blfichelib .blinfotexte::before{left:auto;right:14px;background:#111;border-color:#111}
/* Plus de compensation a prevoir : le libelle est dans la carte. */
/* ⚠️⚠️ SUR TELEPHONE, LA FICHE S'EMPILE. En ligne, les quatre blocs (favicon,
   nom, bouton, score) ne tiennent pas dans 390 px : le nom etait comprime a la
   largeur d'un caractere et se lisait de haut en bas. On passe donc en colonne
   centree, le nom sous la favicon, comme demande par Fabien le 2026-09-13. */
/* ⚠⚠ SUR TELEPHONE, LA BULLE SORT DE L'ECRAN PAR LA GAUCHE. Elle est ancree a
   DROITE de son point d'interrogation et s'etend vers la gauche sur 320 px ;
   le picto etant au milieu de la carte, la moitie du texte passait hors cadre.
   Capture de Fabien le 2026-09-15.
   ⚠ `position:fixed` sans `top` : la boite reste a sa place verticale mais se
   cale sur la FENETRE en largeur, d'un bord a l'autre. La petite fleche n'a
   plus de sens une fois la bulle recentree, on la retire. */
/* ⚠⚠ SUR TELEPHONE, LA BULLE SE CENTRE SOUS SON PICTO. Ancree a droite, elle
   s'etendait vers la gauche sur 320 px et sortait de l'ecran : le picto est au
   milieu d'une carte centree. Premiere tentative en `position:fixed` : la bulle
   se posait hors du flux, a une place imprevisible selon le defilement, et le
   clic semblait ne rien faire. On reste donc en absolu, recentre sur le picto,
   avec une largeur bornee a l'ecran. La fleche suit. */
@media (max-width:560px){
  .blfichelib .blinfotexte{left:50%;right:auto;transform:translateX(-50%);
    width:min(320px,calc(100vw - 28px));max-height:60vh;overflow-y:auto}
  .blfichelib .blinfotexte::before{left:50%;right:auto;margin-left:-4px}
}
@media (max-width:560px){
  .blfiche{flex-direction:column;align-items:center;text-align:center;gap:10px}
  .blfichenom{align-items:center;width:100%;flex:0 0 auto}
  .blfichenom strong{font-size:15px}
  .blconseilbtn{width:100%;max-width:280px;margin-right:0}

  .blfichenb{font-size:22px}
}

/* Le champ de recherche, pose au-dessus du tableau. */
.blrechbox{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.blrechabsl{margin-top:6px;max-height:180px;overflow:auto;padding-right:10px}
.blrechabs{font-size:12.5px;word-break:break-all;padding:1px 0}
.blrechcop{font:inherit;font-size:12px;padding:2px 9px;border-radius:999px;cursor:pointer;
  border:1px solid #C7C4F5;background:#fff;color:var(--o);margin-left:4px}
.blrechcop:hover{background:#fff;border-color:var(--o)}
.blrechbilan{margin:0 0 10px;padding:9px 12px;border-radius:9px;background:#EEF0FF;
  border:1px solid #C7C4F5;font-size:13px;line-height:1.5;word-break:break-word}
.blrechin{flex:1 1 auto;min-width:0;padding:9px 12px;border:1.5px solid var(--line);
  font:inherit;resize:vertical;line-height:1.45;
  border-radius:9px;font-size:13.5px;background:#fff;color:#111}
.blrechin:focus{outline:0;border-color:#4F46E5;box-shadow:0 0 0 3px rgba(79,70,229,.14)}
.blrechnb{white-space:nowrap;font-size:12.5px}
/* ⚠️ La recherche masque en STYLE EN LIGNE, pas par une classe. Avec une
   classe, sa regle et celle des filtres par type se disputaient la priorite :
   chercher « agence seo » puis cliquer sur « nofollow » rendait 91 lignes au
   lieu de 24, la recherche ecrasant le filtre. Un style en ligne marque
   `important` bat toute feuille de style, donc les deux se cumulent au lieu de
   se battre. Constate au test le 2026-09-12. */
/* Marque des referents ramenes par la recherche, absents du chargement. */
.blhorstag{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#FFF8E6;color:#7A5A12;border:1px solid #F0D79A}
.blinfowrap{position:relative;display:inline-block;vertical-align:middle}
.blinfo{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
  padding:0;margin-left:4px;border-radius:50%;border:1px solid var(--line);background:#fff;
  color:#6B7280;font-size:11px;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle}
.blinfo:hover{background:#F1F3F7;color:#111}
.blinfo[aria-expanded="true"]{background:#111;color:#fff;border-color:#111}
.blinfotexte{position:absolute;top:calc(100% + 8px);left:-8px;z-index:40;width:270px;
  padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;
  box-shadow:0 6px 20px rgba(17,24,39,.13);font-size:12px;font-weight:400;color:#374151;
  line-height:1.45;text-align:left;white-space:normal}
/* La petite fleche qui rattache la bulle a son point d'interrogation. */
.blinfotexte::before{content:"";position:absolute;top:-5px;left:14px;width:8px;height:8px;
  background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);
  transform:rotate(45deg)}
/* ⚠️ `display:none` explicite : sans lui, la regle `position:absolute`
   ci-dessus l'emporte sur le `hidden` du navigateur, qui n'a aucune
   specificite, et la bulle reste ouverte au chargement. Constate au test. */
.blinfotexte[hidden]{display:none}
/* Sur telephone, une bulle de 270 px calee a gauche deborde de l'ecran. */
@media (max-width:560px){
  .blinfotexte{left:auto;right:-8px;width:min(270px,calc(100vw - 40px))}
  .blinfotexte::before{left:auto;right:14px}
}
.blmort{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
color:#B3261E;background:#FFECEA;border:1px solid #FFD0CB;border-radius:999px;
padding:1px 7px;cursor:help}
/* Liens venus de l'index DataForSEO : une SEPTIEME voie, independante de
   Google et de Common Crawl. Le vert dit « trouve ailleurs », pas « meilleur ». */
.bldfs{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#E7F6EC;color:#1B6E3C;border:1px solid #B7E2C6}
/* Referent que Common Crawl ne connait pas du tout : c'est toute la valeur de
   cette voie, donc c'est la marque la plus visible du tableau. */
.blinedit{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#FFF3D6;color:#8A5A00;border:1px solid #F0D79A}
/* Note de spam DataForSEO, affichee seulement a partir de 30 : en dessous elle
   ne distingue rien et ne ferait que charger la ligne. */
.blspam{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#FDE7E7;color:#9B1C1C;border:1px solid #F5B5B5}
.blperdu{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
  padding:1px 6px;border-radius:999px;background:#EFEFEF;color:#666;border:1px solid #DDD}
.blredir{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
color:#0A4F7A;background:#E3F1FB;border:1px solid #B9DCF2;border-radius:999px;
padding:1px 7px;cursor:help}
.blsdom{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
color:#7A3E00;background:#FFE8CC;border:1px solid #F5C98A;border-radius:999px;
padding:1px 7px;cursor:help}
.blnoidx{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;
color:#8A5E00;background:#FFF4E0;border:1px solid #F3DFB4;border-radius:999px;
padding:1px 7px;cursor:help}
.blform .row{gap:8px}
/* ⚠️ Le controle des liens est le seul bouton qui dit si ce qu'on lit est
   encore vrai. Gris parmi trois autres boutons gris, personne ne le voyait.
   Il se colore tant qu'il reste des lignes a controler, et redevient neutre
   une fois le travail fait. Demande de Fabien le 2026-09-12. */
/* Le resume d'un coup d'oeil : couverture, nature des liens, ancres. */
.blresume{margin-top:12px}
/* ⚠️ DEUX LIGNES, DEUX COLONNES, et pas une grille souple : les deux chiffres
   se lisent ensemble sur la premiere ligne, les deux listes cote a cote sur la
   seconde. La grille en `auto-fit` rangeait les ancres sous le premier chiffre,
   ce qui laissait un grand vide a droite et separait les deux listes.
   Demande de Fabien le 2026-09-12. */
.blresume .blrescart{display:grid;gap:18px 28px;grid-template-columns:1fr 1fr;
  border:1px solid var(--line);border-radius:12px;padding:18px 20px;background:#fff}
/* ⚠️ `min-width:0` sur les enfants de la grille : sans lui une ancre longue
   elargit sa colonne au-dela de la carte, et le nombre se retrouve dehors, a
   droite du cadre. Vu a l'ouverture de la liste des ancres de marcovasco.fr. */
.blresume .blrescart > div{min-width:0}
.blresume .blresstat{text-align:center;padding:4px 0 2px}
.blresume .blresstat .blresbar{max-width:280px;margin-left:auto;margin-right:auto}
/* Le trait qui separe les chiffres des listes, sur toute la largeur. */
.blresume .blreslist{border-top:1px solid var(--line);padding-top:14px}
/* Le palier de trafic, pose au bout de la ligne : discret quand la page
   travaille, visible quand elle ne recoit rien. */
.bltraf{margin-left:8px;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;
  white-space:nowrap;cursor:help;display:inline-flex;align-items:center;gap:5px}
/* Les cinq cases du palier : remplies jusqu'au niveau atteint. Elles prennent
   la couleur du texte, donc celle du palier, sans regle de plus. */
.blcases{display:inline-flex;gap:2px}
.blcase{width:6px;height:9px;border-radius:1.5px;background:currentColor;opacity:.22}
.blcase.on{opacity:1}
.bltraf.t0{background:#FDEAE7;color:#B42318}
.bltraf.t1{background:#FFF0E2;color:#B4530E}
.bltraf.t2{background:#FFF9E0;color:#8A6D0B}
.bltraf.t4{background:#EAF6EC;color:#2E7D46}
.bltrafbtn{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bltrafbtn .muted{font-size:12px;flex-basis:100%;line-height:1.5}
.bltrafaide{color:var(--muted);font-size:11.5px;display:block;margin-top:3px}
.bltraflg{margin-top:8px;font-size:12px}
.bltraflg summary{cursor:pointer;color:var(--o)}
.bltraflg p{margin:8px 0 0;color:var(--muted);line-height:1.5;font-size:11.5px}
.bltraflgt{border-collapse:collapse;margin-top:8px}
.bltraflgt td{padding:3px 12px 3px 0;vertical-align:middle;color:var(--muted);font-size:11.5px}
.bltraflgt td:first-child{white-space:nowrap}
.bltraflgt .bltraf{margin-left:0}
@media (max-width:640px){
  .blresume .blrescart{grid-template-columns:1fr}
  .blresume .blreslist:first-of-type{border-top:1px solid var(--line)}
}
.blresume h4{margin:0 0 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--muted);font-weight:700}
.blresume .blresnb{font-size:20px;font-weight:800;line-height:1.2}
.blresume .blresnb small{font-size:12.5px;font-weight:600;color:var(--muted)}
.blresume .blresbar{height:6px;border-radius:3px;background:#EEF0F4;margin:7px 0 4px;overflow:hidden}
.blresume .blresbar i{display:block;height:100%;background:var(--o)}
.blresume ul{margin:0;padding:0;list-style:none;font-size:13px}
.blresume li{display:flex;justify-content:space-between;gap:10px;padding:2px 0}
.blresume li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ⚠️ Le lien vit DANS le span, il ne le remplace pas : c'est le span qui
   porte la troncature, et le sortir du flux casserait l'ellipse. */
.blresume li span a{color:inherit;text-decoration:none;
  border-bottom:1px solid var(--line)}
.blresume li span a:hover{color:var(--o);border-bottom-color:currentColor}
.blresume li b{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700;
  white-space:nowrap}
.blresume .blresnote{margin:8px 0 0;font-size:12px;color:var(--muted)}
.blresume .blressdom{grid-column:1/-1}
.blresume .blressdom ul{columns:2;column-gap:28px}
.blresume .blressdom li{break-inside:avoid}
@media (max-width:640px){.blresume .blressdom ul{columns:1}}
.blresume .blresplus{font:inherit;font-size:12px;color:var(--o);background:none;border:0;
  padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.blresume .blresplus:hover{color:#4038C9}
/* ⚠️ L'ascenseur se posait SUR les nombres. `scrollbar-gutter:stable` reserve
   sa gouttiere meme quand il n'est pas la, donc rien ne bouge a l'ouverture, et
   la marge de droite laisse le compte respirer. Signale par Fabien le
   2026-09-12. */
.blresume .blresdefile{max-height:260px;overflow-y:auto;padding-right:14px;
  scrollbar-gutter:stable}
.blforcer{font:inherit;font-size:12px;padding:2px 8px;border:0;background:none;cursor:pointer;
  color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.blforcer:hover{color:var(--o)}
.mini.blfort{background:var(--o);border-color:var(--o);color:#fff;font-weight:700}
.mini.blfort:hover{background:#4038C9;border-color:#4038C9;color:#fff}
.mini[disabled]{opacity:.4;cursor:default}
.mini[disabled]:hover{border-color:var(--line);color:var(--ink)}
/* ⚠️ Le bloc « recevoir par mail » doit SE VOIR. Place sous un tableau de
   referents et encadre de pointilles comme les autres, il passait inapercu :
   le visiteur lancait la recherche longue et attendait douze minutes sans
   savoir qu'on pouvait la lui envoyer. Demande de Fabien. */
.blform.blmailpg{border:1.5px solid var(--o);background:var(--o-soft)}
.blform.blmailpg>p:first-child{font-weight:650;color:var(--ink)}
.blform.blmailpg input.blmail{background:#fff;min-width:240px;flex:1 1 240px;max-width:360px}
/* ⚠️ La couleur est posee ICI, explicitement. La regle `button.p` qui rend les
   boutons principaux violets vit dans la feuille de l'accueil, que la page des
   backlinks ne charge pas : le bouton sortait blanc, exactement ce que Fabien
   voulait eviter. Verifie par capture, pas au jugement. */
.blform.blmailpg button.p{padding:10px 20px;font-size:14px;font-weight:700;
background:var(--o);border:1px solid var(--o);color:#fff;
box-shadow:0 2px 6px rgba(79,70,229,.32)}
.blform.blmailpg button.p:hover{filter:brightness(1.08)}
.blform input.blmail{padding:9px 12px;border:1px solid var(--line);border-radius:9px;
min-width:230px;flex:1;font-size:14px;background:#fff;color:var(--ink)}
.blform input.blmail:focus{outline:2px solid var(--o);outline-offset:1px}
/* « Liens vers cette page » (2026-10-12) : une adresse avec un chemin filtre la
   fiche deja calculee du domaine sur cette page, sans appel payant. */
.blvp{margin:14px 0 6px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.blvp h3{margin:0 0 4px;font-size:16px}
.blvp .blvpurl{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:#6B7280;word-break:break-all}
.blvp .blvpanc{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.blvp .blvpanc span{font-size:12px;padding:2px 9px;border-radius:999px;background:#EEF2FF;color:#3730A3}
.blvp .blvpanc span b{margin-left:4px;font-weight:700}
.blvp td.blvpa{font-weight:600}
.blvp tr.blvpko td{opacity:.55}
.blvp .blvpko-t{font-size:11px;font-weight:600;color:#C9372C;margin-left:6px}
.blvp .blvpnf{font-size:11px;font-weight:600;color:#B26A00;margin-left:6px}
.blvp ul.blvppg{margin:8px 0 0;padding-left:18px;font-size:13px}
.blvp ul.blvppg a{font-weight:500;word-break:break-all}
.blvpcop{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;padding:0;
border:1px solid var(--line);border-radius:6px;background:#fff;color:#6B7280;cursor:pointer;vertical-align:middle}
.blvpcop:hover{border-color:var(--o);color:var(--o);filter:none}
.blvpcop svg{width:13px;height:13px}
.blvpcop.ok{border-color:#0A9B54;color:#0A9B54}
@media (max-width:600px){.blvp table.bltab thead,.blvp table.bltab thead tr{display:block}
.blvp table.bltab thead th{display:none}
.blvp table.bltab thead th:last-child{display:block;padding:8px 12px}
.blvp table.bltab,.blvp table.bltab tbody,.blvp table.bltab tr,.blvp table.bltab td{display:block;width:auto}
.blvp table.bltab tr{padding:9px 12px;border-bottom:1px solid var(--line)}
.blvp table.bltab td{border:0;padding:2px 0}
.blvp table.bltab td:nth-child(1),.blvp table.bltab td:nth-child(2){display:inline-block;margin-right:8px}
.blvp table.bltab td.blpage a{font-size:12px;word-break:break-all}}
/* « Trouver des spots » (spots.php, 2026-10-11) : sites qui lient les concurrents
   et pas encore le site etudie, classes par proximite de theme. */
.blspots .blspfil{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:10px 0 8px;font-size:12.5px;color:#6B7280}
.blspots .blspfil select,.blspots .blspfil input[type=number]{font:inherit;font-size:12.5px;padding:3px 6px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.blspots .blspfil input[type=number]{width:4.5em}
.blspots .blspfil label{display:inline-flex;gap:5px;align-items:center;cursor:pointer}
.blspots .blspbar{height:6px;border-radius:4px;background:var(--line);overflow:hidden;margin:8px 0 4px;max-width:420px}
.blspots .blspbar i{display:block;height:100%;background:var(--o);transition:width .4s}
.blsp{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap}
.blsp.p1{background:#DFF3E5;color:#12693A}.blsp.p2{background:#FFF9E0;color:#8A6D0B}.blsp.p3{background:#F1F2F4;color:#6B7280}
.blspext{display:inline-flex;vertical-align:-2px;margin-left:5px;color:#9AA2B4}
.blspext:hover{color:var(--o)}
.blspext svg{width:13px;height:13px}
.blspc{display:inline-block;font-size:10.5px;font-weight:700;padding:0 5px;border-radius:4px;background:var(--o-soft);color:var(--o);margin-right:3px}
.blspots td.blspti{color:#6B7280;font-size:12px;max-width:360px}
.blspots .blsplegende{font-size:12px;color:#6B7280;margin-top:6px}
/* Le « + » des referents venus completer la base. Discret : ces liens ne sont ni
   meilleurs ni moins bons que ceux du graphe, ils viennent d'ailleurs. */
/* Le repli du verificateur de lien. Un bouton discret, pas un troisieme champ
   ouvert en permanence sous le tableau. */
.blverif{margin-top:10px}
.blverif .mini{font-size:12px}
.blvbox .blform{border-style:solid}
/* Referent vu seulement dans la version precedente du graphe. Une fleche de
   retour, pas un signe de moins : ce lien n'est pas inferieur, il est plus
   ancien. */
.blvu{display:inline-block;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;
border-radius:5px;background:#F1F3F7;color:var(--muted);vertical-align:1px;cursor:help}
.blmanu{display:inline-block;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;
border-radius:5px;background:var(--o-soft);color:var(--o);vertical-align:1px;cursor:help}
.ok{color:#0A9B54;font-weight:600}
.warn{color:#B26A00;font-weight:600}
.bad{color:#C9372C;font-weight:600}
.dim{color:var(--muted)}
.note{border-left:3px solid var(--o);background:var(--o-soft);padding:10px 14px;border-radius:0 10px 10px 0;
font-size:13.5px;line-height:1.55;margin-top:6px}
.note.bad{border-left-color:var(--poor);background:#FFF3F1;color:#8A2B22;font-weight:400}
.note.warn{border-left-color:var(--ni);background:#FFF8EC;color:#7A5200;font-weight:400}
.caution{background:#FFF8EC;border:1px solid #F5E0B8;border-radius:12px;padding:14px 16px;
color:#6B5322;font-size:14px;line-height:1.6;margin:18px 0 0}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:18px}
.step{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}
.bonus{display:inline-block;vertical-align:2px;margin-left:6px;font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;
  background:var(--o-soft);color:var(--o)}
.step .n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;
background:var(--o-soft);color:var(--o);font-weight:700;font-size:13px;margin-bottom:10px}
details{border-top:1px solid var(--line)}
details summary{cursor:pointer;padding:15px 2px;font-weight:600;list-style:none;display:flex;
justify-content:space-between;gap:12px;align-items:center}
details summary::-webkit-details-marker{display:none}
details summary::after{content:'+';color:var(--o);font-size:22px;line-height:1;font-weight:400}
details[open] summary::after{content:'\2013'}
details .ans{padding:0 2px 18px;color:#3B4354;max-width:74ch}
details .ans p{margin:0 0 11px}
details .ans ul{margin:0 0 11px;padding-left:20px}
details .ans li{margin-bottom:7px}
code{background:#F1F3F7;border-radius:5px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
pre{background:#1B2233;color:#E8EAF0;border-radius:12px;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.55}
pre code{background:none;color:inherit;padding:0;font-size:13px}
/* ⚠️ EMPILE, plus cote a cote. `space-between` repartissait les blocs sur une
   ligne : la signature et la mention de source se disputaient la place avec
   six liens, et le dernier ajoute devenait invisible. Une colonne rend l'ordre
   lisible — les pages, la signature, la source — et ne depend plus de la
   largeur de l'ecran. */
footer{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;
display:flex;flex-direction:column;gap:7px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid #D8DBE4;border-top-color:var(--o);
border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px;margin-right:7px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (max-width:640px){h1{font-size:32px}.accroche{font-size:16px}.wrap{padding:20px 16px 60px}.shell > .row:first-child > input{flex-basis:100%}.shell > .row:first-child > select,.shell > .row:first-child > button{flex:1 1 100%}}
.ccmenu{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:18px 0 22px;padding:5px;border:1px solid var(--line,#E6E8EE);border-radius:12px;background:#fff;-webkit-overflow-scrolling:touch}.ccmenu::-webkit-scrollbar{display:none}.ccmenu a{flex:none;font-size:13.5px;font-weight:600;padding:7px 13px;border-radius:8px;color:var(--muted,#6B7385);text-decoration:none;white-space:nowrap;line-height:1.3}.ccmenu a:hover{color:var(--o,#4F46E5);background:var(--o-soft,#EEF0FE);text-decoration:none}.ccmenu a.on{background:var(--o,#4F46E5);color:#fff}.ccmenu a.cpt{display:flex;align-items:center;gap:6px;color:var(--o,#4F46E5)}.ccmenu a.cpt svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.ccmenu a.cpt.on{color:#fff}@media (max-width:820px){.ccmenu{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}}.wrap,.trwrap{max-width:1180px}.brand{min-height:60px;margin-bottom:0!important}.ccpied{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}.ccpied a{white-space:nowrap}section.shell,.tool,.trbox:has(.trchamp),form.rech,.card:has(#ip),.card:has(#dom){background:linear-gradient(180deg,#EEF0FE 0,#F6F0FF 110px,#fff 260px)!important;border:1px solid #D9DBFB!important;box-shadow:0 8px 28px -16px rgba(79,70,229,.35)}form.rech{padding:16px;border-radius:14px}#dom,#bldom,#audom,#trdom,#trurls,#tsdoms,#claq,#ip,#bulkIn{border:2px solid #A5A8F6!important;border-radius:12px!important;font-size:16px!important;background:#fff!important;box-shadow:0 2px 0 rgba(79,70,229,.06)}#dom:focus,#bldom:focus,#audom:focus,#trdom:focus,#trurls:focus,#tsdoms:focus,#claq:focus,#ip:focus,#bulkIn:focus{outline:4px solid rgba(79,70,229,.15)!important;border-color:#4F46E5!important}#dom::placeholder,#bldom::placeholder,#audom::placeholder,#trdom::placeholder,#trurls::placeholder,#tsdoms::placeholder,#claq::placeholder,#ip::placeholder,#bulkIn::placeholder{color:#9AA0B4}#go,#goBulk,#blgo,#aubtn,.trgo,#tsgo,#clabtn{background:linear-gradient(135deg,#4F46E5,#7C3AED)!important;border-color:transparent!important;color:#fff!important;box-shadow:0 6px 16px -6px rgba(79,70,229,.55)}#go:hover,#goBulk:hover,#blgo:hover,#aubtn:hover,.trgo:hover,#tsgo:hover,#clabtn:hover{filter:brightness(1.08)}#go[disabled],#goBulk[disabled],#blgo[disabled],#aubtn[disabled],.trgo[disabled],#tsgo[disabled],#clabtn[disabled]{opacity:.6;cursor:wait}.trmode button.on{background:#4F46E5!important;border-color:#4F46E5!important}.grid3>.step:nth-child(4n+1),.grid>.step:nth-child(4n+1),.grid>.card:nth-child(4n+1),.trcartes>.trcarte:not(.fort):nth-child(4n+1){background:#F0FDF4!important;border-color:#BBF7D0!important}.grid3>.step:nth-child(4n+1) h3,.grid>.step:nth-child(4n+1) h3,.grid>.card:nth-child(4n+1) h3,.trcartes>.trcarte:not(.fort):nth-child(4n+1) h3{color:#15803D!important}.grid3>.step:nth-child(4n+1) .n{background:#BBF7D0!important;color:#15803D!important}.grid3>.step:nth-child(4n+2),.grid>.step:nth-child(4n+2),.grid>.card:nth-child(4n+2),.trcartes>.trcarte:not(.fort):nth-child(4n+2){background:#FFFBEB!important;border-color:#FDE68A!important}.grid3>.step:nth-child(4n+2) h3,.grid>.step:nth-child(4n+2) h3,.grid>.card:nth-child(4n+2) h3,.trcartes>.trcarte:not(.fort):nth-child(4n+2) h3{color:#B45309!important}.grid3>.step:nth-child(4n+2) .n{background:#FDE68A!important;color:#B45309!important}.grid3>.step:nth-child(4n+3),.grid>.step:nth-child(4n+3),.grid>.card:nth-child(4n+3),.trcartes>.trcarte:not(.fort):nth-child(4n+3){background:#F5F3FF!important;border-color:#DDD6FE!important}.grid3>.step:nth-child(4n+3) h3,.grid>.step:nth-child(4n+3) h3,.grid>.card:nth-child(4n+3) h3,.trcartes>.trcarte:not(.fort):nth-child(4n+3) h3{color:#6D28D9!important}.grid3>.step:nth-child(4n+3) .n{background:#DDD6FE!important;color:#6D28D9!important}.grid3>.step:nth-child(4n+4),.grid>.step:nth-child(4n+4),.grid>.card:nth-child(4n+4),.trcartes>.trcarte:not(.fort):nth-child(4n+4){background:#EEF2FF!important;border-color:#C7D2FE!important}.grid3>.step:nth-child(4n+4) h3,.grid>.step:nth-child(4n+4) h3,.grid>.card:nth-child(4n+4) h3,.trcartes>.trcarte:not(.fort):nth-child(4n+4) h3{color:#4338CA!important}.grid3>.step:nth-child(4n+4) .n{background:#C7D2FE!important;color:#4338CA!important}.brand .lglog{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:6px 11px;border:1px solid var(--line,#E6E8EE);border-radius:8px;background:#fff;color:var(--o,#4F46E5);text-decoration:none;line-height:1.25;white-space:nowrap}.brand .lglog:hover{background:var(--o-soft,#EEF0FE);text-decoration:none}.brand .lglog svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}.brand .lglog + .lg,.brand .lglog + .lang{margin-left:8px}.brand .lglog + .lglog{margin-left:8px}.brand .lgins{background:var(--o,#4F46E5);border-color:var(--o,#4F46E5);color:#fff}.brand .lgins:hover{background:var(--o,#4F46E5);color:#fff;opacity:.9}@media (max-width:640px){.brand{gap:10px}.brand svg{width:40px;height:40px;border-radius:10px}.brand a.logo{border-radius:10px}.brand > div{min-width:0}.brand h1,.brand > a:not(.logo):not(.lglog){white-space:nowrap}.brand h1{font-size:24px!important}.brand .surtitre{font-size:9.5px;letter-spacing:.06em}.brand .lglog{font-size:0;gap:0;padding:7px}.brand .lgins{display:none}.brand .lgins + .lglog{margin-left:auto}.brand .lglog svg{width:16px;height:16px;border-radius:0}.brand .lglog + .lg,.brand .lglog + .lang{margin-left:6px}.brand .lg a,.brand .lg span{padding:6px 9px}.brand .lang a,.brand .lang .on{padding:4px 8px}}@media (max-width:360px){.brand{gap:8px}.brand svg{width:34px;height:34px;border-radius:9px}.brand a.logo{border-radius:9px}.brand h1{font-size:20px!important}.brand > a:not(.logo):not(.lglog){font-size:16px}.brand .surtitre{font-size:8.5px;letter-spacing:.03em}.brand .lglog{padding:6px}.brand .lg a,.brand .lg span,.brand .lang a,.brand .lang .on{padding:4px 7px}}