:root {
    --fd-bg: #0b1220;
    --fd-card: #111b2e;
    --fd-accent: #f59e0b;      /* orange BNTIC */
    --fd-accent2: #38bdf8;     /* bleu data */
    --fd-text: #e8eef7;
    --fd-muted: #a9b8cf;
    --fd-border: rgba(255,255,255,.10);
}
body { background: var(--fd-bg); color: var(--fd-text); }
a { color: var(--fd-accent2); }
.text-secondary { color: var(--fd-muted) !important; }

.fd-navbar { background: linear-gradient(90deg, #07203a, #0a3a44); border-bottom: 1px solid var(--fd-border); }
.fd-navbar .navbar-brand, .fd-navbar .nav-link { color: #eaf3fb; }
.fd-navbar .nav-link:hover { color: #fff; }
.fd-accent { color: var(--fd-accent); }
.btn-accent { background: var(--fd-accent); border: none; color: #1a1200; font-weight: 600; }
.btn-accent:hover { background: #ffb52e; color: #1a1200; }

.fd-card { background: var(--fd-card); border: 1px solid var(--fd-border); border-radius: 14px; color: var(--fd-text); }
.fd-card:hover { border-color: rgba(56,189,248,.4); }
.fd-hero { background: radial-gradient(1200px 400px at 20% -10%, rgba(56,189,248,.18), transparent),
                       radial-gradient(900px 400px at 90% 0%, rgba(245,158,11,.14), transparent);
           border: 1px solid var(--fd-border); border-radius: 20px; padding: 3rem 2rem; }
.fd-hero h1 { font-weight: 800; letter-spacing: .5px; }
.fd-topic-pill { display:inline-block; padding:.4rem .9rem; border:1px solid var(--fd-border);
                 border-radius: 999px; margin:.2rem; color: var(--fd-text); text-decoration:none; }
.fd-topic-pill:hover { border-color: var(--fd-accent); color: var(--fd-accent); }
.fd-stat .n { font-size: 2rem; font-weight: 800; color: #fff; }
.fd-footer { background: #07101d; border-top: 1px solid var(--fd-border); color: var(--fd-muted); }
.fd-provenance { font-size:.85rem; border-left: 3px solid var(--fd-accent); padding:.6rem .9rem;
                 background: rgba(255,255,255,.03); border-radius: 0 8px 8px 0; }
.fd-chip { display: inline-flex; align-items: center; gap: 8px; padding: 5px 6px 5px 12px; border-radius: 999px; background: rgba(56,189,248,.12); border: 1px solid var(--fd-accent, #38bdf8); font-size: .82rem; }
.fd-chip button { border: 0; background: rgba(255,255,255,.15); color: inherit; width: 20px; height: 20px; line-height: 18px; border-radius: 50%; cursor: pointer; font-size: 15px; }
.fd-chip button:hover { background: rgba(239,68,68,.65); color: #fff; }
.fd-chart-wrap { position: relative; min-height: 320px; }
.fd-skeleton { background: linear-gradient(90deg,#16233a,#1d2c46,#16233a); background-size:200% 100%;
               animation: fd-shine 1.2s infinite; border-radius: 10px; height: 300px; }
@keyframes fd-shine { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
table.fd-table { color: var(--fd-text); }
table.fd-table th { color: var(--fd-muted); font-weight:600; }
.fd-badge-src { background: rgba(56,189,248,.15); color: var(--fd-accent2); border:1px solid rgba(56,189,248,.3); }
.fd-flag { width:22px; height:16px; border-radius:2px; object-fit:cover;
           vertical-align:-3px; margin-right:.4rem; box-shadow:0 0 0 1px rgba(255,255,255,.12); }
/* Carte Afrique interactive */
.fd-africa-map { width:100%; height:auto; display:block; }
.fd-africa-map .af-country { fill:#1b2c46; stroke:#0b1220; stroke-width:0.6;
    transition:fill .15s ease; cursor:pointer; }
.fd-africa-map .af-country:hover { fill:var(--fd-accent2); }
.fd-africa-map .af-country.is-active { fill:var(--fd-accent); stroke:#fff; stroke-width:1; }
.fd-africa-map .af-country.is-missing { fill:#141f33; cursor:default; opacity:.5; }
.fd-map-wrap { background:radial-gradient(600px 400px at 40% 10%, rgba(56,189,248,.08), transparent);
    border:1px solid var(--fd-border); border-radius:16px; padding:.5rem; }
.fd-mini-chart { position:relative; height:150px; }
