*{box-sizing:border-box}
html,body{margin:0;padding:0}
:root{--bg:#0b1020;--bg2:#0f172a;--text:#e5e7eb;--muted:#93a4b8;--surface:rgba(31,41,55,.6);--surface2:rgba(17,24,39,.7);--border:rgba(148,163,184,.25);--primary:#60a5fa;--accent:#38bdf8;--accent2:#f59e0b;--danger:#fb7185}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(1000px 400px at 20% -10%,#1f2937,transparent 70%),radial-gradient(900px 500px at 100% 0%,#0ea5e9,transparent 55%),var(--bg)}
.site-header{background:var(--bg2);color:var(--text);padding:40px 20px;border-bottom:1px solid var(--border);text-align:center}
.site-header h1{letter-spacing:.2px}
.site-header p{color:var(--text)}
.site-header h1{margin:0 0 10px;font-weight:800;font-size:34px}
.site-header p{margin:0 0 18px;opacity:.92}
.site-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.site-nav a{color:var(--text);text-decoration:none;padding:10px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-weight:600;backdrop-filter:blur(6px)}
.site-nav a:hover{background:rgba(148,163,184,.12)}
.container{max-width:1200px;margin:0 auto;padding:28px 18px}
.panel{margin:28px 0;position:relative}
.panel h2{margin:0 0 16px;font-size:24px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 12px 30px rgba(2,8,23,.35);backdrop-filter:blur(8px)}
.caption{margin:10px 0 0;color:var(--muted);font-size:12px}
.svg-wrap{display:flex;justify-content:center;align-items:center;min-height:320px;background:var(--surface2);border-radius:12px}
.svg-wrap object{width:100%;height:auto;max-width:900px}
.legend-creative{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:10px}
.legend-item{display:flex;align-items:center;gap:8px;color:#0f172a}
.legend-swatch{width:16px;height:12px;border-radius:3px;box-shadow:0 0 0 1px rgba(148,163,184,.35) inset}
.idf-bar{position:relative;height:20px;background:#1f2937;border:1px solid var(--border);border-radius:999px;overflow:hidden}
.idf-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 20px rgba(96,165,250,.6);transition:width 1200ms ease}
.creative{display:flex;gap:20px;align-items:flex-end;height:320px;padding:14px;background:var(--surface2);border-radius:14px}
.bar{position:relative;width:160px;background:#0f172a;border:1px solid var(--border);border-radius:14px;display:flex;align-items:flex-end;justify-content:center;box-shadow:0 10px 24px rgba(2,8,23,.45)}
.bar span{position:absolute;bottom:8px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.bar-2024{background:linear-gradient(180deg,#22d3ee,#3b82f6)}
.bar-2030{background:linear-gradient(180deg,#fb7185,#f59e0b)}
.placeholder{display:grid;place-items:center;height:180px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);background:var(--surface2)}
.sources{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.sources a{color:var(--primary);text-decoration:none}
.sources a:hover{color:#93c5fd}
.site-footer{padding:26px 18px;color:var(--muted)}
table{width:100%;border-collapse:collapse}
table thead th{background:#0f172a;color:var(--text);padding:10px;border-bottom:1px solid var(--border)}
table tbody td{padding:10px;border-bottom:1px solid rgba(148,163,184,.15);color:var(--text)}
table tbody tr:hover{background:rgba(148,163,184,.08)}
@media (max-width:600px){.site-header h1{font-size:24px}.site-nav a{padding:6px 10px}}

.infographie {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  object-fit: contain;
}

.card {
  padding: 20px;
  border-radius: 12px;
  background: #ffffff10; 
  backdrop-filter: blur(6px);
  overflow: hidden; 
  text-align: center;
}
.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 25px;
}
