:root{
  /* ===== COULEURS DE BASE (inchangees) ===== */
  --bg:#F8F7F5;
  --surface:#fff;
  --surface-elevated:#fff;
  --border:#e4e1db;
  --border-strong:#c8c4ba;
  --text:#0D1F5C;
  --muted:#7a7469;
  --ok:#2D6A4F;
  --warn:#C9982A;
  --err:#B91C3E;
  --navy:#0D1F5C;
  --bordeaux:#B91C3E;
  --gold:#C9982A;

  /* ===== NOUVEAU v12.4 : DESIGN SYSTEM ===== */

  /* Border-radius (4 niveaux semantiques) */
  --radius-sm:8px;      /* badges, petits boutons, pills carrees */
  --radius-md:12px;     /* cartes KPI, check-items, la majorite */
  --radius-lg:16px;     /* hero score, modals, grandes zones */
  --radius-full:999px;  /* pills rondes, cercles */

  /* Ombres (3 niveaux) */
  --shadow-sm:0 2px 8px rgba(13,31,92,.06);
  --shadow-md:0 4px 16px rgba(13,31,92,.08);
  --shadow-lg:0 8px 32px rgba(13,31,92,.12);

  /* Espacements (échelle 4px) */
  --space-xs:4px;
  --space-sm:8px;
  --space-md:16px;
  --space-lg:24px;
  --space-xl:32px;

  /* Fonds teintes (pour urgency/opinion au lieu de hex hardcodes) */
  --bg-urgent-soft:#fff5f7;
  --bg-info-soft:#f1f3fb;
  --border-urgent:#fcd5de;
  --border-info:#c7cff0;

  /* Transitions (3 niveaux) */
  --transition-fast:0.15s;
  --transition-base:0.2s;
  --transition-slow:0.3s;
  --transition-bounce:cubic-bezier(.22,1,.36,1);
}
html.dark{--bg:#0f1219;--surface:#1a1f2e;--surface-elevated:#242938;--border:#2a3040;--border-strong:#3a4250;--text:#e2e8f0;--muted:#8892a4;--ok:#34d399;--warn:#fbbf24;--err:#f87171;--navy:#e2e8f0;--bordeaux:#f87171;--gold:#fbbf24;--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4);--shadow-lg:0 8px 32px rgba(0,0,0,.5);--bg-urgent-soft:rgba(248,113,113,.08);--bg-info-soft:rgba(99,102,241,.08);--border-urgent:rgba(248,113,113,.3);--border-info:rgba(99,102,241,.3)}
*{box-sizing:border-box;margin:0;padding:0}

/* ===== Dark mode v12.4 perfection ultime : transitions fluides + effets premium ===== */
/* B - Transition smooth entre modes clair/sombre (300ms) */
html{transition:background-color .3s ease;scroll-behavior:smooth}

/* Respecter la préférence système "reduced motion" pour l'accessibilite v12.4 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:0.01ms!important;
    scroll-behavior:auto!important;
  }
}
body,.sidebar,.launcher-card,.hero-score,.kpi-card,.check-item,.action-card,
.overview-section-card,.reco-card,.table-wrapper,.table-filters,.ba-row,
.urgency-banner,.opinion-box,.section-block-header,.pt-score-bar,
.ft-btn,.fix-btn,.check-msg,.glossary-modal,.radar-container,
.explanation-text,.wdc-panel,.fix-panel,.exclude-panel{
  transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease
}

/* E - Noise texture subtile en dark mode (luxe pro) */
html.dark body{
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.015 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-attachment:fixed;
  background-size:200px 200px;
}

/* D - Glow dore subtil sur elements actifs en dark mode */
html.dark .nav-item.active{box-shadow:inset 3px 0 0 var(--gold),0 0 20px -5px rgba(251,191,36,.15)}
html.dark .check-item.check-error{box-shadow:inset 4px 0 0 var(--bordeaux),0 0 12px -6px rgba(248,113,113,.1)}
html.dark .check-item.check-warn{box-shadow:inset 4px 0 0 var(--gold),0 0 12px -6px rgba(251,191,36,.1)}
html.dark .fix-btn:hover{box-shadow:0 4px 12px rgba(251,191,36,.35)}

/* C - Barre doree du hero adaptee (plus subtile en dark) */
html.dark .hero-stats::before{background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.8}

/* G - Icones toolbar + glossaire adaptees */
html.dark .tf-search-icon{color:var(--muted)}
html.dark .glossary-close{color:var(--muted)}
html.dark .glossary-close:hover{background:var(--surface);color:var(--text)}

/* A - Animation switch dark-toggle plus fluide */
.dark-toggle .dt-track{transition:background .3s cubic-bezier(.22,1,.36,1)}
.dark-toggle .dt-thumb{transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s}
html.dark .dark-toggle .dt-thumb{background:var(--navy)}

/* ===== ACCESSIBILITE v12.4 : focus states clavier ===== */
/* :focus-visible cible UNIQUEMENT la nav clavier (Tab), pas les clics souris */
*:focus{outline:none}
*:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--radius-sm)}
/* Ne pas appliquer l'outline border-radius sur les elements qui ont déjà un radius */
.kpi-card:focus-visible,.check-item:focus-visible,.action-card:focus-visible,
.overview-section-card:focus-visible,.hero-score:focus-visible{
  border-radius:var(--radius-md);
}
.pill:focus-visible,.section-score-pill:focus-visible,
.nav-item .nav-score:focus-visible,.urgency-item .ui-count:focus-visible{
  border-radius:var(--radius-full);
}
/* Liens et boutons : focus plus visible */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Focus contextuels : couleur adaptee a la nature de l'action */
.exclude-row .remove-btn:focus-visible{outline-color:var(--bordeaux)}
.tf-reset:focus-visible{outline-color:var(--bordeaux)}
.llms-dl-btn:focus-visible{outline-color:var(--ok);outline-offset:3px}
.fix-btn:focus-visible{outline-color:var(--gold)}
.launch-btn:focus-visible{outline-color:var(--gold);outline-offset:4px}
.view-report-btn:focus-visible{outline-color:var(--gold);outline-offset:4px}
.bl-search-btn:focus-visible{outline-color:var(--navy)}

/* ===== VARIABLES SCOPEES PAR COMPOSANT (v12.4 architecture avancee) ===== */
/* Chaque composant peut override ses variables localement sans affecter le reste */

.urgency-banner{
  --component-bg:var(--bg-urgent-soft);
  --component-border:var(--border-urgent);
  --component-accent:var(--bordeaux);
  background:var(--component-bg);
  border:1px solid var(--component-border);
  border-left:4px solid var(--component-accent);
  border-radius:var(--radius-md);
  padding:20px 24px;
  margin-bottom:28px;
}

.opinion-box{
  --component-bg:var(--bg-info-soft);
  --component-border:var(--border-info);
  --component-accent:var(--navy);
  background:var(--component-bg);
  border:1px solid var(--component-border);
  border-left:4px solid var(--component-accent);
  border-radius:var(--radius-md);
  padding:24px 28px;
  margin-bottom:28px;
  line-height:1.75;
}

.hero-score{
  --component-bg:var(--surface);
  --component-shadow:var(--shadow-lg);
  --component-radius:var(--radius-lg);
  text-align:center;
  padding:32px 24px;
  margin-bottom:var(--space-lg);
  background:var(--component-bg);
  border:1px solid var(--border);
  border-radius:var(--component-radius);
  box-shadow:var(--component-shadow);
  animation:heroReveal 0.6s cubic-bezier(.22,1,.36,1) both;
}
@keyframes heroReveal{
  from{opacity:0;transform:translateY(10px) scale(0.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
/* Stagger reveal v12.4 : apparitions echelonnees pour effet theatral */
@keyframes heroFadeIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-verdict{animation:heroFadeIn 0.5s cubic-bezier(.22,1,.36,1) 0.4s both}
.hero-verdict-detail{animation:heroFadeIn 0.5s cubic-bezier(.22,1,.36,1) 0.6s both}
.hero-stats{animation:heroFadeIn 0.5s cubic-bezier(.22,1,.36,1) 0.9s both}
.hero-score{transition:box-shadow var(--transition-slow),border-color var(--transition-base)}
.hero-score:hover{box-shadow:0 12px 40px rgba(13,31,92,.15);border-color:#c8cfe8}
html.dark .hero-score:hover{box-shadow:0 12px 40px rgba(0,0,0,.45);border-color:var(--border-strong)}

.check-item{
  --check-accent:var(--border);
}
.check-item.check-ok{--check-accent:var(--ok)}
.check-item.check-warn{--check-accent:var(--gold)}
.check-item.check-error{--check-accent:var(--bordeaux)}
.check-item.check-info{--check-accent:#4F8FE5}

/* ===== ACCESSIBILITE v12.4 : mode AAA optionnel ===== */
/* Activer via JS : document.documentElement.classList.add('aaa-mode') */
/* Renforce les contrastes pour WCAG AAA (7:1 minimum) */
.aaa-mode{
  --muted:#5a544a;  /* plus sombre qu'avant (#7a7469) = ratio 7.1:1 */
}
html.dark.aaa-mode{
  --muted:#b5bfd0;  /* plus clair qu'avant (#8892a4) = ratio 7.3:1 */
}
.aaa-mode .sb-by{color:rgba(255,255,255,.7)}
.aaa-mode .sb-role{color:rgba(255,255,255,.75)}
.aaa-mode .sb-footer-btn{color:rgba(255,255,255,.8)}
.aaa-mode .dark-toggle{color:rgba(255,255,255,.8)}
.aaa-mode .nav-section{color:rgba(255,255,255,.75)}
.aaa-mode .nav-item{color:rgba(255,255,255,.85)}
.aaa-mode .ss-label{color:rgba(255,255,255,.7)}

body{background:var(--bg);color:var(--text);font-family:'Syne',sans-serif;min-height:100vh}
.launcher{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg, #0D1F5C 0%, #1a2854 18%, #3d4a6a 30%, #a09888 42%, #e8e4dc 55%, #f5f3ef 100%)}
.launcher-header{padding:18px 48px;border-bottom:none;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:20px}
.limpi-launcher-brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-decoration:none;min-width:0}
.limpi-launcher-brand img{display:block;width:178px;height:auto}
.limpi-launcher-brand span{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.brand-info{display:flex;flex-direction:column;gap:2px}
.brand-by{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.brand-name{font-size:14px;font-weight:800;color:#fff}
.brand-role{font-family:'DM Mono',monospace;font-size:10px;color:rgba(255,255,255,.45)}
.brand-divider{width:1px;height:36px;background:rgba(255,255,255,.2)}
.brand-product h1{font-size:20px;font-weight:800;color:#fff}
.brand-product p{font-family:'DM Mono',monospace;font-size:10px;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-top:2px}
.header-right{display:flex;align-items:center;gap:12px}
.version-pill{font-family:'DM Mono',monospace;font-size:10px;background:var(--navy);color:#fff;padding:5px 13px;border-radius:var(--radius-full);letter-spacing:.06em}
.eco-pill{font-family:'DM Mono',monospace;font-size:10px;background:#EAF3DE;color:#27500A;padding:5px 13px;border-radius:var(--radius-full);letter-spacing:.04em;font-weight:600}
html.dark .eco-pill{background:#1a2e1a;color:#97C459}
.trust-grid{margin-top:10px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.trust-card{border-radius:var(--radius-md);padding:10px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;cursor:help;position:relative}
.trust-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(13,31,92,.08)}
.trust-card[data-tooltip]::before,.trust-card[data-tooltip]::after{opacity:0;pointer-events:none;transition:opacity .15s}
.trust-card[data-tooltip]::before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;font-size:11px;font-weight:500;font-family:'DM Mono',monospace;line-height:1.5;width:260px;text-align:left;z-index:100;box-shadow:0 8px 24px rgba(13,31,92,.25)}
.trust-card[data-tooltip]::after{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--navy);z-index:100}
.trust-card:hover[data-tooltip]::before,.trust-card:hover[data-tooltip]::after{opacity:1}
html.dark .trust-card[data-tooltip]::before{background:#1a1f2e;border:1px solid var(--border)}
html.dark .trust-card[data-tooltip]::after{border-top-color:#1a1f2e}
.url-field-wrap{position:relative;display:block;width:100%}
.field .url-field-wrap input[type="text"]{padding-right:40px !important;padding-left:50px !important}
.url-favicon{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;animation:faviconFade .3s ease;background:#fff;padding:1px;box-shadow:0 0 0 1px rgba(13,31,92,.08);z-index:2}
@keyframes faviconFade{from{opacity:0;transform:translateY(-50%) scale(.7)}to{opacity:1;transform:translateY(-50%) scale(1)}}
.url-history{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;animation:historyFadeIn .3s ease-out}
@keyframes historyFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.url-history-label{font-family:'DM Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;padding:5px 0;margin-right:4px}
.url-history-item{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:5px 11px 5px 8px;font-size:10px;font-family:'DM Mono',monospace;color:var(--navy);cursor:pointer;transition:all .15s;max-width:280px}
.url-history-item:hover{border-color:var(--navy);background:#fff;box-shadow:0 2px 6px rgba(13,31,92,.08)}
.url-history-item img{width:14px;height:14px;border-radius:2px;flex-shrink:0}
.url-history-item .url-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.url-validity{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:18px;font-weight:700;pointer-events:none;opacity:0;transition:opacity .2s}
.url-validity.ok{color:#2D6A4F;opacity:1}
.url-validity.ko{color:#B91C3E;opacity:1}
@keyframes trustEcoPulse{0%,100%{box-shadow:0 0 0 0 rgba(45,106,79,.3)}50%{box-shadow:0 0 0 6px rgba(45,106,79,0)}}
.trust-animate{animation:trustEcoPulse 2s ease-out 3}
.trust-eco{background:#EAF3DE;border:.5px solid #C0DD97}
.trust-neutral{background:#f8f7f4;border:.5px solid #d3d1c7}
.trust-icon{font-size:26px;font-weight:800;line-height:1;margin-bottom:6px;font-family:'Syne',sans-serif}
.trust-icon-eco{color:#2D6A4F}
.trust-icon-fr{color:#B91C3E;font-size:22px}
.trust-icon-export{color:var(--navy);font-size:24px}
.trust-flag{display:inline-flex;width:36px;height:24px;border-radius:3px;overflow:hidden;margin-bottom:6px;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.tf-b{flex:1;background:#002395}
.tf-w{flex:1;background:#fff}
.tf-r{flex:1;background:#ED2939}
.trust-title{font-size:11px;font-weight:700;margin-bottom:4px;font-family:'Syne',sans-serif}
.trust-eco .trust-title{color:#1a4731}
.trust-neutral .trust-title{color:var(--navy)}
.trust-sub{font-size:9px;line-height:1.4;font-family:'DM Mono',monospace}
.trust-eco .trust-sub{color:#3B6D11}
.trust-neutral .trust-sub{color:var(--muted)}
html.dark .trust-eco{background:#1a2e1a;border-color:#2a4a2a}
html.dark .trust-eco .trust-icon-eco{color:#97C459}
html.dark .trust-eco .trust-title{color:#97C459}
html.dark .trust-eco .trust-sub{color:#5DAA35}
html.dark .trust-neutral{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1)}
html.dark .trust-neutral .trust-title{color:var(--text)}
html.dark .trust-neutral .trust-icon-fr{color:#f87171}
html.dark .trust-neutral .trust-icon-export{color:var(--text)}
.launcher-body{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}
.launcher-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px 40px;width:100%;max-width:820px;box-shadow:var(--shadow-lg),0 2px 8px rgba(0,0,0,.06)}
.zone-title{font-size:22px;font-weight:800;color:var(--navy);margin-bottom:4px}
.zone-sub{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);margin-bottom:22px}
.field-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.field{display:flex;flex-direction:column;gap:5px;position:relative}
.field.grow{flex:1;min-width:200px}
.field label{font-family:'DM Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);transition:color .2s}
.field input[type="text"],.field input[type="number"]{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;padding:11px 16px;font-size:14px;font-family:'DM Mono',monospace;color:var(--navy);outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.field input[type="number"]{width:100px;text-align:center}
.field input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,31,92,.12)}
.field:focus-within label{color:var(--navy)}
.field input::placeholder{color:var(--muted)}
.launch-btn{width:100%;background:var(--navy);color:#fff;border:none;border-radius:var(--radius-md);padding:14px;font-size:14px;font-weight:800;font-family:'Syne',sans-serif;cursor:pointer;transition:all .2s;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:10px}
.launch-btn:hover{background:#162877;transform:translateY(-1px);box-shadow:0 4px 20px rgba(13,31,92,.25)}
.launch-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.launch-btn.btn-loading{opacity:1;cursor:wait}
.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btnSpin .7s linear infinite}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.exclude-toggle{font-size:12px;color:var(--navy);cursor:pointer;font-family:'DM Mono',monospace;user-select:none;display:inline-flex;align-items:center;gap:6px;margin-top:12px;opacity:.7;background:transparent;border:0;padding:0}
.exclude-toggle:hover{opacity:1}
.exclude-panel{display:none;margin-top:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px}
.exclude-panel.open{display:block}
.exclude-panel h3{font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px}
.exclude-panel p{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:12px}
.exclude-list{display:flex;flex-direction:column;gap:8px}
.exclude-row{display:flex;gap:8px;align-items:center}
.exclude-row input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 13px;font-size:12px;font-family:'DM Mono',monospace;color:var(--text);outline:none}
.exclude-row input:focus{border-color:var(--navy)}
.exclude-row .remove-btn{background:none;border:none;color:var(--err);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px;font-weight:700}
.exclude-row .remove-btn:hover{background:#fce4e9}
.add-pattern-btn{font-size:11px;color:var(--navy);cursor:pointer;font-family:'DM Mono',monospace;margin-top:8px;display:inline-block;background:none;border:none;padding:4px 0;opacity:.7}
.add-pattern-btn:hover{opacity:1;text-decoration:underline}
.exclude-count{font-family:'DM Mono',monospace;font-size:10px;background:#e8eaf8;color:var(--navy);padding:2px 8px;border-radius:var(--radius-full);margin-left:6px}
#loader{display:none;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:100vh;background:linear-gradient(180deg, #0D1F5C 0%, #1a2854 18%, #3d4a6a 30%, #a09888 42%, #e8e4dc 55%, #f5f3ef 100%);font-family:'DM Mono',monospace;animation:loaderFadeIn .5s ease-out;position:relative;overflow:hidden}
.loader-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.lp{position:absolute;border-radius:50%;background:#C9982A;opacity:.5;filter:blur(.5px)}
.lp1{width:5px;height:5px;left:8%;top:15%;animation:float1 18s ease-in-out infinite}
.lp2{width:7px;height:7px;left:18%;top:40%;animation:float2 22s ease-in-out infinite}
.lp3{width:4px;height:4px;left:28%;top:70%;animation:float3 16s ease-in-out infinite}
.lp4{width:6px;height:6px;left:42%;top:20%;animation:float1 20s ease-in-out infinite .5s}
.lp5{width:4px;height:4px;left:52%;top:55%;animation:float2 24s ease-in-out infinite 2s}
.lp6{width:8px;height:8px;left:68%;top:30%;animation:float3 19s ease-in-out infinite 1s}
.lp7{width:5px;height:5px;left:80%;top:65%;animation:float1 21s ease-in-out infinite 3s}
.lp8{width:6px;height:6px;left:88%;top:18%;animation:float2 17s ease-in-out infinite}
.lp9{width:4px;height:4px;left:12%;top:85%;animation:float3 23s ease-in-out infinite 4s}
.lp10{width:5px;height:5px;left:62%;top:82%;animation:float1 15s ease-in-out infinite 2s}
.lp11{width:7px;height:7px;left:35%;top:8%;animation:float2 26s ease-in-out infinite}
.lp12{width:4px;height:4px;left:75%;top:90%;animation:float3 19s ease-in-out infinite 5s}
@keyframes float1{
  0%,100%{transform:translate(0,0);opacity:.4}
  25%{transform:translate(15px,-25px);opacity:.6}
  50%{transform:translate(-10px,-40px);opacity:.5}
  75%{transform:translate(-20px,-15px);opacity:.55}
}
@keyframes float2{
  0%,100%{transform:translate(0,0);opacity:.45}
  33%{transform:translate(-18px,-20px);opacity:.6}
  66%{transform:translate(22px,-35px);opacity:.5}
}
@keyframes float3{
  0%,100%{transform:translate(0,0);opacity:.4}
  40%{transform:translate(25px,-18px);opacity:.6}
  80%{transform:translate(-15px,-30px);opacity:.5}
}
#loader .loader-inner{position:relative;z-index:1}
@keyframes loaderFadeIn{from{opacity:0}to{opacity:1}}
#loader .loader-inner{animation:loaderCardIn .6s cubic-bezier(.16,1,.3,1) .1s both}
@keyframes loaderCardIn{
  from{opacity:0;transform:translateY(20px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.loader-inner{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 36px;text-align:center;max-width:780px;width:92%;box-shadow:var(--shadow-lg),0 4px 12px rgba(0,0,0,.08)}
.loader-official-logo{display:inline-flex;justify-content:center;margin:0 auto 22px;text-decoration:none}
.loader-official-logo img{display:block;width:154px;height:auto}
.loader-cols{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:start}
.loader-col-left{display:flex;flex-direction:column;align-items:center;padding-right:24px;border-right:1px dashed var(--border)}
.loader-col-right{text-align:center}
@media (max-width:640px){.loader-cols{grid-template-columns:1fr;gap:20px}.loader-col-left{padding-right:0;border-right:none;padding-bottom:20px;border-bottom:1px dashed var(--border)}}
.loader-logo{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.loader-logo strong{color:var(--navy)}
.loader-brand{display:flex;align-items:center;justify-content:center;gap:16px;padding-bottom:16px;margin-bottom:20px;border-bottom:none;position:relative;animation:loaderBrandFade .6s ease-out}
.loader-brand::after{content:"";position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0%,var(--border) 50%,transparent 100%)}
@keyframes loaderBrandFade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.lb-badge{width:34px;height:34px;border-radius:8px;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:20px;font-weight:700;color:var(--gold);flex-shrink:0;box-shadow:0 2px 8px rgba(13,31,92,.2)}
.lb-left{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right}
.lb-by{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-family:'DM Mono',monospace}
.lb-name-row{display:flex;align-items:center;gap:6px}
.lb-name{font-size:12px;font-weight:800;color:var(--navy);font-family:'Syne',sans-serif;line-height:1.1}
.lb-flag{display:inline-flex;width:12px;height:9px;border-radius:1.5px;overflow:hidden;box-shadow:0 0 0 .5px rgba(0,0,0,.1)}
.lbf-b{flex:1;background:#002395}
.lbf-w{flex:1;background:#fff}
.lbf-r{flex:1;background:#ED2939}
.lb-role{font-size:9px;color:var(--muted);font-family:'DM Mono',monospace}
.lb-divider{width:1px;height:36px;background:linear-gradient(180deg,transparent 0%,var(--border) 50%,transparent 100%)}
.lb-right{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.lb-product{font-size:15px;font-weight:800;color:var(--navy);font-family:'Syne',sans-serif;line-height:1;text-shadow:0 0 12px rgba(201,152,42,.15)}
.lb-product-sub{font-family:'DM Mono',monospace;font-size:8px;color:var(--gold);letter-spacing:.14em;text-transform:uppercase}
html.dark .lb-name,html.dark .lb-product{color:var(--text)}
html.dark .lb-badge{background:#1a1f3e}
.loader-mascot{display:flex;flex-direction:column;align-items:center;margin-bottom:20px;animation:loaderBrandFade .6s ease-out}
.loader-cat{width:140px;height:140px;margin-bottom:4px;animation:catBob 3s ease-in-out infinite}
@keyframes catBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.cat-tail{transform-origin:132px 130px;animation:tailWag 2.2s ease-in-out infinite}
@keyframes tailWag{
  0%,100%{transform:rotate(0deg)}
  25%{transform:rotate(-8deg)}
  75%{transform:rotate(12deg)}
}
.cat-paws{transform-origin:90px 165px;animation:pawsBreath 3s ease-in-out infinite}
@keyframes pawsBreath{
  0%,100%{transform:scaleY(1) translateY(0)}
  50%{transform:scaleY(.92) translateY(1.5px)}
}
#catEyes{animation:catBlink 5s ease-in-out infinite}
@keyframes catBlink{
  0%,93%,100%{opacity:1}
  95%,97%{opacity:0}
}
/* Variations par étape */
.cat-crawl{animation-duration:2.5s}
.cat-inrank .cat-tail{animation-duration:2.8s}
.cat-analyse #catMouth{d:path("M 54 89 Q 60 93 66 89")}
.cat-done .cat-tail{animation-duration:1.2s}
.loader-bubble{background:#f8f7f4;border:1px solid #e4e1db;border-radius:16px;padding:12px 18px;font-size:11px;color:var(--navy);font-family:'DM Mono',monospace;line-height:1.55;text-align:center;max-width:400px;position:relative;transition:opacity .25s ease,transform .25s ease}
.loader-bubble.bubble-fade{opacity:0;transform:translateY(-4px)}
.loader-bubble::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #e4e1db}
.loader-bubble::after{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f8f7f4}
.bubble-title{font-weight:700;color:var(--navy);margin-bottom:4px;font-family:'Syne',sans-serif;font-size:12px}
.bubble-text{font-size:11px;color:var(--navy);line-height:1.55}
.bubble-more{display:inline-block;margin-top:6px;color:var(--navy);font-size:10px;cursor:pointer;text-decoration:underline;opacity:.55;transition:opacity .2s}
.bubble-more:hover{opacity:1}
.bubble-tip{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);font-size:10px;color:#3B6D11;line-height:1.5;display:flex;gap:6px;align-items:flex-start;text-align:left}
.bubble-tip-icon{color:#C9982A;flex-shrink:0;font-size:12px}
.bubble-tip-text{font-style:italic;flex:1}
html.dark .bubble-tip{color:#97C459;border-top-color:var(--border)}
.bubble-text.expanded{text-align:left}
html.dark .loader-bubble{background:#1a1f2e;border-color:var(--border)}
html.dark .loader-bubble::after{border-bottom-color:#1a1f2e}
html.dark .bubble-title,html.dark .bubble-text,html.dark .bubble-more{color:var(--text)}
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--navy);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}
@keyframes spin{to{transform:rotate(360deg)}}
.loader-steps{display:flex;align-items:center;justify-content:center;gap:0;margin:0 0 16px}
.ls-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid var(--border);color:var(--muted);background:var(--bg);transition:all .4s cubic-bezier(.4,0,.2,1);flex-shrink:0}
.ls-dot.active{border-color:var(--navy);color:#fff;background:var(--navy);animation:pulse 1.5s ease infinite}
.ls-dot.done{border-color:#2D6A4F;color:#fff;background:#2D6A4F}
.ls-dot.just-done{animation:stepComplete .6s ease-out}
@keyframes stepComplete{0%{transform:scale(1)}40%{transform:scale(1.2)}100%{transform:scale(1)}}
.ls-line{width:20px;height:2px;background:var(--border);transition:background .3s;flex-shrink:0}
.ls-line.done{background:#2D6A4F}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(13,31,92,.3)}50%{box-shadow:0 0 0 6px rgba(13,31,92,0)}}
.loader-step-label{font-size:12px;font-weight:700;color:var(--navy);margin-bottom:2px;transition:opacity .3s}
.loader-detail{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px;margin-left:auto;margin-right:auto}
.loader-metrics{display:flex;gap:8px;justify-content:center;margin-top:14px}
.loader-metric{text-align:center;padding:8px 12px;background:var(--bg);border-radius:10px;border:1px solid var(--border);min-width:65px}
.loader-metric-val{font-size:15px;font-weight:700;line-height:1.2}
.loader-metric-label{font-size:6.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.loader-eta{font-size:10px;color:var(--muted);margin-top:10px}
.loader-eco{margin-top:14px;background:#EAF3DE;border:.5px solid #C0DD97;border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:10px;max-width:480px;margin-left:auto;margin-right:auto}
.loader-eco-icon{font-size:18px;font-weight:700;color:#2D6A4F;padding-right:10px;border-right:1.5px solid #C0DD97;line-height:1;font-family:'Syne',sans-serif}
.loader-eco-data{flex:1}
.loader-eco-title{font-size:10px;font-weight:700;color:#1a4731;margin-bottom:3px;font-family:'Syne',sans-serif}
.loader-eco-row{display:flex;gap:12px;flex-wrap:wrap}
.loader-eco-item{font-size:9px;color:#3B6D11;font-family:'DM Mono',monospace}
.loader-eco-val{font-weight:700;color:#2D6A4F}
html.dark .loader-eco{background:#1a2e1a;border-color:#2a4a2a}
html.dark .loader-eco-icon{color:#97C459}
html.dark .loader-eco-title{color:#97C459}
html.dark .loader-eco-item{color:#5DAA35}
html.dark .loader-eco-val{color:#97C459}
.loader-eco-comparé{font-size:9px;margin-top:5px;font-family:'DM Mono',monospace;display:flex;align-items:center;gap:4px}
.loader-eco-comparé-icon{font-weight:700;font-size:10px}
.loader-eco-bar-wrap{margin-top:6px;position:relative;height:6px;background:#d4d0c8;border-radius:3px;overflow:hidden}
.loader-eco-bar{height:100%;border-radius:3px;background:#2D6A4F;transition:width .5s}
.loader-eco-bar-labels{display:flex;justify-content:space-between;font-size:7px;color:#3B6D11;margin-top:2px;font-family:'DM Mono',monospace}
.loader-cancel-btn{margin-top:20px;background:transparent;border:1px solid var(--border);color:var(--muted);padding:8px 18px;border-radius:8px;font-size:10px;font-family:'DM Mono',monospace;cursor:pointer;letter-spacing:.06em;transition:all .2s}
.loader-cancel-btn:hover{border-color:var(--err);color:var(--err);background:rgba(185,28,62,.04)}
.view-report-btn{display:inline-flex;align-items:center;gap:8px;margin-top:18px;background:var(--navy);color:#fff;border:none;padding:12px 24px;border-radius:10px;font-size:12px;font-family:'Syne',sans-serif;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px rgba(13,31,92,.25);animation:viewBtnIn .5s ease-out both}
.view-report-btn:hover{background:#162877;transform:translateY(-1px);box-shadow:0 6px 18px rgba(13,31,92,.35)}
@keyframes viewBtnIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
html.dark .loader-eco-bar-wrap{background:#2a3a2a}
html.dark .loader-eco-bar-labels{color:#5DAA35}
.progress-bar-outer{width:100%;height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin:12px 0 4px}
.progress-bar-inner{height:100%;background:linear-gradient(90deg,#2D6A4F,var(--navy));border-radius:3px;transition:width .3s;position:relative;overflow:hidden}
.progress-bar-inner::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}
@keyframes shimmer{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(100%)}
}
.loader-step-names{display:flex;justify-content:center;gap:20px;font-size:6.5px;font-family:'DM Mono',monospace;color:var(--muted);margin-bottom:16px}
.loader-step-names span{width:44px;text-align:center}
.loader-step-names span.active{color:var(--navy);font-weight:700}
.loader-step-names span.done{color:#2D6A4F}
.loader-hero{margin:0 0 10px}
.loader-hero-num{font-size:48px;font-weight:700;color:var(--navy);line-height:1;font-family:'DM Mono',monospace;transition:transform .3s}
.loader-hero-sub{font-size:10px;color:var(--muted);margin-top:2px;transition:opacity .3s}
.loader-terminal{background:var(--bg);border-radius:8px;padding:8px 10px;margin:8px 0;font-family:'DM Mono',monospace;font-size:8px;color:var(--muted);text-align:left;max-height:60px;overflow:hidden;display:none}
.loader-terminal div{padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loader-terminal div:last-child{color:var(--navy);font-weight:700}
.loader-findings{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;justify-content:center}
.loader-finding{padding:6px 10px;border-radius:8px;font-size:7.5px;font-weight:500}
.loader-finding.err{background:#fef5f7;border:0.5px solid #f5c6ce;color:#B91C3E}
.loader-finding.ok{background:#f0faf4;border:0.5px solid #d4edda;color:#2D6A4F}
#reportPage{display:none;min-height:100vh;background:var(--bg)}
.report-footer{margin-top:40px;padding:0 0 30px}
.report-footer-line{height:1px;background:var(--border);margin-bottom:14px}
.report-footer-content{text-align:center;font-size:11px;color:var(--muted);font-family:'DM Mono',monospace}
.report-footer-content strong{color:var(--navy)}
.report-footer-sep{margin:0 6px;opacity:.5}
.report-footer-version{display:inline-block;padding:1px 6px;background:rgba(201,152,42,.1);color:var(--gold);border-radius:var(--radius-full);font-size:9px;font-weight:700;margin-left:4px;letter-spacing:0.02em}
.report-footer-link{color:var(--gold);text-decoration:none;transition:color var(--transition-fast)}
.report-footer-link:hover{color:#b8862a;text-decoration:underline}
.report-layout{display:flex;min-height:100vh}
.sidebar{width:240px;flex-shrink:0;background:var(--navy);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:100}
/* Custom scrollbar sidebar : invisible par defaut, apparait au hover (v12.4) */
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:var(--radius-full);transition:background var(--transition-base)}
.sidebar:hover::-webkit-scrollbar-thumb{background:rgba(201,152,42,.3)}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(201,152,42,.5)}
/* Firefox */
.sidebar{scrollbar-width:thin;scrollbar-color:transparent transparent}
.sidebar:hover{scrollbar-color:rgba(201,152,42,.3) transparent}
.sidebar-brand{padding:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-official-logo{display:block;text-decoration:none}
.sidebar-official-logo img{display:block;width:154px;max-width:100%;height:auto}
.sb-by{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:4px}
.sb-name{font-size:12px;font-weight:800;color:#fff}
.sb-role{font-family:'DM Mono',monospace;font-size:11px;color:rgba(255,255,255,.45);margin-top:1px}
.sb-product{font-family:'DM Mono',monospace;font-size:9px;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-top:10px;animation:sbBrandGlow 4s ease-in-out infinite}
@keyframes sbBrandGlow{0%,100%{opacity:.85}50%{opacity:1}}
.sidebar-score{padding:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.12);text-align:center}
.ss-label{font-family:'DM Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.45);margin-bottom:12px}
.ss-ring{position:relative;width:120px;height:120px;margin:0 auto 12px}
.ss-ring svg{transform:rotate(-90deg);width:100%;height:100%}
.ss-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;color:#fff;letter-spacing:-0.02em}
.ss-verdict{display:inline-block;font-size:11px;color:rgba(255,255,255,.85);font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:4px 12px;border-radius:var(--radius-full);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
.sidebar-nav{padding:var(--space-md) 0;flex:1}
.nav-section{padding:6px 20px 2px;font-family:'DM Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.55)}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;cursor:pointer;font-size:12px;font-weight:600;color:rgba(255,255,255,.6);transition:all var(--transition-fast);border-left:3px solid transparent;position:relative}
.nav-item:hover{color:#fff;background:rgba(255,255,255,.06);padding-left:22px}
.nav-item.active{color:#fff;border-left:4px solid var(--gold);background:linear-gradient(90deg, rgba(201,152,42,.22) 0%, rgba(201,152,42,.08) 60%, rgba(255,255,255,.02) 100%);padding-left:19px;box-shadow:inset 4px 0 12px -4px rgba(201,152,42,.4)}
.nav-item.active::after{content:'';position:absolute;right:14px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:var(--radius-full);background:var(--gold);box-shadow:0 0 10px var(--gold),0 0 4px var(--gold);animation:navDotPulse 2s ease-in-out infinite}
@keyframes navDotPulse{0%,100%{transform:translateY(-50%) scale(1);opacity:1}50%{transform:translateY(-50%) scale(1.3);opacity:.7}}
.nav-item .nav-score{margin-left:auto;font-family:'DM Mono',monospace;font-size:10px;padding:2px 6px;border-radius:var(--radius-full);font-weight:700}
.nav-score.high{background:rgba(45,106,79,.4);color:#6ee7b7}
.nav-score.mid{background:rgba(201,152,42,.3);color:#fbbf24}
.nav-score.low{background:rgba(185,28,62,.3);color:#f87171}
.nav-bar{width:100%;height:4px;background:rgba(255,255,255,.1);border-radius:var(--radius-full);margin-top:6px;overflow:hidden}
.nav-bar-fill{height:100%;border-radius:var(--radius-full);transition:width 1s cubic-bezier(.22,1,.36,1);box-shadow:0 0 6px currentColor;opacity:.95}
.nav-bar-fill.high{background:#6ee7b7}
.nav-bar-fill.mid{background:#fbbf24}
.nav-bar-fill.low{background:#f87171}
.sidebar-footer{padding:var(--space-lg);border-top:1px solid rgba(255,255,255,.12)}
.sb-footer-btn{font-family:'DM Mono',monospace;font-size:11px;color:rgba(255,255,255,.65);cursor:pointer;display:flex;align-items:center;gap:8px;background:none;border:none;padding:6px 0;width:100%;margin-bottom:4px;transition:color var(--transition-fast),transform var(--transition-fast);text-align:left}
.sb-footer-btn:hover{color:#fff;transform:translateX(3px)}
.sb-footer-btn svg{flex-shrink:0;opacity:.7;transition:opacity var(--transition-fast)}
.sb-footer-btn:hover svg{opacity:1}
.manage-exclusions-shortcut{
  width:100%;
  margin:12px 0 4px;
  padding:11px 14px;
  border:1px solid rgba(201,152,42,.35);
  border-radius:var(--radius-md);
  background:rgba(201,152,42,.08);
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:800;
  cursor:pointer;
  transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);
}
.manage-exclusions-shortcut:hover{
  background:rgba(201,152,42,.14);
  border-color:var(--gold);
  transform:translateY(-1px);
}
.manage-exclusions-shortcut-count{
  margin-left:auto;
  padding:3px 7px;
  border-radius:var(--radius-full);
  background:var(--surface);
  color:var(--muted);
  font-family:'DM Mono',monospace;
  font-size:10px;
  white-space:nowrap;
}
.report-main{margin-left:240px;flex:1;padding:36px 40px 80px;min-width:0}
.breadcrumb{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);margin-bottom:var(--space-md);display:flex;align-items:center;gap:6px;letter-spacing:.03em}
.breadcrumb .bc-sep{color:var(--border);font-size:12px}
.breadcrumb .bc-current{color:var(--navy);font-weight:700}
/* ===== Mini-toolbar flottant v12.4 (regroupement + accessibilite) ===== */
.floating-toolbar{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:200;padding-bottom:env(safe-area-inset-bottom,0);animation:toolbarSlideIn 0.5s cubic-bezier(.22,1,.36,1) both}
@keyframes toolbarSlideIn{
  from{opacity:0;transform:translateX(30px)}
  to{opacity:1;transform:translateX(0)}
}
.ft-btn{position:relative;width:44px;height:44px;border-radius:var(--radius-full);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}
.ft-btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-lg)}
.ft-btn:active{transform:translateY(0) scale(0.98)}
.ft-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* Tooltips custom pour ft-btn (v12.4 pro) */
.ft-btn[data-tooltip]::before{
  content:attr(data-tooltip);
  position:absolute;
  right:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(6px);
  background:var(--navy);
  color:#fff;
  padding:6px 12px;
  border-radius:var(--radius-sm);
  font-size:11px;
  font-weight:600;
  font-family:'DM Mono',monospace;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transition:opacity var(--transition-fast),transform var(--transition-fast);
  box-shadow:var(--shadow-md);
  letter-spacing:0.02em;
}
.ft-btn[data-tooltip]::after{
  content:'';
  position:absolute;
  right:calc(100% + 6px);
  top:50%;
  transform:translateY(-50%) translateX(6px);
  border:6px solid transparent;
  border-left-color:var(--navy);
  pointer-events:none;
  opacity:0;
  transition:opacity var(--transition-fast),transform var(--transition-fast);
}
.ft-btn[data-tooltip]:hover::before,
.ft-btn[data-tooltip]:hover::after,
.ft-btn[data-tooltip]:focus-visible::before,
.ft-btn[data-tooltip]:focus-visible::after{
  opacity:1;
  transform:translateY(-50%) translateX(0);
}
.ft-glossary{background:var(--gold);color:#fff}
.ft-glossary:hover{background:#b8862a}
/* Pulse subtil sur le glossaire au 1er affichage (v12.4) */
.ft-glossary{animation:toolbarSlideIn 0.5s cubic-bezier(.22,1,.36,1) both,ftGlossaryPulse 2s ease-in-out 1s 3}
@keyframes ftGlossaryPulse{
  0%,100%{box-shadow:var(--shadow-md)}
  50%{box-shadow:var(--shadow-md),0 0 0 8px rgba(201,152,42,.25)}
}
.ft-scroll-top{background:var(--navy);color:#fff;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base)}
.ft-scroll-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.ft-scroll-top:hover{background:#1a2d72}
/* Anneau de progression scroll (v12.4 - style Medium reader) */
.ft-scroll-top .ft-progress-ring{
  position:absolute;
  top:-3px;
  left:-3px;
  width:50px;
  height:50px;
  transform:rotate(-90deg);
  pointer-events:none;
}
.ft-scroll-top .ft-progress-ring circle{
  fill:none;
  stroke-width:2.5;
  stroke-linecap:round;
}
.ft-scroll-top .ft-progress-ring .ring-bg{stroke:rgba(255,255,255,.15)}
.ft-scroll-top .ft-progress-ring .ring-fill{
  stroke:var(--gold);
  stroke-dasharray:144.51;
  stroke-dashoffset:144.51;
  transition:stroke-dashoffset 0.2s linear;
}
/* Dark mode adapte */
html.dark .ft-glossary{background:var(--gold);color:var(--navy)}
html.dark .ft-scroll-top{background:#e2e8f0;color:#0f1219}
html.dark .ft-scroll-top:hover{background:#f1f5f9}
html.dark .ft-scroll-top .ft-progress-ring .ring-bg{stroke:rgba(15,18,25,.15)}
html.dark .ft-btn[data-tooltip]::before{background:var(--surface);color:var(--text);border:1px solid var(--border)}
html.dark .ft-btn[data-tooltip]::after{border-left-color:var(--surface)}
/* Mobile : plus petit + safe area */
@media (max-width:640px){
  .floating-toolbar{bottom:16px;right:16px;gap:8px}
  .ft-btn{width:40px;height:40px}
  .ft-scroll-top .ft-progress-ring{width:46px;height:46px}
  .ft-btn[data-tooltip]::before,.ft-btn[data-tooltip]::after{display:none}
}
.dark-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:'DM Mono',monospace;font-size:11px;color:rgba(255,255,255,.65);background:none;border:none;padding:6px 0;width:100%;margin-bottom:4px;transition:color var(--transition-fast),transform var(--transition-fast);text-align:left}
.dark-toggle:hover{color:#fff;transform:translateX(3px)}
.dark-toggle .dt-track{position:relative;width:28px;height:16px;background:rgba(255,255,255,.15);border-radius:8px;transition:background .2s;flex-shrink:0}
.dark-toggle .dt-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:transform .2s}

/* ===== Bouton Haute lisibilite (accessibilite AAA) v12.4 ===== */
.aaa-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:'DM Mono',monospace;font-size:11px;color:rgba(255,255,255,.65);background:none;border:none;padding:6px 0;width:100%;margin-bottom:4px;transition:color var(--transition-fast),transform var(--transition-fast);text-align:left}
.aaa-toggle:hover{color:#fff;transform:translateX(3px)}
.aaa-toggle .at-track{position:relative;width:28px;height:16px;background:rgba(255,255,255,.15);border-radius:8px;transition:background .2s;flex-shrink:0}
.aaa-toggle .at-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:transform .2s}
.aaa-toggle .at-icon{flex-shrink:0;opacity:.85}
html.aaa-mode .aaa-toggle .at-track{background:var(--gold)}
html.aaa-mode .aaa-toggle .at-thumb{transform:translateX(12px)}
html.aaa-mode .aaa-toggle .at-icon{opacity:1}
html.dark .dark-toggle .dt-track{background:var(--gold)}
html.dark .dark-toggle .dt-thumb{transform:translateX(12px)}
html.dark .sidebar{background:#0a0d14;border-right:1px solid rgba(255,255,255,.05)}
html.dark .sidebar-brand,html.dark .sidebar-score{border-bottom-color:rgba(255,255,255,.06)}
html.dark .sidebar-footer{border-top-color:rgba(255,255,255,.06)}
html.dark .nav-item.active{background:linear-gradient(90deg, rgba(251,191,36,.12) 0%, rgba(255,255,255,.02) 100%)}
html.dark .launcher{background:linear-gradient(180deg, #080f2e 0%, #0f1219 30%, #0f1219 100%)}
html.dark .launcher-header{background:transparent;border-color:transparent}
html.dark .launcher-card{background:var(--surface);border-color:var(--border)}
html.dark .field input{background:var(--bg);border-color:var(--border);color:var(--text)}
html.dark .page-table th{background:var(--bg)}
html.dark .page-table tr:hover{background:var(--surface)}
html.dark .check-item{background:var(--surface);border-color:var(--border)}
html.dark .check-item:hover{border-color:var(--border-strong)}
html.dark .reco-card{background:var(--surface);border-color:var(--border)}
html.dark .action-card{background:var(--surface);border-color:var(--border)}
html.dark .overview-section-card{background:var(--surface);border-color:var(--border)}
html.dark .table-wrapper{background:var(--surface);border-color:var(--border)}
html.dark .table-filters{background:var(--surface);border-color:var(--border)}
html.dark .kpi-card{background:var(--surface);border-color:var(--border)}
html.dark .hero-score{background:var(--surface-elevated);border-color:var(--border-strong)}
html.dark .section-block-header{border-color:var(--border)}
html.dark .section-score-pill.high{background:rgba(52,211,153,.15);color:#34d399}
html.dark .section-score-pill.mid{background:rgba(251,191,36,.15);color:#fbbf24}
html.dark .section-score-pill.low{background:rgba(248,113,113,.15);color:#f87171}
html.dark .pill.green{background:rgba(52,211,153,.15);color:#34d399}
html.dark .pill.yellow{background:rgba(251,191,36,.15);color:#fbbf24}
html.dark .pill.red{background:rgba(248,113,113,.15);color:#f87171}
html.dark .bl-search-input{background:var(--bg);border-color:var(--border);color:var(--text)}
html.dark .bl-search-btn{background:#e2e8f0;color:#0f1219}
html.dark .bl-suggestions{background:var(--surface);border-color:var(--border)}
html.dark .bl-suggestion:hover{background:var(--bg)}
html.dark .exclude-panel{background:var(--bg);border-color:var(--border)}
html.dark .exclude-row input{background:var(--surface);border-color:var(--border);color:var(--text)}
html.dark .tf-search{background:var(--bg);border-color:var(--border);color:var(--text)}
html.dark .tf-select{background:var(--bg);border-color:var(--border);color:var(--text)}
html.dark .url-list{background:var(--bg);border-color:var(--border)}
html.dark .wdc-toggle{background:var(--surface);border-color:var(--border);color:var(--text)}
html.dark #loader{background:linear-gradient(180deg, #080f2e 0%, #0f1219 30%, #0f1219 100%)}
html.dark .loader-inner{background:var(--surface);border-color:var(--border)}
html.dark .breadcrumb .bc-current{color:var(--text)}
/* Dark mode : urgency-banner et opinion-box gardent leur identite */
html.dark .urgency-banner{background:var(--bg-urgent-soft);border-color:var(--border-urgent);border-left-color:var(--bordeaux)}
html.dark .opinion-box{background:var(--bg-info-soft);border-color:var(--border-info);border-left-color:var(--navy)}
html.dark .opinion-box h3{color:var(--text)}
html.dark .opinion-box p{color:#c8cee0}
.report-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl);flex-wrap:wrap;gap:12px}
.report-url{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted)}
.report-url strong{color:var(--navy)}
.report-date{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
.urgency-banner h3{font-size:12px;font-weight:800;color:var(--bordeaux);margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px}
.urgency-banner .ub-icon{flex-shrink:0}
.urgency-items{display:flex;flex-direction:column;gap:8px}
.urgency-item{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text);font-family:'DM Mono',monospace;padding:6px 10px;border-radius:var(--radius-sm);transition:background var(--transition-fast);opacity:0;animation:urgencyFadeIn 0.4s cubic-bezier(.22,1,.36,1) forwards}
.urgency-item:nth-child(1){animation-delay:0.1s}
.urgency-item:nth-child(2){animation-delay:0.18s}
.urgency-item:nth-child(3){animation-delay:0.26s}
.urgency-item:nth-child(4){animation-delay:0.34s}
.urgency-item:nth-child(5){animation-delay:0.42s}
.urgency-item:nth-child(6){animation-delay:0.5s}
.urgency-item:nth-child(7){animation-delay:0.58s}
.urgency-item:nth-child(n+8){animation-delay:0.66s}
@keyframes urgencyFadeIn{
  from{opacity:0;transform:translateX(-8px)}
  to{opacity:1;transform:translateX(0)}
}
.urgency-item:hover{background:rgba(185,28,62,.06)}
.urgency-item:hover .ui-dot{transform:scale(1.3)}
html.dark .urgency-item:hover{background:rgba(248,113,113,.08)}
.urgency-item .ui-dot{width:7px;height:7px;border-radius:50%;background:var(--bordeaux);flex-shrink:0;box-shadow:0 0 6px rgba(185,28,62,.5);transition:transform var(--transition-fast)}
.urgency-item .ui-count{background:var(--bordeaux);color:#fff;font-size:10px;font-weight:800;padding:2px 9px;border-radius:var(--radius-full);margin-left:auto;font-variant-numeric:tabular-nums;min-width:24px;text-align:center;letter-spacing:0.02em;box-shadow:0 2px 6px rgba(185,28,62,.25)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}
.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 14px;text-align:center;position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast);min-width:0}
.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.kpi-card.ok-card::before{background:var(--ok)}.kpi-card.warn-card::before{background:var(--gold)}.kpi-card.err-card::before{background:var(--bordeaux)}.kpi-card.neutral-card::before{background:var(--navy)}
.kpi-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.kpi-icon.ok-icon{background:#d1fae5}.kpi-icon.warn-icon{background:#fef3c7}.kpi-icon.err-icon{background:#fde4ea}.kpi-icon.neutral-icon{background:#eef0fa}
.kpi-icon svg{width:16px;height:16px}
.kpi-val{font-size:24px;font-weight:800;color:var(--navy);line-height:1.15;word-break:break-word;overflow-wrap:break-word}
.kpi-val.ok{color:var(--ok)}.kpi-val.warn{color:var(--gold)}.kpi-val.err{color:var(--bordeaux)}
.kpi-label{font-family:'DM Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:6px}
.hero-gauge{position:relative;width:260px;height:160px;margin:0 auto 20px;max-width:100%}
.hero-gauge svg{width:100%;height:100%;display:block}
.hero-gauge .hero-num{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.hero-num .score-big{font-size:56px;font-weight:800;line-height:0.9;letter-spacing:-0.02em}
.hero-num .score-sub{font-size:10px;font-weight:500;color:var(--muted);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:0.08em}
.hero-verdict{font-size:20px;font-weight:700;color:var(--navy);margin-top:8px;margin-bottom:8px;letter-spacing:-0.01em}
.hero-verdict-detail{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);max-width:480px;margin:0 auto;line-height:1.5}
.hero-stats{display:flex;justify-content:center;gap:48px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);position:relative}
/* v12.5 - Cursor help sur les hero-stat (qui ont un title tooltip) */
.hero-stat{cursor:help}
/* v12.5 - Wrapper des 2 notes explicatives sous les hero-stats */
.hero-stats-notes{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:16px auto 0;
  max-width:760px;
}
.hero-method-card,
.hero-action-summary{
  border:1px solid rgba(13,31,92,0.1);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  box-shadow:0 6px 22px rgba(13,31,92,.04);
}
.hero-method-card{padding:12px 14px}
.hero-method-summary{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
}
.hero-method-chip{
  padding:6px 10px;
  border-radius:999px;
  background:#f3f5fb;
  color:var(--muted);
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
}
.hero-method-chip-primary{background:rgba(45,106,79,.1);color:var(--ok)}
.hero-method-chip-progress{background:rgba(13,31,92,.08);color:var(--navy)}
.hero-method-details{
  margin-top:8px;
  text-align:left;
  font-family:'DM Mono',monospace;
  font-size:10px;
  line-height:1.55;
  color:var(--muted);
}
.hero-method-details summary{
  width:max-content;
  margin:auto;
  cursor:pointer;
  color:var(--navy);
  font-weight:700;
}
.hero-method-details p{
  max-width:660px;
  margin:9px auto 0;
}
.hero-action-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:12px 16px;
  text-align:left;
}
.hero-action-summary>div{display:flex;flex-direction:column;gap:3px}
.hero-action-summary strong{font-size:12px;color:var(--navy)}
.hero-action-summary span{
  font-family:'DM Mono',monospace;
  font-size:10px;
  color:var(--muted);
}
.hero-stats-note-link{
  color:var(--navy);
  font-weight:700;
  text-decoration:none;
  border-bottom:1px dashed var(--gold);
  padding-bottom:1px;
  transition:all .15s ease;
  white-space:nowrap;
}
.hero-stats-note-link:hover{
  color:var(--gold);
  border-bottom-color:var(--navy);
}
html.dark .hero-method-card,
html.dark .hero-action-summary{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08)}
html.dark .hero-method-chip{background:rgba(255,255,255,.06)}
html.dark .hero-method-chip-primary{background:rgba(108,178,150,.15);color:#6cb296}
html.dark .hero-method-chip-progress{background:rgba(255,255,255,.1);color:#fff}
html.dark .hero-method-details summary,
html.dark .hero-action-summary strong{color:#fff}
@media (max-width:640px){
  .hero-action-summary{align-items:flex-start;flex-direction:column;gap:9px}
  .hero-method-summary{justify-content:flex-start}
  .hero-method-details summary{margin-left:0}
}
.hero-stats::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:40px;height:3px;background:var(--gold);border-radius:var(--radius-full)}
.hero-stat{text-align:center;min-width:80px}
.hero-stat-val{font-size:22px;font-weight:800;color:var(--navy);line-height:1;letter-spacing:-0.01em;display:block;margin-bottom:6px}
.hero-stat-label{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.overview-section-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;cursor:pointer;transition:all var(--transition-fast)}
.overview-section-card:hover{border-color:#c8cfe8;transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.overview-section-card .ov-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.overview-section-card .ov-name{font-size:12px;font-weight:700;color:var(--navy)}
.overview-section-card .ov-score{font-size:12px;font-weight:800}
.overview-section-card .ov-score.high{color:var(--ok)}.overview-section-card .ov-score.mid{color:var(--gold)}.overview-section-card .ov-score.low{color:var(--bordeaux)}
.overview-section-card .ov-bar{width:100%;height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
.overview-section-card .ov-bar-fill{height:100%;border-radius:3px;transition:width 1s cubic-bezier(.22,1,.36,1)}
.overview-section-card .ov-bar-fill.high{background:var(--ok)}.overview-section-card .ov-bar-fill.mid{background:var(--gold)}.overview-section-card .ov-bar-fill.low{background:var(--bordeaux)}
.overview-section-card .ov-detail{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);margin-top:8px;display:flex;gap:10px}
.overview-section-card .ov-detail span{display:flex;align-items:center;gap:3px}
.overview-section-card .ov-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* v12.5 - Hero dedie Actions prioritaires */
.actions-hero{
  background:linear-gradient(135deg, var(--surface) 0%, rgba(201,152,42,0.04) 100%);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  margin-bottom:24px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.actions-hero::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--gold) 0%, var(--bordeaux) 100%);
}
.actions-hero-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:rgba(201,152,42,0.1);
  color:var(--gold);
  margin-bottom:16px;
  animation:actionsPulse 3s ease-in-out infinite;
}
@keyframes actionsPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(201,152,42,0.3)}
  50%{transform:scale(1.05);box-shadow:0 0 0 8px rgba(201,152,42,0)}
}
.actions-hero-title{
  font-family:'Syne',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--navy);
  margin:0 0 8px 0;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.actions-hero-tagline{
  font-family:'DM Mono',monospace;
  font-size:13px;
  color:var(--muted);
  margin:0 0 24px 0;
  line-height:1.4;
}
.actions-hero-stats{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.ahs-card{
  background:rgba(255,255,255,0.6);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 18px;
  min-width:100px;
  backdrop-filter:blur(4px);
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.ahs-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(13,31,92,0.08);
}
.ahs-val{
  font-family:'Syne',sans-serif;
  font-size:26px;
  font-weight:800;
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums;
  color:var(--navy);
  line-height:1;
  margin-bottom:4px;
}
.ahs-label{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.ahs-urgent .ahs-val{color:var(--bordeaux)}
.ahs-medium .ahs-val{color:var(--gold)}
.ahs-low .ahs-val{color:var(--ok)}
.ahs-gain .ahs-val{color:var(--ok)}

/* Dark mode */
html.dark .actions-hero{background:linear-gradient(135deg, var(--surface) 0%, rgba(251,191,36,0.04) 100%)}
html.dark .ahs-card{background:rgba(255,255,255,0.03)}

/* Responsive mobile */
@media (max-width:640px){
  .actions-hero{padding:24px 20px}
  .actions-hero-title{font-size:22px}
  .actions-hero-tagline{font-size:12px}
  .actions-hero-stats{gap:8px}
  .ahs-card{padding:10px 14px;min-width:80px}
  .ahs-val{font-size:22px}
}

.action-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;margin-bottom:10px;transition:all var(--transition-fast);border-left:4px solid transparent}

/* v12.5 - Hero dedie Detail par page */
.pages-hero{
  background:linear-gradient(135deg, var(--surface) 0%, rgba(13,31,92,0.04) 100%);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  margin-bottom:24px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.pages-hero::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--navy) 0%, var(--gold) 100%);
}
.pages-hero-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:rgba(13,31,92,0.08);
  color:var(--navy);
  margin-bottom:16px;
}
.pages-hero-title{
  font-family:'Syne',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--navy);
  margin:0 0 8px 0;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.pages-hero-tagline{
  font-family:'DM Mono',monospace;
  font-size:13px;
  color:var(--muted);
  margin:0 0 24px 0;
  line-height:1.4;
}
.pages-hero-stats{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.phs-card{
  background:rgba(255,255,255,0.6);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 18px;
  min-width:110px;
  backdrop-filter:blur(4px);
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.phs-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(13,31,92,0.08);
}
.phs-val{
  font-family:'Syne',sans-serif;
  font-size:26px;
  font-weight:800;
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums;
  color:var(--navy);
  line-height:1;
  margin-bottom:4px;
}
.phs-label{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.phs-ok .phs-val{color:var(--ok)}
.phs-warn .phs-val{color:var(--gold)}
.phs-err .phs-val{color:var(--bordeaux)}

html.dark .pages-hero{background:linear-gradient(135deg, var(--surface) 0%, rgba(99,179,237,0.04) 100%)}
html.dark .phs-card{background:rgba(255,255,255,0.03)}

/* v12.5 - Note pedagogique sous les stats hero (Detail et Diagnostic) */
.pages-hero-note,
.diag-hero-note{
  display:flex;
  align-items:flex-start;
  gap:8px;
  max-width:720px;
  margin:18px auto 0;
  padding:10px 14px;
  background:rgba(255,255,255,0.5);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  line-height:1.55;
  color:var(--fg);
  text-align:left;
}
.pages-hero-note svg,
.diag-hero-note svg{
  flex-shrink:0;
  color:var(--gold);
  margin-top:1px;
}
.pages-hero-note strong,
.diag-hero-note strong{color:var(--navy);font-weight:700}
.pages-hero-note-link,
.diag-hero-note-link{
  color:var(--gold);
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:1px;
  transition:all .2s ease;
}
.pages-hero-note-link:hover,
.diag-hero-note-link:hover{
  color:var(--navy);
  border-bottom-color:var(--navy);
}
html.dark .pages-hero-note,
html.dark .diag-hero-note{background:rgba(255,255,255,0.04)}
html.dark .pages-hero-note strong,
html.dark .diag-hero-note strong{color:#fff}

/* v12.5 - Bouton URL clickable dans Detail par page */
.pt-action-cell{width:40px;text-align:center;padding:0 8px !important}
.pt-view-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:8px;
  background:rgba(13,31,92,0.06);
  color:var(--navy);
  text-decoration:none;
  transition:all .2s ease;
}
.pt-view-btn:hover{
  background:var(--gold);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(201,152,42,0.3);
}
html.dark .pt-view-btn{background:rgba(255,255,255,0.06);color:#e8e8e8}
html.dark .pt-view-btn:hover{background:var(--gold);color:#fff}

/* v12.5 - Cellule URL avec ellipsis propre */
.page-table.pt-v2 .pt-url-cell{
  max-width:300px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:'DM Mono',monospace;
  font-size:12px;
}

/* v12.5 - Ligne cliquable (click = va sur Diagnostic) */
.page-table.pt-v2 tr.pt-clickable{
  cursor:pointer;
  transition:background .15s ease;
}
.page-table.pt-v2 tr.pt-clickable:hover{
  background:rgba(201,152,42,0.06);
}
html.dark .page-table.pt-v2 tr.pt-clickable:hover{
  background:rgba(251,191,36,0.06);
}

/* v12.5 - Bouton Export CSV */
.tf-export{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.03em;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.tf-export:hover{
  background:var(--gold);
  border-color:var(--gold);
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(201,152,42,0.3);
}
.tf-export svg{flex-shrink:0}
html.dark .tf-export{background:#fff;color:var(--navy);border-color:#fff}
html.dark .tf-export:hover{background:var(--gold);color:#fff;border-color:var(--gold)}

/* v12.5 - Bouton "Plus de colonnes" */
.tf-cols{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  background:var(--surface);
  color:var(--navy);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.03em;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.tf-cols:hover{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(13,31,92,0.2);
}
.tf-cols svg{flex-shrink:0}
.tf-cols-chevron{transition:transform .3s ease}
html.dark .tf-cols{background:var(--surface);color:#e8e8e8;border-color:rgba(255,255,255,0.15)}
html.dark .tf-cols:hover{background:#fff;color:var(--navy);border-color:#fff}

/* v12.5 - Colonnes avancees masquées par defaut, affichees quand .pt-expanded */
.page-table.pt-v2 .pt-col-advanced{display:none}
.page-table.pt-v2.pt-expanded .pt-col-advanced{
  display:table-cell;
  animation:colAppear .3s ease-out;
}
@keyframes colAppear{
  from{opacity:0;transform:scaleX(0.8)}
  to{opacity:1;transform:scaleX(1)}
}

/* v12.5 - Toolbar au-dessus du tableau (Plus de colonnes) */
.pt-toolbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

/* v12.5 - Hero dedie Diagnostic par page */
.diag-hero{
  background:linear-gradient(135deg, var(--surface) 0%, rgba(13,31,92,0.04) 100%);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  margin-bottom:18px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.diag-hero::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--navy) 0%, var(--gold) 100%);
}
.diag-hero-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:rgba(13,31,92,0.08);
  color:var(--navy);
  margin-bottom:16px;
}
.diag-hero-title{
  font-family:'Syne',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--navy);
  margin:0 0 8px 0;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.diag-hero-tagline{
  font-family:'DM Mono',monospace;
  font-size:13px;
  color:var(--muted);
  margin:0 0 24px 0;
  line-height:1.4;
}
.diag-hero-stats{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.dhs-card{
  background:rgba(255,255,255,0.6);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 18px;
  min-width:110px;
  backdrop-filter:blur(4px);
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.dhs-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(13,31,92,0.08);
}
.dhs-val{
  font-family:'Syne',sans-serif;
  font-size:26px;
  font-weight:800;
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums;
  color:var(--navy);
  line-height:1;
  margin-bottom:4px;
}
.dhs-label{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.dhs-ok .dhs-val{color:var(--ok)}
.dhs-warn .dhs-val{color:var(--gold)}
.dhs-err .dhs-val{color:var(--bordeaux)}

html.dark .diag-hero{background:linear-gradient(135deg, var(--surface) 0%, rgba(99,179,237,0.04) 100%)}
html.dark .dhs-card{background:rgba(255,255,255,0.03)}

/* v12.5 - Conseil pedagogique sous le hero diagnostic */
.diag-tip{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 18px;
  margin-bottom:18px;
  background:linear-gradient(135deg, rgba(201,152,42,0.06) 0%, rgba(255,255,255,0.4) 100%);
  border:1px solid rgba(201,152,42,0.25);
  border-radius:var(--radius-md);
  font-family:'DM Mono',monospace;
  font-size:12px;
  line-height:1.5;
  color:var(--fg);
}
.diag-tip.diag-tip-ok{
  background:linear-gradient(135deg, rgba(45,106,79,0.06) 0%, rgba(255,255,255,0.4) 100%);
  border-color:rgba(45,106,79,0.25);
}
.diag-tip-icon{
  flex-shrink:0;
  font-size:18px;
  line-height:1;
  margin-top:1px;
}
.diag-tip-text{flex:1}
.diag-tip-link{
  color:var(--navy);
  font-weight:700;
  text-decoration:none;
  border-bottom:1px dashed var(--gold);
  padding-bottom:1px;
  transition:all .15s ease;
}
.diag-tip-link:hover{
  color:var(--gold);
  border-bottom-color:var(--navy);
}

html.dark .diag-tip{background:linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(255,255,255,0.02) 100%)}

/* v12.5 - Toolbar Diagnostic (filtres + bouton tout deplier) */
.diag-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
  flex-wrap:wrap;
}
.diag-toolbar-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

/* v12.5 - Bouton Export pour mon dev */
.diag-export{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 14px;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.diag-export:hover{
  background:var(--gold);
  border-color:var(--gold);
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(201,152,42,0.3);
}
.diag-export svg{flex-shrink:0}
html.dark .diag-export{background:#fff;color:var(--navy);border-color:#fff}
html.dark .diag-export:hover{background:var(--gold);color:#fff;border-color:var(--gold)}

/* v12.5 - Tip pedagogique INFO (sous le hero) */
.diag-tip.diag-tip-info{
  background:linear-gradient(135deg, rgba(13,31,92,0.04) 0%, rgba(255,255,255,0.4) 100%);
  border-color:rgba(13,31,92,0.15);
}
.diag-tip-err{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 8px;
  border-radius:99px;
  background:rgba(185,28,62,0.12);
  color:var(--bordeaux);
  font-weight:700;
  font-size:11px;
  margin:0 2px;
}
.diag-tip-warn{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 8px;
  border-radius:99px;
  background:rgba(201,152,42,0.12);
  color:#9a6f1f;
  font-weight:700;
  font-size:11px;
  margin:0 2px;
}
html.dark .diag-tip-warn{color:var(--gold)}

/* v12.5 - Regroupement par section dans la card depliee */
.diag-section-group{
  margin-bottom:16px;
  border-left:3px solid var(--border);
  padding-left:14px;
}
.diag-section-group.has-errors{
  border-left-color:var(--bordeaux);
}
.diag-section-group.has-warnings{
  border-left-color:var(--gold);
}
.diag-section-group:last-child{margin-bottom:0}
.diag-section-group-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
  padding:6px 10px;
  background:rgba(13,31,92,0.03);
  border-radius:8px;
}
.diag-section-group-title{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:800;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--navy);
}
.diag-section-group-count{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  color:var(--muted);
  letter-spacing:0.04em;
}
html.dark .diag-section-group-header{background:rgba(255,255,255,0.03)}
html.dark .diag-section-group-title{color:#e8e8e8}

/* v12.5 - Bouton "Tout deplier" */
.diag-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  flex:1;
  min-width:0;
}
.df-tab{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:99px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
  cursor:pointer;
  transition:all .2s ease;
}
.df-tab:hover{color:var(--navy);border-color:var(--navy);transform:translateY(-1px)}
.df-tab-active{color:#fff;background:var(--navy);border-color:var(--navy);box-shadow:0 2px 8px rgba(13,31,92,0.15)}
.df-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}
.df-tab-err .df-dot{background:var(--bordeaux)}
.df-tab-warn .df-dot{background:var(--gold)}
.df-tab-ok .df-dot{background:var(--ok)}
.df-tab-active.df-tab-err{background:var(--bordeaux);border-color:var(--bordeaux);box-shadow:0 2px 8px rgba(185,28,62,0.2)}
.df-tab-active.df-tab-warn{background:var(--gold);border-color:var(--gold);box-shadow:0 2px 8px rgba(201,152,42,0.2)}
.df-tab-active.df-tab-ok{background:var(--ok);border-color:var(--ok);box-shadow:0 2px 8px rgba(45,106,79,0.2)}
.df-tab-active .df-dot{background:#fff}
.df-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;background:rgba(13,31,92,0.08);border-radius:99px;font-size:10px;font-weight:800}
.df-tab-active .df-count{background:rgba(255,255,255,0.25);color:#fff}

html.dark .df-tab{background:var(--surface);color:#c5c9d0}
html.dark .df-tab:hover{color:#fff}
html.dark .df-tab-active{background:#fff;color:var(--navy)}
html.dark .df-count{background:rgba(255,255,255,0.1);color:#e8e8e8}

/* v12.5 - Bouton "Tout deplier" */
.diag-expand-all{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 14px;
  background:var(--surface);
  color:var(--navy);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.diag-expand-all:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-1px);box-shadow:0 4px 10px rgba(13,31,92,0.2)}
.diag-expand-all-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.diag-expand-all svg{flex-shrink:0;transition:transform .3s ease}
.diag-expand-all-active svg{transform:rotate(180deg)}
html.dark .diag-expand-all{background:var(--surface);color:#e8e8e8;border-color:rgba(255,255,255,0.15)}
html.dark .diag-expand-all:hover{background:#fff;color:var(--navy);border-color:#fff}

/* v12.5 - Card "Sans problème" : message rassurant */
.diag-no-issue{
  display:flex;
  align-items:center;
  gap:16px;
  padding:24px 20px;
  background:linear-gradient(135deg, rgba(45,106,79,0.05) 0%, rgba(255,255,255,0.4) 100%);
  border-radius:var(--radius-md);
  margin:8px;
}
.diag-no-issue-icon{
  flex-shrink:0;
  width:56px;
  height:56px;
  border-radius:50%;
  background:rgba(45,106,79,0.12);
  color:var(--ok);
  display:flex;
  align-items:center;
  justify-content:center;
}
.diag-no-issue-text{font-family:'DM Mono',monospace;font-size:12px;line-height:1.6;color:var(--fg)}
.diag-no-issue-text strong{color:var(--ok);font-weight:800;font-size:13px}
html.dark .diag-no-issue{background:linear-gradient(135deg, rgba(108,178,150,0.06) 0%, rgba(255,255,255,0.02) 100%)}

/* v12.5 - Badge "Aucun problème" pour les pages OK */
.diag-badge.diag-ok{
  background:rgba(45,106,79,0.12);
  color:var(--ok);
  border:1px solid rgba(45,106,79,0.2);
}
html.dark .diag-badge.diag-ok{background:rgba(108,178,150,0.15);color:#6cb296}

/* v12.5 - Footer de card avec bouton "Voir details techniques" */
.diag-page-footer{
  margin-top:8px;
  padding:10px 16px 14px;
  border-top:1px dashed var(--border);
  display:flex;
  justify-content:flex-end;
}
.diag-tech-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  background:transparent;
  color:var(--muted);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
}
.diag-tech-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-1px)}
.diag-tech-btn svg{flex-shrink:0}
html.dark .diag-tech-btn{color:#c5c9d0;border-color:rgba(255,255,255,0.15)}
html.dark .diag-tech-btn:hover{background:#fff;color:var(--navy);border-color:#fff}

/* v12.5 - Highlight quand on arrive sur une ligne dans Detail par page */
@keyframes ptRowHighlight{
  0%{background:rgba(201,152,42,0.25)}
  100%{background:transparent}
}
.page-table.pt-v2 tr.pt-row-highlight{animation:ptRowHighlight 2s ease-out}

/* Responsive Diagnostic */
@media (max-width:768px){
  .diag-toolbar{gap:10px}
  .diag-filters{gap:6px}
  .df-tab{padding:6px 10px;font-size:10px}
  .df-count{min-width:18px;height:16px;font-size:9px}
  .diag-expand-all{padding:6px 10px;font-size:10px}
}

/* v12.5 - Header de page diagnostic refait : zone clickable + bouton voir separe */
.diag-page .diag-page-header{
  display:flex;
  align-items:center;
  gap:8px;
  padding-right:8px;
}
.diag-page-header-clickable{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  padding:14px 14px 14px 18px;
  transition:background .15s ease;
}
.diag-page-header-clickable:hover{
  background:rgba(201,152,42,0.04);
}
.diag-view-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:8px;
  background:rgba(13,31,92,0.06);
  color:var(--navy);
  text-decoration:none;
  transition:all .2s ease;
}
.diag-view-btn:hover{
  background:var(--gold);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(201,152,42,0.3);
}
html.dark .diag-view-btn{background:rgba(255,255,255,0.06);color:#e8e8e8}
html.dark .diag-view-btn:hover{background:var(--gold);color:#fff}

/* v12.5 - Highlight quand on arrive depuis le tip */
.diag-page.diag-highlight{
  animation:diagHighlight 2s ease-out;
}
/* (l'animation diagHighlight est déjà définie plus loin) */

/* v12.5 - Legende des couleurs Diagnostic par page */
.diag-legend{
  margin-top:18px;
  padding:14px 18px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
}
.diag-legend-title{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.diag-legend-items{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  align-items:center;
}
.diag-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--fg);
}
.diag-legend-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:20px;
  padding:0 10px;
  border-radius:99px;
  font-size:10px;
  font-weight:800;
  font-family:'DM Mono',monospace;
}
.diag-legend-pill.red{background:rgba(185,28,62,0.12);color:var(--bordeaux)}
.diag-legend-pill.yellow{background:rgba(201,152,42,0.12);color:#9a6f1f}
.diag-legend-tip{
  margin-left:auto;
  font-style:italic;
  color:var(--muted);
  font-size:11px;
}
html.dark .diag-legend-pill.yellow{color:var(--gold)}
@media (max-width:768px){
  .diag-legend-items{gap:8px 12px}
  .diag-legend-tip{
    margin-left:0;
    width:100%;
    margin-top:6px;
    padding-top:8px;
    border-top:1px dashed var(--border);
  }
}

/* Responsive Diagnostic */
@media (max-width:640px){
  .diag-hero{padding:24px 20px}
  .diag-hero-title{font-size:22px}
  .diag-hero-tagline{font-size:12px}
  .diag-hero-stats{gap:8px}
  .dhs-card{padding:10px 14px;min-width:90px}
  .dhs-val{font-size:22px}
}

/* v12.5 - Hint discret dans les en-têtes (ex: "Title (car.)") */
.page-table.pt-v2 th .th-hint{
  font-size:9px;
  font-weight:500;
  opacity:0.6;
  margin-left:2px;
  letter-spacing:0;
  text-transform:none;
}

/* v12.5 - Legende des couleurs sous le tableau */
.pt-legend{
  margin-top:18px;
  padding:14px 18px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
}
.pt-legend-title{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.pt-legend-items{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  align-items:center;
}
.pt-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--fg);
}
.pt-legend-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:18px;
  padding:0 7px;
  border-radius:99px;
  font-size:10px;
  font-weight:800;
  font-family:'DM Mono',monospace;
}
.pt-legend-pill.green{background:rgba(45,106,79,0.12);color:var(--ok)}
.pt-legend-pill.yellow{background:rgba(201,152,42,0.12);color:#9a6f1f}
.pt-legend-pill.red{background:rgba(185,28,62,0.12);color:var(--bordeaux)}
.pt-legend-tip{
  margin-left:auto;
  font-style:italic;
  color:var(--muted);
  font-size:11px;
}

html.dark .pt-legend-pill.yellow{color:var(--gold)}

@media (max-width:768px){
  .pt-legend-items{gap:8px 12px}
  .pt-legend-tip{
    margin-left:0;
    width:100%;
    margin-top:6px;
    padding-top:8px;
    border-top:1px dashed var(--border);
  }
}
.page-table.pt-v2 .pt-cell-clickable{
  cursor:pointer;
  position:relative;
  transition:background .15s ease;
}
.page-table.pt-v2 .pt-cell-clickable:hover{
  background:rgba(201,152,42,0.12);
}
.page-table.pt-v2 .pt-cell-clickable::after{
  content:'';
  position:absolute;
  bottom:6px;
  right:6px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--gold);
  opacity:0;
  transition:opacity .2s ease;
}
.page-table.pt-v2 .pt-cell-clickable:hover::after{
  opacity:0.7;
}

/* v12.5 - Modal Detail Page (showPageDetail) */
.pd-modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.5);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  transition:opacity .2s ease;
}
.pd-modal-overlay.pd-modal-visible{
  opacity:1;
}
.pd-modal{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  max-width:640px;
  width:100%;
  max-height:85vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
  position:relative;
  transform:scale(0.95) translateY(8px);
  transition:transform .25s cubic-bezier(.22,1,.36,1);
}
.pd-modal-visible .pd-modal{
  transform:scale(1) translateY(0);
}
.pd-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:32px;
  height:32px;
  background:rgba(0,0,0,0.04);
  border:none;
  border-radius:50%;
  color:var(--muted);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .2s ease;
  z-index:2;
}
.pd-modal-close:hover{
  background:var(--bordeaux);
  color:#fff;
  transform:rotate(90deg);
}
.pd-modal-header{
  display:flex;
  align-items:center;
  gap:14px;
  padding:22px 70px 18px 26px; /* padding-right augmente pour laisser place a la croix */
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg, rgba(13,31,92,0.03) 0%, rgba(201,152,42,0.03) 100%);
}
.pd-modal-icon{
  flex-shrink:0;
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(13,31,92,0.08);
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
}
.pd-modal-header-text{flex:1;min-width:0}
.pd-modal-title{
  font-family:'Syne',sans-serif;
  font-size:18px;
  font-weight:800;
  color:var(--navy);
  margin:0 0 4px 0;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.pd-modal-subtitle{
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--muted);
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pd-modal-path{
  color:var(--navy);
  font-weight:600;
}
.pd-modal-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:22px;
  padding:0 8px;
  margin-left:6px;
  background:var(--navy);
  color:#fff;
  border-radius:99px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:800;
  letter-spacing:0.02em;
  vertical-align:middle;
  transform:translateY(-2px);
}
.pd-modal-body{
  flex:1;
  overflow-y:auto;
  padding:20px 26px;
}
.pd-modal-body::-webkit-scrollbar{width:6px}
.pd-modal-body::-webkit-scrollbar-track{background:transparent}
.pd-modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.pd-modal-empty{
  text-align:center;
  font-family:'DM Mono',monospace;
  font-size:12px;
  color:var(--muted);
  padding:30px 0;
  margin:0;
}
.pd-modal-list{
  list-style:none;
  counter-reset:pdmli;
  margin:0;
  padding:0;
}
.pd-modal-item{
  counter-increment:pdmli;
  position:relative;
  padding:12px 14px 12px 40px;
  margin-bottom:6px;
  background:rgba(13,31,92,0.02);
  border:1px solid var(--border);
  border-radius:10px;
  font-size:13px;
  line-height:1.5;
  color:var(--fg);
  word-break:break-word;
  transition:all .15s ease;
}
.pd-modal-item:hover{
  background:rgba(201,152,42,0.05);
  border-color:var(--gold);
}
.pd-modal-item::before{
  content:counter(pdmli);
  position:absolute;
  left:10px;
  top:10px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:800;
  display:flex;
  align-items:center;
  justify-content:center;
  letter-spacing:0;
}
.pd-modal-footer{
  padding:14px 26px 20px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:flex-end;
}
.pd-modal-copy{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 16px;
  background:var(--surface);
  color:var(--navy);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
}
.pd-modal-copy:hover{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
  transform:translateY(-1px);
}
.pd-modal-copy-done{
  background:var(--ok) !important;
  color:#fff !important;
  border-color:var(--ok) !important;
}

/* Dark mode */
html.dark .pd-modal-overlay{background:rgba(0,0,0,0.7)}
html.dark .pd-modal-header{background:linear-gradient(135deg, rgba(255,255,255,0.02) 0%, rgba(251,191,36,0.03) 100%)}
html.dark .pd-modal-item{background:rgba(255,255,255,0.02)}
html.dark .pd-modal-close{background:rgba(255,255,255,0.05)}

/* Responsive */
@media (max-width:640px){
  .pd-modal{max-width:100%;max-height:95vh}
  .pd-modal-header{padding:18px 20px 14px}
  .pd-modal-icon{width:38px;height:38px}
  .pd-modal-title{font-size:16px}
  .pd-modal-body{padding:16px 20px}
  .pd-modal-item{font-size:12px;padding:10px 12px 10px 36px}
}

/* v12.5 - Highlight visuel quand on arrive sur une diag-page via click */
.diag-page.diag-highlight{
  animation:diagHighlight 2s ease-out;
}
@keyframes diagHighlight{
  0%{box-shadow:0 0 0 0 rgba(201,152,42,0.5);background:rgba(201,152,42,0.1)}
  100%{box-shadow:0 0 0 0 rgba(201,152,42,0);background:transparent}
}

/* Responsive mobile */
@media (max-width:640px){
  .pages-hero{padding:24px 20px}
  .pages-hero-title{font-size:22px}
  .pages-hero-tagline{font-size:12px}
  .pages-hero-stats{gap:8px}
  .phs-card{padding:10px 14px;min-width:90px}
  .phs-val{font-size:22px}
  .page-table.pt-v2 .pt-url-cell{max-width:180px}
}
.action-card.act-urgent{border-left-color:var(--bordeaux)}
.action-card.act-medium{border-left-color:var(--gold)}
.action-card.act-low{border-left-color:var(--ok)}
.action-card:hover{box-shadow:var(--shadow-sm)}
.action-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.action-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0}
.action-num.act-urgent{background:var(--bordeaux)}.action-num.act-medium{background:var(--gold)}.action-num.act-low{background:var(--ok)}
/* v13.0 - Médailles 🥇🥈🥉 pour le TOP 3 actions prioritaires */
.action-num-medal{width:32px;height:32px;font-size:20px;background:transparent !important;color:inherit;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}
.action-num-medal.action-num-gold{transform:scale(1.05)}
.action-num-medal.action-num-silver{transform:scale(1.02)}
.action-title{font-size:12px;font-weight:700;color:var(--navy)}
.action-desc{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:4px;line-height:1.5}
.action-meta{display:flex;gap:12px;font-size:11px;font-family:'DM Mono',monospace}
.action-meta .am-impact{color:var(--ok);font-weight:600}

/* v13.0 - Matrice Impact/Effort visuelle (best client) */
.impact-effort-matrix{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:24px 28px;
  margin-bottom:24px;
  box-shadow:var(--shadow-sm);
}
html.dark .impact-effort-matrix{background:var(--surface);border-color:var(--border)}
.iem-header{margin-bottom:16px}
.iem-title{
  font-size:14px;
  font-weight:800;
  color:var(--navy);
  margin-bottom:4px;
  text-transform:uppercase;
  letter-spacing:.04em;
  display:flex;
  align-items:center;
  gap:8px;
}
.iem-title::before{
  content:"";
  width:16px;
  height:16px;
  background:var(--gold);
  border-radius:3px;
  flex-shrink:0;
  display:inline-block;
}
.iem-subtitle{
  font-size:12px;
  color:var(--muted);
  font-family:'DM Mono',monospace;
  margin-bottom:8px;
}
.iem-svg-wrapper{
  display:flex;
  justify-content:center;
  margin:8px auto;
  max-width:600px;
}
.iem-svg{
  width:100%;
  height:auto;
  max-height:420px;
}
.iem-point{
  cursor:pointer;
}
.iem-point circle{
  transition:stroke-width .15s ease, filter .15s ease;
}
.iem-point:hover circle{
  stroke-width:4;
  filter:drop-shadow(0 2px 6px rgba(13,31,92,.35));
}

/* v13.0 - Tooltip custom INSTANTANÉ pour la matrice Impact/Effort */
.iem-svg-wrapper{position:relative}
.impact-effort-matrix{position:relative}
.iem-tooltip{
  position:absolute;
  pointer-events:none;
  background:var(--navy);
  color:#fff;
  padding:10px 14px;
  border-radius:8px;
  font-size:12px;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  max-width:280px;
  z-index:1000;
  box-shadow:0 4px 12px rgba(13,31,92,.25);
  opacity:0;
  visibility:hidden;
  transition:opacity .12s ease;
  line-height:1.4;
}
.iem-tooltip-visible{
  opacity:1;
  visibility:visible;
}
.iem-tt-title{
  font-weight:700;
  margin-bottom:4px;
  font-size:13px;
}
.iem-tt-desc{
  font-size:11px;
  opacity:.85;
  font-family:'DM Mono',monospace;
}
html.dark .iem-tooltip{background:#1e293b}
.iem-legend{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px dashed var(--border);
  font-size:11px;
  color:var(--muted);
  font-family:'DM Mono',monospace;
  align-items:center;
}
.iem-legend-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.iem-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}
.iem-legend-tip{
  margin-left:auto;
  font-style:italic;
  color:var(--navy);
  opacity:.8;
}
@media (max-width:768px){
  .impact-effort-matrix{padding:16px}
  .iem-legend{flex-direction:column;align-items:flex-start;gap:8px}
  .iem-legend-tip{margin-left:0}
}

/* v12.5 - Filtres de gravite pour Actions prioritaires */
.actions-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.af-tab{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:99px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
  cursor:pointer;
  transition:all .2s ease;
}
.af-tab:hover{
  color:var(--navy);
  border-color:var(--navy);
  transform:translateY(-1px);
}
.af-tab-active{
  color:#fff;
  background:var(--navy);
  border-color:var(--navy);
  box-shadow:0 2px 8px rgba(13,31,92,0.15);
}
.af-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  display:inline-block;
  flex-shrink:0;
}
.af-tab-critical .af-dot{background:var(--bordeaux)}
.af-tab-medium .af-dot{background:var(--gold)}
.af-tab-low .af-dot{background:var(--ok)}
.af-tab-active.af-tab-critical{background:var(--bordeaux);border-color:var(--bordeaux);box-shadow:0 2px 8px rgba(185,28,62,0.2)}
.af-tab-active.af-tab-medium{background:var(--gold);border-color:var(--gold);box-shadow:0 2px 8px rgba(201,152,42,0.2)}
.af-tab-active.af-tab-low{background:var(--ok);border-color:var(--ok);box-shadow:0 2px 8px rgba(45,106,79,0.2)}
.af-tab-active .af-dot{background:#fff}
.af-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:18px;
  padding:0 6px;
  background:rgba(13,31,92,0.08);
  border-radius:99px;
  font-size:10px;
  font-weight:800;
  letter-spacing:0.02em;
}
.af-tab-active .af-count{
  background:rgba(255,255,255,0.25);
  color:#fff;
}

/* Dark mode */
html.dark .af-tab{background:var(--surface);color:#c5c9d0}
html.dark .af-tab:hover{color:#fff}
html.dark .af-tab-active{background:#fff;color:var(--navy)}
html.dark .af-count{background:rgba(255,255,255,0.1);color:#e8e8e8}

/* Responsive mobile */
@media (max-width:640px){
  .actions-filters{gap:6px}
  .af-tab{padding:6px 10px;font-size:10px}
  .af-count{min-width:18px;height:16px;font-size:9px}
}

/* v12.5 - Badges gravite et faisabilite pour actions */
.action-badges{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:8px 0 10px;
}
.act-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 10px;
  border-radius:99px;
  font-size:10px;
  font-weight:700;
  font-family:'DM Mono',monospace;
  letter-spacing:0.05em;
  text-transform:uppercase;
  border:1px solid;
}
/* Gravite */
.act-badge.sev-critical{
  color:var(--bordeaux);
  background:rgba(185,28,62,0.1);
  border-color:rgba(185,28,62,0.3);
}
.act-badge.sev-high{
  color:var(--bordeaux);
  background:rgba(185,28,62,0.08);
  border-color:rgba(185,28,62,0.25);
}
.act-badge.sev-medium{
  color:#92600a;
  background:rgba(201,152,42,0.12);
  border-color:rgba(201,152,42,0.3);
}
.act-badge.sev-low,
.act-badge.sev-info{
  color:var(--muted);
  background:rgba(13,31,92,0.06);
  border-color:rgba(13,31,92,0.15);
}
/* Faisabilite */
.act-badge.feas-easy{
  color:var(--ok);
  background:rgba(45,106,79,0.1);
  border-color:rgba(45,106,79,0.25);
}
.act-badge.feas-medium{
  color:#92600a;
  background:rgba(201,152,42,0.1);
  border-color:rgba(201,152,42,0.25);
}
.act-badge.feas-hard{
  color:var(--bordeaux);
  background:rgba(185,28,62,0.1);
  border-color:rgba(185,28,62,0.25);
}

/* Dark mode badges */
html.dark .act-badge.sev-critical,
html.dark .act-badge.sev-high{color:#f87171;background:rgba(248,113,113,0.12);border-color:rgba(248,113,113,0.3)}
html.dark .act-badge.sev-medium{color:#fbbf24;background:rgba(251,191,36,0.12);border-color:rgba(251,191,36,0.3)}
html.dark .act-badge.sev-low,
html.dark .act-badge.sev-info{color:#9ca3af;background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.15)}
html.dark .act-badge.feas-easy{color:#34d399;background:rgba(52,211,153,0.12);border-color:rgba(52,211,153,0.3)}
html.dark .act-badge.feas-medium{color:#fbbf24;background:rgba(251,191,36,0.12);border-color:rgba(251,191,36,0.3)}
html.dark .act-badge.feas-hard{color:#f87171;background:rgba(248,113,113,0.12);border-color:rgba(248,113,113,0.3)}

/* v12.5 - Guide pedagogique (accordeon enrichi avec tabs CMS) */
.action-guide{
  margin-top:12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(13,31,92,0.02);
  overflow:hidden;
  transition:all .25s ease;
}
.action-guide[open]{
  background:var(--surface);
  box-shadow:0 2px 8px rgba(13,31,92,0.04);
}
.ag-summary{
  padding:12px 16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'DM Mono',monospace;
  font-size:12px;
  font-weight:700;
  color:var(--navy);
  letter-spacing:0.03em;
  list-style:none;
  user-select:none;
  transition:background .2s ease;
}
.ag-summary::-webkit-details-marker{display:none}
.ag-summary:hover{background:rgba(13,31,92,0.04)}
.ag-icon{color:var(--gold);flex-shrink:0}
.ag-title{flex:1}
.ag-chevron{
  color:var(--muted);
  transition:transform .3s ease;
  flex-shrink:0;
}
.ag-body{
  padding:4px 20px 20px;
  border-top:1px solid var(--border);
  display:flex;
  flex-direction:column;
  gap:20px;
  animation:agFadeIn .3s ease-out;
}
@keyframes agFadeIn{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.ag-block{
  padding-top:16px;
}
.ag-block-label{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:6px;
}
.ag-block-label::before{
  content:'';
  width:4px;
  height:14px;
  background:var(--gold);
  border-radius:2px;
  display:inline-block;
}
.ag-what .ag-block-label::before{background:var(--navy)}
.ag-why .ag-block-label::before{background:var(--gold)}
.ag-how .ag-block-label::before{background:var(--bordeaux)}
.ag-example .ag-block-label::before{background:var(--ok)}
.ag-links .ag-block-label::before{background:var(--muted)}

.ag-block-content{
  font-size:13px;
  line-height:1.6;
  color:var(--text);
}
.ag-block-content b{color:var(--navy);font-weight:700}

/* Tabs CMS */
.ag-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-bottom:12px;
  border-bottom:1px solid var(--border);
}
.ag-tab{
  background:transparent;
  border:none;
  padding:8px 14px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
  cursor:pointer;
  border-radius:8px 8px 0 0;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:all .2s ease;
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.ag-tab:hover{color:var(--navy);background:rgba(13,31,92,0.04)}
.ag-tab-active{
  color:var(--navy);
  border-bottom-color:var(--gold);
  background:rgba(201,152,42,0.06);
}
.ag-tab-detected{
  color:var(--ok);
  font-size:14px;
  line-height:0;
}
.ag-tab-content{
  display:none;
  padding:8px 4px;
  font-size:12.5px;
  line-height:1.8;
  color:var(--text);
}
.ag-tab-content-active{display:block;animation:agFadeIn .25s ease-out}
.ag-tab-content b{color:var(--navy);font-weight:700}

/* Exemples avant/après */
.ag-example-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:10px;
}
.ag-ex-card{
  border:1px solid var(--border);
  border-radius:8px;
  padding:12px;
  background:var(--surface);
}
.ag-ex-bad{border-left:3px solid var(--bordeaux);background:rgba(185,28,62,0.03)}
.ag-ex-good{border-left:3px solid var(--ok);background:rgba(45,106,79,0.03)}
.ag-ex-badge{
  display:inline-block;
  padding:2px 10px;
  border-radius:99px;
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.ag-ex-bad .ag-ex-badge{
  background:rgba(185,28,62,0.1);
  color:var(--bordeaux);
}
.ag-ex-good .ag-ex-badge{
  background:rgba(45,106,79,0.1);
  color:var(--ok);
}
.ag-ex-code{
  font-family:'DM Mono',monospace;
  font-size:11.5px;
  line-height:1.5;
  color:var(--text);
  margin:0;
  white-space:pre-wrap;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.ag-ex-note{
  font-size:12px;
  color:var(--muted);
  font-style:italic;
  padding:8px 12px;
  background:rgba(13,31,92,0.03);
  border-radius:6px;
  border-left:2px solid var(--gold);
}
.ag-ex-note b{color:var(--navy);font-style:normal}

/* Links pour aller plus loin */
.ag-links-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ag-links-list a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--navy);
  text-decoration:none;
  font-size:12.5px;
  font-weight:500;
  padding:4px 8px;
  border-radius:6px;
  transition:all .2s ease;
}
.ag-links-list a:hover{
  background:rgba(201,152,42,0.08);
  color:var(--gold);
  text-decoration:underline;
}
.ag-links-list svg{flex-shrink:0;opacity:0.6}

/* Dark mode */
html.dark .action-guide{background:rgba(255,255,255,0.02);border-color:rgba(255,255,255,0.08)}
html.dark .action-guide[open]{background:var(--surface)}
html.dark .ag-summary{color:#e8e8e8}
html.dark .ag-summary:hover{background:rgba(255,255,255,0.04)}
html.dark .ag-block-content{color:#c5c9d0}
html.dark .ag-block-content b{color:#fff}
html.dark .ag-tab-content{color:#c5c9d0}
html.dark .ag-tab-content b{color:#fff}
html.dark .ag-tab:hover{color:#fff;background:rgba(255,255,255,0.04)}
html.dark .ag-tab-active{color:#fff;background:rgba(251,191,36,0.08)}
html.dark .ag-ex-note{background:rgba(255,255,255,0.03);color:#a0a5ad}
html.dark .ag-links-list a{color:#e8e8e8}

/* Responsive mobile */
@media (max-width:640px){
  .ag-example-grid{grid-template-columns:1fr;gap:8px}
  .ag-tabs{gap:2px}
  .ag-tab{padding:6px 10px;font-size:10px}
  .ag-body{padding:4px 14px 14px;gap:16px}
}

.action-meta .am-pages{color:var(--muted)}
.section-summary{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);margin:-2px 0 8px;line-height:1.5}
.section-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;padding:4px 0}
.section-toggle:hover .section-block-title{opacity:.8}
.section-arrow{font-size:10px;color:var(--muted);transition:transform var(--transition-base) cubic-bezier(.22,1,.36,1);margin-left:8px}
.check-grid{display:flex;flex-direction:column;gap:12px;max-height:10000px;opacity:1;transition:max-height var(--transition-slow) cubic-bezier(.22,1,.36,1),opacity var(--transition-base);overflow:hidden}
.section-block.collapsed .check-grid{max-height:0;opacity:0;margin:0}
.section-block.collapsed .section-arrow{transform:rotate(-90deg)}
.section-block.collapsed .section-summary{margin-bottom:0}
.opinion-box h3{font-size:12px;font-weight:800;color:var(--navy);margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:8px}
.opinion-box .ob-icon{flex-shrink:0}
.opinion-box p{font-size:13px;color:var(--text);font-style:italic;line-height:1.7;position:relative;padding-left:12px;border-left:2px solid rgba(13,31,92,.15)}
.section-content{display:none}.section-content.active{display:block}
.section-block{margin-bottom:var(--space-lg);scroll-margin-top:20px}
.section-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--border);gap:12px}
.section-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.section-bar{width:80px;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.section-bar-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.22,1,.36,1)}
.section-bar-fill.high{background:var(--ok)}.section-bar-fill.mid{background:var(--gold)}.section-bar-fill.low{background:var(--bordeaux)}

/* v12.5 - Radar layout 2 colonnes : insights a gauche + radar a droite */
.radar-layout{
  display:grid;
  grid-template-columns:minmax(240px, 300px) 1fr;
  gap:32px;
  margin-bottom:var(--space-lg);
  padding:32px var(--space-lg);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  align-items:center;
}
.radar-insights{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.radar-insight-card{
  padding:12px 14px;
  background:rgba(13,31,92,0.02);
  border:1px solid var(--border);
  border-left:3px solid var(--navy);
  border-radius:8px;
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.radar-insight-card:hover{
  transform:translateX(2px);
  box-shadow:0 4px 12px rgba(13,31,92,0.06);
}
.radar-insight-strong{border-left-color:var(--ok);background:rgba(45,106,79,0.04)}
.radar-insight-weak{border-left-color:var(--bordeaux);background:rgba(185,28,62,0.04)}
.radar-insight-balance{border-left-color:var(--gold);background:rgba(201,152,42,0.04)}
.radar-insight-balance-desc{
  font-family:'DM Mono',monospace;
  font-size:10px;
  color:var(--muted);
  margin-top:6px;
  line-height:1.4;
  font-style:italic;
}

.radar-insight-label{
  display:flex;
  align-items:center;
  gap:5px;
  font-family:'DM Mono',monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:5px;
}
.radar-insight-strong .radar-insight-label{color:var(--ok)}
.radar-insight-weak .radar-insight-label{color:var(--bordeaux)}
.radar-insight-balance .radar-insight-label{color:var(--gold)}

.radar-insight-name{
  font-size:12px;
  font-weight:700;
  color:var(--navy);
  margin-bottom:6px;
  line-height:1.3;
}
.radar-insight-bar{
  height:3px;
  background:rgba(13,31,92,0.08);
  border-radius:2px;
  overflow:hidden;
  margin-bottom:5px;
}
.radar-insight-bar-fill{
  height:100%;
  border-radius:2px;
  transition:width .8s cubic-bezier(.22,1,.36,1);
}
.radar-insight-bar-fill.ok{background:var(--ok)}
.radar-insight-bar-fill.warn{background:var(--gold)}
.radar-insight-bar-fill.err{background:var(--bordeaux)}

.radar-insight-score{
  display:flex;
  align-items:baseline;
  gap:2px;
  font-family:'DM Mono',monospace;
}
.radar-insight-score-val{
  font-size:16px;
  font-weight:800;
  color:var(--navy);
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums;
}
.radar-insight-score-max{
  font-size:10px;
  color:var(--muted);
  font-weight:600;
}

/* Radar container (legere simplification puisque dans radar-layout) */
.radar-container{
  display:flex;
  justify-content:center;
  align-items:center;
}
.radar-container svg text{font-family:'DM Mono',monospace}

/* Dark mode */
html.dark .radar-layout{background:var(--surface);border-color:var(--border)}
html.dark .radar-insight-card{background:rgba(255,255,255,0.02);border-color:rgba(255,255,255,0.06)}
html.dark .radar-insight-strong{background:rgba(52,211,153,0.06)}
html.dark .radar-insight-weak{background:rgba(248,113,113,0.06)}
html.dark .radar-insight-balance{background:rgba(251,191,36,0.06)}
html.dark .radar-insight-name{color:#fff}
html.dark .radar-insight-score-val{color:#fff}
html.dark .radar-insight-bar{background:rgba(255,255,255,0.08)}

.section-block-title{font-size:12px;font-weight:800;color:var(--navy)}
.section-score-pill{font-family:'DM Mono',monospace;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full)}
.section-score-pill.high{background:#d1fae5;color:var(--ok)}.section-score-pill.mid{background:#fef3c7;color:#92600a}.section-score-pill.low{background:#fde4ea;color:var(--bordeaux)}
.check-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 22px;display:grid;grid-template-columns:36px 1fr auto;gap:0 16px;align-items:start;animation:fadeUp .25s ease both;border-left:4px solid var(--border);transition:border-color var(--transition-fast),border-left-width var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}
.check-item:hover{box-shadow:var(--shadow-sm);border-left-width:6px;transform:translateX(1px)}
.check-item.check-ok{border-left-color:var(--ok)}
.check-item.check-warn{border-left-color:var(--gold)}
.check-item.check-error{border-left-color:var(--bordeaux)}
.check-item.check-info{border-left-color:#4F8FE5}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Stagger check-items : apparitions echelonnees (v12.4) */
.check-item{animation-duration:.35s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
.check-item:nth-child(1){animation-delay:.05s}
.check-item:nth-child(2){animation-delay:.1s}
.check-item:nth-child(3){animation-delay:.15s}
.check-item:nth-child(4){animation-delay:.2s}
.check-item:nth-child(5){animation-delay:.25s}
.check-item:nth-child(6){animation-delay:.3s}
.check-item:nth-child(7){animation-delay:.35s}
.check-item:nth-child(n+8){animation-delay:.4s}
.check-icon{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-base)}
.check-icon svg{width:18px;height:18px}
.check-icon.ico-ok{background:#d1fae5;box-shadow:inset 0 0 0 1px rgba(45,106,79,.15)}
.check-icon.ico-warn{background:#fef3c7;box-shadow:inset 0 0 0 1px rgba(201,152,42,.2)}
.check-icon.ico-error{background:#fde4ea;box-shadow:inset 0 0 0 1px rgba(185,28,62,.15)}
.check-icon.ico-info{background:#eff6ff;box-shadow:inset 0 0 0 1px rgba(79,143,229,.18)}
.check-item:hover .check-icon{transform:scale(1.05)}
html.dark .check-icon.ico-ok{background:rgba(52,211,153,.15)}
html.dark .check-icon.ico-warn{background:rgba(251,191,36,.15)}
html.dark .check-icon.ico-error{background:rgba(248,113,113,.15)}
html.dark .check-icon.ico-info{background:rgba(96,165,250,.15)}
.check-icon svg{width:16px;height:16px}
.check-label{font-size:13px;font-weight:700;color:var(--navy);line-height:1.4;letter-spacing:-0.01em}
.check-detail{font-size:12px;color:var(--muted);margin-top:6px;font-family:'DM Mono',monospace;line-height:1.6}
.check-value{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);text-align:right;max-width:200px;word-break:break-word;padding-top:2px;font-variant-numeric:tabular-nums}
.check-msg{font-size:12px;font-family:'DM Mono',monospace;margin-top:8px;padding:8px 12px;border-radius:var(--radius-sm);line-height:1.5;display:flex;align-items:center;gap:8px;font-weight:500}
.check-msg-ok{background:#d1fae5;color:#15803d;border:1px solid rgba(21,128,61,.15)}
.check-msg-warn{background:#fef3c7;color:#92600a;border:1px solid rgba(146,96,10,.15)}
html.dark .check-msg-ok{background:rgba(52,211,153,.1);color:#34d399;border-color:rgba(52,211,153,.2)}
html.dark .check-msg-warn{background:rgba(251,191,36,.1);color:#fbbf24;border-color:rgba(251,191,36,.2)}
.check-pis{margin-top:10px;display:flex;flex-direction:column;gap:7px;padding-top:10px;border-top:1px dashed var(--border)}
.check-pis-row{display:flex;align-items:flex-start;gap:10px;font-size:12px;font-family:'DM Mono',monospace;line-height:1.6;color:var(--text)}
.pis-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:var(--radius-sm);flex-shrink:0;margin-top:1px;line-height:1.2}
.pis-problem{background:#fde4ea;color:#B91C3E}
.pis-impact{background:#fef3c7;color:#92600a}
.pis-solution{background:#d1fae5;color:#15803d}
/* v12.6 - Nouveaux badges PIS plus parlants pour client lambda */
.pis-state{background:#fef3c7;color:#92600a}
.pis-why{background:#fde4ea;color:#B91C3E}
.pis-how{background:#d1fae5;color:#15803d}
.pis-info{background:rgba(13,31,92,.08);color:#0D1F5C}
html.dark .pis-problem{background:rgba(248,113,113,.1);color:#f87171}
html.dark .pis-impact{background:rgba(251,191,36,.1);color:#fbbf24}
html.dark .pis-solution{background:rgba(52,211,153,.1);color:#34d399}
html.dark .pis-state{background:rgba(251,191,36,.1);color:#fbbf24}
html.dark .pis-why{background:rgba(248,113,113,.1);color:#f87171}
html.dark .pis-how{background:rgba(52,211,153,.1);color:#34d399}
html.dark .pis-info{background:rgba(149,179,255,.1);color:#95B3FF}
.check-ideal{font-size:11px;font-family:'DM Mono',monospace;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:6px}
.check-ideal .ideal-bar{flex:0 0 60px;height:4px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}
.check-ideal .ideal-fill{height:100%;border-radius:var(--radius-full)}
.check-ideal .ideal-fill.good{background:var(--ok)}.check-ideal .ideal-fill.mid{background:var(--gold)}.check-ideal .ideal-fill.bad{background:var(--bordeaux)}
.check-impact{font-size:11px;font-family:'DM Mono',monospace;color:var(--bordeaux);margin-top:5px;font-style:italic;line-height:1.5}
html.dark .check-impact{color:#f87171}
.check-beforeafter{margin-top:8px;font-size:11px;font-family:'DM Mono',monospace;display:flex;flex-direction:column;gap:4px;line-height:1.5}
.check-beforeafter{margin-top:10px;font-size:12px;font-family:'DM Mono',monospace;display:flex;flex-direction:column;gap:6px;line-height:1.5}
.ba-row{display:flex;align-items:stretch;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:transform var(--transition-fast)}
.ba-row:hover{transform:translateX(2px)}
.ba-label{font-size:9px;font-weight:800;padding:8px 12px;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;display:flex;align-items:center;min-width:62px;justify-content:center}
.ba-before{background:#fde4ea;color:#B91C3E;border-right:1px solid #fbc9d3}
.ba-after{background:#d1fae5;color:#15803d;border-right:1px solid #a7f3d0}
.ba-text{color:var(--text);padding:8px 12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.ba-row:has(.ba-before) .ba-text{color:#7c1d2f;text-decoration:line-through;text-decoration-color:rgba(185,28,62,.4)}
.ba-row:has(.ba-after) .ba-text{color:#15803d;font-weight:600}
html.dark .ba-row{background:var(--surface);border-color:var(--border)}
html.dark .ba-before{background:rgba(248,113,113,.15);color:#f87171;border-right-color:rgba(248,113,113,.25)}
html.dark .ba-after{background:rgba(52,211,153,.15);color:#34d399;border-right-color:rgba(52,211,153,.25)}
html.dark .ba-row:has(.ba-before) .ba-text{color:#f87171;text-decoration-color:rgba(248,113,113,.4)}
html.dark .ba-row:has(.ba-after) .ba-text{color:#34d399}
.glossary-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(13,31,92,.35);z-index:300;display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.glossary-overlay.open{display:flex}
.glossary-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:560px;max-width:92vw;max-height:82vh;overflow:hidden;padding:0;position:relative;display:flex;flex-direction:column;animation:glossaryPop 0.3s cubic-bezier(.22,1,.36,1)}
@keyframes glossaryPop{from{opacity:0;transform:scale(0.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.glossary-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:22px;color:var(--muted);cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);line-height:1;transition:all var(--transition-fast);z-index:2}
.glossary-close:hover{background:var(--bg);color:var(--navy);transform:scale(1.05)}
.glossary-modal h4{font-size:14px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.08em;padding:24px 28px 4px;margin:0}
.glossary-intro{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace;padding:0 28px 16px;border-bottom:1px solid var(--border)}
/* Barre de recherche */
.glossary-search-wrap{position:relative;margin:16px 28px 12px;flex-shrink:0}
.glossary-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.glossary-search{width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:9px 36px 9px 36px;font-size:12px;font-family:'DM Mono',monospace;color:var(--navy);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}
.glossary-search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,31,92,.08)}
.glossary-search::placeholder{color:var(--muted)}
.glossary-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);line-height:1;transition:all var(--transition-fast)}
.glossary-search-clear:hover{background:var(--bg);color:var(--navy)}
/* Filtres categories */
.glossary-filters{display:flex;gap:6px;padding:0 28px 12px;flex-wrap:wrap;flex-shrink:0;border-bottom:1px solid var(--border)}
.glossary-filter{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 12px;font-size:10px;font-weight:700;font-family:'DM Mono',monospace;color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all var(--transition-fast)}
.glossary-filter:hover{border-color:var(--navy);color:var(--navy)}
.glossary-filter.active{background:var(--gold);border-color:var(--gold);color:#fff}
.glossary-filter:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* Zone scrollable avec les termes */
.glossary-items-wrap{overflow-y:auto;padding:8px 28px 20px;flex:1;min-height:200px}
.glossary-cat-header{font-size:9px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;padding:14px 0 8px;margin-top:4px;position:sticky;top:0;background:var(--surface);z-index:1;border-bottom:1px solid var(--border)}
.glossary-cat-header:first-child{padding-top:8px}
.glossary-item{margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--border);transition:opacity var(--transition-fast)}
.glossary-item:last-child{border-bottom:none}
.glossary-item.hidden{display:none}
.glossary-term{font-size:12px;font-weight:800;color:var(--navy);font-family:'DM Mono',monospace;margin-bottom:4px}
.glossary-def{font-size:11px;color:var(--text);line-height:1.6;opacity:.85}
/* Empty state (aucun resultat) */
.glossary-empty{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;color:var(--muted)}
.glossary-empty svg{margin-bottom:12px;opacity:.4}
.glossary-empty p{font-size:11px;font-family:'DM Mono',monospace;line-height:1.6}
/* Scrollbar stylisee (webkit) */
.glossary-items-wrap::-webkit-scrollbar{width:6px}
.glossary-items-wrap::-webkit-scrollbar-track{background:transparent}
.glossary-items-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}
.glossary-items-wrap::-webkit-scrollbar-thumb:hover{background:var(--gold)}
/* Highlight search term */
.glossary-item mark{background:rgba(201,152,42,.3);color:var(--navy);padding:0 2px;border-radius:2px;font-weight:700}
html.dark .glossary-item mark{background:rgba(251,191,36,.25);color:var(--text)}
html.dark .glossary-modal{background:var(--surface);border-color:var(--border)}
html.dark .glossary-overlay{background:rgba(0,0,0,.5)}
html.dark .glossary-filter{background:var(--bg);border-color:var(--border);color:var(--muted)}
html.dark .glossary-filter.active{background:var(--gold);color:var(--navy);border-color:var(--gold)}
html.dark .glossary-cat-header{background:var(--surface)}
.pill{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:700}
.pill.green{background:#d1fae5;color:var(--ok)}.pill.yellow{background:#fef3c7;color:#92600a}.pill.red{background:#fde4ea;color:var(--bordeaux)}
.url-accordion{margin-top:7px}
.url-toggle{font-size:11px;color:var(--navy);cursor:pointer;font-family:'DM Mono',monospace;user-select:none;opacity:.7}
.url-toggle:hover{opacity:1;text-decoration:underline}
.url-list{display:none;margin-top:6px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:11px;font-family:'DM Mono',monospace;color:var(--muted);max-height:300px;overflow-y:auto}
.url-list.open{display:block}
.url-list a{color:var(--navy);text-decoration:none;display:block;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.url-list a:hover{text-decoration:underline;color:var(--bordeaux)}
.explanation-accordion{margin-top:6px}
.explanation-toggle{font-size:11px;color:var(--gold);cursor:pointer;font-family:'DM Mono',monospace;user-select:none;display:inline-flex;align-items:center;gap:4px;opacity:.85}
.explanation-toggle:hover{opacity:1}
.explanation-text{display:none;margin-top:6px;padding:10px 14px;background:linear-gradient(135deg,#fdfaf0,#f8f5e8);border:1px solid #e8ddb5;border-radius:8px;font-size:12px;font-family:'Syne',sans-serif;color:#5a4a10;line-height:1.65}
html.dark .explanation-text{background:var(--surface);border-color:var(--border);color:#d4c98a}
.explanation-text.open{display:block}
.wdc-toggle{font-size:11px;color:var(--navy);cursor:pointer;font-family:'DM Mono',monospace;user-select:none;display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:4px 10px;background:#eef0fa;border:1px solid #c7cff0;border-radius:6px;opacity:.85}
.wdc-toggle:hover{opacity:1;background:#e0e4f5}
.wdc-panel{display:none;margin-top:10px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px 20px}
/* v13.0 - SUPPRIMÉ : .geo-section .check-item forçait le doré sur tous les checks, masquant les couleurs status (ok/warn/error). Les checks GEO utilisent maintenant les couleurs standard comme les autres sections */
.llms-gen-btn{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:5px 11px;background:#eef0fa;color:var(--navy);border:1px solid #c7cff0;border-radius:6px;font-size:11px;font-weight:700;font-family:'DM Mono',monospace;cursor:pointer;letter-spacing:.02em;transition:all .15s}
.llms-gen-btn:hover{background:#e0e4f5;border-color:var(--navy)}
.llms-panel{display:none;margin-top:12px;background:#f8f9ff;border:1px solid #c7cff0;border-radius:12px;padding:20px 24px}
.llms-panel h4{font-size:12px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.llms-cms-badge{display:inline-block;font-family:'DM Mono',monospace;font-size:10px;background:#e8eaf8;color:var(--navy);padding:2px 10px;border-radius:99px;margin-bottom:12px}
.llms-textarea{width:100%;height:260px;background:var(--surface);border:1.5px solid var(--border);border-radius:8px;padding:14px;font-size:11px;font-family:'DM Mono',monospace;color:var(--navy);resize:vertical;outline:none;line-height:1.6}
.llms-textarea:focus{border-color:var(--navy)}
.llms-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.llms-dl-btn{background:var(--ok);color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:12px;font-weight:700;font-family:'Syne',sans-serif;cursor:pointer}
.llms-dl-btn:hover{opacity:.9}
.llms-copy-btn{background:var(--surface);color:var(--navy);border:1.5px solid var(--border);border-radius:8px;padding:9px 18px;font-size:12px;font-weight:700;font-family:'Syne',sans-serif;cursor:pointer}
.llms-copy-btn:hover{border-color:var(--navy)}
.llms-instructions{margin-top:14px;background:#fdfaf0;border:1px solid #e8ddb5;border-radius:8px;padding:14px 16px;font-size:11px;font-family:'DM Mono',monospace;color:#5a4a10;line-height:1.7;white-space:pre-wrap}
html.dark .llms-instructions{background:var(--surface);border-color:var(--border);color:#d4c98a}
.fix-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:7px 14px;background:#fef3e2;color:#7c4a03;border:1px solid #e8c97a;border-radius:var(--radius-sm);font-size:11px;font-weight:700;font-family:'Syne',sans-serif;cursor:pointer;transition:all var(--transition-fast);letter-spacing:0.02em}
.fix-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-1px);box-shadow:0 4px 12px rgba(201,152,42,.3)}
.fix-btn svg{width:14px;height:14px;transition:transform var(--transition-fast)}
.fix-btn:hover svg{transform:translateX(2px)}
html.dark .fix-btn{background:rgba(251,191,36,.1);color:#fbbf24;border-color:rgba(251,191,36,.3)}
html.dark .fix-btn:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.fix-panel{display:none;margin-top:10px;background:#fdfaf0;border:1px solid #e8ddb5;border-radius:10px;padding:16px 20px;font-size:12px;line-height:1.7}
html.dark .fix-panel{background:var(--surface);border-color:var(--border)}
.fix-panel.open{display:block}
.fix-cms-tabs{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}
.fix-cms-tab{padding:4px 12px;border-radius:6px;font-size:10px;font-weight:700;font-family:'DM Mono',monospace;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--muted);transition:all .15s}
.fix-cms-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.fix-cms-tab:hover:not(.active){background:#e8eaf8}
.fix-step{font-family:'DM Mono',monospace;font-size:11px;color:var(--navy);white-space:pre-wrap;line-height:1.8}
.fix-step b{color:var(--bordeaux);font-weight:800}
.fix-doc{display:inline-flex;align-items:center;gap:4px;margin-top:8px;margin-left:6px;padding:3px 10px;background:#e0f5e9;border-radius:99px;font-size:10px;font-weight:700;font-family:'DM Mono',monospace;color:#2D6A4F;text-decoration:none;transition:all .15s}
.fix-doc:hover{background:#c5edd6;color:#1a4731}
html.dark .fix-doc{background:#1a3a2a;color:#6ee7b7}
html.dark .fix-doc:hover{background:#234d38}

/* ============================================================
   v12.5 Etape 4 - Styles HOW_TO_FIX_V2 (Option C - Carte premium)
   ============================================================
   Styles pour le rendu enrichi de "Comment corriger" :
   - .fix-card : conteneur principal avec sections distinctes
   - .fix-meta : header avec pourquoi + temps + difficulte
   - .fix-tabs : onglets des 11 plateformes (CMS)
   - .fix-content : contenu de chaque plateforme (intro/étapes/astuce)
   - .fix-footer : vérification + bouton "Si je galere"
   - .fix-galere : message webmaster a copier/coller
   Les anciens styles (.fix-panel, .fix-cms-tab, .fix-step) restent
   actifs pour le rendu retro-compatible (ancien format string).
   ============================================================ */

/* === CARD principale === */
.fix-card{display:none;margin-top:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;font-size:13px;line-height:1.5;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.fix-card.open{display:block}
html.dark .fix-card{background:var(--surface);border-color:var(--border)}

/* === HEADER : Pourquoi + Meta (temps/difficulte) === */
.fix-meta{background:linear-gradient(135deg,#FAFAF7 0%,#F5F5F0 100%);padding:16px 20px;border-bottom:1px solid var(--border)}
html.dark .fix-meta{background:linear-gradient(135deg,rgba(251,191,36,.05) 0%,rgba(13,31,92,.1) 100%);border-bottom-color:var(--border)}
.fix-pourquoi{font-size:13px;margin-bottom:12px;line-height:1.55;color:var(--navy)}
html.dark .fix-pourquoi{color:var(--text)}
.fix-pourquoi strong{color:var(--navy);font-weight:700;margin-right:4px}
html.dark .fix-pourquoi strong{color:var(--gold)}
.fix-info-row{display:flex;gap:24px;flex-wrap:wrap;font-family:'DM Mono',monospace}
.fix-info-item{display:flex;align-items:center;gap:8px}
.fix-info-icon{font-size:16px;line-height:1}
.fix-info-label{color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;font-weight:600;font-size:9px;line-height:1.3}
.fix-info-value{color:var(--navy);font-weight:700;font-size:11px;line-height:1.3}
html.dark .fix-info-value{color:var(--text)}
.fix-difficulty-easy{color:#16a34a !important}
.fix-difficulty-medium{color:#f97316 !important}
.fix-difficulty-hard{color:#dc2626 !important}
html.dark .fix-difficulty-easy{color:#4ade80 !important}
html.dark .fix-difficulty-medium{color:#fb923c !important}
html.dark .fix-difficulty-hard{color:#f87171 !important}

/* === TABS DES PLATEFORMES === */
.fix-tabs{display:flex;gap:0;background:#F8F8F4;border-bottom:1px solid var(--border);overflow-x:auto;padding:0 16px;scrollbar-width:thin}
html.dark .fix-tabs{background:rgba(13,31,92,.15)}
.fix-tabs::-webkit-scrollbar{height:4px}
.fix-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.fix-tab{padding:12px 16px;font-size:10px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;font-family:'DM Mono',monospace;letter-spacing:0.03em;transition:all var(--transition-fast)}
.fix-tab:hover:not(.active){color:var(--navy);background:rgba(13,31,92,.04)}
html.dark .fix-tab:hover:not(.active){color:var(--gold);background:rgba(251,191,36,.05)}
.fix-tab.active{color:var(--navy);border-bottom-color:var(--gold);background:var(--surface)}
html.dark .fix-tab.active{color:var(--gold);background:var(--surface)}

/* === CONTENT par plateforme === */
.fix-content{padding:16px 20px;background:var(--surface)}
.fix-intro{font-size:13px;color:var(--text);margin-bottom:14px;padding:10px 14px;background:rgba(13,31,92,.04);border-left:3px solid var(--navy);border-radius:6px;line-height:1.55}
html.dark .fix-intro{background:rgba(251,191,36,.06);border-left-color:var(--gold);color:var(--text)}
.fix-étapes{list-style:none;padding:0;margin:0 0 14px 0;counter-reset:fix-step-counter}
.fix-étape{position:relative;padding:10px 14px 10px 44px;margin-bottom:6px;background:#FAFAF7;border-radius:6px;font-size:13px;line-height:1.5;counter-increment:fix-step-counter;color:var(--text)}
html.dark .fix-étape{background:rgba(255,255,255,.03)}
.fix-étape::before{content:counter(fix-step-counter);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:22px;height:22px;background:var(--navy);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-family:'DM Mono',monospace}
html.dark .fix-étape::before{background:var(--gold);color:var(--navy)}
.fix-astuce{background:#FFF8E6;border-left:3px solid var(--gold);border-radius:4px;padding:10px 14px;font-size:12px;line-height:1.55;margin-bottom:0;color:var(--text)}
html.dark .fix-astuce{background:rgba(251,191,36,.08);color:var(--text)}
.fix-astuce::before{content:"\01F4A1 Astuce : ";font-weight:700;color:#92600a}
html.dark .fix-astuce::before{color:var(--gold)}

/* === FOOTER : vérification + si galere === */
.fix-footer{padding:14px 20px;background:#FAFAF7;border-top:1px solid var(--border)}
html.dark .fix-footer{background:rgba(13,31,92,.1)}
.fix-vérification{display:flex;align-items:flex-start;gap:8px;font-size:12px;margin-bottom:12px;padding:10px 14px;background:#dcfce7;border-radius:6px;line-height:1.5;color:#166534}
html.dark .fix-vérification{background:rgba(34,197,94,.1);color:#86efac}
.fix-vérification::before{content:"\2705";font-size:14px;flex-shrink:0;line-height:1.4}

/* === SI JE GALERE (deleguer a un webmaster) === */
.fix-galere-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--navy);cursor:pointer;font-weight:600;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:6px;transition:all var(--transition-fast);font-family:'Syne',sans-serif}
.fix-galere-toggle:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-1px);box-shadow:0 4px 12px rgba(13,31,92,.2)}
html.dark .fix-galere-toggle{background:var(--surface);color:var(--gold);border-color:var(--border)}
html.dark .fix-galere-toggle:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.fix-galere-icon{font-size:14px;line-height:1}
.fix-galere{display:none;margin-top:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:6px}
.fix-galere.open{display:block}
.fix-galere-raison{font-size:11px;color:var(--muted);margin:0 0 10px 0;font-style:italic;line-height:1.5}
.fix-galere-message{background:#FAFAF7;border-left:3px solid var(--navy);padding:14px;border-radius:4px;font-size:12px;white-space:pre-wrap;font-family:Georgia,'Times New Roman',serif;line-height:1.6;margin-bottom:10px;color:var(--text)}
html.dark .fix-galere-message{background:rgba(255,255,255,.03);border-left-color:var(--gold)}
.fix-copy-btn{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#fff;background:var(--navy);border:none;padding:7px 14px;border-radius:6px;cursor:pointer;font-weight:700;font-family:'Syne',sans-serif;transition:all var(--transition-fast);letter-spacing:0.02em}
.fix-copy-btn:hover{background:var(--gold);color:var(--navy);transform:translateY(-1px);box-shadow:0 4px 12px rgba(201,152,42,.3)}
html.dark .fix-copy-btn{background:var(--gold);color:var(--navy)}
html.dark .fix-copy-btn:hover{background:#fbbf24;box-shadow:0 4px 12px rgba(251,191,36,.4)}

/* === RESPONSIVE MOBILE === */
@media (max-width:600px){
  .fix-meta{padding:14px 16px}
  .fix-info-row{gap:16px}
  .fix-tabs{padding:0 12px}
  .fix-tab{padding:10px 12px;font-size:9px}
  .fix-content{padding:14px 16px}
  .fix-footer{padding:12px 16px}
  .fix-étape{padding:9px 12px 9px 40px;font-size:12px}
  .fix-étape::before{width:20px;height:20px;font-size:10px;left:10px}
  .fix-galere-message{font-size:11px;padding:12px}
}

.diag-header{margin-bottom:16px}
.diag-search{width:100%;padding:10px 16px;border:1.5px solid var(--border);border-radius:10px;font-size:12px;font-family:'DM Mono',monospace;background:var(--surface);color:var(--navy);outline:none;transition:border .15s}
.diag-search:focus{border-color:var(--navy)}
.diag-count{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace;margin-top:8px}
.diag-page{border:1px solid var(--border);border-radius:12px;margin-bottom:8px;overflow:hidden;background:var(--surface)}
.diag-page-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;cursor:pointer;transition:background .15s}
.diag-page-header:hover{background:rgba(0,0,0,.02)}
html.dark .diag-page-header:hover{background:rgba(255,255,255,.03)}
.diag-page-url{font-size:12px;font-weight:700;font-family:'DM Mono',monospace;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.diag-page-badges{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:12px}
.diag-badge{font-size:10px;font-weight:700;font-family:'DM Mono',monospace;padding:2px 10px;border-radius:99px}
.diag-err{background:#fde8ec;color:#B91C3E}
html.dark .diag-err{background:#3a1520;color:#f87171}
.diag-warn{background:#fef3e2;color:#7c4a03}
html.dark .diag-warn{background:#3a2f1a;color:#fbbf24}
.diag-arrow{font-size:10px;color:var(--muted);transition:transform .2s}
.diag-page.open .diag-arrow{transform:rotate(180deg)}
.diag-page-body{display:none;padding:0 18px 14px;border-top:1px solid var(--border)}
.diag-page.open .diag-page-body{display:block}
.diag-check{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.diag-check:last-child{border-bottom:none}
.diag-check-ico{font-size:13px;flex-shrink:0;margin-top:1px}
.diag-check-content{display:flex;flex-direction:column;gap:2px;min-width:0}
.diag-check-section{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:'DM Mono',monospace}
.diag-check-label{font-size:12px;font-weight:700;color:var(--navy)}
.diag-check-detail{font-size:11px;color:var(--muted)}

/* =========================================================
   v12.5 Phase B - Badge de faisabilite (qui peut corriger ?)
   ========================================================= */
/* Conteneur label + badge sur une même ligne */
.diag-check-label-row,.check-label-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.check-label-row{margin-bottom:2px}
/* Badge generique : style pro inspire de Stripe/Linear */
.feas-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-family:'DM Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.4;white-space:nowrap;cursor:help;border:1px solid transparent;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}
.feas-badge:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.feas-badge-icon{font-size:10px;line-height:1}
.feas-badge-label{line-height:1}
/* Variantes par acteur (couleurs très pastel sur fond, texte plus sombre) */
.feas-badge.feas-client{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.feas-badge.feas-client-avec-guide{background:#ecfccb;color:#4d7c0f;border-color:#d9f99d}
.feas-badge.feas-mixte{background:#fef9c3;color:#a16207;border-color:#fde68a}
.feas-badge.feas-dev{background:#ffedd5;color:#c2410c;border-color:#fed7aa}
.feas-badge.feas-expert{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
/* Mode dark : fonds plus sombres, texte plus clair */
html.dark .feas-badge.feas-client{background:rgba(34,197,94,.15);color:#86efac;border-color:rgba(34,197,94,.3)}
html.dark .feas-badge.feas-client-avec-guide{background:rgba(132,204,22,.15);color:#bef264;border-color:rgba(132,204,22,.3)}
html.dark .feas-badge.feas-mixte{background:rgba(234,179,8,.15);color:#fde047;border-color:rgba(234,179,8,.3)}
html.dark .feas-badge.feas-dev{background:rgba(249,115,22,.15);color:#fdba74;border-color:rgba(249,115,22,.3)}
html.dark .feas-badge.feas-expert{background:rgba(220,38,38,.15);color:#fca5a5;border-color:rgba(220,38,38,.3)}
/* Mobile : badges plus petits encore */
@media (max-width:768px){
  .feas-badge{font-size:8px;padding:2px 6px}
  .feas-badge-icon{font-size:9px}
}
.reco-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 22px;margin-bottom:10px;border-left:3px solid transparent}
.reco-card.urgente{border-left-color:var(--bordeaux)}.reco-card.moyenne{border-left-color:var(--gold)}.reco-card.faible{border-left-color:var(--navy)}
.reco-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.reco-badge{font-family:'DM Mono',monospace;font-size:9px;padding:3px 9px;border-radius:99px;font-weight:700;text-transform:uppercase}
.reco-badge.urgente{background:#fde4ea;color:var(--bordeaux)}.reco-badge.moyenne{background:#fef3c7;color:#92600a}.reco-badge.faible{background:#eef0fa;color:var(--navy)}
html.dark .reco-badge.moyenne{background:rgba(251,191,36,.15);color:#fbbf24}
html.dark .reco-badge.faible{background:rgba(226,232,240,.1);color:#e2e8f0}
.reco-title{font-size:14px;font-weight:700;color:var(--navy)}
.reco-desc{font-size:12px;color:var(--muted);margin-bottom:5px;font-family:'DM Mono',monospace;line-height:1.5}
.reco-impact{font-size:11px;color:var(--ok);font-style:italic;font-family:'DM Mono',monospace}
.page-table{width:100%;border-collapse:collapse;font-size:12px;font-family:'DM Mono',monospace;font-variant-numeric:tabular-nums}
.page-table th{text-align:left;padding:12px 10px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid var(--border);position:sticky;top:0;background:var(--bg);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast);user-select:none;z-index:2}
/* v12.4 : URL sticky a gauche (la plus utile, jamais perdue en scroll horizontal) */
.page-table th:first-child,.page-table td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);border-right:1px solid var(--border)}
.page-table th:first-child{z-index:3;background:var(--bg)}
.page-table tbody tr:nth-child(even) td:first-child{background:#fbfaf8}
.page-table tbody tr:hover td:first-child{background:#eef0fa}
.page-table th::after{content:'';display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--border);opacity:.5;transition:opacity var(--transition-fast),transform var(--transition-fast)}
.page-table th:hover{color:var(--navy);background:rgba(13,31,92,.03)}
.page-table th:hover::after{opacity:1;border-top-color:var(--navy)}
.page-table th.sort-asc::after{transform:rotate(180deg);border-top-color:var(--gold);opacity:1}
.page-table th.sort-desc::after{border-top-color:var(--gold);opacity:1}
.page-table th.sort-asc,.page-table th.sort-desc{color:var(--navy);background:rgba(201,152,42,.06)}
.page-table td{padding:10px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;transition:background var(--transition-fast)}
.page-table tr:hover{background:rgba(13,31,92,.04)}
.page-table tr:hover td{background:transparent}
.page-table tbody tr:nth-child(even){background:rgba(13,31,92,.015)}
.page-table tbody tr:nth-child(even):hover{background:rgba(13,31,92,.04)}
.table-wrapper{max-height:580px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
/* v12.4 : mini-barre score pour la table des pages */
.pt-score-wrap{display:flex;align-items:center;gap:8px}
.pt-score-bar{display:inline-block;width:50px;height:4px;background:var(--border);border-radius:var(--radius-full);overflow:hidden;flex-shrink:0}
.pt-score-fill{display:block;height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.22,1,.36,1)}
.pt-score-fill.pt-green{background:var(--ok)}
.pt-score-fill.pt-yellow{background:var(--gold)}
.pt-score-fill.pt-red{background:var(--bordeaux)}
/* Dark mode : track plus visible */
html.dark .pt-score-bar{background:rgba(255,255,255,.1)}
.table-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px;margin-bottom:12px}
.table-filters-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tf-search-wrap{position:relative;flex:1;min-width:200px}
.tf-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color var(--transition-fast)}
.tf-search-wrap:focus-within .tf-search-icon{color:var(--navy)}
.tf-search{width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px 8px 36px;font-size:12px;font-family:'DM Mono',monospace;color:var(--navy);outline:none;transition:border-color var(--transition-fast)}
.tf-search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,31,92,.08)}
.tf-search::placeholder{color:var(--muted)}
.tf-select{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;font-size:11px;font-family:'DM Mono',monospace;color:var(--navy);outline:none;cursor:pointer;transition:border-color var(--transition-fast)}
.tf-select:hover{border-color:var(--navy)}
.tf-reset{background:none;border:1.5px solid var(--border);border-radius:8px;padding:8px 13px;font-size:11px;font-family:'DM Mono',monospace;color:var(--muted);cursor:pointer}
.tf-reset:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.tf-count{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);padding:0 4px}
.bl-search-zone{margin-bottom:18px;position:relative}
.bl-search-row{display:flex;gap:10px;align-items:stretch}
.bl-search-input-wrap{flex:1;position:relative}
.bl-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.bl-search-input{width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:10px;padding:12px 16px 12px 38px;font-size:12px;font-family:'DM Mono',monospace;color:var(--navy);outline:none;transition:border-color .15s ease}
.bl-search-input:focus{border-color:var(--navy)}
.bl-search-input::placeholder{color:var(--muted)}
.bl-export-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 16px;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  border-radius:10px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.bl-export-btn:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-1px);box-shadow:0 4px 10px rgba(201,152,42,0.3)}
.bl-export-btn svg{flex-shrink:0}
html.dark .bl-export-btn{background:#fff;color:var(--navy);border-color:#fff}
html.dark .bl-export-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.bl-suggestions{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 4px);
  z-index:1000;
  max-height:340px;
  overflow-y:auto;
  background:var(--surface);
  border:1.5px solid var(--gold);
  border-radius:10px;
  display:none;
  box-shadow:0 12px 24px rgba(13,31,92,0.15);
}
.bl-suggestions.open{display:block}
.bl-suggestion{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  font-family:'DM Mono',monospace;
  cursor:pointer;
  color:var(--text);
  transition:background .12s ease;
  border-bottom:1px solid var(--border);
}
.bl-suggestion:last-child{border-bottom:none}
.bl-suggestion-path{
  flex:1;
  min-width:0;
  font-size:12px;
  color:var(--navy);
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.bl-suggestion-count{
  flex-shrink:0;
  font-size:10px;
  color:var(--muted);
  font-weight:600;
  letter-spacing:0.04em;
}
.bl-suggestion-path mark{
  background:rgba(201,152,42,0.25);
  color:var(--navy);
  font-weight:800;
  padding:0 2px;
  border-radius:3px;
}
html.dark .bl-suggestion-path mark{background:rgba(251,191,36,0.3);color:#fff}
.bl-suggestion:hover{background:rgba(201,152,42,0.08)}
.bl-suggestion:hover .bl-suggestion-path{color:var(--gold)}

/* v12.5 - Hero dedie Liens internes */
.bl-hero{
  background:linear-gradient(135deg, var(--surface) 0%, rgba(13,31,92,0.04) 100%);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  margin-bottom:18px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.bl-hero::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, var(--navy) 0%, var(--gold) 100%);
}
.bl-hero-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:rgba(13,31,92,0.08);
  color:var(--navy);
  margin-bottom:16px;
}
.bl-hero-title{
  font-family:'Syne',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--navy);
  margin:0 0 8px 0;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.bl-hero-tagline{
  font-family:'DM Mono',monospace;
  font-size:13px;
  color:var(--muted);
  margin:0 0 24px 0;
  line-height:1.4;
}
.bl-hero-stats{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.bls-card{
  background:rgba(255,255,255,0.6);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 18px;
  min-width:120px;
  backdrop-filter:blur(4px);
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.bls-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(13,31,92,0.08)}
.bls-val{
  font-family:'Syne',sans-serif;
  font-size:26px;
  font-weight:800;
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums;
  color:var(--navy);
  line-height:1;
  margin-bottom:4px;
}
.bls-label{
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.bls-ok .bls-val{color:var(--ok)}
.bls-warn .bls-val{color:var(--gold)}
.bls-err .bls-val{color:var(--bordeaux)}
html.dark .bl-hero{background:linear-gradient(135deg, var(--surface) 0%, rgba(99,179,237,0.04) 100%)}
html.dark .bls-card{background:rgba(255,255,255,0.03)}

/* v12.5 - Tip pedagogique Liens internes */
.bl-tip{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 18px;
  margin-bottom:18px;
  background:linear-gradient(135deg, rgba(13,31,92,0.04) 0%, rgba(255,255,255,0.4) 100%);
  border:1px solid rgba(13,31,92,0.15);
  border-radius:var(--radius-md);
  font-family:'DM Mono',monospace;
  font-size:12px;
  line-height:1.6;
  color:var(--fg);
}
.bl-tip-icon{flex-shrink:0;font-size:18px;line-height:1;margin-top:1px}
.bl-tip-text{flex:1}
.bl-tip-text strong{color:var(--navy);font-weight:700}
html.dark .bl-tip{background:linear-gradient(135deg, rgba(99,179,237,0.06) 0%, rgba(255,255,255,0.02) 100%)}
html.dark .bl-tip-text strong{color:#fff}

/* v12.5 - Quick list : pages avec liens entrants (cliquables) */
.bl-quick-list{
  margin:18px 0;
  padding:16px 18px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
}

/* v12.5 - Section pages NON canoniques (priorité maximale) */
.bl-canonical-section{
  margin:18px 0;
  padding:16px 18px;
  background:linear-gradient(135deg, rgba(185,28,62,0.04) 0%, rgba(255,255,255,0.4) 100%);
  border:1px solid rgba(185,28,62,0.2);
  border-radius:var(--radius-md);
}
.bl-canonical-header{
  margin-bottom:10px;
}
.bl-canonical-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'Syne',sans-serif;
  font-size:14px;
  font-weight:800;
  color:var(--bordeaux);
  letter-spacing:-0.01em;
}
.bl-canonical-title svg{flex-shrink:0;color:var(--bordeaux)}
.bl-canonical-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 8px;
  background:var(--bordeaux);
  color:#fff;
  border-radius:99px;
  font-size:10px;
  font-weight:800;
  font-family:'DM Mono',monospace;
  margin-left:4px;
}
.bl-canonical-explain{
  font-family:'DM Mono',monospace;
  font-size:11px;
  line-height:1.6;
  color:var(--fg);
  margin-bottom:14px;
  padding:10px 14px;
  background:rgba(255,255,255,0.5);
  border-radius:8px;
}
.bl-canonical-explain strong{color:var(--navy);font-weight:700}

/* Cas OK : aucune page non canonique */
.bl-canonical-ok{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  background:rgba(45,106,79,0.06);
  border:1px solid rgba(45,106,79,0.2);
  border-radius:8px;
}
.bl-canonical-ok svg{flex-shrink:0;color:var(--ok)}
.bl-canonical-ok-text{font-family:'DM Mono',monospace;font-size:12px;line-height:1.6;color:var(--fg)}
.bl-canonical-ok-text strong{color:var(--ok);font-weight:800;font-size:13px}

/* Liste des items non canoniques */
.bl-canonical-items{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.bl-canonical-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  background:rgba(255,255,255,0.6);
  border:1px solid rgba(185,28,62,0.15);
  border-left:3px solid var(--bordeaux);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:12px;
  cursor:pointer;
  transition:all .15s ease;
  text-align:left;
}
.bl-canonical-item:hover{
  background:rgba(255,255,255,0.85);
  border-color:var(--bordeaux);
  transform:translateX(2px);
  box-shadow:0 4px 12px rgba(185,28,62,0.12);
}
.bl-canonical-item-main{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.bl-canonical-item-bad{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--bordeaux);
  font-weight:600;
  text-decoration:line-through;
  text-decoration-color:rgba(185,28,62,0.5);
}
.bl-canonical-item-bad svg{flex-shrink:0}
.bl-canonical-arrow{
  color:var(--muted);
  font-weight:800;
  font-size:13px;
}
.bl-canonical-item-good{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--ok);
  font-weight:700;
}
.bl-canonical-item-good svg{flex-shrink:0}
.bl-canonical-item-count{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  height:22px;
  padding:0 10px;
  background:rgba(185,28,62,0.12);
  color:var(--bordeaux);
  border-radius:99px;
  font-size:10px;
  font-weight:800;
}
.bl-canonical-more{
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--muted);
  font-style:italic;
  text-align:center;
  padding:6px 0 2px;
}

html.dark .bl-canonical-section{background:linear-gradient(135deg, rgba(185,28,62,0.08) 0%, rgba(255,255,255,0.02) 100%)}
html.dark .bl-canonical-explain{background:rgba(255,255,255,0.03)}
html.dark .bl-canonical-explain strong{color:#fff}
html.dark .bl-canonical-ok{background:rgba(108,178,150,0.06)}
html.dark .bl-canonical-ok-text strong{color:#6cb296}
html.dark .bl-canonical-item{background:rgba(255,255,255,0.04)}
html.dark .bl-canonical-item:hover{background:rgba(255,255,255,0.08)}
html.dark .bl-canonical-item-good{color:#6cb296}

/* v12.5 - Alerte canonique dans les resultats (quand on clique sur une page non canonique) */
.bl-canonical-alert{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:14px 0 18px;
  padding:16px 20px;
  background:linear-gradient(135deg, rgba(185,28,62,0.08) 0%, rgba(255,255,255,0.4) 100%);
  border:1.5px solid var(--bordeaux);
  border-radius:var(--radius-md);
}
.bl-canonical-alert-icon{
  flex-shrink:0;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(185,28,62,0.12);
  color:var(--bordeaux);
  display:flex;
  align-items:center;
  justify-content:center;
}
.bl-canonical-alert-text{flex:1;font-family:'DM Mono',monospace;font-size:12px;line-height:1.5;color:var(--fg)}
.bl-canonical-alert-title{
  font-family:'Syne',sans-serif;
  font-size:14px;
  font-weight:800;
  color:var(--bordeaux);
  margin-bottom:6px;
}
.bl-canonical-alert-detail{margin-bottom:8px}
.bl-canonical-alert-detail strong{color:var(--ok);font-size:13px}
.bl-canonical-alert-action{
  font-style:italic;
  color:var(--muted);
  font-size:11px;
}
html.dark .bl-canonical-alert{background:linear-gradient(135deg, rgba(185,28,62,0.12) 0%, rgba(255,255,255,0.02) 100%)}
html.dark .bl-canonical-alert-detail strong{color:#6cb296}

@media (max-width:640px){
  .bl-canonical-item{flex-direction:column;align-items:flex-start;gap:8px}
  .bl-canonical-item-main{flex-wrap:wrap}
  .bl-canonical-arrow{display:none}
  .bl-canonical-alert{flex-direction:column;gap:10px}
}

.bl-quick-list-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.bl-quick-list-title{
  font-family:'DM Mono',monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.bl-quick-list-count{color:var(--navy);font-weight:800}
.bl-quick-list-items{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:8px;
}
.bl-quick-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 14px;
  background:transparent;
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'DM Mono',monospace;
  font-size:12px;
  color:var(--fg);
  cursor:pointer;
  transition:all .15s ease;
  text-align:left;
}
.bl-quick-item:hover{
  background:rgba(201,152,42,0.06);
  border-color:var(--gold);
  transform:translateY(-1px);
  box-shadow:0 4px 8px rgba(201,152,42,0.1);
}
.bl-quick-path{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--navy);
  font-weight:600;
}
.bl-quick-count{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  height:20px;
  padding:0 9px;
  border-radius:99px;
  font-size:10px;
  font-weight:800;
  letter-spacing:0.02em;
}
.bl-rank-strong{background:rgba(45,106,79,0.12);color:var(--ok)}
.bl-rank-medium{background:rgba(201,152,42,0.12);color:#9a6f1f}
.bl-rank-weak{background:rgba(13,31,92,0.06);color:var(--muted)}
html.dark .bl-rank-medium{color:var(--gold)}
.bl-quick-more{
  grid-column:1/-1;
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--muted);
  font-style:italic;
  text-align:center;
  padding:8px 0 4px;
}

.bl-result-header{font-size:12px;color:var(--muted);font-family:'DM Mono',monospace;margin:16px 0 8px}
.bl-result-header strong{color:var(--navy)}
.bl-result-table{width:100%;border-collapse:collapse;font-size:12px;font-family:'DM Mono',monospace}
.bl-result-table th{text-align:left;padding:9px 8px;font-size:9px;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border);background:var(--bg)}
.bl-result-table td{padding:8px;border-bottom:1px solid var(--border);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-result-table tr:hover{background:#eef0fa}
.bl-result-table a{color:var(--navy);text-decoration:none}
.bl-result-table a:hover{color:var(--bordeaux)}
.bl-anchor{background:#eef0fa;color:var(--navy);padding:2px 8px;border-radius:6px;font-size:11px;display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-anchor.empty{background:#fef3c7;color:#92600a}
html.dark .bl-anchor{background:rgba(226,232,240,.1);color:var(--text)}
html.dark .bl-anchor.empty{background:rgba(251,191,36,.15);color:#fbbf24}
.bl-nofollow{background:#fde4ea;color:var(--bordeaux);padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;margin-left:6px}

/* v12.5 - Empty state riche pour Liens internes */
.bl-empty-state{
  display:flex;
  align-items:center;
  gap:14px;
  text-align:left;
  background:var(--surface);
  border:1px dashed var(--border);
  border-radius:var(--radius-md);
  color:var(--muted);
  font-size:12px;
  padding:20px 24px;
  font-family:'DM Mono',monospace;
  margin-top:14px;
}
.bl-empty-state svg{flex-shrink:0;color:var(--muted);opacity:0.6}
.bl-empty-text strong{color:var(--navy);font-weight:700;display:block;margin-bottom:4px}
html.dark .bl-empty-text strong{color:#fff}

.bl-stats{display:flex;gap:12px;margin:12px 0 16px;flex-wrap:wrap}

/* Responsive Liens internes */
@media (max-width:640px){
  .bl-hero{padding:24px 20px}
  .bl-hero-title{font-size:22px}
  .bl-hero-tagline{font-size:12px}
  .bl-hero-stats{gap:8px}
  .bls-card{padding:10px 14px;min-width:100px}
  .bls-val{font-size:22px}
  .bl-quick-list-items{grid-template-columns:1fr}
  .bl-search-row{flex-direction:column}
  .bl-export-btn{padding:10px 16px}
}
.bl-stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 16px;text-align:center}
.bl-stat-val{font-size:18px;font-weight:800;color:var(--navy)}
.bl-stat-label{font-size:9px;color:var(--muted);text-transform:uppercase;font-family:'DM Mono',monospace;margin-top:2px}

/* ===== ZONE 9 : RESPONSIVE v12.4 (tablette + mobile + drawer) ===== */

/* Burger button mobile : cache par defaut, visible <768px */
.burger-btn{display:none;position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));z-index:201;width:44px;height:44px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--navy);cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}
.burger-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}
.burger-btn:active{transform:scale(0.95);background:var(--bg)}
.burger-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* A - Animation burger -> croix quand drawer ouvert */
.burger-btn svg line{transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s ease;transform-origin:center}
.burger-btn.is-open svg line:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger-btn.is-open svg line:nth-child(2){opacity:0}
.burger-btn.is-open svg line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Overlay sidebar mobile : cache par defaut */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(13,31,92,.5);z-index:99;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity var(--transition-base)}
.sidebar-overlay.open{opacity:1}

html.dark .burger-btn{background:var(--surface);color:var(--text);border-color:var(--border)}
html.dark .sidebar-overlay{background:rgba(0,0,0,.6)}

/* ===== Breakpoint 1024px : TABLETTE (sidebar réduite) ===== */
@media (max-width:1024px){
  .sidebar{width:200px}
  .report-main{margin-left:200px;padding:24px}
  .hero-gauge{width:220px;height:140px}
  .hero-num .score-big{font-size:52px}
  .radar-container svg{max-width:100%;height:auto}
  /* v12.5 - Tablette : radar-layout passe en 1 colonne */
  .radar-layout{grid-template-columns:1fr;gap:16px}
  .kpi-grid{grid-template-columns:repeat(4,1fr);gap:8px}
  .overview-grid{grid-template-columns:repeat(2,1fr)}
  .ss-ring{width:100px;height:100px}
  .ss-num{font-size:28px}
}

/* ===== Breakpoint 768px : sidebar DRAWER + burger ===== */
@media (max-width:768px){
  .burger-btn{display:flex}
  .report-main{margin-left:0;padding:60px 20px 20px}
  
  /* Sidebar drawer : glisse depuis la gauche */
  .sidebar{
    position:fixed;
    left:0;top:0;
    width:280px;
    height:100vh;
    transform:translateX(-100%);
    transition:transform .3s cubic-bezier(.22,1,.36,1);
    z-index:100;
    box-shadow:var(--shadow-lg);
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay{display:block;pointer-events:none}
  .sidebar-overlay.open{pointer-events:auto}
  
  /* Hero : ajustements */
  .hero-score{padding:24px 18px}
  .hero-gauge{width:200px;height:130px}
  .hero-num .score-big{font-size:48px}
  .hero-verdict{font-size:17px}
  .hero-verdict-detail{font-size:11px}
  .hero-stats{gap:32px}
  .hero-stat-val{font-size:19px}
  
  /* Topbar compact */
  .report-topbar{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:20px}
  .report-url{font-size:11px;overflow-wrap:anywhere;word-break:normal}
  .breadcrumb{font-size:10px;flex-wrap:wrap}
  
  /* Grilles : 1 colonne */
  .overview-grid{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .kpi-card{padding:14px 12px}
  .kpi-val{font-size:20px}
  
  /* Tableau : scroll horizontal plus fluide (sticky URL déjà faite Zone 6) */
  .table-wrapper{max-height:480px}
  .page-table th,.page-table td{padding:8px 6px;font-size:11px}
  
  /* Radar chart */
  .radar-container{display:flex;justify-content:center;align-items:center}
  .radar-container svg{width:100%;max-width:400px}
  /* v12.5 - Mobile : radar-layout plus compact */
  .radar-layout{padding:12px;gap:10px}
  .radar-insight-card{padding:8px 10px}
  .radar-insight-name{font-size:11px}
  .radar-insight-score-val{font-size:14px}
  
  /* Check items : plus compactes */
  .check-item{padding:14px 16px;grid-template-columns:32px 1fr auto;gap:0 12px}
  .check-icon{width:32px;height:32px}
  .check-icon svg{width:16px;height:16px}
  .check-label{font-size:12px}
  .check-detail{font-size:11px}
  .check-value{max-width:140px;font-size:11px}
  
  /* Before/after : stack vertical */
  .ba-label{min-width:56px;padding:6px 10px}
  .ba-text{padding:6px 10px;font-size:11px}
  
  /* Floating toolbar : plus petit (déjà fait Zone 7) */
}

/* ===== Breakpoint 640px : MOBILE strict (compact extrême) ===== */
@media (max-width:640px){
  .report-main{padding:56px 14px 16px}
  
  /* Hero encore plus compact */
  .hero-score{padding:20px 14px}
  .hero-gauge{width:180px;height:115px}
  .hero-num .score-big{font-size:42px}
  .hero-verdict{font-size:16px}
  .hero-stats{gap:20px;flex-wrap:wrap;justify-content:space-around}
  .hero-stat{min-width:60px}
  .hero-stat-val{font-size:17px}
  
  /* KPI : 2 par ligne force */
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .kpi-card{padding:12px 10px}
  
  /* Section block header : wrap */
  .section-block-header{flex-wrap:wrap;gap:8px}
  .section-block-title{font-size:11px}
  
  /* Table filters : stack */
  .table-filters-row{gap:6px}
  .tf-search-wrap{min-width:100%;flex-basis:100%}
  .tf-select{flex:1;min-width:0}
  
  /* Urgency / opinion : padding réduit */
  .urgency-banner{padding:16px 18px}
  .opinion-box{padding:18px 20px}
  .opinion-box p{font-size:12px;padding-left:10px}
  
  /* Check items : encore plus serre */
  .check-item{padding:12px 14px}
  .check-pis-row{font-size:11px;gap:8px}
  .pis-badge{font-size:9px;padding:2px 7px}
  
  /* Glossary modal : full width */
  .glossary-modal{width:94vw;padding:20px 18px;max-height:85vh}
  
  /* Floating toolbar encore plus discret (déjà fait Zone 7 @640px) */
}

/* D - Safe-area pour drawer sidebar (iOS notch compatible) */
@media (max-width:768px){
  .sidebar{padding-left:env(safe-area-inset-left,0)}
  .sidebar-brand{padding-left:calc(var(--space-lg) + env(safe-area-inset-left,0))}
}

/* E - Landscape tablette : garder sidebar fixe (pas de drawer en iPad landscape) */
@media (min-width:769px) and (max-width:1024px) and (orientation:landscape){
  .sidebar{width:200px;transform:none;position:fixed;box-shadow:none}
  .report-main{margin-left:200px;padding:24px}
  .burger-btn{display:none!important}
}

/* F - Tap feedback sur mobile : scale + active state marque */
@media (hover:none){
  .nav-item:active,.sb-footer-btn:active,.dark-toggle:active,.aaa-toggle:active,.ft-btn:active,.fix-btn:active,.kpi-card:active,.check-item:active{
    transform:scale(0.97);
    transition:transform .08s ease;
  }
  .ft-btn:active{transform:scale(0.9)}
  /* Desactiver hover sur touch devices (évité les bugs "sticky hover") */
  .nav-item:hover,.check-item:hover{transform:none}
}

/* Burger : safe-area supplementaire pour iPhone X+ (safe-area déjà gere en haut plus haut) */
@media (max-width:768px) and (display-mode:standalone){
  .burger-btn{top:calc(20px + env(safe-area-inset-top,0px))}
}

/* ===== ZONE 10 PERFECTION : Mode IMPRESSION v12.4 ===== */
@media print{
  /* Forcer le mode clair pour l'impression (economie encre) */
  html,body{background:#fff!important;color:#000!important}
  html.dark{background:#fff!important}
  
  /* Cacher tout ce qui n'est pas du contenu utile */
  .sidebar,.burger-btn,.sidebar-overlay,.floating-toolbar,
  .dark-toggle,.aaa-toggle,.sb-footer-btn,.glossary-overlay,
  .fix-btn,.section-toggle,.table-filters,.tf-search-wrap,
  .tf-select,.tf-reset,.tf-count,.report-topbar .export-btn{
    display:none!important
  }
  
  /* Report main : plein ecran sans marge sidebar */
  .report-main{margin-left:0!important;padding:20px!important;max-width:100%!important}
  .report-layout{display:block!important}
  
  /* Hero score : sobre pour impression */
  .hero-score{box-shadow:none!important;border:1px solid #ccc!important;page-break-inside:avoid;animation:none!important}
  .hero-score::before,.hero-score::after{display:none!important}
  
  /* Section blocks : éviter les coupures disgracieuses */
  .section-block{page-break-inside:avoid;break-inside:avoid}
  .check-item{page-break-inside:avoid;break-inside:avoid;box-shadow:none!important;animation:none!important}
  .kpi-card{page-break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important}
  
  /* Tableau des pages : en noir et blanc proprement */
  .page-table{font-size:9px}
  .page-table th,.page-table td{padding:4px 6px;border:1px solid #ddd}
  .page-table tr:hover{background:transparent!important}
  
  /* Section actives : deplies automatiquement pour l'impression */
  .section-block.collapsed .check-grid{max-height:none!important;opacity:1!important;display:flex!important}
  .section-block.collapsed .section-arrow{transform:rotate(0)!important}
  
  /* Couleurs : forcer les couleurs print-friendly */
  .check-ok .check-icon,.pill.green{background:#e8f5e9!important;color:#2D6A4F!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .check-warn .check-icon,.pill.yellow{background:#fff8e1!important;color:#92600a!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .check-error .check-icon,.pill.red{background:#ffebee!important;color:#B91C3E!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  
  /* Noise dark mode : retire */
  html.dark body{background-image:none!important}
  
  /* Footer : affiche nettement */
  .report-footer{page-break-inside:avoid;margin-top:40px;padding-top:20px;border-top:1px solid #ccc}
  
  /* Empeche les liens de s'etaler (URL complète derrière le lien) */
  a[href]::after{content:" (" attr(href) ")";font-size:9px;color:#666;font-weight:normal}
  a[href^="#"]::after,a[href^="javascript:"]::after{content:""}
}

/* ===== ZONE 10 PERFECTION : Raccourcis clavier affichage ===== */
.kbd{display:inline-block;padding:1px 6px;background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);font-family:'DM Mono',monospace;font-size:10px;font-weight:700;color:var(--navy);line-height:1.4;min-width:18px;text-align:center}
html.dark .kbd{background:var(--surface);border-color:var(--border-strong);color:var(--text)}

/* ====================================================================
   LINKER - Chatbot mascotte SEO v12.5
   ==================================================================== */
/* Bouton Linker dans la toolbar */
.ft-linker{position:relative;overflow:visible}
.linker-mascot{font-size:22px;line-height:1;display:block;animation:linkerBreathe 4s ease-in-out infinite;transform-origin:center}
@keyframes linkerBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.ft-linker:hover .linker-mascot{animation:linkerBounce 0.6s ease}
@keyframes linkerBounce{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.15) rotate(-5deg)}75%{transform:scale(1.15) rotate(5deg)}}
.linker-badge{position:absolute;top:-4px;right:-4px;background:var(--err);color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px;animation:linkerPulse 2s ease-in-out infinite;border:2px solid var(--surface)}
@keyframes linkerPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(185,28,62,.4)}50%{transform:scale(1.1);box-shadow:0 0 0 6px rgba(185,28,62,0)}}

/* Bulle d'appel (apparait après 30s) */
.linker-callout{position:fixed;bottom:88px;right:24px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:var(--radius-md);font-size:12px;font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-lg);z-index:195;animation:linkerCalloutIn 0.4s cubic-bezier(.22,1,.36,1);max-width:260px}
.linker-callout::after{content:"";position:absolute;bottom:-6px;right:24px;width:12px;height:12px;background:var(--navy);transform:rotate(45deg)}
.linker-callout-close{background:none;border:none;color:#fff;opacity:0.7;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;border-radius:4px;transition:opacity var(--transition-fast)}
.linker-callout-close:hover{opacity:1;background:rgba(255,255,255,.1)}
@keyframes linkerCalloutIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* Panneau chat Linker (position flottante, pas overlay) */
.linker-panel{position:fixed;bottom:24px;right:24px;width:380px;max-width:calc(100vw - 48px);height:560px;max-height:calc(100vh - 48px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(13,31,92,.2),0 0 0 1px rgba(13,31,92,.04);z-index:200;display:none;flex-direction:column;overflow:hidden;animation:linkerPanelIn 0.35s cubic-bezier(.22,1,.36,1)}
.linker-panel.open{display:flex}
@keyframes linkerPanelIn{from{opacity:0;transform:translateY(20px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Header Linker */
.linker-header{background:linear-gradient(135deg,var(--navy) 0%,#1a2d6b 100%);color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;position:relative;overflow:hidden}
.linker-header::before{content:"";position:absolute;top:-50%;right:-20%;width:180px;height:180px;background:radial-gradient(circle,rgba(201,152,42,.15) 0%,transparent 70%);pointer-events:none}
.linker-header-info{display:flex;align-items:center;gap:10px;position:relative;z-index:1}
.linker-header-mascot{font-size:24px;animation:linkerBreathe 4s ease-in-out infinite}
.linker-header-title{font-weight:800;font-size:14px;letter-spacing:.02em}
.linker-header-status{font-size:10px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:6px;margin-top:2px}
.linker-dot{width:6px;height:6px;background:#6ee7b7;border-radius:50%;animation:linkerDotPulse 2s ease-in-out infinite}
@keyframes linkerDotPulse{0%,100%{opacity:1}50%{opacity:0.5}}
.linker-header-actions{display:flex;gap:4px;position:relative;z-index:1}
.linker-header-btn{background:rgba(255,255,255,.1);border:none;color:#fff;width:30px;height:30px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}
.linker-header-btn:hover{background:rgba(255,255,255,.2);transform:scale(1.05)}
.linker-header-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Zone messages */
.linker-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg);scroll-behavior:smooth}
.linker-messages::-webkit-scrollbar{width:6px}
.linker-messages::-webkit-scrollbar-track{background:transparent}
.linker-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}
.linker-messages::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* Bulles de message */
.linker-msg{display:flex;gap:8px;animation:linkerMsgIn 0.3s cubic-bezier(.22,1,.36,1);max-width:85%}
.linker-msg.bot{align-self:flex-start}
.linker-msg.user{align-self:flex-end;flex-direction:row-reverse}
@keyframes linkerMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.linker-msg-avatar{width:28px;height:28px;border-radius:50%;background:var(--surface);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.linker-msg.user .linker-msg-avatar{background:var(--navy);color:#fff;border-color:var(--navy);font-size:11px;font-weight:800;font-family:'DM Mono',monospace}
.linker-msg-bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;font-size:12px;line-height:1.6;color:var(--text);box-shadow:var(--shadow-sm)}
.linker-msg.user .linker-msg-bubble{background:var(--navy);color:#fff;border-color:var(--navy)}
.linker-msg-bubble strong{color:var(--navy);font-weight:800}
.linker-msg.user .linker-msg-bubble strong{color:var(--gold)}
.linker-msg-bubble ul{margin:6px 0;padding-left:18px}
.linker-msg-bubble li{margin-bottom:3px}
.linker-msg-bubble p{margin:0 0 6px}
.linker-msg-bubble p:last-child{margin-bottom:0}
.linker-msg-bubble a{color:var(--gold);text-decoration:underline;font-weight:700}
.linker-msg-bubble code{background:var(--bg);border:1px solid var(--border);padding:1px 5px;border-radius:4px;font-family:'DM Mono',monospace;font-size:10px;color:var(--bordeaux)}

/* Typing indicator (3 points animes) */
.linker-typing{display:flex;align-items:center;gap:4px;padding:12px 14px !important}
.linker-typing-dot{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:linkerTyping 1.4s infinite ease-in-out}
.linker-typing-dot:nth-child(1){animation-delay:-0.32s}
.linker-typing-dot:nth-child(2){animation-delay:-0.16s}
@keyframes linkerTyping{0%,80%,100%{transform:scale(0.7);opacity:0.4}40%{transform:scale(1);opacity:1}}

/* Suggestions (boutons contextuels) */
.linker-suggestions{padding:8px 14px 0;display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0;max-height:140px;overflow-y:auto;background:var(--bg)}
.linker-suggestion{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-full);padding:7px 12px;font-size:11px;font-weight:600;color:var(--navy);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-family:inherit}
.linker-suggestion:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.linker-suggestion:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.linker-suggestion.gold{border-color:var(--gold);color:var(--gold);background:rgba(201,152,42,.05)}
.linker-suggestion.gold:hover{background:var(--gold);color:#fff}

/* Input zone */
.linker-input-wrap{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}
.linker-input{flex:1;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-full);padding:9px 14px;font-size:12px;color:var(--navy);outline:none;transition:all var(--transition-fast);font-family:inherit}
.linker-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,31,92,.08);background:var(--surface)}
.linker-input::placeholder{color:var(--muted)}
.linker-send{background:var(--gold);color:#fff;border:none;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}
.linker-send:hover{background:#b08623;transform:scale(1.05) rotate(-8deg)}
.linker-send:disabled{opacity:0.4;cursor:not-allowed;transform:none}
.linker-send:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

/* Dark mode */
html.dark .linker-panel{background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06)}
html.dark .linker-messages{background:var(--bg)}
html.dark .linker-msg-bubble{background:var(--surface);border-color:var(--border)}
html.dark .linker-msg-bubble strong{color:var(--gold)}
html.dark .linker-callout{background:var(--surface-elevated,#1a1f2e);border:1px solid var(--border)}
html.dark .linker-callout::after{background:var(--surface-elevated,#1a1f2e)}
html.dark .linker-suggestion{background:var(--surface);color:var(--text)}
html.dark .linker-suggestion:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
html.dark .linker-input{background:var(--bg);color:var(--text);border-color:var(--border)}

/* Responsive mobile */
@media (max-width:640px){
  .linker-panel{bottom:0;right:0;left:0;width:100%;max-width:100%;height:100vh;max-height:100vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
  .linker-callout{right:12px;bottom:80px;max-width:calc(100vw - 24px)}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .linker-mascot,.linker-header-mascot,.linker-dot,.linker-badge,.linker-typing-dot{animation:none}
  .linker-panel,.linker-callout,.linker-msg{animation:none}
}

/* Print : masquer Linker */
@media print{
  .ft-linker,.linker-panel,.linker-callout{display:none !important}
}

/* ====================================================================
   RICH EXPLANATIONS v12.5 Phase 2
   Messages enrichis avec analogies pour les checks
   ==================================================================== */
.rich-explanation-accordion{margin-top:10px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(201,152,42,.03) 0%,rgba(13,31,92,.02) 100%);overflow:hidden;transition:all var(--transition-fast)}
.rich-explanation-accordion:hover{border-color:var(--gold);box-shadow:var(--shadow-sm)}
.rich-explanation-toggle{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;font-size:12px;font-weight:700;color:var(--navy);user-select:none;transition:background var(--transition-fast);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.04em}
.rich-explanation-toggle:hover{background:rgba(201,152,42,.08)}
.rich-explanation-toggle .ree-icon{color:var(--gold);flex-shrink:0}
.rich-explanation-toggle .ree-label{flex:1}
.rich-explanation-toggle .ree-chevron{color:var(--muted);transition:transform var(--transition-fast)}
.rich-explanation-toggle.open .ree-chevron{transform:rotate(180deg);color:var(--gold)}
.rich-explanation-content{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(.22,1,.36,1),padding 0.3s ease}
.rich-explanation-content.open{max-height:2000px;padding:12px 16px 16px}
.ce-row{display:flex;gap:10px;margin-bottom:10px;font-size:12px;line-height:1.65;animation:ceRowIn 0.3s cubic-bezier(.22,1,.36,1) forwards}
.ce-row:last-child{margin-bottom:0}
@keyframes ceRowIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
.ce-icon{font-size:16px;flex-shrink:0;line-height:1.4;width:24px;text-align:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.05))}
.ce-content{flex:1;color:var(--text)}
.ce-content strong{color:var(--navy);font-weight:800;margin-right:4px}
.ce-content br{display:block;content:"";margin-top:6px}
/* Coloration par section */
.ce-row:nth-child(1) .ce-content strong{color:#d97706}  /* Jaune/or - Quoi */
.ce-row:nth-child(2) .ce-content strong{color:#7c3aed}  /* Violet - Analogie */
.ce-row:nth-child(3) .ce-content strong{color:var(--err)}  /* Rouge - Problème */
.ce-row:nth-child(4) .ce-content strong{color:var(--ok)}  /* Vert - Solution */
.ce-row:nth-child(5) .ce-content strong{color:var(--navy)}  /* Navy - Benchmarks */
.ce-row:nth-child(6) .ce-content strong{color:var(--gold)}  /* Or - Impact */

/* Dark mode */
html.dark .rich-explanation-accordion{background:linear-gradient(135deg,rgba(201,152,42,.05) 0%,rgba(255,255,255,.02) 100%);border-color:var(--border)}
html.dark .rich-explanation-toggle{color:var(--text)}
html.dark .rich-explanation-toggle:hover{background:rgba(201,152,42,.12)}
html.dark .ce-content strong{color:var(--text)}
html.dark .ce-row:nth-child(1) .ce-content strong{color:#fbbf24}
html.dark .ce-row:nth-child(2) .ce-content strong{color:#c4b5fd}
html.dark .ce-row:nth-child(3) .ce-content strong{color:#fca5a5}
html.dark .ce-row:nth-child(4) .ce-content strong{color:#6ee7b7}
html.dark .ce-row:nth-child(5) .ce-content strong{color:#93c5fd}
html.dark .ce-row:nth-child(6) .ce-content strong{color:var(--gold)}

/* Responsive mobile */
@media (max-width:640px){
  .rich-explanation-toggle{padding:10px 12px;font-size:11px}
  .ce-row{font-size:11px;gap:8px}
  .ce-icon{font-size:14px;width:20px}
  .rich-explanation-content.open{padding:10px 12px 12px}
}

/* Print : montrer le contenu auto */
@media print{
  .rich-explanation-toggle{display:none}
  .rich-explanation-content{max-height:none !important;padding:12px 0 !important;display:block !important}
  .rich-explanation-accordion{border:1px solid #ccc;margin-top:10px}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .rich-explanation-content{transition:none}
  .ce-row{animation:none}
}

/* ====================================================
   v12.5 - Site audite : URL cliquable dans la sidebar
   Design epure, pas de favicon, lien externe
   ==================================================== */

.sidebar-audit-target {
  margin: var(--space-lg) var(--space-lg) var(--space-md);
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.sidebar-audit-target:hover {
  background: rgba(201, 152, 42, 0.08);
  border-color: rgba(201, 152, 42, 0.2);
}

.sat-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 6px;
  font-weight: 500;
}

.sat-link {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #fff;
  text-decoration: none;
  font-family: 'DM Mono', monospace;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
}

.sat-link:hover {
  color: var(--gold);
}

.sat-domain {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}

.sat-link:hover .sat-domain {
  border-bottom-color: var(--gold);
}

.sat-icon {
  flex-shrink: 0;
  opacity: 0.5;
  transition: all 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.sat-link:hover .sat-icon {
  opacity: 1;
  transform: translate(2px, -2px);
}

/* Dark mode */
html.dark .sidebar-audit-target {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
html.dark .sidebar-audit-target:hover {
  background: rgba(201, 152, 42, 0.1);
  border-color: rgba(201, 152, 42, 0.25);
}

/* Responsive mobile */
@media (max-width: 640px) {
  .sidebar-audit-target {
    margin: var(--space-md) var(--space-md) var(--space-sm);
    padding: 10px 12px;
  }
  .sat-link {
    font-size: 12px;
  }
}

/* Accessibilite : réduire les animations */
@media (prefers-reduced-motion: reduce) {
  .sidebar-audit-target,
  .sat-link,
  .sat-icon,
  .sat-domain {
    transition: none;
  }
  .sat-link:hover .sat-icon {
    transform: none;
  }
}


/* ====================================================================
   v12.6 - Mini-dashboard de section (vue d'ensemble visuelle par section)
   Inspiré d'OnCrawl mais adapté client lambda : pas de jargon, simple.
   Affiche une barre segmentée vert/orange/rouge + stats chiffrées.
   ==================================================================== */
.section-dashboard {
  margin: 12px 0 18px 0;
  padding: 14px 18px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sd-bar {
  display: flex;
  height: 10px;
  background: #f3f4f6;
  border-radius: 999px;
  overflow: hidden;
  width: 100%;
}
.sd-bar-segment {
  height: 100%;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.sd-bar-ok { background: linear-gradient(90deg, #16a34a 0%, #22c55e 100%); }
.sd-bar-warn { background: linear-gradient(90deg, #f59e0b 0%, #fb923c 100%); }
.sd-bar-err { background: linear-gradient(90deg, #dc2626 0%, #ef4444 100%); }
.sd-bar-segment:first-child { border-radius: 999px 0 0 999px; }
.sd-bar-segment:last-child { border-radius: 0 999px 999px 0; }
.sd-bar-segment:only-child { border-radius: 999px; }

.sd-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: var(--text, #1a1a1a);
}
.sd-stat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}
.sd-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sd-dot-ok { background: #16a34a; box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.15); }
.sd-dot-warn { background: #f59e0b; box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.15); }
.sd-dot-err { background: #dc2626; box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15); }
.sd-dot-info { background: #4f8fe5; box-shadow: 0 0 0 2px rgba(79, 143, 229, 0.15); }

.sd-stat-ok { color: #166534; }
.sd-stat-warn { color: #9a3412; }
.sd-stat-err { color: #991b1b; }
.sd-stat-info { color: #245fae; }

.sd-total {
  margin-left: auto;
  color: var(--muted, #6b6b6b);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
}

/* Dark mode */
html.dark .section-dashboard {
  background: var(--surface-elevated, #1a1f2e);
  border-color: rgba(255, 255, 255, 0.1);
}
html.dark .sd-bar { background: rgba(255, 255, 255, 0.06); }
html.dark .sd-stat-ok { color: #4ade80; }
html.dark .sd-stat-warn { color: #fdba74; }
html.dark .sd-stat-err { color: #fca5a5; }
html.dark .sd-stat-info { color: #93c5fd; }

/* Responsive mobile */
@media (max-width: 640px) {
  .section-dashboard {
    padding: 12px 14px;
    gap: 8px;
  }
  .sd-stats {
    font-size: 11px;
    gap: 10px;
  }
  .sd-total {
    margin-left: 0;
    width: 100%;
    text-align: center;
    margin-top: 4px;
  }
}

/* Accessibilité : réduire les animations */
@media (prefers-reduced-motion: reduce) {
  .sd-bar-segment {
    transition: none;
  }
}

/* ====================================================================
   v12.6 - Encadré "Bon à savoir" pour business_impact (chiffres concrets)
   Remplace l'ancien italique rouge qui faisait penser à une erreur.
   Ton bienveillant et informatif (pas alarmiste).
   ==================================================================== */
.check-impact-box {
  margin: 10px 0;
  padding: 10px 14px;
  background: rgba(13, 31, 92, 0.04);
  border-left: 3px solid #4F8FE5;
  border-radius: var(--radius-sm, 8px);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12px;
  font-family: 'DM Mono', monospace;
  line-height: 1.5;
  color: var(--text, #1a1a1a);
}
.impact-icon {
  font-size: 14px;
  flex-shrink: 0;
  line-height: 1.4;
}
.impact-text {
  flex: 1;
  font-style: normal;
}
html.dark .check-impact-box {
  background: rgba(79, 143, 229, 0.08);
  border-left-color: #6BA4F0;
  color: var(--text);
}
@media (max-width: 640px) {
  .check-impact-box {
    padding: 8px 12px;
    font-size: 11px;
  }
}

/* ====================================================================
   v12.6 - Value breakdown : liste verticale stylisée multi-lignes
   Remplace la value à plat ("X · Y · Z") par une liste hiérarchisée
   avec pastilles colorées par statut. Plus scannable et lisible.
   ==================================================================== */
.check-value-breakdown {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
  text-align: right;
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  min-width: 0;
}
.vb-row {
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.vb-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-right: 12px;
}
.vb-count {
  font-weight: 700;
  font-size: 13px;
  color: var(--text, #1a1a1a);
  min-width: 1.5ch;
  text-align: right;
  margin-right: 8px;
}
.vb-label {
  color: var(--muted, #6b6b6b);
  font-size: 11px;
}
/* Couleurs des pastilles par statut */
.vb-dot-ok { background: #16a34a; box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.15); }
.vb-dot-good { background: #4F8FE5; box-shadow: 0 0 0 2px rgba(79, 143, 229, 0.15); }
.vb-dot-warn { background: #f59e0b; box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.15); }
.vb-dot-error { background: #dc2626; box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15); }
.vb-dot-info { background: #94a3b8; box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.15); }

/* Dark mode */
html.dark .vb-count { color: var(--text); }
html.dark .vb-label { color: var(--muted); }

/* Responsive : sur mobile, centrer plutôt qu'aligner à droite (la value est en colonne) */
@media (max-width: 640px) {
  .check-value-breakdown {
    align-items: flex-start;
    text-align: left;
    width: 100%;
  }
}

/* ====================================================================
   v12.6 - Groupage URLs avec séparateur stylisé + numérotation
   Remplace les séparateurs minimalistes par un encadré visible
   et ajoute un numéro #1 #2 #3 par groupe (reset à chaque séparateur).
   ==================================================================== */
.url-group-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 8px 0;
  padding: 10px 14px;
  background: rgba(232, 159, 13, 0.08);
  border: 1px solid rgba(232, 159, 13, 0.25);
  border-radius: 8px;
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold, #b8860b);
}
.url-group-header:first-child {
  margin-top: 0;
}
.url-group-icon {
  font-size: 14px;
  flex-shrink: 0;
}
.url-group-text {
  flex: 1;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.4;
}

/* URL avec numéro à gauche */
.url-with-number {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-left: 6px;
}
.url-num {
  flex-shrink: 0;
  display: inline-block;
  min-width: 28px;
  padding: 2px 6px;
  background: rgba(13, 31, 92, 0.06);
  border-radius: 4px;
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted, #6b6b6b);
  text-align: center;
  line-height: 1.5;
  margin-top: 2px;
}
.url-num-content {
  flex: 1;
  min-width: 0;
}

/* Dark mode */
html.dark .url-group-header {
  background: rgba(232, 159, 13, 0.15);
  border-color: rgba(232, 159, 13, 0.4);
  color: #f5c462;
}
html.dark .url-num {
  background: rgba(255, 255, 255, 0.06);
  color: var(--muted);
}

/* Mobile */
@media (max-width: 640px) {
  .url-group-header {
    padding: 8px 10px;
    font-size: 10px;
  }
  .url-num {
    min-width: 24px;
    font-size: 9px;
  }
}

/* ====================================================================
   v12.6 - Refonte rendu URL avec contexte (layout vertical aéré)
   URL sur sa ligne (clickable, full width)
   Contexte juste en dessous, indenté et discret
   Multi-valeurs séparées (Meta Title · H1) sur lignes distinctes
   ==================================================================== */
.url-entry {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 6px 0;
  border-bottom: 1px dashed transparent;
}
.url-entry + .url-entry {
  border-top: 1px dashed rgba(0, 0, 0, 0.04);
}
.url-entry-main {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}
.url-entry-prefix {
  color: var(--err, #dc2626);
  font-weight: 700;
  font-size: 10px;
  font-family: 'DM Mono', monospace;
  flex-shrink: 0;
}
.url-entry-link {
  color: var(--navy, #0d1f5c);
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  word-break: break-all;
  flex: 1;
  min-width: 0;
  text-decoration: none;
}
.url-entry-link:hover {
  text-decoration: underline;
}
.url-entry-arrow {
  color: var(--muted, #6b6b6b);
  flex-shrink: 0;
}
.url-entry-redirect {
  color: var(--ok, #16a34a);
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  word-break: break-all;
  flex: 1;
  min-width: 0;
  text-decoration: none;
}
.url-entry-context {
  color: var(--muted, #6b6b6b);
  font-size: 11px;
  font-family: 'DM Mono', monospace;
  padding-left: 14px;
  line-height: 1.5;
  word-break: break-word;
}
.url-entry-context-multi {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 14px;
  margin-top: 2px;
}
.url-entry-context-row {
  color: var(--muted, #6b6b6b);
  font-size: 11px;
  font-family: 'DM Mono', monospace;
  line-height: 1.5;
  word-break: break-word;
}
.url-entry-source {
  color: var(--muted, #6b6b6b);
  font-size: 10px;
  font-style: italic;
  padding-left: 14px;
}

/* Dark mode */
html.dark .url-entry + .url-entry {
  border-top-color: rgba(255, 255, 255, 0.04);
}
html.dark .url-entry-link {
  color: #99b5ff;
}
html.dark .url-entry-redirect {
  color: #6ee7a3;
}

/* Mobile : encore plus de respiration */
@media (max-width: 640px) {
  .url-entry {
    padding: 8px 0;
  }
  .url-entry-link, .url-entry-redirect {
    font-size: 11px;
  }
  .url-entry-context, .url-entry-context-row {
    font-size: 10px;
    padding-left: 8px;
  }
}

/* ====================================================================
   v12.6 - Section dépliable (expandable) sur URL entry
   Ex: "Voir les 24 H2" → liste numérotée des H2 dépliable
   Réutilisable pour tout check qui veut montrer du détail à la demande
   ==================================================================== */
.url-entry-expand-btn {
  display: inline-block;
  margin: 6px 0 4px 14px;
  padding: 5px 10px;
  background: rgba(13, 31, 92, 0.05);
  border: 1px solid rgba(13, 31, 92, 0.15);
  border-radius: 6px;
  color: var(--navy, #0d1f5c);
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  text-align: left;
}
.url-entry-expand-btn:hover {
  background: rgba(13, 31, 92, 0.1);
  border-color: rgba(13, 31, 92, 0.3);
}
.url-entry-expand-content {
  margin: 6px 0 4px 14px;
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.02);
  border-left: 2px solid rgba(13, 31, 92, 0.2);
  border-radius: 0 6px 6px 0;
}
.url-entry-expand-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 3px 0;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  line-height: 1.5;
}
.url-entry-expand-num {
  flex-shrink: 0;
  display: inline-block;
  min-width: 28px;
  padding: 1px 5px;
  background: rgba(13, 31, 92, 0.08);
  border-radius: 3px;
  font-size: 9px;
  font-weight: 700;
  color: var(--muted, #6b6b6b);
  text-align: center;
}
.url-entry-expand-text {
  flex: 1;
  color: var(--text, #1a1a1a);
  word-break: break-word;
}

/* Dark mode */
html.dark .url-entry-expand-btn {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.15);
  color: #99b5ff;
}
html.dark .url-entry-expand-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}
html.dark .url-entry-expand-content {
  background: rgba(255, 255, 255, 0.03);
  border-left-color: rgba(255, 255, 255, 0.2);
}
html.dark .url-entry-expand-num {
  background: rgba(255, 255, 255, 0.08);
}

/* Mobile */
@media (max-width: 640px) {
  .url-entry-expand-btn {
    margin-left: 8px;
    font-size: 9px;
  }
  .url-entry-expand-content {
    margin-left: 8px;
    padding: 6px 8px;
  }
  .url-entry-expand-item {
    font-size: 10px;
  }
}

/* ====================================================================
   v12.6 - Graphique Word Depth Chart : niveau "top 1 mondial"
   Animations + tooltips custom + hover effects + responsive + dark mode
   ==================================================================== */

/* Animation : barres montent depuis le bas */
@keyframes wdcBarIn {
  0% {
    transform: scaleY(0);
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    opacity: 1;
  }
}

/* Animation : fade in pour points et labels */
@keyframes wdcFadeIn {
  0% { opacity: 0; transform: translateY(4px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Animation : courbe se trace progressivement */
@keyframes wdcDrawLine {
  0% { stroke-dashoffset: 1000; }
  100% { stroke-dashoffset: 0; }
}

/* Container du graphique */
.wdc-panel {
  position: relative;
  padding: 8px 4px 0 4px;
  background: var(--bg, transparent);
  border-radius: 8px;
  overflow: visible;
}

/* SVG transitions */
.wdc-svg {
  width: 100%;
  max-width: 720px;
  display: block;
  overflow: visible;
}

/* Barres : transitions douces au hover */
/* v12.6 - .wdc-bar-visual = barre affichée (animations, effets) | .wdc-column-hitarea = zone de clic globale par colonne */
.wdc-bar-visual {
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.wdc-column-hitarea {
  cursor: pointer;
  /* Pas de transition : c'est juste la zone de clic invisible */
}

/* Points : agrandissement au hover */
.wdc-point {
  cursor: pointer;
  transition: transform 0.2s ease;
}
.wdc-point:hover {
  transform: scale(1.15);
  transform-origin: center;
  transform-box: fill-box;
}

/* === TOOLTIP CUSTOM === */
.wdc-tooltip {
  position: absolute;
  pointer-events: none;
  z-index: 100;
  background: rgba(13, 31, 92, 0.96);
  color: white;
  padding: 10px 14px;
  border-radius: 8px;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  line-height: 1.5;
  min-width: 160px;
  box-shadow: 0 8px 24px rgba(13, 31, 92, 0.25);
  opacity: 0;
  transform: translateY(-4px) scale(0.96);
  transition: opacity 0.15s ease, transform 0.15s ease;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.wdc-tooltip.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.wdc-tip-title {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 6px;
  color: #fff;
  letter-spacing: 0.3px;
}
.wdc-tip-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 2px 0;
  color: rgba(255, 255, 255, 0.9);
}
.wdc-tip-label {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}
.wdc-tip-row strong {
  color: #fff;
  font-weight: 700;
}
.wdc-tip-desc {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.75);
  font-style: italic;
}

/* === BOUTON TOGGLE === */
.wdc-toggle {
  display: inline-block;
  padding: 7px 14px;
  background: rgba(13, 31, 92, 0.06);
  border: 1px solid rgba(13, 31, 92, 0.18);
  border-radius: 6px;
  color: var(--accent, #0D1F5C);
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}
.wdc-toggle:hover {
  background: rgba(13, 31, 92, 0.12);
  border-color: rgba(13, 31, 92, 0.35);
  transform: translateY(-1px);
}

/* === DARK MODE === */
html.dark .wdc-tooltip {
  background: rgba(40, 50, 100, 0.96);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
html.dark .wdc-toggle {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
  color: #99b5ff;
}
html.dark .wdc-toggle:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* === RESPONSIVE MOBILE === */
@media (max-width: 640px) {
  .wdc-svg {
    font-size: 10px;
  }
  .wdc-tooltip {
    font-size: 10px;
    padding: 8px 10px;
    min-width: 140px;
  }
  .wdc-tip-title {
    font-size: 12px;
  }
}

/* === ACCESSIBILITY : reduced motion === */
@media (prefers-reduced-motion: reduce) {
  .wdc-bar-visual, .wdc-column-hitarea, .wdc-point, .wdc-svg path, .wdc-svg text, .wdc-svg circle, .wdc-svg rect {
    animation: none !important;
    transition: none !important;
  }
}

/* ====================================================================
   v12.6 - Panneau URLs au clic sur barres du graphique
   ==================================================================== */

/* Indication visuelle barre cliquable */
.wdc-column-hitarea:hover {
  cursor: pointer;
}
.wdc-bar-visual.selected {
  opacity: 1 !important;
  filter: brightness(1.05);
  stroke: rgba(13, 31, 92, 0.4);
  stroke-width: 1.5;
}

/* Tooltip : ajout de l'action */
.wdc-tip-action {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed rgba(255, 255, 255, 0.2);
  font-size: 9px;
  color: rgba(255, 255, 255, 0.7);
  text-align: center;
  font-style: italic;
}

/* === PANNEAU URLs PRINCIPAL === */
.wdc-urls-panel {
  margin-top: 16px;
  background: white;
  border: 1px solid rgba(13, 31, 92, 0.12);
  border-radius: 10px;
  overflow: hidden;
  opacity: 0;
  max-height: 0;
  transition: opacity 0.3s ease, max-height 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
  box-shadow: 0 4px 16px rgba(13, 31, 92, 0.06);
}
.wdc-urls-panel.visible {
  opacity: 1;
  max-height: 800px;  /* ~30 URLs visible */
  animation: wdcSlideDown 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
}

@keyframes wdcSlideDown {
  0% {
    opacity: 0;
    transform: translateY(-12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Header du panneau */
.wdc-urls-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: linear-gradient(to right, rgba(13, 31, 92, 0.04), rgba(13, 31, 92, 0.01));
  border-bottom: 1px solid rgba(13, 31, 92, 0.08);
}
.wdc-urls-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'DM Mono', monospace;
  font-size: 13px;
  color: var(--text, #1a1a1a);
}
.wdc-urls-color-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.wdc-urls-count {
  display: inline-block;
  padding: 2px 8px;
  background: rgba(13, 31, 92, 0.08);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--accent, #0D1F5C);
}
.wdc-urls-close {
  background: rgba(13, 31, 92, 0.06);
  border: 1px solid rgba(13, 31, 92, 0.12);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
  color: var(--muted, #6b7280);
  transition: all 0.15s ease;
  font-weight: 600;
  padding: 0;
}
.wdc-urls-close:hover {
  background: rgba(220, 38, 38, 0.1);
  border-color: rgba(220, 38, 38, 0.3);
  color: #dc2626;
  transform: rotate(90deg);
}

/* Liste des URLs */
.wdc-urls-list {
  max-height: 600px;
  overflow-y: auto;
  padding: 8px 0;
}
.wdc-urls-list::-webkit-scrollbar {
  width: 6px;
}
.wdc-urls-list::-webkit-scrollbar-track {
  background: transparent;
}
.wdc-urls-list::-webkit-scrollbar-thumb {
  background: rgba(13, 31, 92, 0.2);
  border-radius: 3px;
}
.wdc-urls-list::-webkit-scrollbar-thumb:hover {
  background: rgba(13, 31, 92, 0.35);
}

.wdc-urls-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 18px;
  border-bottom: 1px solid rgba(13, 31, 92, 0.04);
  transition: background 0.12s ease;
}
.wdc-urls-item:last-child {
  border-bottom: none;
}
.wdc-urls-item:hover {
  background: rgba(13, 31, 92, 0.025);
}
.wdc-urls-num {
  flex-shrink: 0;
  display: inline-block;
  min-width: 32px;
  padding: 2px 6px;
  background: rgba(13, 31, 92, 0.07);
  border-radius: 4px;
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted, #6b7280);
  text-align: center;
}
.wdc-urls-link {
  flex: 1;
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: var(--accent, #0D1F5C);
  text-decoration: none;
  word-break: break-all;
  transition: color 0.15s ease;
  line-height: 1.4;
}
.wdc-urls-link:hover {
  color: #1e40af;
  text-decoration: underline;
}
.wdc-urls-meta {
  flex-shrink: 0;
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  color: var(--muted, #9ca3af);
  background: rgba(13, 31, 92, 0.04);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}

/* État vide */
.wdc-urls-empty {
  padding: 24px;
  text-align: center;
  color: var(--muted, #9ca3af);
  font-size: 12px;
  font-family: 'DM Mono', monospace;
  font-style: italic;
}

/* "Voir +X autres" */
.wdc-urls-more {
  padding: 12px 18px;
  background: rgba(245, 158, 11, 0.08);
  border-top: 1px solid rgba(245, 158, 11, 0.15);
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: #92400e;
  text-align: center;
  font-weight: 600;
}

/* === DARK MODE === */
html.dark .wdc-urls-panel {
  background: #1c2128;
  border-color: rgba(255, 255, 255, 0.1);
}
html.dark .wdc-urls-header {
  background: linear-gradient(to right, rgba(255, 255, 255, 0.03), transparent);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
html.dark .wdc-urls-title {
  color: #e5e7eb;
}
html.dark .wdc-urls-count {
  background: rgba(255, 255, 255, 0.1);
  color: #99b5ff;
}
html.dark .wdc-urls-close {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: #9ca3af;
}
html.dark .wdc-urls-item {
  border-bottom-color: rgba(255, 255, 255, 0.04);
}
html.dark .wdc-urls-item:hover {
  background: rgba(255, 255, 255, 0.025);
}
html.dark .wdc-urls-num {
  background: rgba(255, 255, 255, 0.07);
  color: #9ca3af;
}
html.dark .wdc-urls-link {
  color: #99b5ff;
}
html.dark .wdc-urls-link:hover {
  color: #c5d3ff;
}
html.dark .wdc-urls-meta {
  background: rgba(255, 255, 255, 0.05);
  color: #9ca3af;
}

/* === RESPONSIVE === */
@media (max-width: 640px) {
  .wdc-urls-header {
    padding: 12px 14px;
  }
  .wdc-urls-title {
    font-size: 12px;
  }
  .wdc-urls-item {
    padding: 8px 14px;
    flex-wrap: wrap;
  }
  .wdc-urls-link {
    font-size: 11px;
    width: 100%;
  }
  .wdc-urls-meta {
    margin-left: auto;
  }
}

/* === ACCESSIBILITY === */
.wdc-urls-link:focus-visible {
  outline: 2px solid var(--accent, #0D1F5C);
  outline-offset: 2px;
  border-radius: 2px;
}
.wdc-urls-close:focus-visible {
  outline: 2px solid var(--accent, #0D1F5C);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .wdc-urls-panel, .wdc-urls-close {
    animation: none !important;
    transition: none !important;
  }
}

/* ====================================================================
   v12.6 - Distribution chart (graphique des longueurs de pages)
   Réutilise les styles wdc-* et ajoute juste les variantes wdist-*
   ==================================================================== */
.wdist-bar-visual {
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.wdist-bar-visual.selected {
  opacity: 1 !important;
  filter: brightness(1.05);
  stroke: rgba(13, 31, 92, 0.4);
  stroke-width: 1.5;
}
.wdist-column-hitarea {
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  .wdist-bar-visual, .wdist-column-hitarea {
    animation: none !important;
    transition: none !important;
  }
}

/* ====================================================================
   v12.6 - ÉCHELLE ÉCO-CONCEPTION A-F (style étiquette énergie)
   Pour les checks : Empreinte carbone par visite, Score eco-conception global
   Intégrée DANS le .check-value-breakdown (single container pour respecter le layout)
   ==================================================================== */
.eco-scale-wrap {
  margin: 0 0 12px 0;
  padding: 0;
  width: 100%;
  max-width: 280px;
  align-self: flex-end;  /* Respecte le align-items: flex-end du parent */
}

.eco-scale-bar {
  display: flex;
  align-items: stretch;
  gap: 3px;
  height: 36px;
  border-radius: 8px;
  position: relative;
  padding-top: 14px;
}

.eco-scale-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Recoleta', 'Playfair Display', Georgia, serif;
  font-weight: 800;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.9);
  border-radius: 6px;
  position: relative;
  transition: all 0.25s ease;
  opacity: 0.55;
  letter-spacing: 0.02em;
  min-width: 22px;
}

/* Couleurs par grade */
.eco-scale-item.eco-grade-A { background: #16a34a; }
.eco-scale-item.eco-grade-B { background: #2D6A4F; }
.eco-scale-item.eco-grade-C { background: #a3e635; color: #1f2937; }
.eco-scale-item.eco-grade-D { background: #fbbf24; color: #1f2937; }
.eco-scale-item.eco-grade-E { background: #f97316; }
.eco-scale-item.eco-grade-F { background: #b91c3e; }

/* Note active : agrandie, opacité 100%, ombre, curseur ▼ */
.eco-scale-item.eco-scale-active {
  opacity: 1;
  transform: scale(1.18);
  font-size: 1.05rem;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.22), inset 0 0 0 2px rgba(255, 255, 255, 0.35);
  z-index: 2;
}

.eco-scale-item.eco-scale-active::before {
  content: "▼";
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.85rem;
  color: var(--color-text-strong, #1c1f33);
  font-weight: 700;
}

/* Légende sous l'échelle - flex pour bien espacer */
.eco-scale-legend {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.62rem;
  color: var(--color-text-soft, #6b7280);
  margin-top: 8px;
  padding: 0 2px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  gap: 12px;
}

.eco-scale-legend > span {
  flex-shrink: 0;
  white-space: nowrap;
}

.eco-scale-legend > span:last-child {
  text-align: right;
}

/* Responsive mobile */
@media (max-width: 640px) {
  .eco-scale-item { font-size: 0.75rem; }
  .eco-scale-item.eco-scale-active { font-size: 0.92rem; }
  .eco-scale-legend { font-size: 0.55rem; }
}

@media (prefers-reduced-motion: reduce) {
  .eco-scale-item { transition: none !important; }
}

/* ====================================================================
   v12.6 - BANDEAUX SÉPARATEURS DE SECTION (premium, ultra-visibles)
   Utilisé pour distinguer les sous-catégories dans une liste d'URLs
   Ex : "ANCRES GÉNÉRIQUES" vs "ANCRES VIDES" dans Qualité des ancres
   ==================================================================== */
.url-section-header {
  margin: 18px 0 10px 0;
  padding: 14px 18px;
  border-radius: 10px;
  background: var(--color-card-bg, #faf8f3);
  border-left: 4px solid var(--color-text-strong, #1c1f33);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  position: relative;
}

.url-section-header:first-child {
  margin-top: 4px;
}

.url-section-title {
  font-family: 'Recoleta', 'Playfair Display', Georgia, serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--color-text-strong, #1c1f33);
  display: flex;
  align-items: center;
  gap: 10px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.url-section-icon {
  font-size: 1.1rem;
  display: inline-flex;
  align-items: center;
}

.url-section-subtitle {
  font-family: 'DM Mono', monospace;
  font-size: 0.78rem;
  color: var(--color-text-soft, #6b7280);
  margin-top: 5px;
  margin-left: 32px;
  font-style: italic;
}

.url-section-header-error {
  background: linear-gradient(to right, #fef2f2, #fff);
  border-left-color: #b91c3e;
}
.url-section-header-error .url-section-title {
  color: #7f1d1d;
}

.url-section-header-warn {
  background: linear-gradient(to right, #fff7ed, #fff);
  border-left-color: #f97316;
}
.url-section-header-warn .url-section-title {
  color: #7c2d12;
}

.url-section-header-info {
  background: linear-gradient(to right, #f3f4f6, #fff);
  border-left-color: #6b7280;
}
.url-section-header-info .url-section-title {
  color: #374151;
}

.url-section-header-ok {
  background: linear-gradient(to right, #f0fdf4, #fff);
  border-left-color: #16a34a;
}
.url-section-header-ok .url-section-title {
  color: #14532d;
}

.url-section-header-default {
  background: linear-gradient(to right, #f9fafb, #fff);
  border-left-color: #1c1f33;
}

.url-section-divider {
  margin: 10px 0;
  padding: 6px 12px;
  text-align: center;
  font-family: 'DM Mono', monospace;
  font-size: 0.72rem;
  color: var(--color-text-soft, #9ca3af);
  font-style: italic;
  letter-spacing: 0.04em;
  border-top: 1px dashed #e5e7eb;
  border-bottom: 1px dashed #e5e7eb;
}

@media (max-width: 640px) {
  .url-section-header { padding: 10px 14px; }
  .url-section-title { font-size: 0.92rem; }
  .url-section-subtitle { font-size: 0.7rem; margin-left: 26px; }
}

/* ====================================================================
   v12.6 - GROUPES DE SECTIONS dans la sidebar (best client UX)
   4 niveaux : BLOQUANTS / IMPACT FORT / TECH AVANCÉE / ÉMERGENT
   ==================================================================== */
.sidebar-group-header {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 14px 0 6px 0;
  padding: 8px 12px 6px 12px;
  border-radius: 6px;
  border-left: 3px solid transparent;
  background: rgba(255, 255, 255, 0.03);
}

.sidebar-group-header:first-of-type {
  margin-top: 4px;
}

.sidebar-group-icon {
  font-size: 0.9rem;
  flex-shrink: 0;
  line-height: 1.2;
  margin-top: 1px;
}

.sidebar-group-text {
  flex: 1;
  min-width: 0;
}

.sidebar-group-label {
  font-family: 'DM Mono', monospace;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
  line-height: 1.2;
}

.sidebar-group-desc {
  font-family: 'DM Mono', monospace;
  font-size: 0.55rem;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 2px;
  font-style: italic;
  line-height: 1.3;
}

/* Variants colorés */
.sidebar-group-bloquants {
  border-left-color: #ef4444;
  background: linear-gradient(to right, rgba(239, 68, 68, 0.08), transparent);
}
.sidebar-group-bloquants .sidebar-group-label {
  color: #fecaca;
}

.sidebar-group-impact {
  border-left-color: #f97316;
  background: linear-gradient(to right, rgba(249, 115, 22, 0.08), transparent);
}
.sidebar-group-impact .sidebar-group-label {
  color: #fed7aa;
}

.sidebar-group-tech {
  border-left-color: #3b82f6;
  background: linear-gradient(to right, rgba(59, 130, 246, 0.08), transparent);
}
.sidebar-group-tech .sidebar-group-label {
  color: #bfdbfe;
}

.sidebar-group-emergent {
  border-left-color: #a855f7;
  background: linear-gradient(to right, rgba(168, 85, 247, 0.08), transparent);
}
.sidebar-group-emergent .sidebar-group-label {
  color: #e9d5ff;
}

/* Mode dark : ajustement contraste */
html.dark .sidebar-group-header {
  background: rgba(255, 255, 255, 0.04);
}

/* Responsive mobile */
@media (max-width: 640px) {
  .sidebar-group-header { padding: 6px 10px 4px 10px; }
  .sidebar-group-label { font-size: 0.6rem; }
  .sidebar-group-desc { font-size: 0.52rem; }
}


/* === UX rapport Limpi — guide de lecture client === */
.report-guide{
  margin:16px 0 22px;
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(201,152,42,.10),rgba(255,255,255,.78));
  box-shadow:0 14px 34px rgba(13,31,92,.06);
}
.report-guide-kicker{
  font-family:'DM Mono',monospace;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:12px;
}
.report-guide-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.report-guide-steps div{
  padding:13px 14px;
  border:1px solid rgba(13,31,92,.08);
  border-radius:14px;
  background:rgba(255,255,255,.72);
}
.report-guide-steps strong{
  display:block;
  color:var(--navy);
  font-size:14px;
  line-height:1.25;
}
.report-guide-steps span{
  display:block;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.45;
  margin-top:4px;
}
html.dark .report-guide{
  background:linear-gradient(135deg,rgba(201,152,42,.13),rgba(255,255,255,.04));
}
html.dark .report-guide-steps div{
  background:rgba(255,255,255,.045);
}
@media(max-width:760px){
  .report-guide{margin:54px 0 18px;padding:16px}
  .report-guide-steps{grid-template-columns:1fr}
}

/* LIMPI PREMIUM CSV ACTIONS v1 */
.premium-csv-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0 5px;
  padding:11px 12px;
  border:1px solid rgba(201,152,42,.24);
  border-radius:14px;
  background:
    linear-gradient(
      135deg,
      rgba(201,152,42,.075),
      rgba(13,31,92,.025)
    );
}

.premium-csv-actions-summary{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:var(--muted);
  font-family:'DM Mono',monospace;
  font-size:10px;
  line-height:1.4;
}

.premium-csv-actions-summary strong{
  color:var(--navy);
  font-size:11px;
}

.premium-csv-actions-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--bordeaux);
  box-shadow:0 0 0 4px rgba(185,28,62,.09);
  flex:0 0 auto;
}

.premium-csv-actions-buttons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}

.premium-csv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:32px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  transition:
    transform var(--transition-fast),
    box-shadow var(--transition-fast),
    border-color var(--transition-fast),
    opacity var(--transition-fast);
}

.premium-csv-btn:hover{
  transform:translateY(-1px);
}

.premium-csv-btn:focus-visible{
  outline:3px solid rgba(201,152,42,.28);
  outline-offset:2px;
}

.premium-csv-copy-btn{
  color:var(--navy);
  background:var(--card);
}

.premium-csv-copy-btn:hover{
  border-color:rgba(13,31,92,.35);
  box-shadow:0 7px 18px rgba(13,31,92,.08);
}

.premium-csv-export-btn{
  color:#fff;
  background:linear-gradient(135deg,#0D1F5C,#18387d);
  border-color:transparent;
  box-shadow:0 8px 18px rgba(13,31,92,.16);
}

.premium-csv-export-btn:hover{
  box-shadow:0 10px 22px rgba(13,31,92,.23);
}

.premium-csv-btn.loading,
.premium-csv-btn:disabled{
  cursor:wait;
  opacity:.68;
  transform:none;
}

.premium-csv-toast{
  position:fixed;
  z-index:10050;
  right:22px;
  bottom:22px;
  max-width:min(390px,calc(100vw - 32px));
  padding:13px 16px;
  border-radius:14px;
  background:#0D1F5C;
  color:#fff;
  box-shadow:0 18px 50px rgba(13,31,92,.28);
  font-family:'DM Mono',monospace;
  font-size:11px;
  line-height:1.5;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:
    opacity .2s ease,
    transform .2s ease;
}

.premium-csv-toast.visible{
  opacity:1;
  transform:translateY(0);
}

.premium-csv-toast-error{
  background:#8f1835;
}

html.dark .premium-csv-actions{
  border-color:rgba(201,152,42,.26);
  background:
    linear-gradient(
      135deg,
      rgba(201,152,42,.09),
      rgba(255,255,255,.025)
    );
}

html.dark .premium-csv-actions-summary strong{
  color:var(--text);
}

html.dark .premium-csv-copy-btn{
  color:var(--text);
  background:rgba(255,255,255,.045);
  border-color:var(--border);
}

.aaa-mode .premium-csv-actions{
  border-width:2px;
}

.aaa-mode .premium-csv-btn{
  border-width:2px;
}

@media (max-width:680px){
  .premium-csv-actions{
    align-items:flex-start;
    flex-direction:column;
  }

  .premium-csv-actions-buttons{
    width:100%;
    justify-content:stretch;
  }

  .premium-csv-btn{
    flex:1 1 auto;
  }

  .premium-csv-toast{
    right:16px;
    bottom:16px;
    left:16px;
    max-width:none;
  }
}

@media print{
  .premium-csv-actions,
  .premium-csv-toast{
    display:none!important;
  }
}

/* LIMPI PREMIUM CSV DOWNLOAD UX v1 */
.premium-csv-download-frame{
  position:fixed;
  width:1px;
  height:1px;
  left:-9999px;
  bottom:-9999px;
  border:0;
  opacity:0;
  pointer-events:none;
}

.premium-csv-spinner{
  width:11px;
  height:11px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:999px;
  display:inline-block;
  flex:0 0 auto;
  animation:premiumCsvSpin .72s linear infinite;
}

@keyframes premiumCsvSpin{
  to{
    transform:rotate(360deg);
  }
}

@media (prefers-reduced-motion:reduce){
  .premium-csv-spinner{
    animation:none;
    border-right-color:currentColor;
    opacity:.55;
  }
}

/* Décision prudente sur les URL techniques potentielles */
.check-informational{
  border-color:rgba(99,102,241,.32);
  background:linear-gradient(135deg,rgba(99,102,241,.055),transparent 55%);
}

.check-information-badge,
.technical-url-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border:1px solid rgba(99,102,241,.35);
  border-radius:999px;
  padding:3px 7px;
  color:#4f46e5;
  background:rgba(99,102,241,.09);
  font:600 9px/1.2 "DM Mono",monospace;
}

.technical-url-badge{
  flex:0 0 auto;
  margin-right:2px;
}

.technical-choice{
  margin-top:9px;
  padding:10px;
  border:1px solid rgba(99,102,241,.24);
  border-radius:9px;
  background:rgba(99,102,241,.055);
}

.technical-choice-title{
  margin-bottom:7px;
  color:var(--text);
  font:700 10px/1.3 "DM Mono",monospace;
  text-transform:uppercase;
  letter-spacing:.035em;
}

.technical-choice-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.technical-choice-btn{
  border:1px solid var(--border);
  border-radius:7px;
  padding:7px 10px;
  color:var(--text);
  background:var(--card);
  font:600 10px/1.25 "DM Mono",monospace;
  cursor:pointer;
}

.technical-choice-keep.active{
  border-color:#2D6A4F;
  color:#1f513b;
  background:rgba(45,106,79,.11);
}

.technical-choice-exclude.active{
  border-color:#C9982A;
  color:#805d08;
  background:rgba(201,152,42,.13);
}

.technical-choice-note{
  margin-top:7px;
  color:var(--muted);
  font:500 10px/1.45 "DM Mono",monospace;
}

.technical-decision-banner{
  margin-bottom:18px;
  border:1px solid rgba(99,102,241,.32);
  border-left:4px solid #6366f1;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(99,102,241,.025));
  overflow:hidden;
}

.technical-decision-banner>summary{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:5px 12px;
  padding:15px 18px;
  cursor:pointer;
  list-style:none;
}

.technical-decision-banner>summary::-webkit-details-marker{
  display:none;
}

.technical-decision-banner>summary strong{
  color:var(--text);
  font:800 13px/1.35 "DM Sans",sans-serif;
}

.technical-decision-banner>summary>span:last-child{
  grid-column:2;
  color:var(--muted);
  font:500 11px/1.4 "DM Mono",monospace;
}

.technical-decision-kicker{
  grid-row:1/3;
  align-self:center;
  border-radius:999px;
  padding:4px 8px;
  color:#4338ca;
  background:rgba(99,102,241,.12);
  font:700 9px/1.2 "DM Mono",monospace;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.technical-decision-body{
  border-top:1px solid rgba(99,102,241,.18);
  padding:14px 18px 18px;
}

.technical-decision-body>p{
  margin:0 0 12px;
  color:var(--muted);
  font:500 11px/1.55 "DM Mono",monospace;
}

.technical-decision-groups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.technical-decision-group,
.technical-group-entry{
  border:1px solid rgba(99,102,241,.2);
  border-radius:10px;
  padding:11px;
  background:var(--card);
}

.technical-decision-group-head,
.technical-group-head{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}

.technical-decision-group-head code,
.technical-group-head code{
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--text);
  font:700 11px/1.35 "DM Mono",monospace;
}

.technical-decision-group-head>span,
.technical-group-count{
  margin-left:auto;
  border-radius:999px;
  padding:3px 7px;
  color:#4338ca;
  background:rgba(99,102,241,.1);
  font:700 9px/1.2 "DM Mono",monospace;
}

.technical-decision-reason,
.technical-group-reason,
.technical-group-context{
  margin-top:6px;
  color:var(--muted);
  font:500 10px/1.45 "DM Mono",monospace;
}

.technical-group-examples{
  margin-top:9px;
}

.technical-group-examples summary{
  color:#4f46e5;
  cursor:pointer;
  font:700 10px/1.35 "DM Mono",monospace;
}

.technical-group-examples a{
  display:block;
  margin-top:6px;
  overflow-wrap:anywhere;
  color:var(--link);
  font:500 10px/1.4 "DM Mono",monospace;
}

.technical-exclusion-note{
  margin:8px 0 10px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:7px;
  color:var(--muted);
  background:rgba(255,255,255,.035);
  font:500 10px/1.45 "DM Mono",monospace;
}

.technical-exclusion-note.active{
  border-color:rgba(201,152,42,.38);
  color:#805d08;
  background:rgba(201,152,42,.09);
}

.technical-exclusion-manager{
  margin:0 0 14px;
  padding:12px;
  border:1px solid rgba(201,152,42,.35);
  border-radius:9px;
  background:var(--surface);
}
.technical-exclusion-manager.empty .technical-exclusion-manager-list::before{
  content:"Aucune URL exclue pour ce domaine.";
  display:block;
  padding:12px;
  border:1px dashed var(--border);
  border-radius:var(--radius-md);
  color:var(--muted);
  font-size:12px;
}
.technical-exclusion-add{
  margin:14px 0;
  padding:14px;
  border-radius:var(--radius-md);
  background:var(--surface);
  border:1px solid var(--border);
}
.technical-exclusion-add label{
  display:block;
  margin-bottom:7px;
  color:var(--navy);
  font-size:12px;
  font-weight:800;
}
.technical-exclusion-add>div{
  display:flex;
  gap:8px;
}
.technical-exclusion-add input{
  flex:1;
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--bg);
  color:var(--navy);
}
.technical-exclusion-add button{
  border:0;
  border-radius:var(--radius-sm);
  padding:10px 14px;
  background:var(--navy);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.technical-exclusion-add small{
  display:block;
  margin-top:7px;
  color:var(--muted);
  line-height:1.45;
}
.manual-exclusions-title{
  margin:18px 0 4px;
  color:var(--navy);
  font-size:12px;
}
.exclude-panel .manual-exclusions-help{
  margin:0 0 10px;
  color:var(--muted);
  font-size:11px;
}

.technical-exclusion-manager[hidden]{
  display:none;
}

.technical-exclusion-manager-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.technical-exclusion-manager h4{
  margin:0 0 3px;
  color:var(--text);
  font:700 11px/1.35 "DM Mono",monospace;
}

.exclude-panel .technical-exclusion-manager p{
  margin:0;
  font:500 9px/1.45 "DM Mono",monospace;
}

.technical-exclusion-manager-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.technical-exclusion-manager-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--bg);
}

.technical-exclusion-manager-rule{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.technical-exclusion-manager-rule code{
  overflow-wrap:anywhere;
  color:var(--text);
  font:700 10px/1.4 "DM Mono",monospace;
}

.technical-exclusion-manager-rule span{
  color:var(--muted);
  font:500 9px/1.35 "DM Mono",monospace;
}

.restore-technical-btn,
.restore-all-technical-btn{
  flex:0 0 auto;
  border:1px solid rgba(31,157,115,.45);
  border-radius:7px;
  color:#137456;
  background:rgba(31,157,115,.08);
  cursor:pointer;
  font:700 9px/1.2 "DM Mono",monospace;
}

.restore-technical-btn{
  padding:7px 9px;
}

.restore-all-technical-btn{
  padding:7px 10px;
}

.restore-technical-btn:hover,
.restore-all-technical-btn:hover{
  border-color:#1f9d73;
  background:rgba(31,157,115,.16);
}

.restore-all-technical-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.technical-exclusion-manager-status{
  min-height:0;
  margin-top:7px;
  color:#137456;
  font:600 9px/1.4 "DM Mono",monospace;
}

@media (max-width:680px){
  .technical-decision-groups{
    grid-template-columns:1fr;
  }

  .technical-decision-banner>summary{
    grid-template-columns:1fr;
  }

  .technical-decision-kicker{
    grid-row:auto;
    width:max-content;
  }

  .technical-decision-banner>summary>span:last-child{
    grid-column:auto;
  }

  .technical-choice-btn{
    flex:1 1 100%;
  }

  .technical-exclusion-manager-head,
  .technical-exclusion-manager-row{
    align-items:stretch;
    flex-direction:column;
  }
  .technical-exclusion-add>div{
    flex-direction:column;
  }

  .restore-technical-btn,
  .restore-all-technical-btn{
    width:100%;
  }
}

@media print{
  .technical-choice,
  .technical-decision-banner{
    display:none!important;
  }
}

/* LIMPI_REPORT_CONTEXTUAL_SUPPORT_START */
.report-support-check-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-family:'DM Mono',monospace;
  font-size:10px;
}
.report-support-check-actions>div{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.report-support-check-btn{
  appearance:none;
  border:1px solid #c7cff0;
  border-radius:999px;
  background:#f8f9ff;
  color:var(--navy);
  padding:6px 10px;
  font:700 10px 'DM Mono',monospace;
  cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,transform .15s ease;
}
.report-support-check-btn:hover{
  background:#eef0fa;
  border-color:var(--navy);
  transform:translateY(-1px);
}
.report-support-check-btn-alert{
  border-color:#efc6cf;
  background:#fff7f9;
  color:var(--bordeaux);
}
.report-support-check-btn-alert:hover{
  border-color:var(--bordeaux);
  background:#fdeef2;
}
.report-support-overlay{
  position:fixed;
  inset:0;
  z-index:420;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(13,31,92,.48);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.report-support-overlay.open{display:flex}
body.report-support-open{overflow:hidden}
.report-support-modal{
  position:relative;
  width:min(680px,100%);
  max-height:min(850px,92vh);
  overflow:auto;
  padding:28px;
  border:1px solid var(--border);
  border-radius:22px;
  background:var(--surface);
  box-shadow:0 28px 80px rgba(13,31,92,.28);
}
.report-support-close{
  position:absolute;
  top:16px;
  right:16px;
  width:34px;
  height:34px;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--bg);
  color:var(--navy);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.report-support-kicker{
  margin-bottom:7px;
  color:var(--gold);
  font:800 10px 'DM Mono',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.report-support-modal h3{
  margin:0 42px 7px 0;
  color:var(--navy);
  font-size:22px;
}
.report-support-intro{
  margin:0 0 18px;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
.report-support-context{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}
.report-support-context>div{
  min-width:0;
  padding:11px 13px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
}
.report-support-context span,
.report-support-field>span{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font:700 9px 'DM Mono',monospace;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.report-support-context strong{
  display:block;
  overflow-wrap:anywhere;
  color:var(--navy);
  font-size:12px;
}
.report-support-reasons{
  display:grid;
  gap:8px;
  margin:0 0 16px;
  padding:0;
  border:0;
}
.report-support-reasons legend{
  margin-bottom:8px;
  color:var(--navy);
  font-size:12px;
  font-weight:800;
}
.report-support-reasons label{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px;
  border:1px solid var(--border);
  border-radius:13px;
  cursor:pointer;
}
.report-support-reasons label:has(input:checked){
  border-color:var(--gold);
  background:rgba(201,152,42,.08);
}
.report-support-reasons input{margin-top:3px;accent-color:var(--gold)}
.report-support-reasons strong{
  display:block;
  color:var(--navy);
  font-size:12px;
}
.report-support-reasons small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}
.report-support-field{
  display:block;
  margin-bottom:14px;
}
.report-support-field select,
.report-support-field textarea{
  width:100%;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg);
  color:var(--text);
  padding:11px 12px;
  font:12px 'DM Mono',monospace;
}
.report-support-field select:disabled{opacity:.58}
.report-support-field textarea{
  min-height:120px;
  resize:vertical;
  font-family:'Syne',sans-serif;
  line-height:1.55;
}
.report-support-field select:focus,
.report-support-field textarea:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,152,42,.12);
}
.report-support-privacy{
  padding:10px 12px;
  border-radius:11px;
  background:rgba(79,143,229,.08);
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.report-support-error{
  min-height:19px;
  margin-top:8px;
  color:var(--bordeaux);
  font-size:11px;
  font-weight:700;
}
.report-support-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:10px;
}
.report-support-actions button{
  border-radius:999px;
  padding:10px 16px;
  font:800 11px 'DM Mono',monospace;
  cursor:pointer;
}
.report-support-cancel{
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--navy);
}
.report-support-submit{
  border:1px solid var(--navy);
  background:var(--navy);
  color:#fff;
}
.report-support-submit:disabled{opacity:.6;cursor:wait}
html.dark .report-support-check-btn{
  border-color:var(--border);
  background:var(--bg);
  color:var(--text);
}
html.dark .report-support-check-btn-alert{color:#f6a8ba}
html.dark .report-support-overlay{background:rgba(0,0,0,.68)}
@media (max-width:720px){
  .report-support-check-actions{
    align-items:flex-start;
    flex-direction:column;
  }
  .report-support-check-actions>div{justify-content:flex-start}
  .report-support-overlay{padding:10px}
  .report-support-modal{padding:22px 17px;border-radius:18px}
  .report-support-context{grid-template-columns:1fr}
  .report-support-actions{flex-direction:column-reverse}
  .report-support-actions button{width:100%}
}
@media print{
  .report-support-check-actions,
  .report-support-overlay{display:none!important}
}
/* LIMPI_REPORT_CONTEXTUAL_SUPPORT_END */

/* LIMPI_MOBILE_AUDIT_UX_V1
   Mobile launcher:
   - stable small viewport instead of vertical re-centering in 100vh
   - 16px URL input prevents Safari focus auto-zoom
   - larger touch target for the audit CTA
*/
@media (max-width:720px){
  body.page-launcher{
    min-height:100%;
    overflow-x:hidden;
  }

  .launcher{
    min-height:100svh;
    height:auto;
  }

  .launcher-header{
    padding:14px 16px 8px;
    gap:10px;
  }

  .limpi-launcher-brand img{
    width:min(156px,52vw);
  }

  .limpi-launcher-brand span{
    font-size:8px;
    line-height:1.35;
  }

  .header-right{
    margin-left:auto;
  }

  .launcher-body{
    flex:0 0 auto;
    align-items:flex-start;
    justify-content:center;
    padding:14px 12px 28px;
  }

  .launcher-card{
    width:100%;
    max-width:100%;
    padding:22px 16px;
    border-radius:14px;
  }

  .zone-title{
    font-size:20px;
  }

  .zone-sub{
    font-size:11px;
    line-height:1.55;
    margin-bottom:18px;
  }

  .field-row,
  .field.grow,
  .url-field-wrap{
    min-width:0;
    width:100%;
  }

  .field .url-field-wrap input[type="text"]{
    font-size:16px;
    min-height:50px;
    line-height:1.25;
  }

  .launch-btn{
    min-height:50px;
    padding:14px 16px;
    font-size:16px;
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(13,31,92,.12);
  }

  .launch-btn:hover,
  .launch-btn:active{
    transform:none;
  }

  #launcherQuotaSummary{
    align-items:flex-start !important;
    text-align:left;
    line-height:1.45;
  }

  .trust-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .trust-card{
    min-width:0;
    padding:9px 5px;
  }

  .trust-card[data-tooltip]::before,
  .trust-card[data-tooltip]::after{
    display:none;
  }

  .url-history-item{
    max-width:100%;
  }
}


/* LIMPI_REPORT_MOBILE_CHECK_LAYOUT_V1
   Mobile report:
   - prevent the third "value" column from squeezing/cropping the check card
   - make the content track genuinely shrinkable
   - keep expanded cards visually unclipped
*/
@media (max-width:640px){
  .check-item{
    grid-template-columns:32px minmax(0,1fr);
    column-gap:12px;
    row-gap:0;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  .check-item > div:nth-child(2){
    min-width:0;
    max-width:100%;
  }

  .check-item > .check-value-breakdown{
    grid-column:2;
    min-width:0;
    max-width:100%;
    width:100%;
    justify-self:stretch;
    margin-top:8px;
  }

  .check-item .check-value{
    max-width:none;
    width:100%;
    text-align:left;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .section-block:not(.collapsed) .check-grid{
    overflow:visible;
  }
}
