/* ============================================================

/* [hidden] DOIT gagner, partout et definitivement.
   La regle par defaut du navigateur ([hidden] { display: none }) a la meme
   specificite qu'une classe : la moindre classe posant display:flex ou display:block
   la neutralise, et un bloc cense etre cache s'affiche vide. Rencontre deux fois -
   le commentaire de l'apercu LinkedIn, puis les deux etats de la destination - donc
   traite ici une bonne fois plutot qu'au cas par cas. */
[hidden] { display: none !important; }
   INFLUA STUDIO : Design System
   Conforme à la référence officielle (docs/design-reference/)
   Thème clair | Montserrat + DM Mono auto-hébergées
   ============================================================ */

/* --- POLICES (auto-hébergées) --- */
@font-face { font-family: 'Montserrat'; font-weight: 400; font-display: swap; src: url('/assets/fonts/montserrat-400.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 500; font-display: swap; src: url('/assets/fonts/montserrat-500.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 600; font-display: swap; src: url('/assets/fonts/montserrat-600.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 700; font-display: swap; src: url('/assets/fonts/montserrat-700.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 800; font-display: swap; src: url('/assets/fonts/montserrat-800.woff2') format('woff2'); }
@font-face { font-family: 'DM Mono'; font-weight: 400; font-display: swap; src: url('/assets/fonts/dmmono-400.woff2') format('woff2'); }
@font-face { font-family: 'DM Mono'; font-weight: 500; font-display: swap; src: url('/assets/fonts/dmmono-500.woff2') format('woff2'); }

/* --- TOKENS --- */
:root {
  /* Couleurs officielles Influa */
  --influa-rose: #E73C7E;
  --influa-vert: #AFB31B;
  --influa-cyan: #00A8B5;
  --influa-noir: #0B0D12;

  --primary-50:  #FEF0F5;
  --primary-100: #FCD4E3;
  --primary-600: #C52865;
  --primary-700: #9E1D50;
  --accent-100:  #F0F3B8;
  --accent-700:  #6E7210;
  --secondary-100: #C8EFF2;
  --secondary-700: #006D76;

  --neutral-0:   #FFFFFF;
  --neutral-50:  #FAFAFB;
  --neutral-100: #F2F3F5;
  --neutral-200: #E4E6EA;
  --neutral-300: #CBCED3;
  --neutral-400: #52565D;
  --neutral-500: #2B2F35;
  --neutral-600: #1A1D22;
  --neutral-700: #111318;

  --success:       #1DB76E;
  --success-light: #EDFAF4;
  --success-dark:  #15834F;
  --error:         #EF4444;
  --error-light:   #FEF2F2;
  --error-dark:    #B91C1C;
  --warning:       #E8973C;
  --warning-light: #FBEEDC;
  --warning-dark:  #A65B08;

  --surface-canvas: #F5F6F8;
  --surface-card:   #FFFFFF;
  --sidebar-border: #E4E6EA;

  --font-body: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'DM Mono', 'SF Mono', Consolas, monospace;

  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 20px;
  --s6: 24px; --s8: 32px; --s10: 40px; --s12: 48px; --s16: 64px;

  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --radius-xl: 16px; --radius-full: 9999px;

  --shadow-sm: 0 1px 3px rgba(20,20,32,.08), 0 1px 2px rgba(20,20,32,.06);
  --shadow-md: 0 4px 12px rgba(20,20,32,.10), 0 2px 4px rgba(20,20,32,.06);
  --shadow-lg: 0 12px 32px rgba(20,20,32,.12), 0 4px 8px rgba(20,20,32,.06);
  --shadow-rose: 0 4px 16px rgba(231,60,126,.28);

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --fast: 120ms; --base: 200ms; --slow: 350ms;
}

/* --- RESET --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--influa-noir);
  background: var(--surface-canvas);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }

.wordmark { font-weight: 800; letter-spacing: -0.04em; color: var(--influa-noir); }
.wordmark .studio { color: var(--influa-rose); }

/* ===== Layout auth (connexion, 2FA, activation) ===== */
.auth-shell {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: var(--surface-canvas); padding: var(--s6);
}
.auth-card {
  background: var(--surface-card); border: 1px solid var(--neutral-200);
  border-radius: var(--radius-xl); padding: var(--s10);
  width: 100%; max-width: 440px; box-shadow: var(--shadow-lg);
}
.auth-card .wordmark { font-size: 26px; margin-bottom: var(--s1); }
.auth-card .sub { color: var(--neutral-600); font-size: 14px; margin-bottom: var(--s6); }

/* ===== Formulaires ===== */
label { display: block; font-weight: 500; font-size: 14px; color: var(--neutral-700); margin: var(--s4) 0 var(--s2); }
input[type=text], input[type=email], input[type=password], input[type=date], textarea {
  width: 100%; padding: 9px 14px;
  font-family: var(--font-body); font-size: 14px; color: var(--influa-noir);
  background: var(--neutral-0); border: 1.5px solid var(--neutral-200);
  border-radius: var(--radius-md); outline: none;
  transition: border-color var(--fast), box-shadow var(--fast);
}
textarea { resize: vertical; min-height: 42px; }
input:hover:not(:focus), textarea:hover:not(:focus) { border-color: var(--neutral-300); }
input:focus, textarea:focus { border-color: var(--influa-rose); box-shadow: 0 0 0 3px rgba(231,60,126,.12); }
.hint { font-size: 12px; color: var(--neutral-600); font-weight: 400; }

/* Identite d'un site, UNIFORME dans toute l'app (helper blocSite) :
   "Nom du site" en gras ligne 1, le site web cliquable ligne 2 dessous.
   La largeur (ellipsis) est bornee par le conteneur (cellule/carte). */
.site-bloc { display: block; min-width: 0; }
.site-bloc__nom { display: block; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-bloc__url { display: block; font-size: 12px; color: var(--neutral-600); font-weight: 400; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.site-bloc__url:hover { text-decoration: underline; color: var(--influa-cyan); }
.site-bloc--seul .site-bloc__lien { text-decoration: none; color: inherit; }
.site-bloc--seul .site-bloc__lien:hover strong { text-decoration: underline; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
  width: 100%; margin-top: var(--s6);
  font-family: var(--font-body); font-weight: 500; font-size: 14px;
  padding: 11px 20px; border-radius: var(--radius-md); border: none; cursor: pointer;
  background: var(--influa-rose); color: #fff; box-shadow: var(--shadow-rose);
  transition: all var(--base) var(--ease-out); line-height: 1;
}
.btn:hover { background: var(--primary-600); transform: translateY(-1px); }
.btn-ghost {
  background: none; border: 0; color: var(--neutral-600); cursor: pointer;
  font-family: var(--font-body); font-size: 12px; padding: 4px 8px; margin: 0; width: auto;
  border-radius: var(--radius-sm); transition: all var(--fast); box-shadow: none;
}
.btn-ghost:hover { color: var(--error); background: rgba(239,68,68,.08); transform: none; }

.error {
  background: var(--error-light); color: var(--error-dark);
  border: 1px solid rgba(239,68,68,.2); border-radius: var(--radius-md);
  padding: 10px 14px; font-size: 14px; margin-bottom: var(--s4); line-height: 1.5;
}
.ok {
  background: var(--success-light); color: var(--success-dark);
  border: 1px solid rgba(29,183,110,.2); border-radius: var(--radius-md);
  padding: 10px 14px; font-size: 14px; margin-bottom: var(--s4); line-height: 1.5;
}
.flash { border-radius: var(--radius-md); padding: 10px 14px; font-size: 14px; margin: 0 0 18px; line-height: 1.5; }
.flash--ok { background: var(--success-light); color: var(--success-dark); border: 1px solid rgba(29,183,110,.2); }
.flash--error { background: var(--error-light); color: var(--error-dark); border: 1px solid rgba(239,68,68,.2); }
.secret-box {
  font-family: var(--font-mono); font-size: 14px; letter-spacing: 0.06em;
  background: var(--neutral-50); border: 1px dashed var(--neutral-400);
  border-radius: var(--radius-md); padding: var(--s3) var(--s4); margin: var(--s2) 0;
  word-break: break-all; user-select: all; color: var(--influa-noir);
}
.secret-box + .hint a { color: var(--influa-cyan); text-decoration: underline; }

/* ===== Layout application : sidebar claire + main ===== */
.app-shell { display: flex; min-height: 100vh; }
.sidebar {
  width: 240px; flex: none; background: var(--surface-card);
  border-right: 1px solid var(--sidebar-border);
  box-shadow: 1px 0 3px rgba(11,13,18,.03);
  display: flex; flex-direction: column; padding: 0;
}
.sidebar .wordmark {
  font-size: 19px; padding: var(--s5) var(--s5) var(--s4);
  border-bottom: 1px solid var(--sidebar-border);
}
.sidebar nav { flex: 1; padding: var(--s4) 0; }
.sidebar .nav-group {
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--neutral-600); padding: var(--s4) var(--s5) var(--s2);
}
.sidebar nav a {
  display: flex; align-items: center; gap: var(--s3);
  padding: 9px var(--s5); font-size: 14px; font-weight: 500;
  color: var(--neutral-600); position: relative; transition: all var(--fast);
}
.sidebar nav a:hover { color: var(--influa-noir); background: var(--neutral-100); }
.sidebar nav a.on { color: var(--influa-rose); background: rgba(231,60,126,.08); font-weight: 600; }
.sidebar nav a.on::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 22px; background: var(--influa-rose);
  border-radius: 0 var(--radius-full) var(--radius-full) 0;
}
.sidebar .foot {
  padding: var(--s4) var(--s5); border-top: 1px solid var(--sidebar-border);
  background: var(--neutral-50); display: flex; align-items: center; gap: var(--s3);
}
.sidebar .avatar {
  width: 34px; height: 34px; flex: none; border-radius: 50%;
  background: linear-gradient(135deg, var(--influa-rose), var(--primary-600));
  color: #fff; font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(231,60,126,.3);
}
.sidebar .foot .who { flex: 1; min-width: 0; }
.sidebar .foot .who .name {
  font-size: 12px; font-weight: 600; color: var(--influa-noir);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sidebar .foot .who .role { font-size: 10px; color: var(--neutral-600); }

.main { flex: 1; padding: var(--s8) var(--s8); min-width: 0; max-width: 1400px; }
.main h1 {
  font-size: 30px; font-weight: 700; color: var(--influa-noir);
  letter-spacing: -0.03em; margin-bottom: var(--s6);
}

/* ===== Tuiles de statistiques (valeurs en DM Mono : règle signature) ===== */
.stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--s3); margin-bottom: var(--s6);
}
.stat {
  background: var(--surface-card); border: 1px solid var(--neutral-200);
  border-radius: var(--radius-lg); padding: var(--s4) var(--s5);
}
/* Compteur d'alertes ouvertes > 0 : le CHIFFRE ressort (rouge), pas un aplat
   de fond - fond blanc conserve, sobre. */
.stat--alerte .n { color: var(--error-dark); }
.stat .n {
  font-family: var(--font-mono); font-size: 22px; font-weight: 700;
  color: var(--influa-noir); line-height: 1.1; font-variant-numeric: tabular-nums;
}
.stat .l {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--neutral-600); margin-top: var(--s1);
}

.card-panel {
  background: var(--surface-card); border: 1px solid var(--neutral-300);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: var(--s6);
}
.card-panel h2 { font-size: 18px; font-weight: 700; color: var(--influa-noir); margin-bottom: var(--s3); letter-spacing: -0.01em; }
.card-panel p { color: var(--neutral-600); font-size: 14px; line-height: 1.6; }

@media (max-width: 760px) {
  .app-shell { flex-direction: column; }
  .sidebar { width: 100%; }
  .main { padding: var(--s5); }
}

/* ===== Logo officiel + label Studio ===== */
.sidebar-logo {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: var(--s5) var(--s5) var(--s4);
  border-bottom: 1px solid var(--sidebar-border);
  transition: opacity var(--fast);
}
.sidebar-logo:hover { opacity: .85; }
.logo-img { display: block; width: 120px; height: auto; }
.logo-img--lg { width: 170px; }
.studio-label {
  font-weight: 700; font-size: 11px; letter-spacing: 0.32em;
  text-transform: uppercase; color: var(--influa-rose); padding-left: 2px;
}
.auth-logo { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-bottom: var(--s2); }

/* ===== Avatars photo + page profil ===== */
.avatar--img { object-fit: cover; border: 1px solid var(--neutral-200); }
img.avatar { padding: 0; }
.avatar--xl { width: 72px; height: 72px; font-size: 22px; border-radius: 50%; }
span.avatar--xl {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--influa-rose), var(--primary-600)); color: #fff; font-weight: 700;
}
.profile-avatar-row { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s4); }
.profile-avatar-row p { margin: 0; }
input[type=file] {
  width: 100%; font-family: var(--font-body); font-size: 13px; color: var(--neutral-600);
  border: 1.5px dashed var(--neutral-300); border-radius: var(--radius-md);
  padding: var(--s3); background: var(--neutral-50); cursor: pointer;
}
input[type=file]::file-selector-button {
  font-family: var(--font-body); font-weight: 500; font-size: 13px;
  border: none; border-radius: var(--radius-sm); padding: 6px 12px; margin-right: var(--s3);
  background: var(--neutral-200); color: var(--influa-noir); cursor: pointer;
}

/* ===== Administration des utilisateurs ===== */
.admin-users-grid { display: grid; grid-template-columns: 340px 1fr; gap: var(--s4); align-items: start; }
@media (max-width: 1000px) { .admin-users-grid { grid-template-columns: 1fr; } }
.select-ds {
  width: 100%; padding: 9px 36px 9px 14px; font-family: var(--font-body); font-size: 14px;
  color: var(--influa-noir); background: var(--neutral-0);
  border: 1.5px solid var(--neutral-200); border-radius: var(--radius-md);
  appearance: none; cursor: pointer; outline: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%237A7A8A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.select-ds:focus { border-color: var(--influa-rose); box-shadow: 0 0 0 3px rgba(231,60,126,.12); }

.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--neutral-200); border-radius: var(--radius-lg); }
.table-ds { width: 100%; border-collapse: collapse; font-size: 14px; }
.table-ds th {
  padding: 10px var(--s3); text-align: left; font-size: 11px; font-weight: 600;
  color: var(--neutral-600); text-transform: uppercase; letter-spacing: 0.04em;
  background: var(--neutral-50); border-bottom: 1px solid var(--neutral-200);
}
.table-ds td { padding: 10px var(--s3); border-bottom: 1px solid var(--neutral-100); vertical-align: middle; word-break: break-word; }
.table-ds tbody tr:last-child td { border-bottom: none; }
.table-ds tbody tr:hover { background: var(--neutral-50); }
.table-ds .text-mono { font-family: var(--font-mono); font-size: 12px; white-space: nowrap; }
.row-off { opacity: .55; }
.cell-avatar { width: 44px; }
.avatar--sm { width: 32px; height: 32px; font-size: 12px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
span.avatar--sm { background: linear-gradient(135deg, var(--influa-rose), var(--primary-600)); color: #fff; font-weight: 700; }
.cell-actions { white-space: nowrap; }
.cell-actions form { display: inline-block; margin-right: 4px; }
.btn-mini {
  font-family: var(--font-body); font-size: 12px; font-weight: 600; line-height: 1.2;
  padding: 6px 13px; border-radius: var(--radius-md); border: 1px solid var(--neutral-200);
  background: var(--neutral-0); color: var(--neutral-700); cursor: pointer; transition: all var(--fast);
}
.btn-mini:hover { border-color: var(--influa-rose); color: var(--influa-rose); background: var(--primary-50); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.btn-mini--danger:hover { border-color: var(--error); color: var(--error); background: var(--error-light); }

.pill {
  display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 9px;
  border-radius: var(--radius-full); letter-spacing: 0.02em; white-space: nowrap;
}
/* Pastilles de statut : fond tinte + BORDURE 1px pour un contraste franc
   (standard Jerome : un statut doit sauter aux yeux, pas se deviner). */
.pill--neutral  { background: var(--neutral-100); color: var(--neutral-700); border: 1px solid var(--neutral-300); }
.pill--success  { background: #D7F2E4; color: var(--success-dark); border: 1px solid var(--success); }
.pill--warning  { background: var(--warning-light); color: var(--warning-dark); border: 1px solid var(--warning); }
.pill--error    { background: var(--error-light); color: var(--error-dark); border: 1px solid var(--error); }

/* Encadre-verdict : une conclusion (verdict, alerte, constat de tete) ressort
   comme un resultat - fond tinte, liseret gauche 4px, texte gras, petit
   bandeau majuscule. Reutilisable sur tous les onglets. */
.verdict-box { border-radius: var(--radius-md, 10px); padding: 11px 14px; border: 1px solid var(--neutral-200); border-left-width: 4px; }
.verdict-box__t { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.verdict-box strong { font-weight: 700; }
.verdict-box--ok     { background: var(--success-light); border-color: #BDE7D0; border-left-color: var(--success); color: var(--success-dark); }
.verdict-box--ok .verdict-box__t     { color: var(--success-dark); }
.verdict-box--warn   { background: var(--warning-light); border-color: #F3D9B3; border-left-color: var(--warning); color: var(--warning-dark); }
.verdict-box--warn .verdict-box__t   { color: var(--warning-dark); }
.verdict-box--alerte { background: var(--error-light); border-color: #F7D4D4; border-left-color: var(--error); color: var(--error-dark); }
.verdict-box--alerte .verdict-box__t { color: var(--error-dark); }
.verdict-box--info   { background: var(--primary-50); border-color: #F4C6DA; border-left-color: var(--influa-rose); color: var(--primary-700); }
.verdict-box--info .verdict-box__t   { color: var(--primary-600); }

/* Sections de la page Utilisateurs */
.stack-panels { display: flex; flex-direction: column; gap: var(--s4); min-width: 0; }
.cell-empty { text-align: center; color: var(--neutral-600); font-size: 13px; padding: var(--s6) !important; }
.pill--client { background: var(--secondary-100); color: var(--secondary-700); }

/* Édition inline dans les listes (règle : pas de page de modification séparée) */
.row-edit td { background: var(--neutral-50); border-bottom: 1px solid var(--neutral-200) !important; padding: var(--s4) var(--s5) !important; }
.row-edit-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--s3) var(--s4); align-items: start; }
.row-edit-form label { margin-top: 0; font-size: 12px; }
/* Le bouton s'aligne sur la ligne des champs : hauteur du libelle (18px) + sa marge basse (8px) */
.row-edit-actions { display: flex; align-items: flex-start; padding-top: 26px; }
.btn--inline { width: auto; margin-top: 0; padding: 9px 18px; font-size: 13px; }
.btn-mini.is-open { border-color: var(--influa-rose); color: var(--influa-rose); background: var(--primary-50); }

/* Chevron de dépliage (déclencheur discret des panneaux inline) */
.btn-chevron {
  width: 28px; height: 28px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--neutral-0); border: 1px solid var(--neutral-200);
  border-radius: var(--radius-sm); color: var(--neutral-600);
  cursor: pointer; vertical-align: middle; transition: all var(--fast);
}
.btn-chevron::before {
  content: ''; width: 7px; height: 7px; margin-top: -3px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform 200ms var(--ease-out), margin 200ms var(--ease-out);
}
.btn-chevron:hover { color: var(--influa-rose); border-color: var(--influa-rose); background: var(--primary-50); }
.btn-chevron.is-open { color: var(--influa-rose); border-color: var(--influa-rose); background: var(--primary-50); }
.btn-chevron.is-open::before { transform: rotate(-135deg); margin-top: 3px; }

/* ===== Densite 13 pouces =====
   Calibrage global : l'interface est rendue a 90% (equivalent du zoom
   navigateur juge parfait par Jerome sur MacBook 13 pouces). */
body { zoom: 0.9; }
/* Le zoom reduit aussi les unites vh : on compense pour que les coquilles
   plein ecran (sidebar comprise) couvrent bien toute la hauteur reelle */
.app-shell, .auth-shell { min-height: calc(100vh / 0.9); }

/* Anti retours a la ligne dans les tableaux sur ecrans compacts */
.table-ds th { white-space: nowrap; }
.table-ds .hint { word-break: normal; overflow-wrap: anywhere; }
.cell-actions { white-space: nowrap; }

/* Bloc d'identite cliquable (acces au profil : convention UX, pas d'entree de nav) */
.foot-id {
  display: flex; align-items: center; gap: var(--s3); flex: 1; min-width: 0;
  margin: -6px; padding: 6px; border-radius: var(--radius-md);
  transition: background var(--fast);
}
.foot-id:hover { background: var(--neutral-100); }
.foot-id.on { background: rgba(231,60,126,.08); }
.foot-id.on .name { color: var(--influa-rose); }

/* Clients : initiale cyan (distincte du rose des personnes) + lien site */
span.avatar--client { background: linear-gradient(135deg, var(--influa-cyan), #007A85); }
.link-site { color: var(--influa-cyan); text-decoration: none; }
.link-site:hover { text-decoration: underline; }

/* Portefeuille de clients suivis (chef de projet Influa) : liste de cases compacte */
.check-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 150px;
  overflow: auto;
  padding: 8px 10px;
  border: 1px solid rgba(11, 13, 18, .12);
  border-radius: var(--r-md, 8px);
  background: #fff;
}
.check-item {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 400;
  font-size: 13px;
  cursor: pointer;
}
.check-item input {
  width: auto;
  margin: 0;
  accent-color: var(--influa-rose, #E73C7E);
}

/* Panneau d'edition inline : reste dans la zone visible meme si le tableau defile horizontalement */
.table-wrap { container-type: inline-size; }
.row-edit-inner {
  position: sticky;
  left: 0;
  max-width: calc(100cqw - 32px);
}
.row-edit-tools {
  display: flex;
  gap: var(--s2);
  margin-top: var(--s3);
  padding-top: var(--s3);
  border-top: 1px dashed var(--neutral-200);
}

/* Reglages : carte des outils du studio (une ligne par outil, panneau inline au chevron) */
.reglages-wrap { display: flex; flex-direction: column; gap: var(--s4); }
.tool-list { display: flex; flex-direction: column; }
.tool-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto auto 32px;
  gap: var(--s4);
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--neutral-100);
}
.tool-list > .tool-row:first-child { border-top: none; }
.tool-badge {
  width: 36px; height: 36px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  background: var(--neutral-0);
  border: 1px solid var(--neutral-200);
}
.tool-badge img { width: 22px; height: 22px; object-fit: contain; display: block; }
.tool-badge--geo { background: #efeafb; border-color: #b9a5e6; color: #4a2f8f; font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.tool-metric { text-align: right; line-height: 1.3; }
/* KPI de tete d'une carte outil (depense, unites, emails, projets...) : c'est
   LE resultat de la carte, il doit ressortir - chiffre mono soutenu en accent
   marque (avant : aucune regle ne s'appliquait, il lisait comme du texte). */
.tool-metric .text-mono { font-family: var(--font-mono); font-size: 20px; font-weight: 700; color: var(--primary-600, #C52865); line-height: 1.1; font-variant-numeric: tabular-nums; }
/* Depense mesuree d'un cron : la valeur ressort des estimations (grises). */
.cron-carte__depense { font-size: 12px; color: var(--neutral-700, #111318); }
.cron-carte__depense strong, .kpi-val { font-family: var(--font-mono); font-weight: 700; color: var(--influa-noir); font-variant-numeric: tabular-nums; }
/* Pourcentage de plafond : le texte parle la meme langue que la barre. */
.usage-pct--warn { color: var(--warning-dark) !important; font-weight: 700; }
.usage-pct--danger { color: var(--error-dark) !important; font-weight: 700; }
.tool-row--muted .tool-badge { opacity: .45; }
.tool-row--muted .tool-id { opacity: .6; }
.tool-noaction { width: 28px; }
.tool-panel {
  margin: var(--s5) 0 var(--s3);
  padding: var(--s4);
  background: var(--neutral-50);
  border-radius: var(--radius-md);
}
.tool-panel .row-edit-tools { border-top: 1px dashed var(--neutral-200); align-items: center; }

/* Reglages : graphiques d'usage toujours visibles (barres quotidiennes + jauge de plafond) */
.usage-block { border-top: 1px solid var(--neutral-100); padding-top: var(--s3); padding-bottom: var(--s2); margin-top: var(--s1); }
.usage-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--s2); }
.usage-head .text-mono { font-family: var(--font-mono); font-size: 11px; }
.usage-chart { display: flex; align-items: flex-end; gap: 2px; height: 56px; }
.uc-bar { flex: 1; display: flex; align-items: flex-end; height: 100%; cursor: default; }
.uc-bar > i { display: block; width: 100%; border-radius: 2px 2px 0 0; }
.uc-bar--rose > i { background: var(--primary-100); }
.uc-bar--rose.uc-today > i { background: var(--influa-rose); }
.uc-bar--cyan > i { background: var(--secondary-100); }
.uc-bar--cyan.uc-today > i { background: var(--influa-cyan); }
.uc-bar--geo > i { background: #ded2f5; }
.uc-bar--geo.uc-today > i { background: #6d3fc4; }
.uc-bar:hover > i { filter: brightness(0.92); }
.bg-track { height: 6px; background: var(--neutral-100); border-radius: var(--radius-full); overflow: hidden; }
.bg-fill { display: block; height: 100%; border-radius: var(--radius-full); background: var(--success); transition: width var(--slow) var(--ease-out); }
.bg-fill--warn { background: #E8A13C; }
.bg-fill--danger { background: var(--error); }

/* ============================================================
   Dossier client : l'espace de travail (brief, preuves, audit, voix)
   ============================================================ */
.retour { display: inline-block; font-size: 13px; color: var(--neutral-600); margin-bottom: var(--s4); }
.retour:hover { color: var(--influa-rose); }

.dossier-head { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s5); }
.dossier-logo { width: 52px; height: 52px; font-size: 20px; flex: none; }
.dossier-id { flex: 1; min-width: 0; }
.dossier-id h1 { margin: 0; }
.dossier-meta { margin: 3px 0 0; font-size: 14px; color: var(--neutral-600); }
.sep { display: inline-block; width: 3px; height: 3px; border-radius: 9999px; background: var(--neutral-400); vertical-align: middle; margin: 0 8px; }
.dossier-tags { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.dossier-stat { font-size: 12px; }


.bandeau-info { display: flex; align-items: center; gap: 10px; background: #E9F7F8; border: 1px solid rgba(0,168,181,.25);
  color: var(--secondary-700); border-radius: var(--radius-lg); padding: 12px var(--s4); margin-bottom: var(--s5); font-size: 14px; }
.spin { width: 14px; height: 14px; border: 2px solid rgba(0,168,181,.3); border-top-color: var(--influa-cyan);
  border-radius: 50%; display: inline-block; animation: spin .7s linear infinite; flex: none; }
@keyframes spin { to { transform: rotate(360deg); } }

.hero-vide { text-align: center; padding: var(--s10) var(--s6); }
.hero-vide .btn { max-width: 240px; margin: var(--s5) auto 0; }

/* Sections du dossier */
.doc { margin-bottom: var(--s5); scroll-margin-top: var(--s5); }
.doc-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin-bottom: var(--s4); }
.doc-head h2 { margin: 0; }
.doc-sous { flex-basis: 100%; margin: 0; line-height: 1.5; }
.doc-batch { margin-left: auto; }
.doc-actions { display: flex; align-items: center; gap: var(--s4); margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--neutral-100); flex-wrap: wrap; }
.doc-panel { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px dashed var(--neutral-200); }

/* Brief + voix : lecture claire en definition-list */
.brief-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--s5) var(--s8); }
/* Positionnement = synthese strategique : bandeau de tete pleine largeur, tinte
   marque, qui ressort des 5 champs de contexte (standard de contraste). */
.brief-field--lead { grid-column: 1 / -1; background: var(--primary-50); border: 1px solid #F4C6DA; border-left: 3px solid var(--influa-rose); border-radius: 10px; padding: 12px 14px; }
.brief-field--lead .bf-label { color: var(--primary-600); }
.brief-field--lead .bf-value { font-size: 15px; font-weight: 600; }
.voix-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s4) var(--s8); }
.bf-label { font-size: 12px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--neutral-600); margin: 0 0 4px; }
.bf-value { font-size: 14px; line-height: 1.6; color: var(--influa-noir); margin: 0; }

/* Badges par type de preuve */
.bdg { display: inline-block; font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: var(--radius-sm); white-space: nowrap; }
.bdg-donnee    { background: #FBEFCF; color: #855A00; }
.bdg-exp       { background: var(--secondary-100); color: var(--secondary-700); }
.bdg-expertise { background: var(--accent-100); color: var(--accent-700); }
.bdg-autorite  { background: var(--primary-100); color: var(--primary-700); }
.bdg-confiance { background: var(--neutral-100); color: var(--neutral-700); }

.preuve-list { display: flex; flex-direction: column; }
.preuve { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px var(--s4); align-items: start;
  padding: 14px 0; border-top: 1px solid var(--neutral-100); }
.preuve-list > .preuve:first-child { border-top: none; }
.preuve-corps { min-width: 0; }
.preuve-txt { font-size: 14px; line-height: 1.55; color: var(--influa-noir); margin: 0; }
.preuve-pourquoi { margin: 4px 0 0; line-height: 1.5; }
.preuve-src { display: inline-block; margin-top: 4px; color: var(--influa-cyan); text-decoration: underline; }
.preuve-dec { display: flex; gap: 6px; }
/* Preuve validee = un ACTIF retenu : elle doit RESSORTIR (liseret vert + fond
   tres leger), pas s'effacer. L'ancien opacity:.6 inversait la hierarchie. */
.preuve-item.est-valide { border-left: 3px solid var(--success); background: #F4FBF7; padding-left: 12px; margin-left: -12px; border-radius: 0 8px 8px 0; }
.preuve-dec { align-items: center; }
.preuve-dec .pill { align-self: center; }


/* Boutons de decision compacts */
.btn-icone { width: 30px; height: 30px; border-radius: var(--radius-md); border: 1px solid var(--neutral-200);
  background: #fff; cursor: pointer; font-size: 15px; line-height: 1; display: inline-flex; align-items: center;
  justify-content: center; color: var(--neutral-600); transition: all var(--fast); font-family: var(--font-body); }
.btn-icone--ok:hover { border-color: var(--success); color: var(--success-dark); background: var(--success-light); }
.btn-icone--no:hover { border-color: var(--error); color: var(--error-dark); background: var(--error-light); }
.dec-ok { color: var(--success-dark); font-size: 17px; }

/* Sources */
.source-row { display: flex; align-items: center; gap: var(--s4); padding: 12px 0; border-top: 1px solid var(--neutral-100); }
.source-row:first-of-type { border-top: none; }
.source-row .tool-id { flex: 1; min-width: 0; }
.src-badge { color: var(--neutral-600); font-size: 16px; }

.lien-dossier { color: var(--influa-noir); font-weight: 700; }
.lien-dossier:hover { color: var(--influa-rose); }

/* Contraste et lisibilite (demande Jerome) : separations internes plus nettes, ancres douces */
.doc, .source-row, .preuve { scroll-margin-top: var(--s8); }
.preuve { border-top-color: var(--neutral-200); }
.doc-actions, .source-row { border-top-color: var(--neutral-200); }

/* Onglets du dossier (no friction : chaque onglet est une vue courte, plus de scroll geant) */
.onglets { display: flex; flex-wrap: wrap; gap: 2px; border-bottom: 1px solid var(--neutral-300); margin-bottom: var(--s5); }
.onglet { display: inline-flex; align-items: center; gap: 7px; padding: 10px 18px; font-size: 14px; font-weight: 500;
  color: var(--neutral-600); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color var(--fast), border-color var(--fast); }
.onglet:hover { color: var(--influa-noir); }
.onglet.est-actif { color: var(--influa-rose); border-bottom-color: var(--influa-rose); font-weight: 600; }
.onglet-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: var(--radius-full); background: #E29A2E; color: #fff; font-size: 11px; font-weight: 600; }

/* Crayon d'edition : signale qu'un bloc est modifiable a convenance */
.btn-crayon { width: 26px; height: 26px; border: none; border-radius: var(--radius-sm); cursor: pointer; padding: 0; flex: none;
  background: transparent center no-repeat; background-size: 15px 15px; opacity: .5; transition: opacity var(--fast), background-color var(--fast);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2F35' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.btn-crayon:hover { opacity: 1; background-color: var(--neutral-100); }
.btn-crayon.is-open { opacity: 1; background-color: var(--primary-50); }

.bf-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); margin-bottom: 4px; }
.bf-head .bf-label { margin: 0; }
.bf-edit { margin-top: 10px; }
.bf-edit textarea { margin-bottom: 10px; }

/* Preuve : la ligne + son panneau d'edition */
.preuve-item { border-top: 1px solid var(--neutral-200); }
.preuve-list > .preuve-item:first-child { border-top: none; }
.preuve { padding: 14px 0; border-top: none; }
.preuve-edit { margin-bottom: var(--s3); }

/* Audit complet : groupe par levier + prompt Claude Code copiable */
.levier { margin-top: var(--s5); }
.levier:first-of-type { margin-top: 0; }
.levier-titre { font-size: 14px; font-weight: 700; color: var(--influa-noir); margin: 0 0 var(--s3);
  padding-bottom: 6px; border-bottom: 2px solid var(--neutral-200); }
.prompt-code { background: #14171B; color: #E8EAED; border-radius: var(--radius-md); padding: 14px 16px;
  font-family: var(--font-mono); font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; word-break: break-word;
  margin: 0 0 8px; max-height: 320px; overflow: auto; }
.est-copie { border-color: var(--success); color: var(--success-dark); background: var(--success-light); }



/* Audit : analyse page par page */
.pa-filtres { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-bottom: var(--s4); }
.pa-recherche { flex: 1 1 220px; min-width: 170px; max-width: 340px; padding: 7px 10px; border: 1px solid var(--neutral-300); border-radius: var(--radius-md); font: inherit; }
.pa-check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--neutral-600); cursor: pointer; }
.pa-compteur { margin-left: auto; white-space: nowrap; }


.pa-ligne { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.score-mini { flex: 0 0 auto; min-width: 34px; text-align: center; font-family: var(--font-mono); font-weight: 700; font-size: 14px; padding: 4px 7px; border-radius: var(--radius-sm); }
.pa-url { flex: 1 1 200px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--neutral-700); text-decoration: none; }
.pa-url:hover { text-decoration: underline; color: var(--rose); }
.pa-badge { flex: 0 0 auto; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; background: var(--neutral-100); color: var(--neutral-600); padding: 2px 6px; border-radius: var(--radius-sm); font-weight: 600; }
.pa-badge-orph { background: #FBEEDC; color: #A65B08; }
.pa-badge-arch { background: var(--neutral-100); color: var(--neutral-600); }
.pa-badge-arch-fixe { background: #E3F3E8; color: #1F6B38; }
.aq__seg--manuel { background: #1F6B38; opacity: .55; }
.aq__row--manuel .aq__lib { color: #1F6B38; font-weight: 600; }

/* Bandeau de progression d'analyse (mise a jour auto, sans rechargement manuel) */
.crawl-progress { align-items: flex-start; }
.cp-txt { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.cp-detail { font-size: 12px; color: var(--neutral-600); }
.cp-barre { width: 100%; max-width: 420px; height: 6px; background: rgba(0,168,181,.15); border-radius: 3px; overflow: hidden; }
.cp-fill { height: 100%; background: var(--influa-cyan); border-radius: 3px; transition: width .6s ease; }
.bandeau-echec { background: #FBEEDC; border-color: rgba(166,91,8,.3); }
.bandeau-echec .cp-detail { color: #8A5106; }

/* Type de page : reprise manuelle du classement dans le panneau inline */
.pa-arch-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: var(--s4); }
.pa-arch-sel { font-size: 12px; padding: 4px 8px; border: 1px solid var(--neutral-300); border-radius: var(--radius-sm); background: #fff; }
.pa-arch-form .hint { flex-basis: 100%; }
.arch-bande { margin: var(--s4) 0 var(--s3); }
.arch-bande__t { font-size: 12px; font-weight: 600; color: var(--neutral-600); margin: 0 0 var(--s2); }
.arch-bande__t .hint { font-weight: 400; margin-left: 6px; }
.arch-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-select { font-family: var(--font-body); font-size: 13px; color: var(--neutral-600); background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-md); padding: 5px 10px; }
.pa-meta { flex: 0 0 auto; }
.pa-prompt-btn { margin-left: auto; flex: 0 0 auto; }
.pa-ok { margin-left: auto; flex: 0 0 auto; font-size: 12px; color: #1F6B38; }

.pa-axes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: var(--s2); }
.ax { font-family: var(--font-mono); font-size: 11px; font-weight: 700; padding: 2px 6px; border-radius: var(--radius-sm); display: inline-flex; gap: 4px; align-items: baseline; }
.ax-l { font-family: var(--font-body); font-weight: 500; opacity: .75; text-transform: uppercase; letter-spacing: .03em; font-size: 9px; }

/* Couleurs partagees des chips de score (mini global + axes) */
.score-mini.sc-green, .ax.sc-green { background: #E3F3E8; color: #1F6B38; }
.score-mini.sc-orange, .ax.sc-orange { background: #FBEEDC; color: #A65B08; }
.score-mini.sc-red, .ax.sc-red { background: #F7DEDD; color: #B3201B; }

.pa-probs { display: flex; flex-wrap: wrap; gap: 5px; margin-top: var(--s3); }
.pa-prob { font-size: 11px; background: #FBEEDC; color: #8A5106; padding: 2px 8px; border-radius: var(--radius-sm); }

/* Constats ecartes par le type de page : traces a l'ecran, jamais silencieux */
.pa-ecarte-n { font-size: 10px; color: var(--neutral-600); white-space: nowrap; }
.pa-ecartes { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pa-ecartes li { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pa-prob-ecarte { background: var(--neutral-100); color: var(--neutral-600); text-decoration: line-through; flex: none; }
.pa-ecarte-motif { flex: 1; min-width: 200px; max-width: 70ch; line-height: 1.5; }

/* Audit : controles techniques du site */
.ct-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--s3); }
.ct { border: 1px solid transparent; border-radius: var(--radius-md); padding: var(--s4); background: var(--neutral-50); }
.ct-val { font-family: var(--font-mono); font-size: 26px; font-weight: 800; line-height: 1; margin: 0; }
.ct-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-600); font-weight: 600; margin: 5px 0 0; }
.ct-detail { font-size: 12px; color: var(--neutral-600); margin: var(--s3) 0 0; line-height: 1.5; }
.ct-green { background: var(--success-light); } .ct-green .ct-val { color: var(--success-dark); }
.ct-orange { background: var(--warning-light); } .ct-orange .ct-val { color: var(--warning-dark); }
.ct-red { background: var(--error-light); } .ct-red .ct-val { color: var(--error-dark); }
.ct-neutral { background: var(--neutral-100); } .ct-neutral .ct-val { color: var(--neutral-600); }
.ct-errliste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ct-errliste li { display: flex; align-items: baseline; gap: var(--s3); font-size: 13px; }
.ct-status { flex: 0 0 auto; font-family: var(--font-mono); font-weight: 700; color: var(--error-dark); }
.ct-errliste a { color: var(--neutral-700); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-errliste a:hover { text-decoration: underline; color: var(--rose); }

/* Audit : drill au clic sur un nombre -> liste des URLs concernees */
.num-drill { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; line-height: inherit; border-bottom: 1px dashed currentColor; }
.num-drill:hover { opacity: .72; }
.num-drill.is-open { border-bottom-style: solid; }
.url-panel { margin: var(--s3) 0 var(--s2); padding: var(--s3) var(--s4); background: var(--neutral-50); border: 1px solid var(--neutral-200); border-radius: var(--radius-md); }
.url-panel-t { font-size: 12px; font-weight: 600; color: var(--neutral-600); margin: 0 0 var(--s2); }
.url-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 320px; overflow-y: auto; }
.url-liste li a { font-size: 13px; color: var(--neutral-700); text-decoration: none; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.url-liste li a:hover { color: var(--rose); text-decoration: underline; }

.ct-unite { font-family: var(--font-body); font-size: 13px; font-weight: 600; margin-left: 3px; opacity: .8; }


/* ============================================================
   Refonte tableau de bord AUDIT (esprit GA4 / Search Console)
   ============================================================ */
/* Statut : source unique de verite couleur via --st */
.sc-green  { --st: var(--success); --st-light: var(--success-light); --st-dark: var(--success-dark); }
.sc-orange { --st: var(--warning); --st-light: var(--warning-light); --st-dark: var(--warning-dark); }
.sc-red    { --st: var(--error);   --st-light: var(--error-light);   --st-dark: var(--error-dark); }

.audit-dashboard { display: flex; flex-direction: column; gap: var(--s5); }
.audit-section { background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--s6); scroll-margin-top: 70px; }

/* Sous-navigation ancree collante */
.audit-subnav { position: sticky; top: 8px; z-index: 20; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 6px; background: rgba(245,246,248,.94); backdrop-filter: blur(6px); border: 1px solid var(--neutral-200); border-radius: var(--radius-full); box-shadow: var(--shadow-sm); }
.audit-subnav__item { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: var(--radius-full); font-size: 13px; font-weight: 600; color: var(--neutral-600); text-decoration: none; transition: background var(--fast), color var(--fast); white-space: nowrap; }
.audit-subnav__item:hover { background: var(--neutral-100); color: var(--influa-noir); }
.audit-subnav__item.is-active { background: var(--influa-rose); color: #fff; }
.audit-subnav__count { font-family: var(--font-mono); font-size: 11px; font-weight: 700; background: var(--neutral-200); color: var(--neutral-600); border-radius: var(--radius-full); padding: 0 6px; min-width: 17px; text-align: center; }
.audit-subnav__item.is-active .audit-subnav__count { background: rgba(255,255,255,.3); color: #fff; }
.audit-subnav__action { margin-left: auto; }

/* En-tete de section fort */
.section-head { margin-bottom: var(--s5); }
.section-head__eyebrow { display: none; }
.section-head h2 { font-size: 18px; font-weight: 700; color: var(--influa-noir); margin: 0; letter-spacing: -.01em; }
.section-head__sub { font-size: 13px; color: var(--neutral-600); margin: 4px 0 0; line-height: 1.5; }
.section-head__count { font-family: var(--font-mono); font-size: 11px; font-weight: 700; background: var(--error-light); color: var(--error-dark); border-radius: var(--radius-full); padding: 1px 7px; letter-spacing: 0; }
.section-head__total { font-family: var(--font-mono); font-size: 14px; font-weight: 500; color: var(--neutral-600); }

/* Hero sante globale */
.audit-hero { display: grid; grid-template-columns: minmax(210px, 290px) 1fr; gap: var(--s4); }
.audit-hero__global { background: var(--st-light); border: 1px solid transparent; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: var(--s5) var(--s6); display: flex; flex-direction: column; justify-content: center; }
.hero-eyebrow { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--neutral-600); margin: 0; }
.score-num { font-family: var(--font-mono); font-weight: 500; font-size: clamp(2.6rem, 7vw, 3.6rem); line-height: 1; color: var(--influa-noir); margin: 6px 0 10px; }
.verdict { align-self: flex-start; background: var(--st); color: #fff; font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: var(--radius-full); }
.audit-scorecards { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: var(--s3); min-width: 0; }
.scorecard { background: var(--st-light); border: 1px solid transparent; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--s4); transition: box-shadow var(--fast), transform var(--fast); }
.scorecard:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.scorecard__value { font-family: var(--font-mono); font-weight: 500; font-size: 2rem; line-height: 1; color: var(--st-dark); margin: 0; }
.scorecard__label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-600); margin: 6px 0 0; }

/* Bandeau des axes restants (plus discret) */
.audit-axes { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: var(--s2); margin-top: var(--s4); }
.axe-chip { display: flex; align-items: baseline; gap: 6px; padding: 8px 10px; border-radius: var(--radius-md); background: var(--st-light); }
.axe-chip__v { font-family: var(--font-mono); font-weight: 700; font-size: 15px; color: var(--influa-noir); }
.axe-chip__l { font-size: 10px; color: var(--neutral-600); text-transform: uppercase; letter-spacing: .03em; }


/* Elevation au survol des tuiles techniques, pour un langage homogene */
.audit-section .ct { transition: box-shadow var(--fast), transform var(--fast); }
.audit-section .ct:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }

/* Bouton "i" sur les KPI : ouvre une fiche detaillee INLINE dans la page (pousse le contenu) */
.kpi-i { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: var(--neutral-200); color: var(--neutral-600); font-family: var(--font-body); font-size: 10px; font-weight: 700; line-height: 1; border: 0; padding: 0; cursor: pointer; vertical-align: middle; transition: background var(--fast), color var(--fast); }
.kpi-i:hover, .kpi-i:focus-visible, .kpi-i.is-open { background: var(--influa-rose); color: #fff; outline: none; }
.kpi-drops { display: contents; }
@keyframes kpiDropIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.kpi-drop { margin-top: var(--s4); background: var(--neutral-50); border: 1px solid var(--neutral-200); border-left: 4px solid var(--influa-rose); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--s5) var(--s6); animation: kpiDropIn .18s ease; scroll-margin-top: 76px; }
.kpi-drop__head { font-size: 15px; font-weight: 700; color: var(--influa-noir); margin: 0 0 var(--s4); padding-bottom: var(--s3); border-bottom: 2px solid var(--influa-rose); }
.kpi-drop__sec { margin-bottom: var(--s5); }
.kpi-drop__sec:last-child { margin-bottom: 0; }
.kpi-drop__t { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--influa-rose); margin: 0 0 var(--s3); }
.kpi-calc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--s3); }
.kpi-calc li { line-height: 1.35; background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-sm); padding: 8px 10px; }
.kpi-calc__c { display: block; font-size: 12.5px; font-weight: 600; color: var(--neutral-700); }
.kpi-calc__i { display: block; font-size: 11.5px; color: var(--neutral-600); margin-top: 2px; }
.kpi-drop__b { font-size: 13px; line-height: 1.55; color: var(--neutral-700); margin: 0; }
.kpi-drop__ok { font-size: 13px; color: var(--success-dark); font-weight: 600; margin: 0; display: flex; align-items: center; gap: 8px; }
.kpi-drop__ok::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--success); flex: 0 0 auto; }
.kpi-drop__lien { display: inline-block; margin-top: var(--s2); font-size: 12px; font-weight: 600; color: var(--influa-cyan); }
.kpi-drop__lien:hover { text-decoration: underline; }
.kpi-prompt { margin-top: var(--s3); }
.kpi-prompt .prompt-code { font-size: 11px; max-height: 240px; white-space: pre-wrap; }
/* Problemes reellement detectes sur ce site, par axe */
.kpi-pb { background: var(--neutral-0); border: 1px solid var(--neutral-200); border-left: 3px solid var(--warning); border-radius: var(--radius-md); padding: var(--s3) var(--s4); margin-bottom: var(--s3); }
.kpi-pb:last-child { margin-bottom: 0; }
.kpi-pb__t { font-size: 13px; font-weight: 600; color: var(--influa-noir); margin: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.kpi-pb__n { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--error-dark); background: var(--error-light); border-radius: var(--radius-full); padding: 1px 8px; }
/* Liste repliable des URLs concernees (balise details native) */
.kpi-urls { margin-top: 8px; }
.kpi-urls > summary { cursor: pointer; font-size: 12px; font-weight: 600; color: var(--influa-cyan); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.kpi-urls > summary::-webkit-details-marker { display: none; }
.kpi-urls > summary::before { content: "\25B8"; font-size: 10px; transition: transform var(--fast); }
.kpi-urls[open] > summary::before { transform: rotate(90deg); }
.kpi-urls .url-liste { margin-top: 8px; padding-left: 2px; }
.kpi-urls .url-liste li { display: flex; align-items: baseline; gap: 8px; }
.kpi-urls .url-liste li a { flex: 1 1 auto; min-width: 0; }
.url-plus { font-size: 12px; color: var(--neutral-600); font-style: italic; }

/* ================= Master-detail : KPI a gauche, detail a droite ================= */
.audit-md { display: grid; grid-template-columns: 1fr; gap: var(--s5); align-items: start; }
.audit-md__detail { display: none; min-width: 0; }
.md-hint { display: none; }
.audit-md.is-open .audit-md__detail { display: block; }
.audit-md__detail .kpi-drop { margin-top: 0; }
/* PRINCIPE VISUEL FIXE (Jerome, 22/07/2026) : detail ouvert = TOUJOURS deux
   colonnes, liste a gauche et panneau a droite, quelle que soit la largeur.
   L'empilement pleine largeur est interdit : il faisait perdre le fil. */
.audit-md.is-open { grid-template-columns: minmax(280px, 40%) minmax(0, 1fr); }
.audit-md.is-open .audit-md__detail { position: sticky; top: 76px; align-self: start; max-height: calc(100vh - 92px); overflow: auto; }
.audit-md.is-open .audit-hero { grid-template-columns: 1fr; }
.audit-md.is-open .ct-grid { grid-template-columns: 1fr 1fr; }
.audit-md.is-open .audit-scorecards { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }

/* Cartes cliquables : toute la carte ouvre le detail */
.scorecard[data-toggle], .axe-chip[data-toggle], .audit-hero__global[data-toggle], .audit-md .ct { cursor: pointer; }
.scorecard[data-toggle]:hover, .axe-chip[data-toggle]:hover, .audit-hero__global[data-toggle]:hover { border-color: var(--st); }

/* Contraste au repos : sous-titre clair + pastille de statut, chiffre colore pour les alertes */
.scorecard__sub { font-size: 11px; color: var(--neutral-600); margin: 3px 0 0; line-height: 1.3; }
.sc-status { display: inline-block; margin-top: 8px; font-size: 10px; font-weight: 700; letter-spacing: .02em; padding: 1px 9px; border-radius: var(--radius-full); background: var(--neutral-0); color: var(--st-dark); }
.axe-chip { flex-wrap: wrap; }
.axe-chip__s { flex-basis: 100%; font-size: 10px; color: var(--neutral-600); margin-top: 2px; line-height: 1.25; }

/* Selection : carte en avant, les autres attenuees */
.scorecard.is-selected, .axe-chip.is-selected, .audit-hero__global.is-selected, .ct.is-selected {
  opacity: 1; box-shadow: 0 0 0 2px var(--st), var(--shadow-md); }

/* Bouton "i" plus visible + bouton Fermer du detail */
.kpi-i { width: 18px; height: 18px; font-size: 11px; }
.kpi-drop__head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.kpi-drop__close { border: 1px solid var(--neutral-200); background: var(--neutral-0); color: var(--neutral-600); font: inherit; font-size: 11px; font-weight: 600; padding: 3px 12px; border-radius: var(--radius-full); cursor: pointer; flex: 0 0 auto; }
.kpi-drop__close:hover { border-color: var(--influa-rose); color: var(--influa-rose); }

/* ================= Plan d'optimisation ================= */
.plan-groupe { margin-bottom: var(--s6); }
.plan-groupe:last-child { margin-bottom: 0; }
.plan-groupe__t { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; color: var(--influa-noir); margin: 0 0 var(--s3); padding-bottom: var(--s2); border-bottom: 2px solid var(--st); }
/* Compteur d'actions du groupe : tinte dans la couleur de priorite (P0 rouge),
   pour que le poids du groupe critique ressorte. */
.plan-groupe__n { font-family: var(--font-mono); font-size: 11px; font-weight: 700; background: var(--st-light, var(--neutral-100)); color: var(--st-dark, var(--neutral-700)); border: 1px solid var(--st, var(--neutral-300)); border-radius: var(--radius-full); padding: 0 8px; }
/* Groupe P0 : bande legere pour delimiter le bloc critique (standard : un
   groupe se delimite). */
.plan-groupe.sc-red { background: #FEF6F5; border: 1px solid #F7DEDD; border-radius: var(--radius-lg, 14px); padding: var(--s4, 12px); }
.plan-prio { font-family: var(--font-mono); font-size: 12px; font-weight: 800; color: #fff; background: var(--st); border-radius: var(--radius-sm); padding: 2px 8px; }
.plan-liste { display: flex; flex-direction: column; gap: 8px; }
.plan-item { border: 1px solid var(--neutral-200); border-left: 3px solid var(--st); border-radius: var(--radius-md); background: var(--neutral-0); overflow: hidden; }
.plan-item.est-clos { opacity: .6; }
.plan-item__head { width: 100%; display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); background: none; border: 0; cursor: pointer; text-align: left; font: inherit; }
.plan-item__head:hover { background: var(--neutral-50); }
.plan-chevron { width: 7px; height: 7px; border-right: 2px solid var(--neutral-400); border-bottom: 2px solid var(--neutral-400); transform: rotate(-45deg); transition: transform var(--fast); }
.plan-item__head.is-open .plan-chevron { transform: rotate(45deg); }
.plan-item__main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.plan-item__titre { font-size: 14px; font-weight: 600; color: var(--influa-noir); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan-item__meta { font-size: 12px; color: var(--neutral-600); }
/* Statut d'action : pastille avec BORDURE et fond soutenu, lisible d'un coup
   d'oeil (avant : teintes quasi blanches, l'etat se devinait). */
.plan-statut { font-size: 10px; font-weight: 700; padding: 2px 10px; border-radius: var(--radius-full); white-space: nowrap; border: 1px solid transparent; }
.plan-statut.st-conserver { background: var(--warning-light); color: var(--warning-dark); border-color: var(--warning); }
.plan-statut.st-en_cours { background: var(--primary-100); color: var(--primary-700); border-color: #F2A9C6; }
.plan-statut.st-fait { background: #D7F2E4; color: var(--success-dark); border-color: var(--success); }
.plan-statut.st-ecarte { background: var(--neutral-100); color: var(--neutral-700); border-color: var(--neutral-300); }
/* Effort de correction : micro-pastille (critere de decision), fond ambre si eleve. */
.pi-effort { display: inline-block; padding: 1px 8px; border-radius: 999px; font-weight: 600; background: var(--neutral-100); border: 1px solid var(--neutral-200); }
.pi-effort--eleve { background: var(--warning-light); color: var(--warning-dark); border-color: var(--warning); }
.plan-panel { padding: var(--s4); border-top: 1px solid var(--neutral-200); background: var(--neutral-50); }
.plan-panel__t { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--influa-rose); margin: var(--s4) 0 var(--s2); }
.plan-panel__t:first-child { margin-top: 0; }
.plan-urls { max-height: 220px; }

/* Plan : controles CRUD inline (statut, modifier, retirer) */
.plan-edit { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: var(--s4); padding-bottom: var(--s4); border-bottom: 1px solid var(--neutral-200); }
.plan-statuts { display: inline-flex; gap: 3px; padding: 3px; background: var(--neutral-100); border-radius: var(--radius-full); }
.plan-stbtn { font: inherit; font-size: 11px; font-weight: 600; color: var(--neutral-600); background: none; border: 0; padding: 3px 11px; border-radius: var(--radius-full); cursor: pointer; }
.plan-stbtn:hover { color: var(--influa-noir); }
.plan-stbtn.est-actif { background: var(--neutral-0); box-shadow: var(--shadow-sm); }
.plan-stbtn.st-conserver.est-actif { color: var(--warning-dark); }
.plan-stbtn.st-en_cours.est-actif { color: var(--influa-rose); }
.plan-stbtn.st-fait.est-actif { color: var(--success-dark); }
.plan-stbtn.st-ecarte.est-actif { color: var(--neutral-600); }
.plan-modif { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; flex: 1 1 260px; }
.plan-modif__titre { font: inherit; font-size: 13px; padding: 5px 10px; border: 1px solid var(--neutral-200); border-radius: var(--radius-md); flex: 1 1 200px; min-width: 0; }
.plan-modif__sel { font: inherit; font-size: 12px; padding: 5px 8px; border: 1px solid var(--neutral-200); border-radius: var(--radius-md); background: var(--neutral-0); cursor: pointer; }
.plan-suppr { margin-left: auto; }

/* Bouton Controler + pop-up de resultat du controle */
.btn-controle { border-color: var(--influa-cyan); color: var(--influa-cyan); }
.btn-controle:hover { background: var(--influa-cyan); color: #fff; border-color: var(--influa-cyan); }
.modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: var(--s4); }
.modal[hidden] { display: none; }
.modal__overlay { position: absolute; inset: 0; background: rgba(20, 20, 32, .5); }
.modal__box { position: relative; z-index: 1; width: 100%; max-width: 460px; max-height: 84vh; overflow-y: auto; background: var(--neutral-0); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: var(--s6); animation: kpiDropIn .18s ease; }
.modal__x { position: absolute; top: var(--s3); right: var(--s3); border: 1px solid var(--neutral-200); background: var(--neutral-0); color: var(--neutral-600); font: inherit; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: var(--radius-full); cursor: pointer; }
.modal__x:hover { border-color: var(--influa-rose); color: var(--influa-rose); }
.mc-titre { font-size: 17px; font-weight: 700; color: var(--influa-noir); margin: 0 0 var(--s2); padding-right: 64px; }
.mc-titre.mc-ok { color: var(--success-dark); }
.mc-titre.mc-ko { color: var(--error-dark); }
.mc-titre.mc-ok::before, .mc-titre.mc-ko::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; }
.mc-titre.mc-ok::before { background: var(--success); }
.mc-titre.mc-ko::before { background: var(--error); }
.mc-sub { font-size: 13px; line-height: 1.55; color: var(--neutral-600); margin: 0 0 var(--s4); }
.mc-urls { list-style: none; margin: 0 0 var(--s4); padding: var(--s3) var(--s4); background: var(--neutral-50); border-radius: var(--radius-md); max-height: 200px; overflow-y: auto; }
.mc-urls li { font-size: 12.5px; color: var(--neutral-700); padding: 2px 0; }
.mc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* Confirmation (data-confirmer) : boutons nets, rouge plein pour un retrait/suppression. */
.confirmer__actions { justify-content: flex-end; margin-top: var(--s4); }
.btn-mini.btn-danger { background: var(--error, #EF4444); border-color: var(--error, #EF4444); color: #fff; }
.btn-mini.btn-danger:hover { background: var(--error-dark, #B91C1C); border-color: var(--error-dark, #B91C1C); color: #fff; }
.btn-mini.btn-primaire { background: var(--influa-rose, #E73C7E); border-color: var(--influa-rose, #E73C7E); color: #fff; }
.btn-mini.btn-primaire:hover { filter: brightness(0.95); color: #fff; }
/* CONVENTION Jerome : bouton qui declenche un CALCUL ou un TRAITEMENT necessaire
   = ROUGE VIF plein (enrichir les cocons, relever, generer un plan, collecter...).
   A distinguer du rouge "danger" (suppression) : ici le rouge appelle a AGIR.
   Rouge plus vif que --error pour un signal fort et non equivoque. */
.btn-mini.btn-calcul { background: #FF2E1F; border-color: #FF2E1F; color: #fff; font-weight: 700; box-shadow: 0 1px 3px rgba(255, 46, 31, .35); }
.btn-mini.btn-calcul:hover { background: #E01400; border-color: #E01400; color: #fff; background-image: none; box-shadow: 0 2px 9px rgba(255, 46, 31, .45); transform: translateY(-1px); }
.mc-spin { width: 26px; height: 26px; border: 3px solid var(--neutral-200); border-top-color: var(--influa-rose); border-radius: 50%; animation: mcSpin .8s linear infinite; }
@keyframes mcSpin { to { transform: rotate(360deg); } }

/* Plan : filtres par type (axe) */
.plan-filtres { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s5); }
.plan-filtre { font: inherit; font-size: 12px; font-weight: 600; color: var(--neutral-600); background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-full); padding: 5px 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.plan-filtre:hover { border-color: var(--influa-rose); color: var(--influa-rose); }
.plan-filtre.est-actif { background: var(--influa-rose); border-color: var(--influa-rose); color: #fff; }
.pf-n { font-family: var(--font-mono); font-size: 10px; font-weight: 700; background: var(--neutral-100); color: var(--neutral-600); border-radius: var(--radius-full); padding: 0 6px; }
.plan-filtre.est-actif .pf-n { background: rgba(255, 255, 255, .25); color: #fff; }
.plan-item.pf-cache { display: none; }

/* Analyse page par page : tableau trie/filtrable */
.pa-table-wrap { overflow-x: auto; border: 1px solid var(--neutral-200); border-radius: var(--radius-md); }
.pa-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pa-table thead th { background: var(--neutral-50); text-align: right; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-600); padding: 10px 12px; cursor: pointer; white-space: nowrap; border-bottom: 2px solid var(--neutral-200); user-select: none; }
.pa-table thead th:hover { color: var(--influa-rose); }
.pa-table th[data-sort="url"] { text-align: left; }
.pa-table th[aria-sort]::after { content: ""; display: inline-block; margin-left: 5px; border-left: 4px solid transparent; border-right: 4px solid transparent; vertical-align: middle; }
.pa-table th[aria-sort="ascending"]::after { border-bottom: 5px solid currentColor; }
.pa-table th[aria-sort="descending"]::after { border-top: 5px solid currentColor; }
.pa-table td { padding: 7px 12px; text-align: right; border-bottom: 1px solid var(--neutral-100); white-space: nowrap; }
.pa-row:hover td { background: var(--neutral-50); }
.pa-row.pa-cache, .pa-detail.pa-cache { display: none; }
.pa-table td.pa-c-url { text-align: left; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
.pa-c-url a { color: var(--neutral-700); text-decoration: none; font-weight: 500; }
.pa-c-url a:hover { color: var(--rose); text-decoration: underline; }
.pa-cell-ax { font-family: var(--font-mono); font-weight: 600; color: var(--st-dark); }
.pa-c-num { font-family: var(--font-mono); color: var(--neutral-600); }
.pa-th-act { text-align: center; }
.pa-table .score-mini { display: inline-block; min-width: 32px; }
.pa-table .pa-prompt-btn, .pa-table .pa-ok { margin: 0; }
.pa-detail > td { text-align: left; white-space: normal; background: var(--neutral-50); padding: var(--s4); }
.pa-axes-full { display: flex; flex-wrap: wrap; gap: 5px; margin: var(--s2) 0 var(--s3); }

/* ================= Systeme de boutons : etats unifies (soin + accessibilite) ================= */
/* Focus clavier visible et coherent sur tous les boutons et onglets */
.btn:focus-visible, .btn-mini:focus-visible, .btn-icone:focus-visible, .btn-controle:focus-visible,
.plan-filtre:focus-visible, .plan-stbtn:focus-visible, .prompt-copier:focus-visible,
.pa-prompt-btn:focus-visible, .kpi-i:focus-visible, .kpi-drop__close:focus-visible, .modal__x:focus-visible,
.audit-subnav__item:focus-visible, .btn-chevron:focus-visible, .btn-ghost:focus-visible, .pa-table thead th:focus-visible {
  outline: 2px solid var(--influa-rose); outline-offset: 2px; border-radius: var(--radius-sm);
}
/* Retour tactile au clic (le bouton s'enfonce) */
.btn:active { transform: translateY(0); }
.btn-mini:active, .btn-controle:active, .plan-filtre:active, .prompt-copier:active, .pa-prompt-btn:active, .btn-icone:active { transform: translateY(0); box-shadow: none; }
/* Etat desactive coherent partout */
.btn:disabled, .btn-mini:disabled, .btn-icone:disabled, .plan-stbtn:disabled, .plan-filtre:disabled,
.prompt-copier:disabled, .pa-prompt-btn:disabled, .btn-chevron:disabled, .btn:disabled:hover {
  opacity: .5; cursor: not-allowed; transform: none; box-shadow: none;
}
/* Primaire : ombre plus riche au survol */
.btn:hover { box-shadow: 0 8px 20px -6px rgba(231, 60, 126, .55); }
.btn:focus-visible { outline-offset: 3px; }

/* PageSpeed : recommandations detaillees Google */
.psi-reco-t { font-size: 12px; font-weight: 700; color: var(--neutral-600); margin: var(--s4) 0 var(--s2); }
.psi-recos { list-style: none; margin: 0 0 var(--s3); padding: 0; display: flex; flex-direction: column; gap: 8px; }
.psi-reco { border: 1px solid var(--neutral-200); border-left: 3px solid var(--influa-cyan); border-radius: var(--radius-md); background: var(--neutral-0); padding: var(--s3) var(--s4); }
.psi-reco__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); }
.psi-reco__titre { font-size: 13px; font-weight: 600; color: var(--influa-noir); min-width: 0; }
.psi-reco__gain { flex: 0 0 auto; font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--influa-cyan); background: var(--neutral-50); border-radius: var(--radius-full); padding: 1px 9px; white-space: nowrap; }
.psi-reco__gain--muted { color: var(--neutral-600); }
.psi-reco__val { display: block; font-family: var(--font-mono); font-size: 11px; color: var(--neutral-600); margin-top: 3px; }
.psi-reco__desc { display: block; font-size: 12px; line-height: 1.5; color: var(--neutral-600); margin-top: 4px; }

/* Ordre d'affichage des sections de l'onglet Audit (sans deplacer le markup) */
.audit-subnav { order: 0; }
#sec-apercu { order: 1; }
#sec-controles { order: 2; }
#sec-pages { order: 3; }

/* Sous-bande EEAT */
.eeat-band { margin-top: var(--s5); }
.eeat-band__t { font-size: 12px; font-weight: 600; color: var(--neutral-600); margin: 0 0 var(--s2); }
.eeat-band__t .hint { font-weight: 400; }

/* Repartition des types de pages par niveau de qualite (barres empilees cliquables).
   Couleurs de STATUT du design system, jamais des teintes categorielles : le niveau
   de qualite est un etat, pas une identite. Les libelles restent en encre. */
.aq { margin: var(--s4) 0 var(--s3); padding: 0; }
.aq__t { font-size: 12px; font-weight: 600; color: var(--neutral-600); margin: 0 0 var(--s2); }
.aq__t .hint { font-weight: 400; margin-left: 6px; }
.aq__legende { display: flex; flex-wrap: wrap; gap: var(--s3); margin-bottom: var(--s2); }
.aq__leg { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--neutral-600); }
.aq__pastille { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.aq__pastille--v { background: #2D7D46; }
.aq__pastille--o { background: #E8973C; }
.aq__pastille--r { background: #D0433F; }
.aq__row { display: flex; align-items: center; gap: var(--s3); width: 100%; padding: 3px var(--s2);
  background: none; border: 0; border-radius: var(--radius-sm); cursor: pointer; font: inherit;
  text-align: left; transition: background var(--fast); }
.aq__row:hover { background: var(--neutral-50); }
.aq__row.est-actif { background: var(--neutral-100); }
.aq__row:focus-visible { outline: 2px solid var(--influa-cyan); outline-offset: 1px; }
.aq__lib { flex: 0 0 118px; font-size: 12.5px; color: var(--influa-noir); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.aq__bar { flex: 0 1 auto; display: flex; gap: 2px; height: 14px; min-width: 2px; }
.aq__seg { display: block; border-radius: 2px; }
.aq__seg:first-child { border-top-left-radius: 4px; border-bottom-left-radius: 4px; }
.aq__seg:last-child { border-top-right-radius: 4px; border-bottom-right-radius: 4px; }
.aq__seg--v { background: #2D7D46; }
.aq__seg--o { background: #E8973C; }
.aq__seg--r { background: #D0433F; }
.aq__seg--tous { background: var(--neutral-200); }
.aq__n { flex: 0 0 auto; margin-left: auto; min-width: 30px; text-align: right; font-family: var(--font-mono);
  font-size: 12px; font-weight: 700; color: var(--neutral-600); }
/* Repli lecture : la meme information en tableau, pour qui ne distingue pas les couleurs */
.aq__table { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Auto-defiance du classement : badge de signaux contradictoires */
.pa-badge-conflit { background: #FBEEDC; color: #A65B08; cursor: help; font-weight: 800; }
.plan-suppr { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.plan-suppr-motifs { display: inline-flex; align-items: center; gap: 6px; }
.plan-suppr-motifs[hidden] { display: none; }

/* Chat du dossier : conversation avec les mesures et les documents charges */
.chat-fil { display: flex; flex-direction: column; gap: 10px; max-height: 520px; overflow-y: auto; padding: var(--s3) 0; }
.chat-msg { max-width: 78ch; padding: 10px 14px; border-radius: var(--radius-md); background: var(--neutral-50); }
.chat-msg--user { align-self: flex-end; background: #E9F7F8; }
.chat-msg--assistant { align-self: flex-start; }
.chat-msg--echec { background: #F7DEDD; }
.chat-msg__qui { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-600); font-weight: 600; margin-bottom: 4px; }
.chat-msg__texte { margin: 0; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.chat-form { display: flex; gap: 8px; align-items: flex-end; margin-top: var(--s3); }
.chat-form textarea { flex: 1; resize: vertical; min-height: 64px; padding: 10px 12px; border: 1px solid var(--neutral-300); border-radius: var(--radius-sm); font: inherit; }
.chat-docs li { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.chat-upload { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: var(--s3); }
.agent-audit { margin-top: var(--s4); }
.agent-docs { margin-bottom: var(--s3); border: 1px solid var(--neutral-200); border-radius: var(--radius-sm); padding: 10px 12px; }
.agent-docs summary { cursor: pointer; font-weight: 600; font-size: 13px; color: var(--neutral-700); }
.chat-props { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.chat-prop { border: 1px solid var(--neutral-200); border-left: 3px solid var(--rose-500, #D6336C); border-radius: var(--radius-sm); padding: 10px 12px; background: var(--neutral-0, #fff); }
.chat-prop strong { display: block; font-size: 13px; margin: 2px 0 4px; }
.chat-prop__meta { font-size: 11px; display: inline-flex; align-items: center; gap: 6px; }
.chat-prop__dir { margin: 0 0 6px; white-space: pre-wrap; }
.chat-prop__actions { display: flex; gap: 8px; }
/* Priorite de proposition : pastille coloree (P0 rouge, P1 orange, P2 neutre)
   pour que le signal de triage saute aux yeux, pas un chiffre gris. */
.chat-prio { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; letter-spacing: .02em; }
.chat-prio--p0 { background: var(--error-light); color: var(--error-dark); border: 1px solid var(--error); }
.chat-prio--p1 { background: var(--warning-light); color: var(--warning-dark); border: 1px solid var(--warning); }
.chat-prio--p2 { background: var(--neutral-100); color: var(--neutral-700); border: 1px solid var(--neutral-300); }
/* Compteur d'alerte de la sous-nav : rouge quand n>0, comme le compteur de
   section (avant : gris, le signal etait eteint). Inversion blanche si actif. */
.audit-subnav__count--alerte { background: var(--error-light); color: var(--error-dark); }
.audit-subnav__item.is-active .audit-subnav__count--alerte { background: rgba(255,255,255,.3); color: #fff; }
/* Colonne "Clics potentiels" = le GAIN a aller chercher : traitee comme un
   resultat (bande verte + bordure gauche + gras), pas une colonne de support. */
.gsc-triable td.opp-gain { background: var(--success-light); border-left: 2px solid var(--success); color: var(--success-dark); }
.gsc-triable td.opp-gain strong { font-weight: 700; color: var(--success-dark); }
.gsc-triable th.opp-gain-th { background: var(--success-light); color: var(--success-dark); }
/* Tuile-verdict de la vue Marque : la part de marque ressort des 3 tuiles de
   contexte (fond rose, bordure marque, valeur soutenue, eyebrow). */
.sf-cmp__kpi--resultat { background: var(--primary-50); border: 1.5px solid var(--primary-600) !important; }
.sf-cmp__kpi--resultat strong { color: var(--primary-700); }
.sf-cmp__kpi-t { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--primary-600); }
.btn-mini--sobre { background: transparent; color: var(--neutral-600); border: 1px solid var(--neutral-300); }

/* Pictos de section : pastille punchy + trait blanc, structure les accordeons */
.sec-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 9px; margin-right: 10px;
  color: #fff; vertical-align: -7px; flex: 0 0 auto;
  box-shadow: 0 2px 6px rgba(20, 20, 40, .18), inset 0 -2px 0 rgba(0, 0, 0, .12);
}
.sec-ico svg { width: 15px; height: 15px; }
.sec-ico--rose    { background: linear-gradient(135deg, #F06595, #D6336C); }
.sec-ico--orange  { background: linear-gradient(135deg, #FF922B, #F76707); }
.sec-ico--vert    { background: linear-gradient(135deg, #20C997, #0CA678); }
.sec-ico--bleu    { background: linear-gradient(135deg, #4DABF7, #1C7ED6); }
.sec-ico--violet  { background: linear-gradient(135deg, #9775FA, #7048E8); }
.sec-ico--ambre   { background: linear-gradient(135deg, #FCC419, #F59F00); }
.sec-ico--ardoise { background: linear-gradient(135deg, #748FFC, #4C6EF5); }
.sec-ico--degrade { background: linear-gradient(135deg, #F06595, #7048E8); }
.sec-ico--citron  { background: linear-gradient(135deg, #A9E34B, #74B816); }
.sec-ico--turquoise { background: linear-gradient(135deg, #3BC9DB, #1098AD); }
.perf-delta { font-size: 12px; font-weight: 700; }
.perf-delta--haut, .sf-cmp__kpi span .perf-delta--haut { color: #2B8A3E; }
.perf-delta--bas, .sf-cmp__kpi span .perf-delta--bas { color: #C92A2A; }
/* Position de chute d'un decrochage = le point d'arrivee alarmant : pastille
   rouge pleine (avant : simple texte rouge, moins marque que le point de depart). */
.sr-chute { display: inline-block; min-width: 34px; padding: 1px 8px; border-radius: 999px; background: rgba(217,48,37,.12); color: #C5221F; font-weight: 700; font-size: 11px; text-align: center; }
.gsc-graphe { margin: var(--s3) 0 0; }
.gsc-graphe svg { display: block; width: 100%; height: 120px; }
.gsc-graphe__tete { display: flex; align-items: baseline; gap: 8px; font-size: 13px; margin-bottom: 4px; }
.gsc-graphe__pastille { width: 10px; height: 10px; border-radius: 3px; align-self: center; flex: 0 0 auto; }
.gsc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: var(--s3) 0 0; }
.gsc-chip { border: 1px solid var(--neutral-300); background: transparent; border-radius: 999px; padding: 5px 14px; font: inherit; font-size: 13px; cursor: pointer; color: var(--neutral-700); text-decoration: none; display: inline-block; }
.gsc-chip--inactif { cursor: default; opacity: .5; }
.gsc-chips .hint { align-self: center; }
.gsc-periode-form { display: flex; gap: 6px; align-items: center; }
.gsc-periode-form input[type="date"] { border: 1px solid var(--neutral-300); border-radius: var(--radius-sm); padding: 4px 8px; font: inherit; font-size: 13px; }
.audit-subnav__item--avenir { opacity: .45; cursor: default; }
button.gsc-kpi { font: inherit; text-align: left; cursor: pointer; background: var(--neutral-0, #fff); border: 1px solid var(--neutral-200); border-radius: var(--radius-sm); transition: background-color .12s ease, color .12s ease, border-color .12s ease; }
button.gsc-kpi:hover { border-color: var(--neutral-400); }
/* Aplats du design system GSC : la carte active prend la couleur pleine de sa mesure */
.gsc-kpi--clics.is-active { background: #4285F4; border-color: #4285F4; }
.gsc-kpi--impressions.is-active { background: #5E35B1; border-color: #5E35B1; }
.gsc-kpi--position.is-active { background: #E8710A; border-color: #E8710A; }
.gsc-kpi--ctr.is-active { background: #00897B; border-color: #00897B; }
.gsc-kpi--ga4.is-active { background: #1A73E8; border-color: #1A73E8; }
.gsc-kpi--sr.is-active { background: #2A5BD7; border-color: #2A5BD7; }
.gsc-kpi--sem.is-active { background: #FF642D; border-color: #FF642D; }
/* Badges de position SE Ranking : la meme lecture couleur que l'outil */
.sr-pos { display: inline-block; min-width: 34px; text-align: center; font-weight: 700; font-size: 12.5px; border-radius: 7px; padding: 2px 7px; }
.sr-pos--top3 { background: rgba(43, 178, 74, .14); color: #1E7E34; }
.sr-pos--top10 { background: rgba(42, 91, 215, .12); color: #2A5BD7; }
.sr-pos--top30 { background: rgba(245, 166, 35, .16); color: #B26A00; }
.sr-pos--loin { background: var(--neutral-100, #f2f2f6); color: var(--neutral-600, #6b6b78); }
.sr-pos--hors { background: rgba(217, 48, 37, .1); color: #C5221F; font-size: 11px; }
/* ---- Design system Semrush : cards blanches, gros chiffres noirs, accents
   de marque orange FF642D, echelle Keyword Difficulty officielle. ---- */
.sem-bloc-titre { margin: 38px 0 6px; font-size: 16px; font-weight: 700; color: var(--influa-noir, #171717); }
.sem-explique { margin: 0 0 16px; max-width: 860px; line-height: 1.55; }
.sec-outil--sem .sf-cmp--selecteur { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.sec-outil--sem .gsc-defile { margin-top: 10px; }
.sec-outil--sem .gsc-defile td, .sec-outil--sem .gsc-defile th { padding: 10px 12px; }
.sec-outil--sem .gsc-graphe-panneau { margin: 22px 0 30px; }
.sem-bloc-titre .hint { font-weight: 400; margin-left: 6px; }
.sf-cmp__kpi.sem-kpi { background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.sf-cmp__kpi.sem-kpi strong { font-size: 28px; line-height: 1.1; color: var(--influa-noir, #171717); }
.sf-cmp__kpi.sem-kpi span { font-size: 12.5px; color: var(--neutral-600, #6b6b78); }
/* Les cartes GSC actives passent en texte blanc sur aplat : les cartes Semrush
   restent noires sur fond blanc (design Semrush), quelle que soit la regle
   generique button.gsc-kpi.is-active. */
button.gsc-kpi.sem-kpi.is-active { border-color: #FF642D; box-shadow: inset 0 0 0 1.5px #FF642D; background: rgba(255, 100, 45, .04); }
button.gsc-kpi.sem-kpi.is-active strong { color: var(--influa-noir, #171717); }
button.gsc-kpi.sem-kpi.is-active span { color: var(--neutral-600, #6b6b78); }
button.gsc-kpi.sem-kpi.is-active strong.sem-as, strong.sem-as { color: #fff; }
button.gsc-kpi.sem-kpi.is-active strong.sem-as--moyen, strong.sem-as--moyen { color: #5a4300; }
.sf-cmp__kpi.sem-kpi strong.sem-as, .sem-as { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; color: #fff !important; font-size: 21px !important; line-height: 1 !important; }
.sem-as--fort { background: #009F81; }
.sem-as--moyen { background: #FDC23C; color: #5a4300 !important; }
.sem-as--faible { background: #FF8C43; }
.sem-as--na { background: var(--neutral-300, #d5d5dc); }
.sem-bl-detail { margin: 6px 0 0; }
.ga4-barre--sem { background: rgba(255, 100, 45, .16); }
.sem-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 14px; margin: 0 0 20px; }
.sem-stat { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 18px 20px; font: inherit; text-align: left; cursor: pointer; transition: border-color var(--fast), background var(--fast); }
.sem-stat strong { font-size: 28px; line-height: 1; }
.sem-stat span { font-size: 12.5px; line-height: 1.45; color: var(--neutral-600, #6b6b78); }
/* Tuiles-verdict de l'ecart concurrentiel : le FOND porte le sens (pas seulement
   le chiffre), pour que chaque etat se lise d'un coup d'oeil. */
.sem-stat--absent { background: #FDECEA; border-color: #F3B9B0; }
.sem-stat--absent strong { color: #D1002F; }
.sem-stat--distance { background: #FFF2E8; border-color: #FAD2B0; }
.sem-stat--distance strong { color: #C2410C; }
.sem-stat--devant { background: #E7F8F1; border-color: #A9E3CE; }
.sem-stat--devant strong { color: #007A63; }
.sem-stat--ia { cursor: default; background: #EEEDFB; border-color: #CFCcF3; }
.sem-stat--ia strong { color: #6A63D8; }
/* Etat actif : renfort de la couleur PROPRE de la tuile (pas un orange generique). */
.sem-stat.is-active { border-width: 2px; box-shadow: inset 0 0 0 1px currentColor; }
.sem-kd { display: inline-block; min-width: 30px; text-align: center; font-weight: 700; font-size: 12px; border-radius: 7px; padding: 2px 7px; color: #fff; }
.sem-kd--tresfacile { background: #009F81; }
.sem-kd--facile { background: #59DDAA; color: #0b4a35; }
.sem-kd--possible { background: #FDC23C; color: #5a4300; }
.sem-kd--difficile { background: #FF8C43; }
.sem-kd--dur { background: #FF4953; }
.sem-kd--tresdur { background: #D1002F; }
.sem-kd--na { background: var(--neutral-200, #e4e4ea); color: var(--neutral-600, #6b6b78); }
.sem-int { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 5px; font-size: 11px; font-weight: 700; margin-right: 3px; }
.sem-int--com { background: #FFF1C2; color: #8a6d00; }
.sem-int--info { background: #DDEBFF; color: #1a56b0; }
.sem-int--nav { background: #EBE3FF; color: #5b3bb0; }
.sem-int--trans { background: #D9F5E5; color: #0b7a44; }
.sem-int--na { background: var(--neutral-100, #f2f2f6); color: var(--neutral-600, #6b6b78); }
.sem-ia-badge { display: inline-block; background: linear-gradient(120deg, #6A63D8, #A78BFA); color: #fff; font-size: 10.5px; font-weight: 700; border-radius: var(--radius-full, 999px); padding: 2px 8px; }
/* Fiche de fonctionnement d'un outil (Reglages) : 4 cellules toujours visibles */
.outil-fonctionnement { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 12px; margin: 10px 0 14px; padding: 14px 16px; background: var(--neutral-50, #f7f7fa); border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; }
.of-cellule { display: grid; grid-template-columns: 26px 1fr; grid-template-rows: auto auto; column-gap: 9px; row-gap: 2px; align-items: start; }
.of-ico { grid-row: 1 / 3; width: 26px; height: 26px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.of-ico svg { width: 16px; height: 16px; }
.of-ico--acces { background: #5E35B1; }
.of-ico--nouveau { background: #0B8043; }
.of-ico--maj { background: #1A73E8; }
.of-ico--alertes { background: #E8710A; }
.of-titre { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-600, #6b6b78); align-self: end; }
.of-texte { font-size: 12.5px; line-height: 1.5; color: var(--influa-noir, #17171f); }
/* Analyse de marche : ajout et suggestions de concurrents */
.marche-ajout2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; margin: 6px 0 20px; }
.marche-carte { background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 16px 18px; }
.marche-carte h3 { margin: 0 0 4px; font-size: 15px; }
.marche-carte .hint { display: block; margin-bottom: 10px; }
.marche-carte__form { display: flex; flex-direction: column; gap: 8px; }
.marche-carte__form input[type="text"] { width: 100%; box-sizing: border-box; }
.marche-e1__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-top: 24px; }
.marche-e1__head:first-child { margin-top: 0; }
.bloc-sous { display: block; margin-top: 4px; font-weight: 400; font-size: 13px; color: var(--neutral-600, #5f5f6e); line-height: 1.5; }
.section-head__sub, .doc-sous { font-size: 13px; color: var(--neutral-600, #5f5f6e); line-height: 1.5; }
.bloc-titre { font-size: 16px; font-weight: 700; color: var(--influa-noir, #1a1a1a); margin: 0; letter-spacing: -0.01em; }
.bloc-badge, .marche-e1__badge { display: inline-block; background: var(--brand-600, #d63384); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.02em; border-radius: 7px; padding: 3px 9px; margin-right: 10px; vertical-align: 2px; }
h2 .bloc-badge + img, h2 .bloc-badge + span.tool-badge { margin-left: 2px; }
/* Chip "Actualisation" d'un bloc : frequence + prochaine date (helper blocActu) */
.bloc-actu { display: inline-block; font-size: 11px; font-weight: 600; color: var(--neutral-600, #6d6d78); background: var(--neutral-100, #ededf2); border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 999px; padding: 2px 10px; white-space: nowrap; vertical-align: middle; }
.bloc-actu strong { color: var(--influa-noir, #1a1a1a); font-weight: 700; }
.bloc-actu--manuel { font-style: italic; }
/* Marqueur "estime" sous un en-tete de colonne (trafic / part de voix Semrush) */
.e1-est { display: inline-block; font-size: 9.5px; font-weight: 600; font-style: italic; color: #b4650e; text-transform: none; letter-spacing: 0; }
.marche-e1__aide { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--neutral-300, #d5d5de); background: #fff; color: var(--neutral-600, #5f5f6e); font-weight: 700; cursor: pointer; }
.marche-e1__aide:hover { background: var(--neutral-50, #f7f7fa); }
.marche-regles { border-left: 3px solid var(--brand-600, #d63384); background: var(--neutral-50, #f7f7fa); border-radius: 0 10px 10px 0; padding: 10px 14px; margin: 8px 0 12px; font-size: 13px; color: var(--neutral-700, #4a4a56); }
.marche-filtres { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0 12px; background: var(--neutral-50, #f7f7fa); border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 10px; padding: 10px 12px; }
.marche-filtres__champ { position: relative; flex: 1 1 240px; min-width: 200px; display: flex; align-items: center; }
.marche-filtres__champ svg { position: absolute; left: 11px; color: var(--neutral-500, #8a8a96); pointer-events: none; }
.marche-filtres__champ input[type="search"] { width: 100%; padding: 8px 12px 8px 32px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 8px; background: #fff; font-size: 13px; }
.marche-filtres__champ input[type="search"]:focus { outline: none; border-color: var(--brand-600, #d63384); box-shadow: 0 0 0 3px rgba(214, 51, 132, 0.12); }
.marche-filtres select { padding: 8px 10px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 8px; background: #fff; font-size: 13px; color: inherit; }
.marche-filtres select:focus { outline: none; border-color: var(--brand-600, #d63384); box-shadow: 0 0 0 3px rgba(214, 51, 132, 0.12); }
.marche-filtres__compteur { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12px; color: var(--neutral-600, #5f5f6e); white-space: nowrap; }
.marche-filtres__reset { background: transparent; border-color: transparent; color: var(--neutral-600, #5f5f6e); }
.marche-filtres__reset:hover { background: #fff; border-color: var(--neutral-300, #d5d5de); }
.marche-warn { color: #B26A00; font-size: 12px; font-weight: 600; }
.pill--type-site { background: #FCE4EF; color: #C2185B; }
.pill--type-page { background: #EEF0F4; color: #4A4A56; }
/* Part de voix forte/haute = la metrique qui fait foi pour le rapport de force :
   pastille tintee, pas un simple texte colore. */
.marche-sov--haute { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #FDE3E1; color: #B3261E; font-weight: 700; }
.marche-sov--forte { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #FDEFD8; color: #9A6200; font-weight: 700; }
/* Score de menace = un verdict de tete : pastille tintee (comme les pastilles
   d'ecart voisines), pas un texte plat. */
.marche-menace { display: inline-block; padding: 1px 8px; border-radius: 999px; font-weight: 700; font-size: 12px; }
.marche-menace--haute { background: #FDE3E1; color: #B3261E; border: 1px solid #F2B8B3; }
.marche-menace--elevee { background: #FDEFD8; color: #9A6200; border: 1px solid #F0D9A8; }
.marche-menace--faible { background: #EEF0F4; color: #5f5f6e; border: 1px solid var(--neutral-200, #e4e4ea); }
/* Notoriete IA (0-100) : rapatriee dans le tableau E1. Cyan = connu des IA. */
.marche-noto { display: inline-block; padding: 1px 8px; border-radius: 999px; font-weight: 700; font-size: 12px; }
.marche-noto--haute { background: #d7f0f2; color: #076e77; border: 1px solid #a9dfe3; }
.marche-noto--moyenne { background: #FDEFD8; color: #9A6200; border: 1px solid #F0D9A8; }
.marche-noto--faible { background: #EEF0F4; color: #5f5f6e; border: 1px solid var(--neutral-200, #e4e4ea); }
/* Courbe d'evolution GEO (E4) : notoriete IA (rose) + taux de citation (cyan) */
.geo-evo { margin: 14px 0 4px; }
.geo-evo__leg { display: flex; gap: 18px; margin: 2px 0 8px; font-size: 12.5px; color: var(--neutral-600, #6d6d78); }
.geo-evo__lg { display: inline-flex; align-items: center; gap: 6px; }
.geo-evo__lg strong { color: var(--influa-noir, #1a1a1a); }
.geo-evo__lg::before { content: ""; width: 10px; height: 10px; border-radius: 999px; }
.geo-evo__lg--noto::before { background: #e73c7e; }
.geo-evo__lg--cit::before { background: #00a8b5; }
.geo-evo__graphe { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 10px; padding: 8px 10px 4px; background: #fff; }
.geo-evo__svg { display: block; width: 100%; height: 110px; }
.geo-evo__dates { display: flex; justify-content: space-between; font-size: 11px; color: var(--neutral-500, #6b6b76); margin-top: 2px; }

/* ---- E7 Google AI Overview (surface SERP de Google, source SE Ranking) ---- */
.geo-aio { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--neutral-200, #e4e4ea); }
.geo-aio__head { margin-bottom: 12px; }
.aio-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 10px 0 16px; }
.aio-kpi { padding: 14px 16px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; background: var(--surface-card, #fff); display: flex; flex-direction: column; gap: 5px; }
.aio-kpi__k { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--neutral-600, #6d6d78); }
.aio-kpi__v { font-size: 30px; line-height: 1; font-weight: 800; color: var(--influa-noir, #1a1a1a); }
.aio-kpi__d { font-size: 13px; color: var(--neutral-700, #4a4a56); }
.aio-kpi__d strong { color: var(--influa-noir, #1a1a1a); }
/* Contraste fort selon la presence : fond tinte + bordure + resultat colore. */
.aio-kpi--fort { background: #e9f8fa; border-color: #a9e2e8; }
.aio-kpi--fort .aio-kpi__v { color: #00838d; }
.aio-kpi--moyen { background: #fdf0f6; border-color: #f5d0e3; }
.aio-kpi--moyen .aio-kpi__v { color: var(--brand-600, #d63384); }
.aio-kpi--faible { background: #fdeef4; border-color: #f3c6dd; }
.aio-kpi--faible .aio-kpi__v { color: var(--brand-600, #d63384); }
.aio-opps { margin: 4px 0 14px; }
.aio-opps__t { font-size: 13px; color: var(--neutral-800, #2a2a32); margin-bottom: 8px; }
.aio-opps__t strong { color: var(--brand-600, #d63384); }
.aio-opps__liste { display: flex; flex-wrap: wrap; gap: 6px; }
.aio-opp { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; background: var(--neutral-50, #f7f7fa); border: 1px solid var(--neutral-200, #e4e4ea); font-size: 12.5px; color: var(--neutral-800, #2a2a32); }
.aio-opp__pos { font-weight: 700; color: var(--brand-600, #d63384); font-size: 11.5px; }
.aio-opp--plus { font-style: italic; color: var(--neutral-600, #6d6d78); background: transparent; border-style: dashed; }
@media (max-width: 700px) { .aio-kpis { grid-template-columns: 1fr; } }
/* Controle utilisateur (E5/E7) : chevron lien externe + elements cliquables. */
.ext-ico { width: 13px; height: 13px; }
a.geo-card__marque { text-decoration: none; cursor: pointer; transition: filter 0.12s; }
a.geo-card__marque:hover { filter: brightness(1.08); }
a.geo-card__marque:hover .geo-card__nom { text-decoration: underline; }
.geo-card__ext { display: inline-flex; margin-left: 4px; color: #fff; opacity: 0.55; flex: none; }
a.geo-card__marque:hover .geo-card__ext { opacity: 1; }
.aio-grp { margin: 4px 0 12px; }
a.aio-opp { text-decoration: none; cursor: pointer; transition: border-color 0.12s, background 0.12s; }
.aio-opp__ext { display: inline-flex; opacity: 0.5; }
a.aio-opp:hover .aio-opp__ext { opacity: 1; }
.aio-opp--cite { background: #e9f8fa; border-color: #a9e2e8; }
.aio-opp--cite .aio-opp__pos, .aio-opp--cite .aio-opp__ext { color: #00838d; }
a.aio-opp--cite:hover { border-color: #00a8b5; background: #ddf3f5; }
.aio-opp--non { background: #fdf0f6; border-color: #f5d0e3; }
a.aio-opp--non:hover { border-color: var(--brand-600, #d63384); background: #fbe4ef; }

/* ---- G1 Recommandation strategique (etape Recommander) ---- */
.reco-tete { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.reco-axes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.reco-axe { padding: 12px 14px; border: 1px solid var(--neutral-200, #e4e4ea); border-left: 4px solid var(--neutral-300, #d3d1c7); border-radius: 10px; background: var(--surface-card, #fff); display: flex; flex-direction: column; gap: 4px; }
.reco-axe--haute { border-left-color: var(--brand-600, #d63384); background: #fdf0f6; }
.reco-axe--moyenne { border-left-color: #00a8b5; }
.reco-axe__t { font-size: 14px; }
.reco-axe__p { font-size: 12.5px; color: var(--neutral-700, #4a4a56); }
@media (max-width: 700px) { .reco-axes { grid-template-columns: 1fr; } }
/* Copilote strategique (chat) */
.reco-copilote { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--neutral-200, #e4e4ea); }
.reco-chat { max-height: 380px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding: 12px; background: var(--neutral-50, #f7f7fa); border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; margin-bottom: 10px; }
.reco-chat__vide { margin: 6px 0; text-align: center; }
.reco-msg { max-width: 82%; }
.reco-msg--user { align-self: flex-end; }
.reco-msg--ia { align-self: flex-start; }
.reco-msg__txt { padding: 9px 13px; border-radius: 12px; font-size: 13.5px; line-height: 1.5; }
.reco-msg--user .reco-msg__txt { background: #fdeef4; color: #4b1528; border-bottom-right-radius: 4px; }
.reco-msg--ia .reco-msg__txt { background: var(--surface-card, #fff); border: 1px solid var(--neutral-200, #e4e4ea); border-bottom-left-radius: 4px; }
.reco-msg__chg { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: 12px; color: var(--neutral-700, #4a4a56); }
.reco-msg__chg.est-annule { opacity: 0.6; text-decoration: line-through; }
.reco-annuler { font-size: 11.5px; padding: 2px 9px; border: 1px solid var(--neutral-300, #d3d1c7); background: var(--surface-card, #fff); border-radius: 8px; cursor: pointer; }
.reco-annuler:hover { border-color: var(--brand-600, #d63384); color: var(--brand-600, #d63384); }
.reco-chat__form { display: flex; gap: 8px; align-items: center; }
.reco-chat__input { flex: 1; }
.reco-chat__idees { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.reco-idee { font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px dashed var(--neutral-300, #d3d1c7); background: transparent; color: var(--neutral-700, #4a4a56); cursor: pointer; }
.reco-idee:hover { border-color: var(--brand-600, #d63384); color: var(--brand-600, #d63384); }
/* Rendu enrichi (gras / puces / retours a la ligne) des textes IA : marges compactes, aere sans decorer */
.rich > :first-child { margin-top: 0; }
.rich > :last-child { margin-bottom: 0; }
.rich p { margin: 0 0 6px; }
.rich ul { margin: 4px 0 6px; padding-left: 18px; }
.rich li { margin: 2px 0; }
.rich strong { font-weight: 700; }
.reco-objectif { margin-top: 4px; }
/* Sous-couverture de sujets (E4) : matrice themes marche vs pages client */
.souscouv { margin: 6px 0 4px; }
.souscouv-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.souscouv-table th, .souscouv-table td { padding: 7px 12px; text-align: left; border-bottom: 1px solid var(--neutral-100, #ededf2); white-space: nowrap; }
.souscouv-table th.num, .souscouv-table td.num { text-align: right; }
.souscouv-table th { font-size: 11.5px; font-weight: 700; color: var(--neutral-600, #6d6d78); }
.souscouv--mort { background: #fdf0e0; }
.souscouv--mort td { border-bottom-color: #f0d9a8; }
.souscouv--faible { background: var(--neutral-50, #f7f7fa); }
.souscouv-bar { display: inline-block; min-width: 40px; text-align: center; padding: 1px 10px; border-radius: 999px; font-weight: 700; font-variant-numeric: tabular-nums; background: linear-gradient(to right, #cfe0ff var(--w, 0%), var(--neutral-100, #ededf2) var(--w, 0%)); }
.souscouv-ok { color: #0f7b4d; font-weight: 600; }
/* Graphiques editoriaux E3 : carte + 3 barres (cadence, profondeur, rendement) */
.edito-carte { margin: 6px 0 16px; }
.edito-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.edito-g { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 12px 14px; background: #fff; }
.edito-bar { display: flex; align-items: center; gap: 9px; margin-bottom: 5px; font-size: 12.5px; }
.edito-bar__nom { flex: 0 0 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--neutral-600, #6d6d78); }
.edito-bar__piste { flex: 1; height: 10px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; }
.edito-bar__fill { display: block; height: 100%; border-radius: 999px; background: var(--neutral-400, #b9b9c4); }
.edito-bar__val { flex: 0 0 auto; min-width: 46px; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.edito-bar--vous .edito-bar__nom { font-weight: 700; color: var(--brand-600, #d63384); }
.edito-bar--vous .edito-bar__fill { background: var(--influa-rose, #e73c7e); }
.edito-med { margin: 7px 0 0; font-size: 11px; color: var(--neutral-500, #6b6b76); }
.edito-bar__nd { color: var(--neutral-500, #6b6b76); font-style: italic; font-weight: 500; }
/* Panneau bullets (position vs marche) + echelle "vos voisins", cote a cote */
.edito-haut { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; margin: 6px 0 16px; align-items: start; }
.bullets, .voisins { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 12px 15px; background: #fff; }
.bullet-row { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--neutral-100, #ededf2); }
.bullet-row:last-child { border-bottom: 0; }
.bullet-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bullet-lbl { font-weight: 700; font-size: 13px; color: var(--influa-noir, #1a1a1a); }
.bullet-row--sous .bullet-lbl { color: var(--brand-600, #d63384); }
.bullet-txt { margin: 5px 0 0; font-size: 12px; color: var(--neutral-600, #6d6d78); line-height: 1.4; }
.bullet-txt strong { color: var(--influa-noir, #1a1a1a); }
.bullet-lev { color: var(--brand-600, #d63384); font-weight: 700; }
.bullet-track { position: relative; height: 12px; background: var(--neutral-50, #f7f7fa); border-radius: 4px; margin: 6px 0 2px; }
.bullet-band { position: absolute; top: 2px; height: 8px; background: var(--neutral-200, #e4e4ea); border-radius: 3px; }
.bullet-med { position: absolute; top: 0; width: 2px; height: 12px; background: var(--neutral-500, #6b6b76); transform: translateX(-1px); }
.bullet-leader { position: absolute; top: 0; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 6px solid var(--influa-noir, #1a1a1a); transform: translateX(-4px); }
.bullet-cli { position: absolute; top: -1px; width: 12px; height: 14px; background: var(--influa-rose, #e73c7e); border-radius: 3px; transform: translateX(-6px); box-shadow: 0 0 0 2px #fff; }
.bullet-val { font-weight: 700; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vois-ax { font-size: 11.5px; font-weight: 700; color: var(--neutral-600, #6d6d78); margin: 4px 0 6px; }
.vois-row { display: flex; align-items: center; gap: 8px; padding: 4px 6px; font-size: 12.5px; border-bottom: 1px solid var(--neutral-100, #ededf2); }
.vois-rang { flex: 0 0 22px; text-align: center; font-weight: 700; color: var(--neutral-500, #6b6b76); background: var(--neutral-100, #ededf2); border-radius: 6px; font-size: 11px; }
.vois-nom { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vois-val { flex: 0 0 auto; font-variant-numeric: tabular-nums; color: var(--neutral-600, #6d6d78); }
.vois-row--vous { background: #fde8f1; border-radius: 7px; border-bottom-color: transparent; }
.vois-row--vous .vois-nom, .vois-row--vous .vois-rang { color: var(--brand-600, #d63384); font-weight: 700; background: transparent; }
.vois-saut { text-align: center; color: var(--neutral-400, #b9b9c4); letter-spacing: 3px; line-height: 1; }
.vois-delta { margin: 9px 0 0; font-size: 12px; background: #fdf0e0; border: 1px solid #f0d9a8; border-radius: 8px; padding: 6px 10px; color: #9A6200; }
.vois-delta strong { color: #7a4e00; }
@media (max-width: 760px) { .edito-haut { grid-template-columns: 1fr; } }
.marche-vel--forte { color: #1E7D32; font-weight: 600; }
.marche-vel--soutenue { color: #00796B; }
.marche-age { font-size: 11px; }
.marche-age--recent { color: #1E7D32; }
.marche-age--moyen { color: #00796B; }
.marche-age--ancien { color: #B26A00; }
.marche-7j { color: #1E7D32; font-weight: 700; }
.ecart { display: block; width: max-content; margin: 3px 0 0 auto; min-width: 34px; text-align: center; font-size: 10.5px; font-weight: 700; border-radius: 999px; padding: 1px 6px; cursor: help; }
.sovkw-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; margin: 10px 0 6px; }
.sovkw-dim { font-size: 14px; font-weight: 700; color: var(--influa-noir, #1a1a1a); margin: 18px 0 2px; }
.sovkw { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 13px 16px; background: #fff; position: relative; }
.sovkw:hover, .sovkw:focus-within { border-color: var(--brand-600, #d63384); }
.kwpop { display: none; position: absolute; left: 8px; right: 8px; top: calc(100% - 6px); z-index: 40; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 10px; box-shadow: 0 10px 30px rgba(26, 26, 26, 0.16); padding: 12px 14px; }
.sovkw:hover .kwpop, .sovkw:focus .kwpop, .sovkw:focus-within .kwpop { display: block; }
.kwpop__tete { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.kwpop__titre { font-size: 12.5px; font-weight: 700; }
.kwpop__entetes, .kwpop__ligne { display: grid; grid-template-columns: minmax(0, 1fr) 44px 32px 32px 48px; gap: 6px; align-items: center; }
.kwpop__entetes { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--neutral-500, #8a8a96); padding-bottom: 5px; border-bottom: 1px solid var(--neutral-100, #ededf2); }
.kwpop__entetes span:nth-child(2), .kwpop__vol { text-align: right; }
.kwpop__entetes span:nth-child(3), .kwpop__entetes span:nth-child(4), .kwpop__entetes span:nth-child(5) { text-align: center; }
.kwpop__ligne { padding: 4px 0; border-bottom: 1px solid var(--neutral-100, #ededf2); font-size: 12px; }
.kwpop__ligne:last-of-type { border-bottom: 0; }
.kwpop__mot { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kwpop__vol { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 11.5px; color: var(--neutral-600, #6d6d78); }
.kwpop__pos { display: inline-block; justify-self: center; min-width: 26px; text-align: center; padding: 1px 5px; border-radius: 999px; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 11px; font-weight: 600; }
.kwpop__pos--top3 { background: #e3f6ec; color: #0f7b4d; }
.kwpop__pos--top10 { background: #e6effc; color: #1d5bbf; }
.kwpop__pos--top20 { background: #fdf0e0; color: #b4650e; }
.kwpop__pos--loin { background: var(--neutral-100, #ededf2); color: var(--neutral-600, #6d6d78); }
.kwpop__pos--hors { background: transparent; color: var(--neutral-400, #b9b9c4); }
/* Slot attendu du cocon pas encore suivi dans SE Ranking */
.kwpop__ligne--attente .kwpop__mot { color: var(--neutral-500, #6b6b76); }
.kwpop__attente { grid-column: 3 / -1; justify-self: end; font-size: 10.5px; font-weight: 700; color: #b4650e; background: #fdf0e0; border-radius: 999px; padding: 1px 8px; }
.kwpop__reste { padding-top: 7px; }
/* Miroir Google AI Overview par mot-cle (E2) : cite / present non-cite / absent. */
.kwpop__aio { justify-self: center; min-width: 30px; text-align: center; padding: 1px 6px; border-radius: 999px; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.kwpop__aio--2 { background: #e3f6ec; color: #0f7b4d; }
.kwpop__aio--1 { background: #fdf0e0; color: #b4650e; }
.kwpop__aio--0 { background: transparent; color: var(--neutral-300, #cfcfd8); font-weight: 600; }
/* Resume AIO par cocon, sous la couverture. */
.sovkw__aio { display: flex; align-items: center; gap: 8px; margin: 2px 0 4px; font-size: 11px; color: var(--neutral-600, #6d6d78); }
.sovkw__aio-badge { font-weight: 700; padding: 1px 7px; border-radius: 999px; font-size: 10.5px; }
.sovkw__aio-badge--cite { background: #e3f6ec; color: #0f7b4d; }
.sovkw__aio-badge--opp { background: #fdf0e0; color: #b4650e; }
.sovkw__titre { font-weight: 700; margin-bottom: 7px; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.sovkw__suppr { flex: none; line-height: 0; margin: -2px -4px 0 0; }
.sovkw__suppr-btn { padding: 2px; border: 0; background: none; color: var(--neutral-400, #b9b9c4); cursor: pointer; opacity: 0; transition: opacity .12s, color .12s; }
.sovkw__suppr-btn svg { width: 14px; height: 14px; display: block; }
.sovkw:hover .sovkw__suppr-btn, .sovkw:focus-within .sovkw__suppr-btn { opacity: 1; }
.sovkw__suppr-btn:hover, .sovkw__suppr-btn:focus-visible { color: var(--error, #ef4444); }
/* Ajout d'un cocon perso (E2) : formulaire nom + section + question, replie par defaut. */
.cocon-ajout { margin-top: 14px; }
.cocon-ajout__form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; padding: 12px 14px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; background: var(--neutral-50, #f7f7fa); }
.cocon-ajout__champ { font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 8px; min-width: 200px; flex: 1 1 200px; }
.cocon-ajout__champ--sm { min-width: 120px; flex: 0 1 160px; }
.cocon-ajout__champ:focus { outline: none; border-color: var(--influa-rose, #e73c7e); }
.cocon-ajout__note { flex-basis: 100%; margin-top: 2px; }
/* Jauge de couverture du cocon : mots-cles suivis / attendus (metier + services) */
.sovkw__cov { display: flex; align-items: center; gap: 8px; margin: 0 0 11px; }
.sovkw__cov-barre { flex: 1; height: 6px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; }
.sovkw__cov-fill { display: block; height: 100%; border-radius: 999px; background: var(--influa-rose, #e73c7e); }
.sovkw__cov-fill.is-complet { background: var(--influa-cyan, #00a8b5); }
.sovkw__cov-txt { flex: 0 0 auto; font-size: 11px; font-weight: 700; color: var(--neutral-500, #6b6b76); font-variant-numeric: tabular-nums; }
.sovkw__ligne { display: flex; align-items: center; gap: 9px; margin-bottom: 6px; font-size: 12.5px; }
.sovkw__ligne--vous .sovkw__nom { font-weight: 700; color: var(--brand-600, #d63384); }
.sovkw__nom { flex: 0 0 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sovkw__barre { flex: 1; height: 10px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; }
.sovkw__barre span { display: block; height: 100%; border-radius: 999px; background: var(--neutral-400, #b9b9c4); }
.sovkw__ligne--vous .sovkw__barre span { background: var(--brand-600, #d63384); }
.sovkw__part { flex: 0 0 52px; text-align: right; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12px; }
.canni-cell { min-width: 380px; }
.canni-page { display: flex; align-items: center; gap: 8px; margin: 3px 0; }
.canni-pos { flex: none; min-width: 38px; text-align: center; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 1px 7px; }
.canni-pos--top { background: #DFF1E0; color: #1E7D32; }
.canni-pos--p1 { background: #DFF5F2; color: #00796B; }
.canni-pos--p2 { background: #FDEFD8; color: #9A6200; }
.canni-pos--loin { background: #FDE3E1; color: #B3261E; }
.canni-lien { flex: 0 1 auto; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.canni-barre { flex: 1 1 60px; height: 8px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; min-width: 40px; }
.canni-barre span { display: block; height: 100%; background: var(--brand-600, #d63384); border-radius: 999px; }
.canni-imp { flex: none; white-space: nowrap; }
.ecart--danger { background: #FDE3E1; color: #B3261E; }
.ecart--mieux { background: #FDEFD8; color: #9A6200; }
.ecart--egal { background: #EEF0F4; color: #5f5f6e; }
.ecart--domine { background: #DFF1E0; color: #1E7D32; }
/* Tableau E1 large (16 colonnes) : sur un ecran etroit il depassait la bordure du
   cadre (debordement des marges). On le fait defiler horizontalement DANS le cadre
   plutot que deborder ; sur grand ecran il rentre, pas de barre. */
.gsc-defile.marche-defile { max-height: none; overflow-x: auto; overflow-y: visible; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; }
/* Largeur mini en px : les colonnes gardent une largeur lisible (jamais
   comprimees), le tableau remplit le conteneur quand il y a la place, et
   .marche-defile scrolle horizontalement proprement quand l'ecran est plus
   etroit. Meme rendu pour tous les clients et toutes les tailles d'ecran. */
#e1-table { width: 100%; min-width: 1340px; border-collapse: collapse; }
#e1-table th, #e1-table td { padding: 9px 4px; }
/* Colonne Type (badge Site/Page) : reduite au minimum pour aerer les colonnes de
   donnees (width:1% => la colonne se resserre sur son contenu, l'espace libere
   va aux autres colonnes du tableau en width 100%). */
#e1-table thead tr:nth-child(2) th:nth-child(2),
#e1-table tbody td:nth-child(2),
#e1-table .e1-totaux td:nth-child(2) { width: 1%; white-space: nowrap; padding-right: 2px; }
#e1-table .e1-statut { white-space: normal; text-align: right; }
#e1-table .e1-marque { max-width: 120px; }
#e1-table .e1-marque strong { display: block; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Renommage a la main : crayon discret revele au survol de la cellule ; l'edition
   remplace le nom par un champ, et au rechargement la ligne reprend sa place. */
#e1-table .e1-marque__vue:not([hidden]) { display: inline-flex; align-items: flex-start; gap: 5px; min-width: 0; max-width: 100%; }
/* Releve de benchmark saisi a la main : disponible AVANT le crawl et avant le
   profil IA. Ton sobre et distinct des mesures calculees, pour qu'on ne le
   confonde pas avec une donnee mesuree par l'app. */
#e1-table .e1-releve { flex: none; margin-top: 1px; padding: 1px 6px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 999px; background: var(--neutral-100, #f5f5f7); color: var(--neutral-600, #55555f); font-size: 10.5px; font-weight: 700; white-space: nowrap; cursor: help; }
#e1-table .e1-releve:hover { border-color: var(--neutral-400, #b9b9c4); color: var(--neutral-800, #2f2f38); }
#e1-table .e1-marque__crayon { flex: none; margin-top: 1px; padding: 2px; border: 0; background: none; color: var(--neutral-400, #b9b9c4); cursor: pointer; opacity: 0; transition: opacity .12s, color .12s; }
#e1-table tr:hover .e1-marque__crayon, #e1-table .e1-marque__crayon:focus-visible { opacity: 1; }
#e1-table .e1-marque__crayon:hover { color: var(--influa-rose, #e73c7e); }
#e1-table .e1-marque__form:not([hidden]) { display: flex; flex-direction: column; gap: 5px; }
#e1-table .e1-marque__champ { width: 100%; min-width: 150px; padding: 4px 6px; font-size: 12.5px; font-weight: 700; border: 1px solid var(--influa-rose, #e73c7e); border-radius: 6px; }
#e1-table .e1-marque__actions { display: flex; align-items: center; gap: 8px; }
#e1-table .e1-marque__ok { padding: 2px 10px; }
#e1-table .e1-marque__annuler { border: 0; background: none; color: var(--neutral-500, #85858f); font-size: 12px; cursor: pointer; text-decoration: underline; }
#e1-table tr.e1-renomme td { animation: e1-renomme-flash 2.2s ease-out 1; }
@keyframes e1-renomme-flash { 0%, 40% { background: #fdeef4; } 100% { background: transparent; } }
/* Concurrent sans vrai nom : le domaine seul, cliquable, presente comme le nom. */
#e1-table .e1-marque__lien { text-decoration: none; color: inherit; }
#e1-table .e1-marque__lien:hover strong { text-decoration: underline; }
#e1-table .e1-rang { width: 30px; text-align: right; color: var(--neutral-400, #b9b9c4); font-size: 11.5px; }
#e1-table td.e1-rang { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
#e1-table th[data-tri].e1-droite, #e1-table thead th.e1-droite, #e1-table td.e1-droite { text-align: right; }
#e1-table .marche-client td.e1-rang { color: var(--brand-600, #d63384); font-weight: 700; }
#e1-table .e1-marque a.hint, #e1-table .e1-client-id a.hint { display: block; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Ligne de BILAN de l'ecosysteme = le total de la table : un vrai bandeau
   franc (fond bleu-gris soutenu, encadre haut et bas, texte fonce gras), pas
   une ligne quasi blanche qui se confond avec le corps. */
#e1-table .e1-totaux td { background: #e9edf5; font-weight: 700; font-size: 12px; white-space: nowrap; color: var(--neutral-700, #111318); border-top: 2px solid #c3ccdf; border-bottom: 2px solid #c3ccdf; }
/* Groupe "Composantes de la maturite" : les 3 mesures qui alimentent la note,
   puis Maturite a droite comme resultat du calcul. Bandeau + bande tintee, avec
   assez de contraste pour lire d'un coup d'oeil "ces colonnes -> cette note". */
#e1-table .e1-mtete th { border: none; padding: 4px 6px 5px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; text-align: center; }
#e1-table .e1-mtete .e1-mtete__comp { background: #dbe1f0; color: #3b466b; border-radius: 8px 0 0 0; }
#e1-table .e1-mtete .e1-mtete__res { background: #f2b6d6; color: #97205f; border-radius: 0 8px 0 0; }
/* Bande des 3 composantes + borne gauche du groupe (Autorite = 1er e1-matc
   apres une colonne hors groupe : selecteur, pas de classe supplementaire). */
#e1-table th.e1-matc, #e1-table td.e1-matc { background: #e8edf8; }
#e1-table th:not(.e1-matc):not(.e1-matr) + th.e1-matc,
#e1-table td:not(.e1-matc):not(.e1-matr) + td.e1-matc { border-left: 2px solid #bcc7e2; }
/* Colonne resultat : rose franc, encadree, valeur en gras. */
#e1-table th.e1-matr, #e1-table td.e1-matr { background: #f9d2e8; border-left: 2px solid #e585ba; border-right: 2px solid #e585ba; }
#e1-table td.e1-matr { font-weight: 600; }
#e1-table .e1-totaux td.e1-matc { background: #d6dff0; }
#e1-table .e1-totaux td.e1-matr { background: #f3c1dc; border-left: 2px solid #e585ba; border-right: 2px solid #e585ba; }
/* Groupe Benchmark IA (menace + profil) : meme logique de bloc tinte que la
   maturite, teinte violette (analyse IA) pour le distinguer d'un coup d'oeil. */
#e1-table .e1-mtete .e1-mtete__bench { background: #e3dcf5; color: #4a2f8f; border-radius: 8px 8px 0 0; }
#e1-table th.e1-bench, #e1-table td.e1-bench { background: #efeafb; }
#e1-table th.e1-bench--d, #e1-table td.e1-bench--d { border-left: 2px solid #b9a5e6; }
#e1-table th.e1-bench--f, #e1-table td.e1-bench--f { border-right: 2px solid #b9a5e6; }
#e1-table .e1-totaux td.e1-bench { background: #e7dff7; }
.e1-ico { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 999px; vertical-align: middle; }
.e1-ico svg { width: 15px; height: 15px; }
.e1-ico--ok { background: var(--success-light, #e3f6ec); color: var(--success-dark, #0f7b4d); }
.e1-ico--err { background: var(--error-light, #fdeaea); color: var(--error-dark, #b42318); }
.e1-ico--run { background: #fdf0e0; color: #b4650e; }
.e1-ico--run svg { animation: e1rotation 1.6s linear infinite; }
.e1-ico--wait { background: var(--neutral-100, #ededf2); color: var(--neutral-600, #6d6d78); }
@keyframes e1rotation { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
/* Jauge live de crawl d'un concurrent : barre de progression DETERMINEE (largeur
   remplie par studio.js selon pages traitees / a traiter cette passe) + compteur.
   Etat crawl = barre qui se remplit ; etat file = position dans la file d'attente.
   Largeur bornee pour ne jamais deborder la colonne Statut. */
#e1-table .e1-jauge { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 3px; width: 80px; max-width: 100%; }
#e1-table .e1-jauge__piste { position: relative; width: 100%; height: 5px; border-radius: 3px; background: var(--neutral-100, #ededf2); overflow: hidden; }
#e1-table .e1-jauge__fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; border-radius: 3px; background: #d9822b; transition: width .4s ease; }
#e1-table .e1-jauge__val { max-width: 100%; font-size: 10px; font-weight: 600; color: #b4650e; font-variant-numeric: tabular-nums; line-height: 1.2; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#e1-table .e1-jauge[data-etat="file"] .e1-jauge__fill { display: none; }
#e1-table .e1-jauge[data-etat="file"] .e1-jauge__piste { display: none; }
#e1-table .e1-jauge[data-etat="file"] .e1-jauge__val { color: var(--neutral-500, #85858f); font-weight: 500; }
#e1-table .e1-jauge[data-etat="fini"] { display: none; }
#e1-table .e1-actions { display: flex; gap: 4px; margin-top: 5px; justify-content: flex-end; }
#e1-table .e1-actions form { display: inline; }
#e1-table .e1-actions .btn-mini { padding: 1px 5px; font-size: 10px; width: auto; }
.btn-ico { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 7px; border: 1px solid var(--neutral-200, #e4e4ea); background: #fff; color: var(--neutral-600, #6d6d78); cursor: pointer; padding: 0; transition: border-color .12s ease, color .12s ease, background .12s ease; }
.btn-ico svg { width: 13px; height: 13px; }
.btn-ico:hover { border-color: var(--influa-rose, #d63384); color: var(--influa-rose, #d63384); background: var(--primary-50, #fdf0f6); }
.btn-ico--danger:hover { border-color: var(--error, #ef4444); color: var(--error, #ef4444); background: var(--error-light, #fdeaea); }
.marche-e1__actions { display: flex; align-items: center; gap: 10px; }
.tip { position: fixed; z-index: 95; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 10px; box-shadow: 0 10px 30px rgba(26, 26, 26, 0.16); padding: 10px 13px; max-width: 340px; font-size: 12.5px; line-height: 1.45; pointer-events: none; }
[data-tip] { cursor: help; }
span[data-tip]:not(.pill):not(.ecart):not(.e1-ico):not(.e1-jauge):not(.bench-jauge):not(.kwpop__pos):not(.kwpop__mot), th[data-tip] { text-decoration: underline dotted 1px var(--neutral-400, #b9b9c4); text-underline-offset: 3px; }
span[data-tip]:hover, th[data-tip]:hover { text-decoration-color: var(--brand-600, #d63384); }
button[data-tip], a[data-tip], select[data-tip] { cursor: pointer; }
.tip__t { display: block; font-weight: 700; font-size: 13px; margin-bottom: 6px; }
.tip__ligne { display: flex; align-items: baseline; gap: 7px; margin-bottom: 3px; }
.tip__ligne:last-child { margin-bottom: 0; }
.tip__pts { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-weight: 700; min-width: 34px; flex: 0 0 auto; }
.tip__src { flex: 0 0 auto; margin-left: auto; font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--neutral-500, #8a8a96); border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 999px; padding: 0 6px; }
.tip__src--mesure { color: #0f7b4d; border-color: #bfe8d2; background: #e3f6ec; }
.tip__val { font-weight: 700; }
.tip__hint { display: block; color: var(--neutral-500, #8a8a96); margin-top: 5px; }
.menace--brouillon { opacity: 0.45; }
/* Badge de profil dans le tableau E1 : etat lisible d'un coup d'oeil.
   Valide = vert (calme, c'est fait) ; a valider (brouillon) = ROUGE VIF (action
   attendue) ; perime = ambre (a regenerer). Regle de contraste de Jerome. */
.e1-profil-btn { border: 1px solid var(--success, #1DB76E); background: #E7F7EF; border-radius: 7px; padding: 2px 8px; font-size: 11.5px; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-weight: 700; cursor: pointer; color: var(--success-dark, #0F7A4A); }
.e1-profil-btn:hover { filter: brightness(0.96); }
.e1-profil-btn--brouillon { background: var(--error, #EF4444); border-color: var(--error, #EF4444); color: #fff; }
.e1-profil-btn--brouillon:hover { background: var(--error-dark, #B91C1C); border-color: var(--error-dark, #B91C1C); color: #fff; filter: none; }
.e1-profil-btn--perime { background: #FFF4E5; border-color: #E08600; color: #9A5B00; }
.e1-fiche > td { background: var(--neutral-50, #f7f7fa); border-bottom: 2px solid var(--neutral-200, #e4e4ea) !important; padding: 12px 14px !important; }
.e1f { background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; box-shadow: var(--shadow-sm, 0 1px 3px rgba(26, 26, 26, 0.07)); padding: 18px 22px; }
.e1f__tete { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--neutral-100, #ededf2); }
.e1f__tete > strong { font-size: 15px; }
.e1f__valider { margin-left: auto; }
.e1f__valider .btn-mini { background: var(--brand-600, #d63384); border-color: var(--brand-600, #d63384); color: #fff; font-weight: 600; padding: 5px 14px; }
.e1f__valider .btn-mini:hover { background: #b82970; color: #fff; }
.e1f__pitch { font-size: 13.5px; font-style: italic; color: var(--neutral-600, #5f5f6e); margin: 0 0 14px; padding: 10px 14px; background: var(--neutral-50, #f7f7fa); border-left: 3px solid var(--neutral-300, #d2d2da); border-radius: 0 8px 8px 0; }
.e1f__grille { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 4px 36px; }
.e1f__t { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-500, #8a8a96); margin: 14px 0 9px; }
.e1f__grille > div > .e1f__t:first-child { margin-top: 0; }
.e1f__champ { margin-bottom: 12px; font-size: 12.5px; }
.e1f__champ--ligne { display: flex; gap: 10px; align-items: baseline; }
.e1f__champ-tete { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.e1f__lib { flex: 0 0 150px; color: var(--neutral-600, #5f5f6e); font-weight: 600; }
.e1f__valeur { font-weight: 600; }
.e1f__champ--angle { background: #fdf0f6; border: 1px solid #f5d0e3; border-left: 3px solid var(--brand-600, #d63384); border-radius: 8px; padding: 10px 13px; }
.e1f__champ--angle .e1f__lib { color: var(--brand-600, #d63384); }
.e1f__corrige select { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 8px; padding: 5px 28px 5px 10px; font-size: 12.5px; font-family: inherit; color: inherit; background: #fff; cursor: pointer; transition: border-color .12s ease, box-shadow .12s ease; }
.e1f__corrige select:hover { border-color: var(--brand-600, #d63384); }
.e1f__corrige select:focus { outline: none; border-color: var(--brand-600, #d63384); box-shadow: 0 0 0 3px rgba(214, 51, 132, 0.12); }
.e1f__corrige select, .marche-filtres select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f5f6e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; background-size: 11px; }
.marche-filtres select { padding-right: 28px; cursor: pointer; }
.e1f__preuve { position: relative; margin-left: 160px; padding: 7px 11px; background: var(--neutral-50, #f7f7fa); border-radius: 8px; font-size: 12px; font-style: italic; color: var(--neutral-600, #5f5f6e); display: flex; align-items: baseline; gap: 10px; }
.e1f__preuve--absente { font-style: normal; color: var(--neutral-500, #8a8a96); background: transparent; border: 1px dashed var(--neutral-200, #e4e4ea); }
.e1f__page { flex: 0 0 auto; margin-left: auto; font-style: normal; font-size: 11.5px; white-space: nowrap; color: var(--brand-600, #d63384); text-decoration: none; }
.e1f__page:hover { text-decoration: underline; }
.e1f__chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.e1f__menace { list-style: none; margin: 0 0 6px; padding: 10px 13px; background: var(--neutral-50, #f7f7fa); border-radius: 10px; font-size: 12.5px; }
.e1f__menace li { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.e1f__menace li:last-child { margin-bottom: 0; }
.e1f__menace .pill { margin-left: auto; }
.e1f__pts { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-weight: 700; min-width: 38px; }
.e1f__citations { margin: 6px 0; }
.e1f__citations .e1f__preuve { margin-left: 0; }
.e1f__sources { margin-top: 12px; }
.e1f__sources summary { cursor: pointer; }
.e1f__sources ul { margin: 8px 0 0; padding-left: 16px; font-size: 12px; line-height: 1.7; }
#e1-table thead th, #e1-table th[data-tri] { background: var(--neutral-50, #f7f7fa); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--neutral-600, #5f5f6e); white-space: nowrap; vertical-align: bottom; border-bottom: 1px solid var(--neutral-200, #e4e4ea); text-align: left; }
#e1-table thead th.num { text-align: right; }
#e1-table td { border-bottom: 1px solid var(--neutral-100, #ededf2); vertical-align: middle; font-size: 13.5px; }
#e1-table tbody tr:last-child td { border-bottom: none; }
#e1-table td.num { text-align: right; white-space: nowrap; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 13px; }
#e1-table .marche-age { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 11px; }
#e1-table .cell-actions { text-align: right; }
#e1-table .cell-actions form { display: block; margin: 0 0 4px; }
#e1-table .cell-actions form:last-child { margin-bottom: 0; }
#e1-table .cell-actions .btn-mini { padding: 3px 9px; font-size: 11.5px; width: 84px; }
#e1-table td:nth-child(3) { min-width: 130px; } /* Marque (col 3 depuis l'ajout du rang) : lisible ; la col Type (2) reste minimale */
#e1-table td:nth-child(2) strong { white-space: normal; }
#e1-table td:nth-child(2) a.hint { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#e1-table td .pill { white-space: nowrap; }
#e1-table .marche-age { display: block; white-space: nowrap; }
#e1-table td.num { vertical-align: top; }
#e1-table td { vertical-align: top; }
#e1-table td.e1-nowrap { white-space: nowrap; }
#e1-table tbody tr:hover td { background: #FAFAFC; }
#e1-table tbody tr.marche-client:hover td { background: #FDF0F6; }
.travaux-liste, .alertes-liste { display: flex; flex-direction: column; gap: 6px; }
.dash-clients { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 12px; margin-top: 10px; }
.dash-client { display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 14px 16px; background: #fff; text-decoration: none; color: inherit; transition: border-color .12s ease, box-shadow .12s ease; }
.dash-client:hover { border-color: var(--brand-600, #d63384); box-shadow: var(--shadow-sm); }
/* Carte orientee action : le statut est porte par un point plein + un libelle
   colore, jamais par un liseret ni un aplat de couleur (rejetes par Jerome). */
.dash-client { padding: 15px 17px; }
.dc-tete { display: flex; align-items: center; gap: 10px; }
.dc-nom { display: flex; flex-direction: column; min-width: 0; flex: 1; text-decoration: none; color: inherit; }
.dc-nom strong { font-size: 14.5px; }
.dc-nom .hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dc-nom:hover strong { color: var(--brand-600, #d63384); }
.dc-statut { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; flex: 0 0 auto; }
.dc-point { width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.dc--action .dc-statut { color: var(--error-dark, #B91C1C); }
.dc--surveiller .dc-statut { color: var(--warning-dark, #A65B08); }
.dc--ok .dc-statut { color: var(--success-dark, #15834F); }
/* Liste "A traiter" : lignes cliquables, filets seuls, aucun fond tinte. */
.dc-sect { margin: 13px 0 2px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-500, #8a8a96); }
.dc-liste { display: flex; flex-direction: column; }
.dc-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--neutral-200, #e4e4ea); text-decoration: none; color: var(--influa-noir); font-size: 13px; }
.dc-item:hover { color: var(--brand-600, #d63384); }
.dc-item__txt { flex: 1; min-width: 0; }
.dc-fleche { width: 15px; height: 15px; flex: 0 0 auto; color: var(--neutral-400, #b9b9c4); }
.dc-item:hover .dc-fleche { color: var(--brand-600, #d63384); }
.dc-rien { display: flex; align-items: center; gap: 8px; margin: 10px 0; font-size: 13px; color: var(--success-dark, #15834F); }
.dc-rien svg { width: 16px; height: 16px; flex: 0 0 auto; }
/* Contexte discret : une ligne, chiffres colores, pas de tuiles. */
.dc-contexte { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--neutral-200, #e4e4ea); font-size: 12px; color: var(--neutral-600, #5f5f6e); }
.dc-num { font-family: var(--font-mono, ui-monospace); font-weight: 700; color: var(--influa-noir); margin-left: 2px; }
.dc-num.is-vide { color: var(--neutral-300, #CBCED3); font-weight: 400; }
.dc-num.sc-red { color: var(--error-dark, #B91C1C); }
.dc-num.sc-orange { color: var(--warning-dark, #A65B08); }
.dc-num.sc-green { color: var(--success-dark, #15834F); }
.dc-ctx { text-decoration: none; color: inherit; }
.dc-ctx:hover { color: var(--brand-600, #d63384); }
.dc-planctx { margin-left: auto; }
.dc-p0 { color: var(--error-dark, #B91C1C); }
.dc-p1 { color: var(--warning-dark, #A65B08); }
.dc-p2 { color: var(--success-dark, #15834F); }
/* Mini-courbes 12 mois, sobres : label + valeur + trace, sans cadre ni fond.
   Chaque courbe ouvre la section de son outil dans l'onglet Performance. */
.dc-charts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.dc-mc { min-width: 0; text-decoration: none; color: inherit; display: block; }
.dc-mc:hover .dc-mc__l { color: var(--brand-600, #d63384); }
.dc-mc__l { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-500, #8a8a96); }
.dc-mc__v { display: block; font-family: var(--font-mono, ui-monospace); font-size: 13px; font-weight: 700; color: var(--influa-noir); margin-bottom: 2px; }
.dc-mc .mc-svg { width: 100%; height: 26px; display: block; }
.dc-mc .mc-vide { font-size: 9px; color: var(--neutral-400, #b9b9c4); font-style: italic; height: 26px; display: flex; align-items: center; }
.dc-charts__sub { margin: 6px 0 0; font-size: 10px; color: var(--neutral-400, #b9b9c4); }
.dc-travaux { margin: 10px 0 0; font-size: 11.5px; color: var(--neutral-500, #8a8a96); }
.dash-client__tete { display: flex; align-items: center; gap: 10px; }
.dash-client__logo { width: 34px; height: 34px; border-radius: 8px; object-fit: contain; background: var(--neutral-50, #f7f7fa); border: 1px solid var(--neutral-100, #ededf2); flex: 0 0 auto; }
.dash-client__logo--lettre { display: inline-flex; align-items: center; justify-content: center; font-weight: 700; color: var(--brand-600, #d63384); }
.dash-client__id { display: flex; flex-direction: column; min-width: 0; }
.dash-client__id strong { font-size: 14px; }
.dash-client__id .hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Badge d'alertes non lues : pastille tintee + BORDURE (avant : gris quasi
   invisible). Warning par defaut, rouge si des alertes graves. */
.dash-client__alertes { margin-left: auto; flex: 0 0 auto; min-width: 22px; text-align: center; padding: 2px 7px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--warning-light); color: var(--warning-dark); border: 1px solid var(--warning); }
.dash-client__alertes--graves { background: var(--error-light); color: var(--error-dark); border-color: var(--error); }
.dash-client__kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.dash-client__kpi { display: flex; flex-direction: column; gap: 1px; background: var(--neutral-50, #f7f7fa); border-radius: 8px; padding: 7px 8px; min-width: 0; }
/* KPI de tete (Clics 28 j) : point d'entree, il ressort des 3 autres. */
.dash-client__kpi--tete { background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); }
.dash-client__kpi--tete .n { color: var(--primary-600, #C52865); font-size: 15px; }
.dash-client__kpi .n { font-weight: 700; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-client__kpi .n.is-vide { color: var(--neutral-300, #CBCED3); font-weight: 400; }
.dash-client__kpi .l { font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-500, #8a8a96); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-client__travaux { display: grid; grid-template-columns: auto 1fr; gap: 4px 8px; align-items: baseline; font-size: 12.5px; }
.dash-client__travail { min-width: 0; }
/* Carte client = mini-tableau de bord : score d'audit colore, part de voix /
   maturite, plan par priorite, et 4 mini-graphes 6 mois. */
.dash-score { margin-left: auto; flex: 0 0 auto; text-align: center; background: var(--st-light); color: var(--st-dark); border: 1px solid var(--st); border-radius: 12px; padding: 5px 12px; min-width: 78px; }
.sc-neutral { --st: var(--neutral-300, #CBCED3); --st-light: var(--neutral-50, #FAFAFB); --st-dark: var(--neutral-600, #1A1D22); }
.dash-score__lib { display: block; font-size: 8.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; opacity: .9; }
.dash-score__n { display: block; font-family: var(--font-mono); font-size: 26px; font-weight: 800; line-height: 1.05; }
.dash-score__v { display: block; font-size: 10px; font-weight: 700; }
.dash-client__ind { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 6px; }
.dc-ind, .dc-plan { background: var(--neutral-50, #f7f7fa); border-radius: 8px; padding: 7px 9px; display: flex; flex-direction: column; gap: 2px; min-width: 0; justify-content: center; }
.dc-ind__n { font-weight: 700; font-size: 15px; color: var(--primary-600, #C52865); }
.dc-ind__n.is-vide { color: var(--neutral-300, #CBCED3); font-weight: 400; }
.dc-ind__l { font-size: 9.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-500, #8a8a96); font-weight: 700; }
.dc-plan__chips { display: flex; gap: 4px; margin-top: 2px; }
.dc-chip { font-family: var(--font-mono); font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; border: 1px solid; }
.dc-chip--p0 { background: var(--error-light); color: var(--error-dark); border-color: var(--error); }
.dc-chip--p1 { background: var(--warning-light); color: var(--warning-dark); border-color: var(--warning); }
.dc-chip--p2 { background: var(--success-light); color: var(--success-dark); border-color: var(--success); }
.dash-client__charts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.mc { display: flex; flex-direction: column; gap: 3px; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 8px; padding: 7px 9px; min-width: 0; }
.mc__head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.mc__l { font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-500, #8a8a96); font-weight: 700; }
.mc__v { font-family: var(--font-mono); font-size: 14px; font-weight: 700; color: var(--influa-noir); }
.mc-svg { width: 100%; height: 30px; display: block; }
.mc__sub { font-size: 9px; color: var(--neutral-400, #b9b9c4); }
.mc-vide { font-size: 10px; color: var(--neutral-400, #b9b9c4); font-style: italic; height: 30px; display: flex; align-items: center; }
.dash-agence { margin-top: 12px; }
.travail, .alerte { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 9px; font-size: 13px; background: #fff; }
.travail__etat { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--neutral-600, #5f5f6e); border: 1px solid var(--neutral-300, #d5d5de); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.travail__etat--run { color: var(--success-dark); border-color: var(--success); background: var(--success-light); }
.travail__depuis, .alerte__age { margin-left: auto; white-space: nowrap; }
.alerte__msg { flex: 1; font-weight: 600; }
.alerte--lue { opacity: 0.55; }
/* Alerte tintee selon la gravite (facon verdict-box) : une critique ne se
   confond plus avec une info. */
.alerte--critical { background: var(--error-light); border-color: #F7D4D4; border-left: 4px solid var(--error); }
.alerte--warning { background: var(--warning-light); border-color: #F3D9B3; border-left: 4px solid var(--warning); }
.alerte--info { border-left: 4px solid var(--influa-rose); }
/* Pastille "critique" pleine : elle DOIT dominer "attention". */
.pill--danger { background: var(--error); color: #fff; border: 1px solid var(--error-dark); }
.crons-liste { display: flex; flex-direction: column; gap: 12px; }
.cron-carte { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 14px 16px; background: #fff; }
.cron-carte--inactive { opacity: 0.65; }
.cron-carte__tete { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cron-carte__actif { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.cron-carte__role { margin: 4px 0 0; }
.cron-carte__grille { display: flex; flex-wrap: wrap; gap: 18px 32px; margin-top: 12px; }
.cron-carte__bloc { display: flex; flex-direction: column; gap: 4px; min-width: 220px; flex: 1 1 220px; font-size: 13px; }
.cron-carte__lib { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--neutral-600, #5f5f6e); letter-spacing: 0.04em; }
.cron-carte__bloc input.crons-num, .cron-carte__bloc input.crons-num--large { width: 110px; display: inline-block; }
.crons-num { width: 70px; padding: 4px 6px; }
.crons-num--large { width: 90px; }
.crons-outils { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.crons-outil { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 999px; padding: 2px 9px; font-size: 11.5px; background: #fff; }
.crons-outil img { width: 13px; height: 13px; }
.crons-outil__regime { font-size: 10px; font-weight: 700; text-transform: uppercase; }
.crons-outil__regime--gratuit { color: #1E7D32; }
.crons-outil__regime--abonnement { color: #00796B; }
.crons-outil__regime--interne { color: #5f5f6e; }
.crons-outil__regime--facture { color: #B26A00; }
.crons-planif { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.crons-planif select, .crons-planif input[type="time"] { padding: 4px 6px; }
.crons-planif__note { flex-basis: 100%; }
.crons-vars { display: flex; flex-wrap: wrap; gap: 24px; margin: 6px 0 10px; }
.crons-vars label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.marche-suggestions { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; margin: 8px 0 24px; }
.marche-suggestion { display: flex; flex-direction: column; align-items: stretch; gap: 7px; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 10px; padding: 12px 14px; }
.marche-suggestion:hover { border-color: var(--brand-600, #d63384); }
.marche-suggestion__domaine { font-weight: 700; font-size: 13.5px; color: var(--influa-noir, #1a1a1a); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marche-suggestion__domaine:hover { color: var(--brand-600, #d63384); text-decoration: underline; }
.marche-suggestion__ligne { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12.5px; }
.marche-suggestion__ligne strong { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12px; }
.marche-suggestion__barre { flex: 1; height: 8px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; }
.marche-suggestion__barre span { display: block; height: 100%; border-radius: 999px; background: var(--brand-600, #d63384); }
.marche-suggestion__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; }
.e1-viz-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; margin: 24px 0 0; }
.e1-viz { border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; padding: 14px 16px; background: #fff; scroll-margin-top: 70px; }
.e1viz-histo { margin-top: 10px; }
.e1viz-barres + .e1viz-histo { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--neutral-200, #e4e4ea); }
.e1viz-histo__t { font-size: 12px; font-weight: 600; color: var(--neutral-700, #4a4a57); margin: 0 0 2px; }
.e1viz-histo__t .hint { font-weight: 400; }
.e1-motscles { font-size: 11px; opacity: .85; }
/* Legende du graphe SOV multi-courbes : une pastille de couleur par acteur, client en gras */
.sov-legende { display: flex; flex-wrap: wrap; gap: 5px 14px; margin-top: 10px; }
.sov-legende__item { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--neutral-700, #4a4a56); }
.sov-legende__item--vous { font-weight: 700; color: var(--influa-noir, #111318); }
.sov-legende__pastille { width: 11px; height: 3px; border-radius: 2px; display: inline-block; flex: none; }
.sov-legende__item--vous .sov-legende__pastille { height: 4px; }
.sov-legende__val { color: var(--neutral-500, #8a8a96); font-variant-numeric: tabular-nums; }
.sov-legende__item--vous .sov-legende__val { color: inherit; }
.sov-legende__note { margin-top: 6px; font-size: 11.5px; }
/* Tableau "Sources" : d'ou vient chaque KPI (SE Ranking vs Semrush) + cycle + cout */
.src-kpi-wrap { overflow-x: auto; margin: 8px 0 14px; }
.src-kpi { border-collapse: collapse; font-size: 12px; min-width: 560px; }
.src-kpi th, .src-kpi td { text-align: left; padding: 5px 10px; border-bottom: 1px solid var(--neutral-200, #e4e4ea); white-space: nowrap; }
.src-kpi th { font-weight: 700; color: var(--neutral-700, #4a4a56); }
.src-kpi td:first-child { white-space: normal; }
.src-kpi__oui { color: #1D9E75; font-weight: 700; }
.marche-sov-histo__vide { margin: 8px 0 2px; }
.e1-viz__titre { font-size: 14px; font-weight: 700; margin: 0 0 2px; }
.e1-viz__sous { display: block; margin-bottom: 12px; }
.e1viz-barres { display: flex; flex-direction: column; gap: 7px; }
.e1viz-barre { display: flex; align-items: center; gap: 9px; font-size: 12.5px; }
.e1viz-barre__nom { flex: 0 0 168px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.e1viz-barre--vous .e1viz-barre__nom { font-weight: 700; color: var(--brand-600, #d63384); }
.e1viz-barre__fond { flex: 1; height: 12px; background: var(--neutral-100, #ededf2); border-radius: 999px; overflow: hidden; }
.e1viz-barre__fond span { display: block; height: 100%; border-radius: 999px; background: var(--neutral-400, #b9b9c4); }
.e1viz-barre--vous .e1viz-barre__fond span { background: var(--brand-600, #d63384); }
.e1viz-barre--autres .e1viz-barre__fond span { background: var(--neutral-200, #e4e4ea); }
.e1viz-barre--autres .e1viz-barre__nom { color: var(--neutral-500, #8a8a96); }
.e1viz-barre__val { flex: 0 0 52px; text-align: right; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12px; }
.e1viz-radar { display: block; width: 100%; max-width: 430px; margin: 0 auto; }
.e1viz-leg { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; font-size: 12px; margin: 4px 0 10px; }
.e1viz-leg > span { display: inline-flex; align-items: center; gap: 6px; }
.e1viz-leg__trait { display: inline-block; width: 18px; height: 3px; border-radius: 2px; }
.e1viz-leg__trait--tirets { background: repeating-linear-gradient(90deg, #8a8a96 0 4px, transparent 4px 7px); }
.e1viz-tab { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.e1viz-tab th, .e1viz-tab td { padding: 4px 6px; text-align: right; border-top: 1px solid var(--neutral-100, #ededf2); }
.e1viz-tab th:first-child, .e1viz-tab td:first-child { text-align: left; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.e1viz-tab th { font-weight: 600; color: var(--neutral-500, #8a8a96); border-top: none; text-transform: uppercase; font-size: 10px; letter-spacing: .03em; }
.e1viz-tab td { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
.e1viz-tab--vous td { color: var(--brand-600, #d63384); font-weight: 700; }
.marche-sugg__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.marche-sugg__head .kpi-drop__t { margin-bottom: 4px; }
.marche-sugg__encours { font-style: italic; }
/* Jauge d'avancement du Benchmark IA (generation des profils, un par un) : on
   voit tout de suite qu'il se passe quelque chose apres "Lancer le benchmark".
   Meme grammaire visuelle que la jauge de crawl, aux couleurs violettes du
   groupe Benchmark IA (cf. .e1-bench). */
/* Invitation a actualiser : fixe en bas a droite, donc AUCUN decalage de la mise en
   page - l'ecran ne bouge pas, c'est tout l'objet de ce bandeau. */
.invite-actu { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; border: 1px solid #b9a5e6; background: #efeafb; border-radius: 10px;
  box-shadow: 0 6px 20px rgba(40, 20, 80, .16); font-size: 13px; color: #3a2570; max-width: min(420px, calc(100vw - 36px)); }
.invite-actu__t { font-weight: 600; }
.invite-actu__btn { flex: none; padding: 5px 12px; border: 1px solid #6d3fc4; background: #6d3fc4; color: #fff;
  border-radius: 7px; font: inherit; font-weight: 700; cursor: pointer; }
.invite-actu__btn:hover { background: #5a31a8; border-color: #5a31a8; }
@media (max-width: 640px) { .invite-actu { left: 12px; right: 12px; bottom: 12px; } }
.bench-jauge { display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px; border: 1px solid #b9a5e6; background: #efeafb; border-radius: 999px; }
.bench-jauge__t { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: #4a2f8f; white-space: nowrap; }
.bench-jauge .spin { border-color: rgba(109,63,196,.3); border-top-color: #6d3fc4; }
.bench-jauge__piste { position: relative; width: 110px; height: 6px; border-radius: 3px; background: #ded2f5; overflow: hidden; }
.bench-jauge__fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; border-radius: 3px; background: #6d3fc4; transition: width .4s ease; }
.bench-jauge__val { font-size: 12px; font-weight: 700; color: #4a2f8f; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bench-jauge[data-etat="fini"] .bench-jauge__t .spin { display: none; }
/* Motif d'echec d'un lancement E5 sans rechargement (budget atteint, aucun moteur). */
.geo-async-err { margin: 6px 0 0; font-size: 12.5px; font-weight: 600; color: var(--error-dark, #b91c1c); }
.marche-sugg__vide { margin: 2px 0 24px; }

/* ===== Benchmark IA - Synthese strategique ===== */
.bench-verdict { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; border-radius: 14px; border: 2px solid; margin-bottom: 20px; }
.bench-verdict--fort { background: #e7f6ec; border-color: #79c894; }
.bench-verdict--bon { background: #e6f4f7; border-color: #6fc4d4; }
.bench-verdict--moyen { background: #fdf1e3; border-color: #eab873; }
.bench-verdict--faible { background: #fdeef0; border-color: #e79aa6; }
.bench-verdict--neutre { background: #f1f2f5; border-color: #c7ccd6; }
.bench-verdict__k { display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--neutral-500, #85858f); }
.bench-verdict__titre { display: block; font-size: 21px; font-weight: 800; color: var(--neutral-800, #111318); line-height: 1.15; margin-top: 2px; }
.bench-verdict__kpis { display: flex; flex-wrap: wrap; gap: 22px; }
.bench-kpi { display: flex; flex-direction: column; align-items: flex-end; }
.bench-kpi__v { font-size: 22px; font-weight: 800; color: var(--neutral-800, #111318); font-variant-numeric: tabular-nums; line-height: 1; }
.bench-kpi__l { font-size: 11px; color: var(--neutral-600, #6a6a75); margin-top: 3px; }
.bench-kpi__l sup { font-size: 8px; }

.bench-grille { display: grid; grid-template-columns: 1.35fr 1fr; gap: 20px; margin-bottom: 20px; align-items: start; }
.bench-grille--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 900px) { .bench-grille, .bench-grille--2 { grid-template-columns: 1fr; } }
.bench-bloc__t { font-size: 13px; font-weight: 700; color: var(--neutral-700, #333); margin: 0 0 10px; }
.bench-bloc__t .hint { font-weight: 400; }
.bench-bloc__t--op { margin-top: 18px; }

.bench-carte, .bench-archetypes, .bench-menaces, .bench-territoires { background: #fff; border: 1px solid var(--neutral-200, #e6e6ec); border-radius: 12px; padding: 14px 16px; }
.bench-map { width: 100%; height: auto; overflow: visible; }
.bench-map__axe { stroke: #c7ccd6; stroke-width: 1.5; }
.bench-map__med { stroke: #e6e6ec; stroke-width: 1; stroke-dasharray: 4 4; }
.bench-map__quad { fill: var(--neutral-400, #b9b9c4); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.bench-map__ax { fill: var(--neutral-500, #85858f); font-size: 10px; font-weight: 700; }
.bench-map__pt { fill: #9aa3b2; fill-opacity: .55; stroke: #fff; stroke-width: 1; }
.bench-map__pt--menace { fill: #e0803a; fill-opacity: .7; }
.bench-map__vous { fill: var(--influa-rose, #e73c7e); stroke: #fff; stroke-width: 2; }
.bench-map__vous-t { fill: var(--influa-rose, #e73c7e); font-size: 12px; font-weight: 800; }

.bench-arch { margin-bottom: 16px; }
.bench-arch__lib { display: block; font-size: 12px; font-weight: 700; color: var(--neutral-700, #333); margin-bottom: 6px; }
.bench-arch__bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: var(--neutral-100, #ededf2); }
.bench-arch__seg { display: block; }
.bench-arch__seg--concurrent_direct { background: #e0803a; }
.bench-arch__seg--convergent { background: #eab873; }
.bench-arch__seg--niche_differente { background: #6fc4d4; }
.bench-arch__seg--marche_autre { background: #b9b9c4; }
.bench-arch__seg--non_determinable { background: #d9d9e0; }
.bench-arch__seg--env-local { background: #3f6aa3; }
.bench-arch__seg--env-regional { background: #6f95c4; }
.bench-arch__seg--env-national { background: #a7c0de; }
.bench-arch__seg--env-international { background: #d5e1f0; }
.bench-arch__leg { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 8px; }
.bench-arch__chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--neutral-700, #333); }
.bench-arch__chip::before { content: ""; width: 9px; height: 9px; border-radius: 2px; background: currentColor; }
.bench-arch__chip.bench-arch__seg--concurrent_direct::before { background: #e0803a; }
.bench-arch__chip.bench-arch__seg--convergent::before { background: #eab873; }
.bench-arch__chip.bench-arch__seg--niche_differente::before { background: #6fc4d4; }
.bench-arch__chip.bench-arch__seg--marche_autre::before { background: #b9b9c4; }
.bench-arch__chip.bench-arch__seg--non_determinable::before { background: #d9d9e0; }
.bench-arch__chip.bench-arch__seg--env-local::before { background: #3f6aa3; }
.bench-arch__chip.bench-arch__seg--env-regional::before { background: #6f95c4; }
.bench-arch__chip.bench-arch__seg--env-national::before { background: #a7c0de; }
.bench-arch__chip.bench-arch__seg--env-international::before { background: #d5e1f0; }
.bench-arch__chip b { font-weight: 800; }

.bench-menace { padding: 11px 0; border-top: 1px solid var(--neutral-100, #ededf2); }
.bench-menace:first-of-type { border-top: 0; }
.bench-menace__tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bench-menace__nom { font-weight: 700; color: var(--neutral-800, #111318); text-decoration: none; }
.bench-menace__nom:hover { text-decoration: underline; }
.bench-menace__note { flex: none; padding: 2px 9px; border-radius: 8px; font-weight: 800; font-size: 13px; font-variant-numeric: tabular-nums; }
.bench-menace__note.sc-red { background: #fde5e9; color: #b02a4a; }
.bench-menace__note.sc-orange { background: #fbedd9; color: #a15c17; }
.bench-menace__note.sc-green { background: #e4f3e9; color: #2b7a45; }
.bench-menace__sur { font-size: 9px; font-weight: 600; opacity: .7; }
.bench-menace__diff { font-size: 12.5px; color: var(--neutral-600, #6a6a75); margin: 5px 0 0; line-height: 1.4; }
.bench-menace__angle { font-size: 12.5px; color: var(--neutral-800, #111318); margin: 6px 0 0; line-height: 1.4; padding-left: 9px; border-left: 3px solid var(--influa-rose, #e73c7e); }
.bench-menace__angle-k { font-weight: 700; color: var(--influa-rose, #e73c7e); text-transform: uppercase; font-size: 10px; letter-spacing: .04em; }

.bench-verts { display: flex; flex-direction: column; gap: 7px; }
.bench-vert { display: grid; grid-template-columns: 44% 1fr 26px; align-items: center; gap: 8px; }
.bench-vert__lib { font-size: 12px; color: var(--neutral-700, #333); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bench-vert__bar { height: 9px; border-radius: 5px; background: var(--neutral-100, #ededf2); overflow: hidden; }
.bench-vert__bar > span { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, #6fc4d4, #4aa5c2); }
.bench-vert__n { font-size: 11.5px; font-weight: 700; color: var(--neutral-600, #6a6a75); text-align: right; font-variant-numeric: tabular-nums; }
.bench-ops { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bench-op { font-size: 12.5px; color: var(--neutral-800, #111318); line-height: 1.45; padding-left: 16px; position: relative; }
.bench-op::before { content: "\2192"; position: absolute; left: 0; color: var(--influa-rose, #e73c7e); font-weight: 800; }
.bench-op__src { color: var(--neutral-500, #85858f); font-style: italic; }

/* ===== Positionnement LLM : perception reelle par moteur IA ===== */
.bench-geo { margin-top: 26px; padding-top: 22px; border-top: 2px solid var(--neutral-200, #e6e6ec); }
.bench-geo__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.geo-question { font-size: 12.5px; color: var(--neutral-600, #55555f); margin: 4px 0 2px; }
.geo-question__q { font-style: italic; color: var(--neutral-800, #1f1f27); font-weight: 600; }
.bench-bloc__t--big { font-size: 16px; margin-bottom: 3px; }
.bench-geo__verdict { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.bench-geo__msg { font-size: 13px; color: var(--neutral-700, #333); }
.geo-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 16px; }
@media (max-width: 1100px) { .geo-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .geo-cards { grid-template-columns: 1fr; } }
/* Carte moteur : chaque bloc dans le design de SA marque. Bandeau plein a la
   couleur du moteur, avec son logo et son nom - PAS de liseret decoratif. */
.geo-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--neutral-200, #e6e6ec); border-radius: 12px; overflow: hidden; }
.geo-card__marque { display: flex; align-items: center; gap: 8px; padding: 9px 12px; color: #fff; }
.geo-card--claude .geo-card__marque { background: #cc7b5c; }
.geo-card--openai .geo-card__marque { background: #0f9d78; }
.geo-card--gemini .geo-card__marque { background: #1a73e8; }
.geo-card--perplexity .geo-card__marque { background: #20808d; }
.geo-card__logo { display: inline-flex; width: 19px; height: 19px; flex: none; }
.geo-card__logo svg { width: 100%; height: 100%; }
.geo-card__nom { font-size: 14px; font-weight: 700; color: #fff; }
.geo-card__web { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #fff; border: 1px solid rgba(255, 255, 255, .55); border-radius: 4px; padding: 1px 4px; }
.geo-card__niv { margin-left: auto; font-size: 10.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: #fff; white-space: nowrap; }
.geo-card__niv--inconnu { color: #b02a4a; }
.geo-card__niv--vague { color: #a15c17; }
.geo-card__niv--correct { color: #8a7016; }
.geo-card__niv--bon { color: #2b7a45; }
.geo-card__niv--excellent { color: #1f6b3a; }
.geo-card__niv--indispo { color: var(--neutral-600, #6a6a75); }
.geo-card__corps { display: flex; flex-direction: column; gap: 9px; padding: 12px 14px; flex: 1; }
.geo-card__resume { font-size: 12.5px; line-height: 1.5; color: var(--neutral-700, #333); margin: 0; }
.geo-card__pf { display: flex; flex-wrap: wrap; gap: 5px; }
.geo-pf { font-size: 11px; line-height: 1.35; padding: 2px 7px; border-radius: 6px; }
.geo-pf--plus { background: #e9f5ee; color: #2b7a45; }
.geo-pf--plus::before { content: "+ "; font-weight: 800; }
.geo-pf--moins { background: #fbeef0; color: #a3435a; }
.geo-pf--moins::before { content: "\2013\00a0"; font-weight: 800; }
/* Levier : bloc PROPRE (fond neutre, contour complet), aucun liseret ni trame. */
.geo-card__levier { border: 1px solid var(--neutral-200, #e6e6ec); background: #fafafc; border-radius: 8px; padding: 8px 10px; margin-top: auto; }
.geo-card__levier-k { display: block; font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-500, #85858f); margin-bottom: 3px; }
.geo-card__levier-t { font-size: 12px; line-height: 1.45; color: var(--neutral-800, #111318); }
.geo-card__src { font-size: 11px; color: var(--neutral-500, #85858f); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.geo-card__src-k { font-weight: 700; }
.geo-card__src a { color: var(--influa-cyan, #00a8b5); text-decoration: none; }
.geo-card__src a:hover { text-decoration: underline; }
.geo-card__err { font-style: italic; }
.geo-card__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--geo, #888); flex: none; }

/* Recommandation : etes-vous cite quand un prospect demande une reco ? */
.geo-cit { margin-top: 24px; }
.geo-cit__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }
.geo-cit__global { font-size: 13px; color: var(--neutral-700, #333); background: #e4f3e9; border: 1px solid #a9d9bb; border-radius: 999px; padding: 4px 12px; white-space: nowrap; }
.geo-cit__global strong { font-size: 15px; }
.geo-cit__global--none { background: #fde5e9; border-color: #eeaebb; color: #b02a4a; }
.geo-cit__table { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 560px; }
.geo-cit__table th, .geo-cit__table td { padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--neutral-100, #ededf2); }
.geo-cit__table thead th { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-600, #6a6a75); font-weight: 700; border-bottom: 2px solid var(--neutral-200, #e6e6ec); }
.geo-cit__moteur { text-align: center !important; white-space: nowrap; }
.geo-cit__moteur .geo-card__dot { display: inline-block; width: 8px; height: 8px; margin-right: 5px; vertical-align: middle; }
.geo-cit__q { color: var(--neutral-800, #111318); max-width: 420px; }
.geo-cit__theme { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-500, #85858f); background: var(--neutral-100, #ededf2); border-radius: 5px; padding: 1px 6px; margin-left: 4px; }
.geo-cit__cell { text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.geo-cit--top { color: #2b7a45; }
.geo-cit--mid { color: #1c86a8; }
.geo-cit--absent { color: #c48b98; font-weight: 600; }
.geo-cit--na { color: var(--neutral-300, #c7c7cf); }

/* Notoriete IA : classement du client face a ses concurrents */
.geo-comp { margin-top: 24px; }
.geo-comp__liste { display: flex; flex-direction: column; gap: 3px; margin-top: 10px; }
.geo-comp__row { display: grid; grid-template-columns: 26px minmax(130px, 1.1fr) auto minmax(120px, 2.2fr) 50px; align-items: center; gap: 14px; padding: 7px 10px; border-radius: 8px; }
.geo-comp__row--vous { background: #fdeef4; outline: 1px solid #f3b9d3; }
.geo-comp__rang { font-size: 11.5px; font-weight: 700; color: var(--neutral-400, #b9b9c4); text-align: right; font-variant-numeric: tabular-nums; }
.geo-comp__nom { font-size: 12.5px; color: var(--neutral-800, #111318); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.geo-comp__row--vous .geo-comp__nom { font-weight: 800; }
.geo-comp__tag { display: inline-block; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: var(--influa-rose, #e73c7e); border-radius: 5px; padding: 1px 5px; vertical-align: middle; }
.geo-comp__dots { display: inline-flex; gap: 4px; }
.geo-comp__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--neutral-200, #e6e6ec); }
.geo-dot--inconnu { background: #e79aa6; }
.geo-dot--vague { background: #eab873; }
.geo-dot--correct { background: #e6cf6a; }
.geo-dot--bon { background: #79c894; }
.geo-dot--excellent { background: #3ba368; }
.geo-comp__bar { height: 8px; border-radius: 4px; background: var(--neutral-100, #ededf2); overflow: hidden; }
.geo-comp__bar { height: 10px; }
.geo-comp__bar > span { display: block; height: 100%; border-radius: 5px; min-width: 4px; background: linear-gradient(90deg, #7fd0da, var(--influa-cyan, #00a8b5)); }
.geo-comp__row--vous .geo-comp__bar > span { background: linear-gradient(90deg, #f3a9cd, var(--influa-rose, #e73c7e)); }
.geo-comp__score { font-size: 12px; font-weight: 700; color: var(--neutral-700, #333); text-align: right; font-variant-numeric: tabular-nums; }
.geo-comp__moteurs { display: inline-flex; gap: 11px; align-items: center; }
.geo-comp__mot { display: inline-flex; align-items: center; gap: 3px; }
.geo-comp__logo { display: inline-flex; width: 16px; height: 16px; }
.geo-comp__logo svg { width: 100%; height: 100%; }
.geo-comp__pt { width: 6px; height: 6px; border-radius: 50%; background: var(--neutral-200, #e6e6ec); }
.geo-cit__logo { display: inline-flex; width: 14px; height: 14px; vertical-align: middle; margin-right: 5px; }
.geo-cit__logo svg { width: 100%; height: 100%; }
.marche-ecartees { margin: 4px 0 24px; }
.marche-ecartees summary { cursor: pointer; font-size: 12.5px; color: var(--neutral-600, #6d6d78); }
.marche-ecartees__liste { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.marche-ecartees__item { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 999px; padding: 4px 6px 4px 12px; font-size: 12.5px; background: #fff; }
.marche-ecartees__item a { color: var(--influa-noir, #1a1a1a); text-decoration: none; font-weight: 600; }
.marche-ecartees__item a:hover { color: var(--brand-600, #d63384); text-decoration: underline; }
.marche-client td { background: #FDF0F6; font-weight: 600; color: #1a1a1a; }
.marche-client td:first-child { border-left: 4px solid var(--brand-600, #d63384); }
.e1-client-id { display: flex; align-items: flex-start; gap: 9px; }
.e1-logo { width: 26px; height: 26px; object-fit: contain; border-radius: 5px; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); flex: none; margin-top: 1px; }
/* Identite visuelle par outil (Jerome, 22/07/2026) : chaque section porte la
   couleur de son picto - bordure, puces actives, controles. A tout moment du
   defilement, la couleur d'accent dit quel outil on lit. */
.sec-outil--sc { border-left: 4px solid #1098AD; }
.sec-outil--ga4 { border-left: 4px solid #E37400; }
.sec-outil--sr { border-left: 4px solid #2A5BD7; }
.sec-outil--sem { border-left: 4px solid #FF642D; }
.sec-outil--sc .gsc-chip.is-active, .sec-outil--sc a.gsc-chip.is-active { background: #1098AD; border-color: #1098AD; color: #fff; }
.sec-outil--ga4 .gsc-chip.is-active { background: #E37400; border-color: #E37400; color: #fff; }
.sec-outil--sr .gsc-chip.is-active, .sec-outil--sr a.gsc-chip.is-active { background: #2A5BD7; border-color: #2A5BD7; color: #fff; }
.sec-outil--sem .gsc-chip.is-active { background: #FF642D; border-color: #FF642D; color: #fff; }
.outil-logo { width: 17px; height: 17px; flex-shrink: 0; }
.doc-head h2 .outil-logo { width: 20px; height: 20px; margin-right: 9px; vertical-align: -3px; }
/* Espace homogene sous la sous-nav des onglets sans conteneur a gap (Performance,
   Marche) : l'onglet Audit le fournit deja via le gap de .audit-dashboard. */
.main > .audit-subnav { margin-bottom: var(--s5); }
.perf-onglets [data-perf-outil="sec-perf"].is-active { background: #1098AD; color: #fff; }
.perf-onglets [data-perf-outil="sec-ga4"].is-active { background: #E37400; color: #fff; }
.perf-onglets [data-perf-outil="sec-sr"].is-active { background: #2A5BD7; color: #fff; }
.perf-onglets [data-perf-outil="sec-sem"].is-active { background: #FF642D; color: #fff; }
.perf-onglets .is-active .outil-logo path, .perf-onglets .is-active .outil-logo rect, .perf-onglets .is-active .outil-logo circle { fill: #fff; }
.prop-form { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.prop-picker { position: relative; width: min(480px, 100%); }
.prop-picker__champ { width: 100%; padding: 10px 14px 10px 38px; border: 1.5px solid var(--neutral-300, #d5d5dc); border-radius: 10px; font: inherit; font-size: 14px; background: #fff url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Ccircle cx=%2210.5%22 cy=%2210.5%22 r=%226.5%22 fill=%22none%22 stroke=%22%239a9aa6%22 stroke-width=%222.2%22/%3E%3Cpath d=%22M15.3 15.3 21 21%22 stroke=%22%239a9aa6%22 stroke-width=%222.2%22 stroke-linecap=%22round%22/%3E%3C/svg%3E') 12px 50% / 16px no-repeat; transition: border-color var(--fast), box-shadow var(--fast); }
.prop-picker__champ:focus { outline: none; border-color: var(--influa-rose); box-shadow: 0 0 0 3px rgba(233, 30, 99, .12); }
.sec-outil--sc .prop-picker__champ:focus { border-color: #1098AD; box-shadow: 0 0 0 3px rgba(16, 152, 173, .15); }
.sec-outil--ga4 .prop-picker__champ:focus { border-color: #E37400; box-shadow: 0 0 0 3px rgba(227, 116, 0, .15); }
.prop-picker.est-erreur .prop-picker__champ { border-color: #d93025; box-shadow: 0 0 0 3px rgba(217, 48, 37, .12); }
.prop-picker__liste { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; right: 0; max-height: 320px; overflow: auto; background: #fff; border: 1px solid var(--neutral-200, #e4e4ea); border-radius: 12px; box-shadow: 0 12px 34px rgba(20, 20, 35, .16); padding: 6px; }
.prop-picker__opt { display: flex; width: 100%; gap: 10px; align-items: center; padding: 9px 11px; border: 0; background: none; border-radius: 8px; text-align: left; cursor: pointer; font: inherit; font-size: 13.5px; color: var(--influa-noir, #17171f); }
.prop-picker__opt:hover, .prop-picker__opt.est-actif { background: var(--neutral-100, #f2f2f6); }
.prop-picker__nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prop-picker__meta { margin-left: auto; flex-shrink: 0; color: var(--neutral-600, #6b6b78); font-size: 12px; }
.prop-picker__badge { flex-shrink: 0; font-size: 11px; font-weight: 600; color: #fff; border-radius: var(--radius-full, 999px); padding: 2px 9px; background: var(--influa-rose, #e91e63); }
.sec-outil--sc .prop-picker__badge { background: #1098AD; }
.sec-outil--ga4 .prop-picker__badge { background: #E37400; }
.sec-outil--sr .prop-picker__badge { background: #2A5BD7; }
.sec-outil--sr .prop-picker__champ:focus { border-color: #2A5BD7; box-shadow: 0 0 0 3px rgba(42, 91, 215, .15); }
.prop-picker__vide { padding: 10px 12px; margin: 0; }
.prop-picker__badge--actuel { background: var(--neutral-600, #6b6b78); }
.appairage-bloc { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--neutral-200, #e4e4ea); }
.appairage-bloc__titre { margin: 0 0 10px; font-weight: 600; font-size: 14px; }
.appairage-bloc__titre .hint { font-weight: 400; margin-left: 8px; }
.appairage-bloc__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; }
.appairage-bloc__outil { border-left: 3px solid var(--neutral-300, #d5d5dc); padding-left: 12px; }
.appairage-bloc__outil.sec-outil--sc { border-left-color: #1098AD; }
.appairage-bloc__outil.sec-outil--ga4 { border-left-color: #E37400; }
.appairage-bloc__outil > label { display: flex; align-items: center; gap: 7px; font-weight: 600; font-size: 13px; margin-bottom: 7px; }
.prop-form--fiche { flex-wrap: nowrap; }
.prop-form--fiche .prop-picker { flex: 1; min-width: 0; width: auto; }
.gsc-graphe__zone { position: relative; padding-left: 56px; }
.gsc-graphe__zone svg { display: block; width: 100%; }
.gsc-graphe__echelle { position: absolute; left: 0; top: 0; bottom: 0; width: 48px; }
.gsc-graphe__echelle span { position: absolute; right: 0; transform: translateY(-50%); font-size: 11px; color: var(--neutral-600, #6b6b78); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gsc-graphe__abscisses { display: flex; justify-content: space-between; margin-top: 4px; font-size: 11px; color: var(--neutral-600, #6b6b78); font-variant-numeric: tabular-nums; }
.copie-urls { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--neutral-300, #d5d5dc); background: #fff; border-radius: var(--radius-full, 999px); padding: 3px 10px; font: inherit; font-size: 11.5px; font-weight: 600; color: var(--neutral-600, #6b6b78); cursor: pointer; margin: 2px 0 8px; transition: background var(--fast), color var(--fast), border-color var(--fast); }
.copie-urls:hover { background: var(--neutral-100, #f2f2f6); color: var(--influa-noir, #17171f); }
.copie-urls.est-copie { background: #0B8043; border-color: #0B8043; color: #fff; }
.copie-urls svg { width: 13px; height: 13px; flex-shrink: 0; }
.confiance-bandeau { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: rgba(11, 128, 67, .08); border: 1px solid rgba(11, 128, 67, .25); font-size: 13.5px; }
.confiance-bandeau--garde { background: rgba(232, 113, 10, .08); border-color: rgba(232, 113, 10, .3); }
.pa-preuves { list-style: none; margin: 6px 0 10px; padding: 0; display: grid; gap: 5px; }
.pa-preuves li { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.preuve { flex-shrink: 0; font-size: 11px; font-weight: 700; border-radius: var(--radius-full, 999px); padding: 2px 9px; color: #fff; }
.preuve--corrobore { background: #0B8043; }
.preuve--contredit { background: #d93025; }
.preuve--a_verifier { background: var(--neutral-600, #6b6b78); }
.pa-contexte { margin: 4px 0 10px; }
/* Aeration de l'onglet Performance (Jerome, 22/07/2026) : chaque etage
   respire - selecteurs de periode, cartes KPI, graphe, rangee de vues,
   tableaux - pour une lecture par blocs distincts. */
.gsc-chips { margin: 22px 0 4px; }
.sf-cmp--selecteur { margin-top: 20px; }
.gsc-graphe-panneau { margin: 26px 0 34px; }
.gsc-graphe__tete { margin-bottom: 12px; }
.perf-tables { margin-top: 24px; row-gap: 30px; }
.gsc-graphe__zone { margin-top: 6px; }
.sec-ico--ga { background: linear-gradient(135deg, #F9AB00, #E37400); }
.ga4-cell-sessions { position: relative; min-width: 170px; }
.ga4-barre { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); height: 16px; background: rgba(26, 115, 232, .18); border-radius: 3px; max-width: calc(100% - 16px); }
.ga4-cell-val { position: relative; }
button.gsc-kpi.is-active, button.gsc-kpi.is-active strong, button.gsc-kpi.is-active span { color: #fff; }
button.gsc-kpi.is-active .perf-delta, .sf-cmp__kpi.is-active span .perf-delta--haut, .sf-cmp__kpi.is-active span .perf-delta--bas { color: rgba(255, 255, 255, .92); }
.gsc-sep { width: 1px; align-self: stretch; background: var(--neutral-300); margin: 2px 6px; }
.gsc-sep-controles { margin-left: 0; }
/* Saut de ligne dans une rangee flex : "Comparer a" commence toujours sa propre
   ligne (lisibilite, regle de Jerome appliquee aux trois outils). */
.gsc-saut { flex-basis: 100%; height: 0; }
.gsc-sources { margin-top: var(--s3); }
.gsc-sources summary { cursor: pointer; font-size: 12px; color: var(--neutral-600); font-weight: 600; }
.gsc-sources .hint p { margin: 6px 0 0; }
.gsc-chip.is-active { background: var(--rose-500, #D6336C); border-color: var(--rose-500, #D6336C); color: #fff; }
.gsc-chip__n { font-size: 11px; opacity: .75; }
.gsc-chip__alerte { font-size: 11px; font-weight: 700; background: #FFE8CC; color: #D9480F; border-radius: 999px; padding: 1px 7px; }
.gsc-chip.is-active .gsc-chip__alerte { background: rgba(255, 255, 255, .25); color: #fff; }
.gsc-filtre { margin-left: auto; border: 1px solid var(--neutral-300); border-radius: 999px; padding: 5px 14px; font: inherit; font-size: 13px; min-width: 220px; }
.gsc-defile { max-height: 460px; overflow-y: auto; }
.gsc-triable th[data-tri] { cursor: pointer; user-select: none; position: sticky; top: 0; background: var(--neutral-0, #fff); }
.gsc-triable th[data-sens="desc"]::after { content: ""; display: inline-block; margin-left: 5px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--neutral-600); }
.gsc-triable th[data-sens="asc"]::after { content: ""; display: inline-block; margin-left: 5px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 5px solid var(--neutral-600); }
.perf-tables { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.perf-tables[hidden] { display: none; }
@media (max-width: 980px) { .perf-tables { grid-template-columns: 1fr; } }
.perf-tables table { width: 100%; border-collapse: collapse; font-size: 13px; }
.perf-tables th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-600); padding: 6px 8px; border-bottom: 1px solid var(--neutral-200); }
.perf-tables td { padding: 6px 8px; border-bottom: 1px solid var(--neutral-100, #f1f1f4); vertical-align: top; word-break: break-word; }
.perf-tables td.num, .perf-tables th.num { text-align: right; white-space: nowrap; }
.sf-cmp { display: flex; flex-wrap: wrap; gap: 10px; margin: var(--s3) 0; }
.sf-cmp__kpi { border: 1px solid var(--neutral-200); border-radius: var(--radius-sm); padding: 10px 14px; min-width: 130px; }
.sf-cmp__kpi strong { display: block; font-size: 20px; }
.sf-cmp__kpi span { font-size: 12px; color: var(--neutral-600); }
.sf-verdict { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.sf-verdict--ok { background: #D3F9D8; color: #2B8A3E; }
.sf-verdict--ecarts { background: #FFE8CC; color: #D9480F; }

/* Accordeon de sections : deplier l'une plie les autres (studio.js) */
.sec-pliable { scroll-margin-top: 66px; } /* la sous-nav collante ne recouvre pas l'en-tete cale */
.sec-pliable > .doc-head, .sec-pliable > .section-head { cursor: pointer; position: relative; padding-right: 34px; }
.sec-pliable > .doc-head::after, .sec-pliable > .section-head::after {
  content: ""; position: absolute; right: 8px; top: 12px;
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 6px solid var(--neutral-500, #8a8a93);
  transition: transform .15s ease;
}
.sec-plie > .doc-head::after, .sec-plie > .section-head::after { transform: rotate(-90deg); }
.sec-plie > *:not(.doc-head):not(.section-head) { display: none !important; }
.sec-plie { padding-bottom: var(--s3); }
.sec-plie > .doc-head, .sec-plie > .section-head { margin-bottom: 0; }

/* ==================== G1 Recommandation : calendrier 12 mois + fiches de contenu (etape 1.3) ==================== */
.reco-cadence { margin: 4px 0 18px; font-size: 13px; color: var(--neutral-700, #111318); }
.reco-cadence strong { color: var(--influa-noir, #0B0D12); }
.reco-h3 { font-size: 15px; font-weight: 700; color: var(--influa-noir, #0B0D12); margin: 24px 0 4px; }
.reco-sous { margin: 0 0 12px; }

/* --- Calendrier en couloirs --- */
.reco-cal-wrap { overflow-x: auto; border: 1px solid var(--neutral-200, #E4E6EA); border-radius: 12px; background: var(--surface-card, #fff); }
.reco-cal { border-collapse: collapse; width: 100%; min-width: 720px; font-size: 12.5px; }
.reco-cal th, .reco-cal td { border-bottom: 1px solid var(--neutral-100, #ededf2); }
.reco-cal tbody tr:last-child th, .reco-cal tbody tr:last-child td { border-bottom: 0; }
.reco-cal__coin { text-align: left; padding: 9px 12px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--neutral-600, #6d6d78); background: var(--neutral-50, #f7f7fa); }
.reco-cal__mois { padding: 9px 4px; text-align: center; font-size: 11px; font-weight: 700; color: var(--neutral-600, #6d6d78); background: var(--neutral-50, #f7f7fa); min-width: 42px; }
.reco-cal__lig { text-align: left; padding: 9px 12px; font-weight: 600; color: var(--influa-noir, #0B0D12); white-space: nowrap; background: var(--neutral-50, #f7f7fa); border-right: 1px solid var(--neutral-100, #ededf2); }
.reco-cal__dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 7px; vertical-align: 0; }
.reco-cal__c { padding: 6px 4px; text-align: center; }
.reco-cal__band { padding: 8px 12px; }
.reco-cal__rline .reco-cal__lig, .reco-cal__rline .reco-cal__band { background: #fbf7ef; }
.reco-cal__pil { display: inline-block; min-width: 22px; padding: 2px 8px; border-radius: 8px; border: 1px solid; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 12px; line-height: 1.5; }
.reco-cal__band .reco-cal__pil { margin: 2px 6px 2px 0; }
.reco-cal__vide { font-size: 12px; color: var(--neutral-500, #6b6b76); font-style: italic; }

/* --- Filtres (chips) --- */
.reco-filtres { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 16px; }
.reco-filtres__grp { display: flex; flex-wrap: wrap; gap: 6px; }
.reco-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-full, 9999px); border: 1px solid var(--neutral-200, #E4E6EA); background: var(--surface-card, #fff); font-size: 12.5px; font-weight: 600; color: var(--neutral-600, #6d6d78); cursor: pointer; transition: border-color .12s, color .12s, background .12s; }
.reco-chip:hover { border-color: var(--influa-rose, #E73C7E); color: var(--influa-rose, #E73C7E); }
.reco-chip.est-actif { background: var(--influa-rose, #E73C7E); border-color: var(--influa-rose, #E73C7E); color: #fff; }
.reco-chip__n { font-family: var(--font-mono, monospace); font-size: 11px; font-weight: 700; }
.reco-chip.est-actif .reco-cal__dot { box-shadow: 0 0 0 1px #fff; }

/* --- Fiches de contenu (cartes) --- */
.reco-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.reco-brique { border: 1px solid var(--neutral-200, #E4E6EA); border-radius: 12px; background: var(--surface-card, #fff); padding: 14px 15px; display: flex; flex-direction: column; gap: 7px; }
.reco-brique--publie { border-color: #BDE7D0; background: #f4fbf7; }
.reco-brique--en_cours { border-color: #F3D9B3; background: #fffaf1; }
.reco-brique__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.reco-brique__type, .reco-brique__prio { display: inline-block; padding: 2px 9px; border-radius: 8px; border: 1px solid; font-size: 11px; font-weight: 700; }
.reco-brique__cocon { display: inline-block; padding: 2px 9px; border-radius: 8px; background: var(--neutral-100, #ededf2); color: var(--neutral-700, #111318); font-size: 11px; font-weight: 600; }
.reco-brique__sem { margin-left: auto; font-family: var(--font-mono, monospace); font-size: 11px; font-weight: 700; color: var(--neutral-600, #6d6d78); }
.reco-brique__st { display: inline-block; padding: 2px 8px; border-radius: 8px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.reco-brique__st--publie { background: var(--success-light, #E4F6EC); color: var(--success-dark, #0f7b4d); }
.reco-brique__st--encours { background: var(--warning-light, #FCF0DC); color: var(--warning-dark, #a66a0c); }
.reco-brique__sujet { margin: 2px 0 0; font-size: 14px; font-weight: 700; color: var(--influa-noir, #0B0D12); line-height: 1.35; }
.reco-brique__angle { margin: 0; font-size: 12.5px; color: var(--neutral-700, #111318); }
.reco-brique__l { margin: 0; font-size: 12.5px; color: var(--neutral-700, #111318); line-height: 1.45; }
.reco-brique__lab { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--neutral-500, #6b6b76); margin-bottom: 1px; }
.reco-brique__pied { margin-top: 4px; }
@media (max-width: 700px) { .reco-grille { grid-template-columns: 1fr; } }
.sec-plie > .doc-head h2, .sec-plie > .section-head h2 { margin-bottom: 0; }

/* Etape Produire : plan de travail d'une brique, deplie sous sa fiche. */
.reco-brique__att { display: inline-flex; align-items: center; gap: 7px; margin-left: 8px; font-size: 12px; font-weight: 700; color: var(--neutral-600, #55555f); }
.reco-brique__outline { margin-top: 12px; padding: 14px 16px; border: 1px solid var(--neutral-300, #d7d7de); border-left: 3px solid var(--primary, #d63384); border-radius: 8px; background: var(--neutral-50, #fafafb); font-size: 13.5px; line-height: 1.6; }
.reco-brique__outline h2 { margin: 14px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-700, #3f3f49); }
.reco-brique__outline h2:first-child { margin-top: 0; }
.reco-brique__outline ul { margin: 6px 0 10px; padding-left: 18px; }
.reco-brique__outline li { margin-bottom: 4px; }
.reco-brique__err { margin: 0; color: var(--error-dark, #b91c1c); font-weight: 600; }


/* ---- ATELIER : plan de travail a la semaine (etape Produire) ----
   La couleur ne sert QU'AU TYPE de contenu : a soixante cartes, elle doit porter
   une information, jamais decorer. L'etat se lit par une pastille discrete. */
.atelier__barre { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: var(--s5, 20px); }
.atelier__vues { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 999px; background: var(--neutral-100, #f5f5f7); }
.atelier__vue { padding: 6px 16px; border: 0; border-radius: 999px; background: none; font-size: 13px; font-weight: 700; color: var(--neutral-600, #55555f); cursor: pointer; }
.atelier__vue.is-actif { background: #fff; color: var(--neutral-900, #1c1c22); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.atelier__filtres { display: inline-flex; gap: 8px; }
.atelier__filtre { height: 32px; padding: 0 10px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 8px; background: #fff; font-size: 12.5px; }
.atelier__charge { margin: 0 0 0 auto; font-size: 12.5px; color: var(--neutral-600, #55555f); }
.atelier__charge strong { color: var(--neutral-900, #1c1c22); }

.atelier__sem { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-top: 1px solid var(--neutral-200, #eaeaef); }
.atelier__sem:first-child { border-top: 0; }
.atelier__sem-tete { display: flex; align-items: baseline; gap: 8px; padding-top: 4px; }
.atelier__sem-num { font-size: 13px; font-weight: 700; color: var(--neutral-800, #2f2f38); }
.atelier__sem-n { min-width: 20px; padding: 1px 7px; border-radius: 999px; background: var(--neutral-100, #f5f5f7); font-size: 11px; font-weight: 700; color: var(--neutral-600, #55555f); text-align: center; }
.atelier__sem-cartes { display: flex; flex-wrap: wrap; gap: 8px; min-height: 46px; padding: 4px; border-radius: 10px; }
.atelier__sem-cartes.est-cible { background: var(--primary-light, #fdf2f7); outline: 2px dashed var(--primary, #d63384); outline-offset: -2px; }

.atelier-carte { width: 216px; padding: 9px 11px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 10px; background: #fff; cursor: grab; }
.atelier-carte:hover { border-color: var(--neutral-400, #b9b9c4); }
.atelier-carte.est-porte { opacity: .45; }
.atelier-carte__type { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; }
.atelier-carte__sujet { margin: 6px 0 8px; font-size: 12.5px; font-weight: 600; line-height: 1.35; color: var(--neutral-900, #1c1c22); }
.atelier-carte__pied { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.atelier-carte__cocon { font-size: 11px; color: var(--neutral-600, #55555f); }
.atelier-carte__pastille { padding: 1px 6px; border-radius: 4px; background: var(--neutral-100, #f5f5f7); font-size: 10px; font-weight: 700; color: var(--neutral-600, #55555f); }
.atelier-carte__etat { margin-left: auto; padding: 1px 7px; border-radius: 999px; font-size: 10px; font-weight: 700; }
.atelier-carte__etat--a_faire { background: var(--neutral-100, #f5f5f7); color: var(--neutral-600, #55555f); }
.atelier-carte__etat--en_cours { background: #fef3e2; color: #854f0b; }
.atelier-carte__etat--pret { background: #e1f5ee; color: #085041; }
.atelier-carte__etat--publie { background: #e6f1fb; color: #0c447c; }

.atelier__colonnes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.atelier__col-tete { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px 8px 0 0; background: var(--neutral-100, #f5f5f7); font-size: 12.5px; font-weight: 700; color: var(--neutral-800, #2f2f38); }
.atelier__col-cartes { display: flex; flex-direction: column; gap: 8px; min-height: 90px; padding: 8px; border: 1px solid var(--neutral-200, #eaeaef); border-top: 0; border-radius: 0 0 8px 8px; }
.atelier__col-cartes.est-cible { background: var(--primary-light, #fdf2f7); }
.atelier__col-cartes .atelier-carte { width: auto; }

.atelier__table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.atelier__table th { padding: 8px 10px; border-bottom: 2px solid var(--neutral-300, #d7d7de); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-600, #55555f); text-align: left; }
.atelier__table td { padding: 9px 10px; border-bottom: 1px solid var(--neutral-200, #eaeaef); }
.atelier__lien { border: 0; background: none; padding: 0; font: inherit; font-weight: 600; color: var(--neutral-900, #1c1c22); text-align: left; cursor: pointer; }
.atelier__lien:hover { color: var(--primary, #d63384); text-decoration: underline; }


/* ---- ECRAN DE CREATION (atelier plein ecran) ----
   Regle de Jerome : une fois qu'on clique sur une creation, TOUT l'ecran lui est
   dedie. Trois colonnes, chacune repond a une question : pourquoi on fait ca /
   ce qu'on fabrique / avec quoi. Le POURQUOI reste sous les yeux pendant qu'on
   relit : c'est ce qui permet de juger sans effort. */
.crea__tete { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--neutral-200, #eaeaef); }
.crea__retour { font-size: 12.5px; color: var(--neutral-600, #55555f); text-decoration: none; }
.crea__retour:hover { color: var(--primary, #d63384); }
.crea__type { padding: 2px 9px; border-radius: 999px; background: var(--neutral-100, #f5f5f7); font-size: 11px; font-weight: 700; color: var(--neutral-700, #3f3f49); }
.crea__titre { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.25; color: var(--neutral-900, #1c1c22); }
.crea__meta { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.crea__cocon { font-size: 12px; color: var(--neutral-600, #55555f); }
.crea__etat { height: 30px; padding: 0 8px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 8px; background: #fff; font-size: 12.5px; }
.crea__etat-form { margin: 0; }

.crea__corps { display: grid; grid-template-columns: 250px minmax(0, 1fr) 340px; gap: 0; margin-top: 18px; }
.crea__col { padding: 0 20px; }
.crea__col--pourquoi { padding-left: 0; border-right: 1px solid var(--neutral-200, #eaeaef); }
.crea__col--matiere, .crea__col--apercu { padding-right: 0; border-left: 1px solid var(--neutral-200, #eaeaef); }

.crea__lab { margin: 0 0 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-500, #767680); }
.crea__lab--sep { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--neutral-200, #eaeaef); }
/* Le cartouche : le SEUL objet a contraste fort de l'ecran (regle Jerome). */
.crea__cartouche { display: inline-block; margin: 0 0 10px; padding: 3px 11px; border: 1px solid #c3cad4; border-radius: 3px; background: #edf0f5; font-size: 15px; font-weight: 700; color: var(--neutral-900, #1c1c22); font-variant-numeric: tabular-nums; }
.crea__signal { font-size: 12.5px; line-height: 1.55; color: var(--neutral-700, #3f3f49); }
.crea__mots { margin: 0; padding: 0; list-style: none; }
.crea__mot { padding: 6px 0; border-bottom: 1px solid var(--neutral-200, #eaeaef); }
.crea__mot:last-child { border-bottom: 0; }
.crea__mot-e { display: block; font-size: 12.5px; font-weight: 600; color: var(--neutral-900, #1c1c22); }
.crea__mot-v { display: block; margin-top: 1px; font-size: 11.5px; color: var(--neutral-600, #55555f); font-variant-numeric: tabular-nums; }
.crea__pages { margin: 0; padding-left: 15px; font-size: 11.5px; }
.crea__pages li { margin-bottom: 3px; }
.crea__pages a { color: var(--neutral-700, #3f3f49); }
.crea__vide { margin: 6px 0 0; font-size: 11.5px; line-height: 1.5; color: var(--neutral-500, #767680); }

.crea__onglets { display: inline-flex; gap: 2px; margin-bottom: 14px; padding: 3px; border: 1px solid var(--neutral-300, #d7d7de); border-radius: 999px; background: var(--neutral-100, #f5f5f7); }
.crea__onglet { padding: 5px 15px; border: 0; border-radius: 999px; background: none; font-size: 12.5px; font-weight: 700; color: var(--neutral-600, #55555f); cursor: pointer; }
.crea__onglet.is-actif { background: #fff; color: var(--neutral-900, #1c1c22); }
.crea__md { font-size: 13.5px; line-height: 1.65; color: var(--neutral-800, #2f2f38); max-width: 76ch; }
.crea__md h2 { margin: 20px 0 8px; font-size: 12.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--neutral-600, #55555f); }
.crea__md h2:first-child { margin-top: 0; }
.crea__md ul { margin: 6px 0 12px; padding-left: 18px; }
.crea__md li { margin-bottom: 5px; }
.crea__amorce { max-width: 52ch; padding: 22px 24px; border: 1px dashed var(--neutral-300, #d7d7de); border-radius: 10px; }
.crea__amorce-t { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--neutral-900, #1c1c22); }
.crea__amorce-p { margin: 0 0 14px; font-size: 12.5px; line-height: 1.55; color: var(--neutral-600, #55555f); }
.crea__attente { display: inline-flex; align-items: center; gap: 7px; margin-left: 10px; font-size: 12px; font-weight: 700; color: var(--neutral-600, #55555f); }

.crea__biblio { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.crea__vignette { aspect-ratio: 1; border-radius: 7px; background: var(--neutral-100, #f5f5f7); }
.crea__vignette--vide { display: flex; align-items: center; justify-content: center; border: 1px dashed var(--neutral-300, #d7d7de); background: none; font-size: 16px; color: var(--neutral-400, #b9b9c4); cursor: help; }
.crea__preuves { margin: 0; padding: 0; list-style: none; font-size: 11.5px; line-height: 1.5; }
.crea__preuves li { padding: 5px 0; border-bottom: 1px solid var(--neutral-200, #eaeaef); color: var(--neutral-700, #3f3f49); }
.crea__preuve-t { font-weight: 700; color: var(--neutral-900, #1c1c22); }

.atelier-carte__lien, .atelier__lien { color: inherit; text-decoration: none; }
.atelier-carte__lien:hover, .atelier__lien:hover { color: var(--primary, #d63384); text-decoration: underline; }

@media (max-width: 1240px) { .crea__corps { grid-template-columns: minmax(0, 1fr) 320px; } .crea__col--matiere, .crea__col--pourquoi { display: none; } }


/* ---- Amorce d'un bloc pas encore genere : rythme vertical explicite ----
   Sans ces marges, .hint et le formulaire heritent de celles du navigateur
   (1em arbitraire) et l'espacement devient incoherent d'un bloc a l'autre.
   Une seule echelle : 16 px sous l'encadre, 10 px sous la note, rien apres le
   bouton (le padding de la carte suffit). */
.amorce-bloc > .verdict-box { margin: 0; }
.amorce-bloc__note { margin: var(--s4) 0 0; font-size: 12.5px; line-height: 1.5; color: var(--neutral-600); }
.amorce-bloc > form { margin: var(--s4) 0 0; }
.amorce-bloc__note + form { margin-top: 10px; }

/* Accuse de reception d'une correction en place : discret, il s'efface seul.
   Aucun deplacement de la mise en page, sinon on retrouverait le saut qu'on
   cherche justement a supprimer. */
.e1f__corrige { position: relative; }
.e1f__corrige-ok { position: absolute; left: 100%; top: 50%; transform: translateY(-50%); margin-left: 8px; white-space: nowrap; font-size: 11px; font-weight: 700; color: #085041; }
.e1f__corrige-ok--ko { color: var(--error-dark, #b91c1c); }

/* ============ ATELIER : COMPOSEUR ET APERCU ============
   Coquille unique, un profil par type de creation. Modele repris d'Agorapulse :
   a gauche pourquoi, au centre on fabrique, a droite le RESULTAT tel que la
   plateforme l'affichera - on ne juge pas des champs, on juge la chose finie. */

/* Choix du type : le construit est cliquable, le reste est visiblement a venir.
   On ne fait pas semblant d'offrir ce qui n'existe pas. */
.compo-choix { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 10px; }
.compo-choix form { display: contents; }
.compo-type { display: flex; flex-direction: column; gap: 3px; width: 100%; text-align: left;
  padding: 13px 15px; border: 1px solid var(--bord, #ddd); border-radius: 10px; background: #fff;
  font: inherit; cursor: pointer; }
.compo-type:hover { border-color: #6d3fc4; background: #faf8ff; }
.compo-type__n { font-weight: 700; font-size: 14px; }
.compo-type__d { font-size: 12px; color: #5f5f6e; }
.compo-type--avenir { cursor: default; opacity: .55; background: #fafafa; position: relative; }
.compo-type--avenir:hover { border-color: var(--bord, #ddd); background: #fafafa; }
.compo-type__bientot { position: absolute; top: 10px; right: 12px; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; color: #8a8a99; }

/* Le composeur. Le texte est nu : c'est la piece, pas un formulaire. */
.compo__tete { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.compo__profil { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #4a2f8f; }
.compo__etat { font-size: 12px; color: #8a8a99; }
.compo__aide { margin: 4px 0 10px; font-size: 12px; color: #5f5f6e; }
.compo__texte { width: 100%; padding: 14px; border: 1px solid var(--bord, #ddd); border-radius: 10px 10px 0 0;
  border-bottom: 0; font: inherit; font-size: 15px; line-height: 1.55; resize: vertical; }
.compo__texte:focus { outline: 0; border-color: #b9a5e6; }
.compo__barre { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 7px 10px; border: 1px solid var(--bord, #ddd); border-radius: 0 0 10px 10px; background: #fafafa; }
.compo__outils { display: flex; gap: 4px; }
.compo__outil { width: 30px; height: 30px; border: 1px solid transparent; border-radius: 7px; background: none;
  font-size: 15px; line-height: 1; cursor: pointer; color: #4a4a58; }
.compo__outil:hover { background: #fff; border-color: var(--bord, #ddd); }
/* Le compte n'alarme qu'a bon escient : replie = information, trop = faute. */
.compo__compte { font-size: 12px; color: #8a8a99; font-variant-numeric: tabular-nums; }
.compo__compte.is-replie { color: #7a5c00; }
.compo__compte.is-trop { color: #a3001b; font-weight: 700; }

/* Volets optionnels : PLIES. On ne deballe jamais un formulaire entier. */
.compo__volet { margin-top: 10px; border: 1px solid var(--bord, #ddd); border-radius: 10px; background: #fff; }
.compo__volet > summary { padding: 10px 14px; cursor: pointer; font-size: 13px; font-weight: 600; }
.compo__volet[open] > summary { border-bottom: 1px solid var(--bord, #ddd); }
.compo__volet-a { font-weight: 400; color: #8a8a99; font-size: 12px; }
.compo__premier { width: calc(100% - 28px); margin: 12px 14px; padding: 10px; border: 1px solid var(--bord, #ddd);
  border-radius: 8px; font: inherit; font-size: 14px; resize: vertical; }
.compo-brief { margin-top: 14px; font-size: 13px; }
.compo-brief > summary { cursor: pointer; color: #5f5f6e; }

/* L'APERCU : le rendu du fil LinkedIn, pas un cadre d'application. */
.apercu__ou { font-weight: 400; text-transform: none; letter-spacing: 0; color: #8a8a99; }
.li-post { border: 1px solid #d9d9de; border-radius: 10px; background: #fff; overflow: hidden; font-size: 14px; }
.li-post__tete { display: flex; gap: 9px; padding: 12px 13px 8px; }
.li-post__ava { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; }
.li-post__ava--vide { display: grid; place-items: center; background: #6d3fc4; color: #fff; font-weight: 700; }
.li-post__ava--mini { width: 28px; height: 28px; font-size: 12px; }
.li-post__qui { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.li-post__nom { font-weight: 700; color: #191919; }
.li-post__sous, .li-post__quand { font-size: 12px; color: #666; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.li-post__corps { padding: 0 13px 10px; color: #191919; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.li-post__suite { color: #666; }
.li-post__vide { padding: 0 13px 14px; color: #8a8a99; font-style: italic; }
.li-post__pied { display: flex; justify-content: space-around; gap: 6px; padding: 8px 6px; border-top: 1px solid #e6e6ea;
  color: #666; font-size: 13px; font-weight: 600; }
.li-post__comm { display: flex; gap: 8px; padding: 10px 13px; border-top: 1px solid #e6e6ea; background: #f6f6f7; }
.li-post__comm p { margin: 0; font-size: 13px; color: #191919; white-space: pre-wrap; }
.apercu__note { margin-top: 8px; font-size: 11px; color: #8a8a99; }

/* ============ CALENDRIER TROIS MOIS ============
   Le jour est l'unite d'engagement : c'est la que l'asset sort. Trois mois a
   l'ecran parce qu'un plan editorial se pense au trimestre - un seul mois ne
   montre pas les creux, six mois ne se lisent plus. */
.cal__nav { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.cal__fleche { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--bord, #ddd);
  border-radius: 8px; text-decoration: none; color: #4a4a58; font-weight: 700; background: #fff; }
.cal__fleche:hover { border-color: #6d3fc4; color: #4a2f8f; }
.cal__periode { font-weight: 700; font-size: 14px; }
.cal__auj { margin-left: 4px; font-size: 12px; color: #6d3fc4; }

.cal__mois-rangee { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cal__mois-t { margin: 0 0 8px; font-size: 15px; font-weight: 800; text-transform: capitalize; color: #26215c; }
.cal__jours-tete, .cal__grille { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal__jours-tete { gap: 1px; margin-bottom: 2px; }
.cal__jours-tete span { text-align: center; font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: #4a4a58; padding: 3px 0; }
/* Le week-end se voit des l'en-tete : on repere les jours ouvres d'un coup d'oeil. */
.cal__jours-tete span.est-we { color: #8a8a99; background: #f0eef7; border-radius: 4px; }
/* Fond de grille : le filet vient du gap, pas d'une bordure par case (sinon les
   traits doublent entre voisines et la grille parait sale). */
/* Filet FRANC : un calendrier se lit a la trame, pas a la nuance. */
.cal__grille { gap: 1px; background: #c8c8d2; border: 1px solid #b4b4c0; border-radius: 8px; overflow: hidden; }
.cal__case { min-height: 62px; padding: 3px; background: #fff; display: flex; flex-direction: column; gap: 2px; }
/* WEEK-END : fond tinte net. On doit voir les jours ouvres sans compter. */
.cal__case--we { background: #f0eef7; }
.cal__case--we .cal__num { color: #6b6480; }
/* Jours du mois VOISIN : franchement en retrait, ils ne sont la que pour la
   continuite du planning - pas pour etre lus. */
.cal__case--voisin { background: #e8e8ec; }
.cal__case--voisin.cal__case--we { background: #e2e0e8; }
.cal__case--voisin .cal__num { color: #a0a0ae; }
.cal__case--voisin .cal__asset { opacity: .6; }
/* AUJOURD'HUI : le repere le plus fort de l'ecran, cadre plein et numero en pastille. */
.cal__case--auj { background: #f3edff; box-shadow: inset 0 0 0 2px #6d3fc4; }
.cal__num { font-size: 10px; font-weight: 600; color: #5f5f6e; text-align: right; line-height: 1.2; padding: 1px 2px; }
.cal__case--auj .cal__num { color: #fff; background: #6d3fc4; border-radius: 4px; font-weight: 700;
  align-self: flex-end; min-width: 17px; text-align: center; }
.cal__asset { display: block; padding: 2px 4px; border-radius: 4px; font-size: 10px; line-height: 1.25;
  text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: grab; }
.cal__asset:hover { filter: brightness(.95); }

.cal__nondate { margin-top: 16px; padding: 12px 14px; border: 1px dashed var(--bord, #ddd); border-radius: 10px; background: #fafafa; }
.cal__nondate-t { margin: 0; font-size: 13px; font-weight: 700; }
.cal__nondate-a { margin: 2px 0 8px; font-size: 12px; color: #5f5f6e; }
.cal__nondate-l { display: flex; flex-wrap: wrap; gap: 6px; }
.cal__nondate-l .cal__asset { font-size: 11px; padding: 4px 8px; }
@media (max-width: 1100px) { .cal__mois-rangee { grid-template-columns: minmax(0, 1fr); } }

/* Pastille d'asset : teintee par le type de PRODUCTION du referentiel. La couleur
   vient d'une variable posee en ligne, pour que le referentiel reste la source. */
.cal__asset { background: color-mix(in srgb, var(--pastille, #5f5f6e) 14%, #fff);
  color: color-mix(in srgb, var(--pastille, #5f5f6e) 80%, #000); }
/* Type SUPPOSE depuis la nature du contenu : le liseret dit qu'une decision reste
   a prendre, sans crier. Confirmer le type en ouvrant la creation le fait taire. */
.cal__asset--defaut { border-left: 3px solid color-mix(in srgb, var(--pastille, #5f5f6e) 55%, #fff); border-radius: 0 4px 4px 0; }

/* JOUR FERIE : trame ambree, distincte du week-end. On ne l'interdit pas - une
   boulangerie publie le 1er mai - mais on le signale sans equivoque. */
.cal__case--ferie { background: #faeeda; }
.cal__case--ferie.cal__case--voisin { background: #ece2d0; }
.cal__case--ferie .cal__num { color: #854f0b; font-weight: 700; }
.cal__ferie { font-size: 9px; line-height: 1.15; font-weight: 700; color: #854f0b;
  text-transform: uppercase; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* DESTINATION : premiere decision du composeur, pas un detail de fin. */
.dest { border: 1px solid #b9a5e6; border-radius: 10px; background: #faf8ff; padding: 10px 12px; margin-bottom: 12px; }
.dest__tete { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.dest__lab { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #4a2f8f; }
.dest__etat { font-size: 11px; color: #6b6480; }
.dest__choisie { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.dest__titre { font-weight: 600; font-size: 13px; }
.dest__url { font-size: 11px; color: #6b6480; word-break: break-all; }
.dest__changer, .dest__acreer { border: 0; background: none; padding: 0; font: inherit; font-size: 11px;
  color: #6d3fc4; text-decoration: underline; cursor: pointer; }
.dest__q { width: 100%; margin-top: 7px; padding: 7px 9px; border: 1px solid var(--bord, #ddd);
  border-radius: 7px; font: inherit; font-size: 13px; }
.dest__res { list-style: none; margin: 6px 0 0; padding: 0; max-height: 190px; overflow-y: auto; }
.dest__opt { display: block; width: 100%; text-align: left; padding: 6px 8px; border: 0; background: none;
  font: inherit; font-size: 12px; border-radius: 6px; cursor: pointer; }
.dest__opt:hover { background: #efeafb; }
.dest__opt-u { display: block; font-size: 10px; color: #8a8a99; word-break: break-all; }
.dest__vide { padding: 6px 8px; font-size: 12px; color: #8a8a99; }
.dest__acreer { margin-top: 6px; }
.li-post__lien { display: block; margin-top: 6px; font-size: 12px; color: #0a66c2; word-break: break-all; }

/* MATIERE DE LA PAGE : le lien dans l'autre sens. Plie, juste sous la
   destination, parce qu'on la consulte en ecrivant et pas avant. */
.matiere { margin-bottom: 12px; border: 1px solid var(--bord, #ddd); border-radius: 10px; background: #fff; }
.matiere > summary { padding: 9px 12px; cursor: pointer; font-size: 12px; font-weight: 700; color: #4a2f8f; }
.matiere__corps { padding: 0 12px 10px; }
.matiere__attente { margin: 0; padding: 6px 0; font-size: 12px; color: #8a8a99; }
.matiere__h { margin: 10px 0 6px; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: #6b6480; }
.matiere__promesse { padding: 8px 10px; border: 1px solid #b9a5e6; border-radius: 8px; background: #faf8ff; }
.matiere__promesse .matiere__h { margin-top: 0; }
.matiere__t { margin: 0; font-size: 13px; font-weight: 600; }
.matiere__m { margin: 4px 0 0; font-size: 12px; line-height: 1.5; color: #4a4a55; }
.matiere__vide { margin: 0; font-size: 12px; line-height: 1.5; color: #8a8a99; }
.matiere__ex { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0;
  border-top: 1px solid var(--bord, #eee); }
.matiere__ex-t { margin: 0; flex: 1; font-size: 12px; line-height: 1.55; }
.matiere__reprendre { flex: none; border: 1px solid #b9a5e6; border-radius: 7px; background: #faf8ff;
  padding: 4px 9px; font: inherit; font-size: 11px; font-weight: 600; color: #4a2f8f; cursor: pointer; }
.matiere__reprendre:hover { background: #efeafb; }
/* Les visuels : grille sobre. Le doute est PORTE PAR LA VIGNETTE (fond ambre +
   legende explicite) et non par une nuance discrete, sinon il ne se voit pas au
   moment ou l'on choisit. */
.matiere__vis { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.matiere__v { margin: 0; border: 1px solid var(--bord, #ddd); border-radius: 8px; overflow: hidden; background: #fff; }
.matiere__v img { display: block; width: 100%; height: 84px; object-fit: cover; background: #f3f3f6; }
.matiere__v figcaption { padding: 5px 7px; font-size: 10px; line-height: 1.35; color: #6b6480; }
.matiere__v--doute { border-color: #d9a441; background: #fdf6e7; }
.matiere__v--doute figcaption { color: #8a5b12; font-weight: 600; }

/* SAVOIR-FAIRE : plie, sous le composeur. La ou l'on travaille, pas dans un ecran
   de reglages que personne n'ouvre. */
.compo-savoir { margin-top: 14px; border: 1px solid var(--bord, #ddd); border-radius: 10px; background: #fff; }
.compo-savoir > summary { padding: 10px 14px; cursor: pointer; font-size: 13px; font-weight: 700; }
.compo-savoir__n { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 9px;
  background: #efeafb; color: #4a2f8f; font-size: 11px; text-align: center; }
.compo-regle { margin: 0 14px 8px; padding: 8px 10px; border: 1px solid #b9a5e6; border-radius: 8px;
  background: #faf8ff; font-size: 12px; line-height: 1.5; }
.compo-regle:first-of-type { margin-top: 12px; }
.compo-disc { margin: 0 14px 10px; }
.compo-disc__t { margin: 0 0 3px; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: #4a2f8f; }
.compo-disc__c { font-size: 12px; line-height: 1.55; color: #3a3a46; }
.compo-disc__c ul { margin: 0; padding-left: 16px; }
