/* AH GROUP Cockpit — design system MN Conseil (dark "control room") */
:root{
  color-scheme: dark;
  --bg:#0B1220; --bg2:#0d1526; --surface:#131C2E; --surface2:#182238;
  --border:#22304a; --border-soft:#1a2438;
  --text:#F1F5F9; --muted:#94A3B8; --dim:#64748B;
  --cyan:#06B6D4; --cyan-bright:#22D3EE; --electric:#00F0FF; --violet:#8B5CF6;
  --good:#22C55E; --bad:#EF4444; --amber:#F59E0B;
  --grad: linear-gradient(90deg,#06B6D4,#8B5CF6);
  --grad-soft: linear-gradient(135deg, rgba(6,182,212,.16), rgba(139,92,246,.16));
  --shadow: 0 10px 30px -12px rgba(0,0,0,.6);
  --r:16px; --r-sm:11px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:var(--bg); color:var(--text);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased}
img{max-width:100%}
[hidden]{display:none!important}
h1,h2,h3,h4{font-family:"Space Grotesk",system-ui,sans-serif; margin:0; text-wrap:balance; letter-spacing:-.01em}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan-bright); font-weight:600}

.app{display:grid; grid-template-columns:240px 1fr; min-height:100%}
.side{background:linear-gradient(180deg,#0c1424,#0a101d); border-right:1px solid var(--border-soft);
  padding:22px 16px; display:flex; flex-direction:column; gap:22px;
  position:sticky; top:0; align-self:start; height:100vh}
.brand{display:flex; align-items:center; gap:11px}
.brand .mark{width:38px;height:38px;border-radius:11px;flex:none; background:var(--grad);
  display:grid;place-items:center; font-family:"Space Grotesk"; font-weight:700; color:#04121b; font-size:16px;
  box-shadow:0 6px 18px -6px rgba(6,182,212,.6)}
.brand .bn{font-family:"Space Grotesk"; font-weight:700; font-size:15px; line-height:1.05}
.brand .bs{font-size:11px; color:var(--muted)}
.nav{display:flex; flex-direction:column; gap:3px}
.nav a{display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px;
  color:var(--muted); text-decoration:none; font-weight:500; font-size:13.5px; cursor:pointer;
  border:1px solid transparent; transition:.15s}
.nav a .ix{width:22px; font-family:"Space Grotesk"; font-size:12px; color:var(--dim); text-align:center}
.nav a:hover{background:var(--surface); color:var(--text)}
.nav a:focus-visible,#printBtn:focus-visible{outline:2px solid var(--cyan-bright); outline-offset:2px}
.nav a.active{background:var(--grad-soft); color:var(--text); border-color:var(--border)}
.nav a.active .ix{color:var(--cyan-bright)}
.side .foot{margin-top:auto; font-size:11px; color:var(--dim); line-height:1.5}
.side .foot b{color:var(--muted); font-weight:600}
.dot{width:7px;height:7px;border-radius:50%;background:var(--good);display:inline-block;box-shadow:0 0 0 3px rgba(34,197,94,.15)}

.main{min-width:0; display:flex; flex-direction:column}
.topbar{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding:18px 28px; border-bottom:1px solid var(--border-soft);
  position:sticky; top:0; background:rgba(11,18,32,.82); backdrop-filter:blur(10px); z-index:5}
.topbar .tt{display:flex; flex-direction:column; gap:5px; padding-left:14px; border-left:3px solid transparent; border-image:var(--grad) 1}
.topbar .peyebrow{font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan-bright); font-weight:600; display:flex; align-items:center; gap:9px}
.topbar .peyebrow .pnum{font-family:"Space Grotesk"; font-weight:700; font-size:12px; color:var(--dim); letter-spacing:0}
.topbar h2{font-size:23px; font-weight:700; letter-spacing:-.02em; line-height:1.08}
.topbar .sub{font-size:12.5px; color:var(--muted)}
.chip{display:inline-flex; align-items:center; gap:8px; padding:8px 13px; border-radius:999px;
  background:var(--surface); border:1px solid var(--border); font-size:12.5px; color:var(--text); font-weight:500}
.chip .k{color:var(--muted)}
.content{padding:26px 28px 46px; display:flex; flex-direction:column; gap:22px}

.card{background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--r); box-shadow:var(--shadow)}
.card.pad{padding:18px}
.grid-kpi{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.kpi{position:relative; padding:18px 18px 14px; overflow:hidden}
.kpi::before{content:""; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad); opacity:.9}
.kpi .lbl{font-size:12px; color:var(--muted); font-weight:500; display:flex; align-items:center; gap:7px}
.kpi .val{font-family:"Space Grotesk"; font-weight:700; font-size:clamp(26px,2.3vw,34px); margin-top:8px; letter-spacing:-.02em; white-space:nowrap}
.kpi .row{display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-top:6px}
.delta{font-size:12.5px; font-weight:600; display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:999px}
.delta.up{color:var(--good); background:rgba(34,197,94,.12)}
.delta.down{color:var(--bad); background:rgba(239,68,68,.12)}
.delta .cmp{color:var(--dim); font-weight:500; margin-left:2px}
.spark{height:34px; width:96px}

.section-h{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:2px}
.section-h h3{font-size:15px; font-weight:600}
.section-h .hint{font-size:12px; color:var(--muted)}

.two{display:grid; grid-template-columns:1.35fr 1fr; gap:16px}
@media(max-width:1080px){.two{grid-template-columns:1fr}}

table{width:100%; border-collapse:collapse; font-size:13px}
th,td{padding:11px 12px; text-align:right}
th:first-child,td:first-child{text-align:left}
thead th{font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:600; border-bottom:1px solid var(--border-soft)}
tbody td{border-bottom:1px solid rgba(26,36,56,.6)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:rgba(24,34,56,.5)}
.rank{color:var(--dim); font-variant-numeric:tabular-nums; width:26px}
.q{font-weight:500}
.mini-bar{height:6px; border-radius:4px; background:var(--surface2); overflow:hidden; min-width:60px}
.mini-bar > i{display:block; height:100%; background:var(--grad); border-radius:4px}
.pos-pill{display:inline-flex; align-items:center; gap:6px; font-variant-numeric:tabular-nums; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--surface2); border:1px solid var(--border-soft)}
.pos-pill.t10{color:var(--cyan-bright); border-color:rgba(6,182,212,.4)}
.pos-pill.mid{color:var(--amber)}
.pos-pill.low{color:var(--muted)}
.tag{font-size:11px; padding:2px 8px; border-radius:6px; background:var(--surface2); color:var(--muted); border:1px solid var(--border-soft)}
.tag.fr{color:#93c5fd} .tag.es{color:#fca5a5} .tag.en{color:#86efac}

.bars{display:flex; flex-direction:column; gap:14px}
.barrow{display:grid; grid-template-columns:130px 1fr auto; align-items:center; gap:12px}
.barrow .nm{font-size:13px; font-weight:500; display:flex; align-items:center; gap:8px}
.barrow .swatch{width:9px;height:9px;border-radius:3px}
.track{height:12px; background:var(--surface2); border-radius:7px; overflow:hidden}
.track > i{display:block;height:100%; border-radius:7px}
.barrow .vv{font-variant-numeric:tabular-nums; font-weight:600; font-size:13px; min-width:56px; text-align:right}

.funnel{display:flex; flex-direction:column; gap:9px}
.fstep{display:flex; align-items:center; gap:14px}
.fstep .fbar{height:44px; border-radius:10px; display:flex; align-items:center; padding:0 14px; color:#eaf6ff; font-weight:600; font-variant-numeric:tabular-nums; box-shadow:var(--shadow)}
.fstep .fmeta{font-size:12px; color:var(--muted)}
.fstep .fmeta b{color:var(--text); font-family:"Space Grotesk",sans-serif}

.tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.tile{padding:16px}
.tile .tl{font-size:12px;color:var(--muted)}
.tile .tv{font-family:"Space Grotesk"; font-weight:700; font-size:26px; margin-top:6px}
.tile .ts{font-size:11.5px;color:var(--dim); margin-top:3px}

.cover{position:relative; overflow:hidden; border-radius:20px; min-height:520px; display:flex; flex-direction:column; justify-content:center; padding:56px; border:1px solid var(--border);
  background:radial-gradient(900px 420px at 80% -10%, rgba(139,92,246,.22), transparent 60%),
  radial-gradient(700px 380px at 5% 110%, rgba(6,182,212,.20), transparent 55%),
  linear-gradient(160deg,#0c1526,#0a101d)}
.cover .grid-fx{position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:44px 44px; -webkit-mask-image:radial-gradient(circle at 50% 40%, #000, transparent 75%); mask-image:radial-gradient(circle at 50% 40%, #000, transparent 75%)}
.cover .cbrand{display:flex;align-items:center;gap:12px; margin-bottom:26px; position:relative}
.cover h1{font-size:clamp(30px,5vw,52px); font-weight:700; line-height:1.02; max-width:15ch; position:relative}
.cover h1 span{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent}
.cover .lede{color:var(--muted); font-size:16px; margin-top:16px; max-width:54ch; position:relative}
.cover .cmeta{display:flex; gap:26px; flex-wrap:wrap; margin-top:34px; position:relative}
.cover .cmeta .m .k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}
.cover .cmeta .m .v{font-family:"Space Grotesk"; font-weight:600; font-size:16px; margin-top:4px}
.cover .prep{position:absolute; bottom:26px; left:56px; right:56px; display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--muted); border-top:1px solid var(--border-soft); padding-top:16px}
.gradline{height:4px;border-radius:4px;background:var(--grad); width:120px}

.gloss{display:grid; grid-template-columns:1fr 1fr; gap:16px}
@media(max-width:900px){.gloss{grid-template-columns:1fr}}
.def{padding:18px}
.def h4{font-size:14.5px; display:flex; align-items:center; gap:9px; margin-bottom:8px}
.def .src{font-size:10.5px; padding:2px 8px; border-radius:6px; background:var(--surface2); color:var(--cyan-bright); border:1px solid rgba(6,182,212,.3); font-weight:600}
.def .src.ga{color:#c4b5fd; border-color:rgba(139,92,246,.35)}
.def .formula{font-family:"Space Grotesk"; font-size:13px; color:var(--text); background:var(--bg2); border:1px solid var(--border-soft); padding:8px 11px; border-radius:9px; margin:8px 0; display:inline-block}
.def p{margin:6px 0 0; color:var(--muted); font-size:12.8px}
.def p b{color:var(--text); font-weight:600}
.callout{padding:14px 16px; border-radius:12px; background:var(--grad-soft); border:1px solid var(--border); font-size:13px; display:flex; gap:11px; align-items:flex-start}
.callout .ic{color:var(--cyan-bright); font-weight:700}
.callout code{background:var(--bg2); padding:1px 6px; border-radius:5px; font-size:12px}

.note{font-size:12px; color:var(--dim); display:flex; align-items:center; gap:8px}
.legend{display:flex; gap:16px; flex-wrap:wrap; font-size:12px; color:var(--muted)}
.legend span{display:inline-flex; align-items:center; gap:6px}
.legend i{width:14px;height:3px;border-radius:2px;display:inline-block}

/* liens titre -> définition glossaire */
.glink{background:none; border:none; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer;
  text-decoration:underline; text-decoration-color:rgba(34,211,238,.45); text-underline-offset:3px; text-decoration-thickness:1.5px; transition:.15s}
.glink:hover{color:var(--cyan-bright); text-decoration-color:var(--cyan-bright)}
.glink:focus-visible{outline:2px solid var(--cyan-bright); outline-offset:2px; border-radius:4px}
.def.flash{animation:flashdef 1.8s ease-out}
@keyframes flashdef{0%{box-shadow:0 0 0 2px var(--cyan-bright), var(--shadow); background:rgba(6,182,212,.10)} 100%{box-shadow:var(--shadow); background:var(--surface)}}

/* badges priorité */
.prio{font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap}
.prio.ph{color:#fca5a5; background:rgba(239,68,68,.12)}
.prio.pm{color:#fcd34d; background:rgba(245,158,11,.12)}
.prio.pb{color:var(--muted); background:var(--surface2)}

/* filtres cliquables */
.fchip{font:inherit; font-size:12.5px; font-weight:500; color:var(--muted); background:var(--surface2);
  border:1px solid var(--border-soft); padding:6px 12px; border-radius:999px; cursor:pointer; transition:.15s}
.fchip:hover{color:var(--text); border-color:var(--border)}
.fchip.active{color:var(--text); background:var(--grad-soft); border-color:var(--border)}
.fchip:focus-visible{outline:2px solid var(--cyan-bright); outline-offset:2px}

/* boutons/chips du topbar : bien cliquables */
button.chip{cursor:pointer; font:inherit}
button.chip:hover{border-color:var(--border); color:var(--text)}
button.chip:active{transform:translateY(1px)}

@media print{
  .side{display:none}
  .app{grid-template-columns:1fr}
  .topbar{position:static; background:none; backdrop-filter:none}
  body{background:#fff; color:#0b1220}
  .card{break-inside:avoid; box-shadow:none}
}
@media(max-width:820px){
  .app{grid-template-columns:1fr}
  .side{position:static; height:auto; flex-direction:row; align-items:center; flex-wrap:wrap; gap:12px}
  .side .foot{display:none}
  .nav{flex-direction:row; flex-wrap:wrap}
  .nav a .ix{display:none}
  .grid-kpi{grid-template-columns:repeat(2,1fr)}
  .tiles{grid-template-columns:1fr}
  .content{padding:18px}
}
