/* ── BADGES ── */
.badge-critique { background:rgba(206,17,38,0.1);   color:#CE1126; border:1px solid rgba(206,17,38,0.25); }
.badge-eleve    { background:rgba(234,88,12,0.1);   color:#C2410C; border:1px solid rgba(234,88,12,0.25); }
.badge-modere   { background:rgba(234,179,8,0.12);  color:#92400E; border:1px solid rgba(234,179,8,0.3); }

/* ── ARTICLE CARD ── */
.article-card { transition: all 0.3s cubic-bezier(0.4,0,0.2,1); cursor: pointer; }
.article-card:hover { transform:translateY(-4px); box-shadow:0 20px 60px rgba(0,63,135,0.12)!important; }
.article-card.expanded { transform:none!important; }

/* ── EXPANDABLE ── */
.expand-content { overflow:hidden; transition:all 0.4s cubic-bezier(0.4,0,0.2,1); }
.expand-content.collapsed { max-height:0; opacity:0; }
.expand-content.expanded  { max-height:4000px; opacity:1; }

/* ── FILTER TABS ── */
.filter-tab { transition:all 0.25s; cursor:pointer; white-space:nowrap; }
.filter-tab.active { color:white!important; }
.filter-tab-all.active     { background:#003F87!important; }
.filter-tab-critique.active { background:#CE1126!important; }
.filter-tab-eleve.active   { background:#EA580C!important; }
.filter-tab-modere.active  { background:#EAB308!important; }

/* ── LEVEL BAR ── */
.level-bar { height:4px; border-radius:2px; }
.level-critique { background:linear-gradient(90deg,#CE1126,#ff4d5e); width:100%; }
.level-eleve    { background:linear-gradient(90deg,#EA580C,#ff7c3c); width:70%; }
.level-modere   { background:linear-gradient(90deg,#EAB308,#fcd34d); width:40%; }

/* ── SECTION TAB ── */
.section-tab { transition:all 0.25s; cursor:pointer; }
.section-tab.active { color:#003F87!important; border-bottom:2px solid #003F87; }

/* ── TAGS ── */
.conflict-tag { background:rgba(206,17,38,0.08);  color:#CE1126; border:1px solid rgba(206,17,38,0.15); }
.solution-tag { background:rgba(0,63,135,0.08);   color:#003F87; border:1px solid rgba(0,63,135,0.15); }

/* ── ANIMATIONS ── */
@keyframes pulse-red { 0%,100%{box-shadow:0 0 0 0 rgba(206,17,38,0.3);} 50%{box-shadow:0 0 0 8px rgba(206,17,38,0);} }
.pulse-red { animation:pulse-red 2.5s infinite; }

/* ── HIDE ── */
.card-hidden { display:none!important; }

/* ── TOP 3 ── */
.top3-card {
  background:linear-gradient(135deg,rgba(206,17,38,0.04),rgba(0,63,135,0.04));
  border:1px solid rgba(206,17,38,0.15)!important;
}
.top3-card:hover { box-shadow:0 20px 60px rgba(206,17,38,0.12)!important; }

/* ── RISK DOT ── */
.risk-dot       { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.risk-dot-red   { background:#CE1126; }
.risk-dot-orange{ background:#EA580C; }
.risk-dot-yellow{ background:#EAB308; }

/* ── EXPAND ICON ── */
.expand-icon { transition:transform 0.3s ease; }
.expanded .expand-icon { transform:rotate(180deg); }

/* ── SEARCH ── */
.search-input { background:rgba(255,255,255,0.8); backdrop-filter:blur(10px); border:1px solid rgba(0,63,135,0.15); transition:all 0.25s; }
.search-input:focus { outline:none; border-color:#003F87; box-shadow:0 0 0 3px rgba(0,63,135,0.1); }

/* ── STAT CARDS CARRÉES ── */
.stat-card-square {
  width: 8.5rem;
  height: 8.5rem;
}
@media (max-width: 639px) {
  .stat-card-square { width: 6rem; height: 6rem; }
  .stat-card-square .font-display { font-size: 1.5rem; }
  .stat-card-square .w-8 { width: 1.5rem; height: 1.5rem; }
}

/* ── PDF CTA BLOCK ── */
.pdf-cta-block {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  background: linear-gradient(135deg, #003F87 0%, #001F47 100%);
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,63,135,0.30);
  flex: 1;
  min-width: 0;
  align-self: stretch;
}
.pdf-cta-flag {
  height: 4px;
  flex-shrink: 0;
  background: linear-gradient(90deg,
    #003F87 0%,#003F87 40%,
    #F7D117 40%,#F7D117 45%,
    #CE1126 45%,#CE1126 55%,
    #F7D117 55%,#F7D117 60%,
    #003F87 60%,#003F87 100%
  );
}
.pdf-cta-body {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 14px;
  padding: 14px 14px 14px 20px;
  flex: 1;
}
.pdf-cta-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  flex: 1;
  min-width: 0;
}
.pdf-cta-header {
  display: flex;
  align-items: center;
  gap: 7px;
}
.pdf-cta-kicker {
  font-size: 10.5px;
  font-weight: 600;
  color: rgba(247,209,23,0.75);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pdf-cta-title {
  font-size: 15px;
  font-weight: 800;
  color: #ffffff;
  line-height: 1.25;
}
.pdf-cta-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.pdf-cta-meta span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,0.60);
}
.pdf-cta-desc-line {
  font-size: 11px;
  color: rgba(255,255,255,0.45);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pdf-cta-meta svg { opacity: 0.7; }
.pdf-cta-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-shrink: 0;
  width: 250px;
  align-self: center;
  min-height: 80px;
  padding: 0 12px;
  border-radius: 12px;
  background: #F7D117;
  color: #003F87;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
  padding: 0 12px;
  box-shadow: 0 4px 14px rgba(247,209,23,0.35);
}
.pdf-cta-btn-main {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}
.pdf-cta-btn-sub {
  font-size: 10px;
  font-weight: 500;
  color: rgba(0,63,135,0.65);
  white-space: nowrap;
}
.pdf-cta-btn:hover { background: #ffe556; transform: translateY(-1px); }
.pdf-cta-btn:disabled { opacity: 0.6; cursor: wait; transform: none; }

/* ── SHARE BUTTONS (conservé pour les boutons d'article) ── */
.share-actions-header { display:flex; gap:12px; flex-wrap:wrap; }

/* Card-style buttons — même esthétique que les images générées */
.share-card-btn {
  position:relative;
  display:inline-flex;
  border-radius:16px;
  background:linear-gradient(135deg,#011428 0%,#020D1E 100%);
  border:1px solid rgba(255,255,255,0.1);
  cursor:pointer;
  font-family:inherit;
  overflow:hidden;
  transition:all 0.25s cubic-bezier(0.4,0,0.2,1);
  box-shadow:0 8px 32px rgba(0,0,0,0.35);
  text-align:left;
  padding:0;
}
.share-card-flag {
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,
    #003F87 0%,#003F87 40%,
    #F7D117 40%,#F7D117 45%,
    #CE1126 45%,#CE1126 55%,
    #F7D117 55%,#F7D117 60%,
    #003F87 60%,#003F87 100%
  );
}
.share-card-inner {
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 22px;
  margin-top:3px;
}
.share-card-icon {
  color:#F7D117;
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.share-card-title {
  font-size:13px;
  font-weight:700;
  color:#ffffff;
  white-space:nowrap;
}
.share-card-sub {
  font-size:11px;
  color:rgba(255,255,255,0.38);
  margin-top:2px;
  white-space:nowrap;
}
.share-card-btn:hover {
  transform:translateY(-3px);
  box-shadow:0 18px 50px rgba(0,0,0,0.45), 0 0 0 1px rgba(247,209,23,0.28);
  border-color:rgba(247,209,23,0.28);
}
.share-card-btn:hover .share-card-icon { color:#ffe556; }

/* Ancien .share-btn conservé pour compatibilité éventuelle */
.share-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 18px; border-radius:12px;
  background:rgba(0,63,135,0.08); color:#003F87;
  border:1px solid rgba(0,63,135,0.18);
  font-size:13px; font-weight:600; cursor:pointer;
  transition:all 0.2s; font-family:inherit;
}
.share-btn:hover { background:rgba(0,63,135,0.15); transform:translateY(-1px); box-shadow:0 6px 20px rgba(0,63,135,0.15); }
.share-btn svg { width:16px; height:16px; }

.share-btn-sm {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 14px; border-radius:10px;
  background:rgba(0,63,135,0.07); color:#003F87;
  border:1px solid rgba(0,63,135,0.15);
  font-size:12px; font-weight:600; cursor:pointer;
  transition:all 0.2s; font-family:inherit;
}
.share-btn-sm:hover { background:rgba(0,63,135,0.14); }

/* ── SHARE MODAL ── */
.share-overlay {
  position:fixed; inset:0;
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:9999;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.share-card {
  background:linear-gradient(145deg,#0d1f3a,#0a1628);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:22px; padding:32px;
  width:100%; max-width:440px;
  box-shadow:0 40px 100px rgba(0,0,0,0.6);
}
.share-title {
  font-size:18px; font-weight:700;
  color:#fff; margin-bottom:6px;
}
.share-subtitle {
  font-size:13px; color:rgba(255,255,255,0.4);
  margin-bottom:24px;
}
.share-formats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-bottom:16px; }
.format-btn {
  background:rgba(255,255,255,0.04);
  border:1.5px solid rgba(255,255,255,0.09);
  border-radius:16px; padding:22px 14px;
  cursor:pointer; transition:all 0.2s;
  color:#fff; text-align:center; font-family:inherit;
}
.format-btn:hover {
  background:rgba(0,63,135,0.18);
  border-color:rgba(0,63,135,0.45);
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(0,63,135,0.2);
}
.format-ratio {
  font-size:26px; font-weight:800;
  color:#F7D117; margin-bottom:8px;
  font-family:inherit;
}
.format-name { font-size:13px; font-weight:600; color:rgba(255,255,255,0.85); }
.format-size { font-size:11px; color:rgba(255,255,255,0.35); margin-top:4px; }
.share-cancel {
  width:100%; padding:12px; border-radius:12px;
  background:transparent;
  border:1px solid rgba(255,255,255,0.1);
  color:rgba(255,255,255,0.45);
  cursor:pointer; font-family:inherit;
  font-size:13px; transition:all 0.18s;
}
.share-cancel:hover { background:rgba(255,255,255,0.05); color:rgba(255,255,255,0.7); }
