@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/poppins-400.woff2') format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/poppins-500.woff2') format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/poppins-600.woff2') format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/poppins-700.woff2') format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/poppins-800.woff2') format('woff2')}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Poppins',ui-sans-serif,system-ui,'Segoe UI',Roboto,sans-serif;
  background:#f6f7f8;color:#1b2226;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #1DB792;outline-offset:2px;border-radius:4px}
/* Flèche de liste déroulante verte — classe réutilisable pour tout <select> du site */
select.sel-arr{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%231DB792' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:30px!important}
.num{font-variant-numeric:tabular-nums}
.up{color:#1DB792}.down{color:#F02352}.sec{color:#6d767b}.gr{color:#1DB792}
.dotbadge{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10px;flex:none}
.b-up{background:#1DB792}.b-down{background:#F02352}
.tag{font:700 10px 'Poppins';color:#fff;background:#2B3438;border-radius:7px;padding:3px 8px;letter-spacing:.03em;display:inline-block}
.card{background:#ffffff;border:1px solid #eceef0;border-radius:16px;box-shadow:0 4px 18px rgba(43,52,56,.07)}
.topbar{background:#2B3438;color:#fff}
.topbar .in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:14px 20px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:30px;width:auto;display:block}
.brand .wm{font-weight:800;font-size:20px;letter-spacing:-.5px;color:#fff}
.brand .tl{font-size:12px;color:#aeb7bc;font-weight:500;margin-left:6px;border-left:1px solid #47535a;padding-left:14px;white-space:nowrap}
.topnav{margin-left:auto;margin-right:auto;display:flex;gap:22px;font-size:13.5px;font-weight:500;color:#d4dadd}
.topnav a:hover{color:#fff}
/* Triangle du menu : glyphe/couleur alignes sur web_layout.caret() (CSS pur ici, pas de composant Python possible). */
.topnav .drop::after{content:' ▾';color:#1DB792}
.topnav .grp{position:relative;display:flex;align-items:center}
.topnav .drop{cursor:pointer;color:#d4dadd;user-select:none}
.topnav .grp:hover .drop,.topnav .grp:focus-within .drop{color:#fff}
.topnav .submenu{position:absolute;top:100%;left:0;margin-top:9px;background:#222a2e;border:1px solid #3a454b;border-radius:12px;padding:6px;min-width:194px;display:none;flex-direction:column;gap:2px;box-shadow:0 14px 34px rgba(0,0,0,.34);z-index:60}
.topnav .submenu::before{content:'';position:absolute;top:-9px;left:0;right:0;height:9px}
.topnav .grp:hover .submenu,.topnav .grp:focus-within .submenu{display:flex}
.topnav .submenu a{padding:9px 12px;border-radius:8px;color:#d4dadd;white-space:nowrap}
.topnav .submenu a:hover{background:rgba(255,255,255,.09);color:#fff}
.topbar .account{background:#1DB792;color:#fff;border:none;padding:5px 13px;border-radius:999px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;line-height:1.3;white-space:nowrap}
.topbar .account:hover{background:#159c7d;color:#fff}
.topbar .support{background:#1DB792;color:#fff;padding:5px 13px;border-radius:999px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:5px;line-height:1.3;white-space:nowrap}
.topbar .support:hover{background:#159c7d;color:#fff}
.topbar .community{background:#25D366;color:#fff;width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.topbar .community:hover{background:#1da851;color:#fff}
.topbar .community-fb{background:#1877F2}
.topbar .community-fb:hover{background:#1464d8}
.topbar .community svg{width:17px;height:17px;flex:none}
.ticker{background:#ffffff;border-bottom:1px solid #e5e7e9}
.ticker .in{max-width:1180px;margin:0 auto;display:flex}
.ix{flex:1 1 0;min-width:0;padding:9px 16px;border-left:1px solid #e5e7e9}
.ix:first-child{border-left:none}
.ix-n{font-size:10px;font-weight:600;color:#2B3438;text-transform:uppercase;letter-spacing:.01em;line-height:1.2;min-height:24px;text-align:center}
.ix-r{display:flex;align-items:baseline;gap:7px;margin-top:3px;white-space:nowrap;justify-content:center}
.ix-v{font-weight:700;font-size:13px;color:#2B3438;font-variant-numeric:tabular-nums}
.ix-c{font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}
.tk{display:inline-flex;align-items:center;gap:7px;border:1px solid #e5e7e9;border-radius:999px;padding:5px 6px 5px 12px;font-size:12px;font-weight:600;flex:none;white-space:nowrap;text-decoration:none}
.tk b{font-weight:700;color:#2B3438}
@media(max-width:560px){
  .ticker .in{overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ticker .in::-webkit-scrollbar{display:none}
  .ix{flex:0 0 128px;padding:10px 12px;scroll-snap-align:start}
  .ix-n{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0}
  .ix-r{gap:6px;flex-wrap:nowrap}
  .ix-v{font-size:12px}.ix-c{font-size:11px}
}
.idxfull{overflow-x:auto}
.idxcards{display:none;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:2px}
/* Hors Desktop (<1024px) : les tableaux d'indices deviennent des cartes */
@media(max-width:1023px){.idxfull{display:none}.idxcards{display:grid}}
@media(max-width:560px){.divtbl th:nth-child(4),.divtbl td:nth-child(4),.divtbl th:nth-child(5),.divtbl td:nth-child(5){display:none}}
/* Fiche action, tableau des seances : masque Ouv.(2), +Haut(4), +Bas(5) sur mobile
   -> garde Seance/Clot./Volume/Var. sans scroll horizontal */
@media(max-width:560px){.sesstbl th:nth-child(2),.sesstbl td:nth-child(2),.sesstbl th:nth-child(4),.sesstbl td:nth-child(4),.sesstbl th:nth-child(5),.sesstbl td:nth-child(5){display:none}}
.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 64px}
h2{font-size:21px;font-weight:800;letter-spacing:-.4px;color:#2B3438}
.pub{background:#E5E5E5;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#9aa4a9;min-height:150px}
.pub-label{font-weight:700;letter-spacing:.15em;font-size:14px}
.pub-dim{font-size:11px;font-weight:600;color:#aeb6ba}
.pub-ad{overflow:hidden;padding:0;text-decoration:none}
.pub-ad img{border-radius:inherit}
/* Annonce maison (espace pub non vendu) : occupe l'espace au lieu de le
   montrer vide. .maison-wa : carte communaute WhatsApp ; un article/video
   maison reutilise directement .artcard (meme carte que /news). */
.pub-maison{padding:0;background:transparent;overflow:hidden}
.maison-wa{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:7px;height:100%;width:100%;text-align:center;text-decoration:none;color:#fff;
  padding:14px;background:linear-gradient(135deg,#25D366,#128C7E);border-radius:16px}
.maison-wa-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center}
.maison-wa-ic svg{width:20px;height:20px;display:block}
.maison-wa-tt{font-size:13.5px;font-weight:800;line-height:1.3}
.maison-wa-sub{font-size:11px;opacity:.9}
/* Page article : colonne de lecture (max 820) + rail publicitaire vertical a
   droite, pour que la page occupe la meme largeur (1180) que les autres. */
.art-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start}
.art-main{max-width:820px;min-width:0}
.art-rail{position:sticky;top:20px}
@media(max-width:980px){
  .art-layout{grid-template-columns:1fr}
  .art-rail{position:static;max-width:820px}
  .art-rail .pub{min-height:200px!important}
}
/* Carrousel d'images (page article) : scroll-snap tactile + fleches + points. */
.gal{position:relative;margin:8px 0 20px}
.gal-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;border-radius:16px;scrollbar-width:none;-ms-overflow-style:none}
.gal-rail::-webkit-scrollbar{display:none}
.gal-rail img{flex:0 0 100%;width:100%;height:min(60vh,460px);object-fit:cover;scroll-snap-align:center;display:block;background:#eef1f2}
.gal-nav{position:absolute;top:calc(50% - 19px);width:38px;height:38px;border-radius:50%;border:none;background:rgba(17,24,30,.55);color:#fff;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.gal-nav:hover{background:rgba(17,24,30,.8)}
.gal-prev{left:10px}.gal-next{right:10px}
.gal-count{position:absolute;top:12px;right:12px;background:rgba(17,24,30,.6);color:#fff;font:700 11px 'Poppins';padding:3px 9px;border-radius:999px}
.gal-dots{display:flex;gap:6px;justify-content:center;margin-top:10px}
.gal-dot{width:7px;height:7px;border-radius:50%;background:#e5e7e9;border:none;padding:0;cursor:pointer;transition:all .2s}
.gal-dot.on{background:#1DB792;width:18px;border-radius:4px}
@media(max-width:600px){.gal-nav{display:none}}
/* Mobile : le meme visuel est mis a l'echelle sur la largeur, sans recadrage
   (desktop inchange). Le slot suit la hauteur de l'image ; placeholder garde sa place. */
@media(max-width:760px){
  .pub{height:auto!important}
  .pub-ad{min-height:0}
  .pub-ad img{height:auto!important;object-fit:contain}
}
.vtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#e5e7e9;border:1px solid #e5e7e9;border-radius:14px;overflow:hidden}
.vt{background:#f6f7f8;padding:13px 16px;text-align:center}
.vt-l{font-size:10.5px;color:#6d767b;font-weight:600;text-transform:uppercase;letter-spacing:.02em}
.vt-v{font-size:17px;font-weight:800;margin-top:5px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
@media(max-width:600px){.topbar .tl{display:none}.wrap{padding:20px 14px 52px}h2{font-size:18px}
  #pers button,#pltabs button,#plper button,#mktabs button,#mmtabs button,#vvtabs button{min-height:40px}}
/* Ligne de statut du marche : la clause ne se coupe jamais en deux (« non- / responsabilite ») ;
   sur telephone elle passe en entier sur sa propre ligne. */
.msl-clause{white-space:nowrap}
/* Fiches : valeurs d'indicateurs sur une ligne (« 43 850 / 44 009 » ne se coupe plus). */
.ind-val{white-space:nowrap}
@media(max-width:600px){
  .msl-sep{display:none}
  .msl-clause{display:block;margin-top:4px}
  .ind-t td{padding-top:8px!important;padding-bottom:8px!important}
}
.navtoggle{display:none;background:transparent;border:none;color:#fff;font-size:23px;line-height:1;cursor:pointer;padding:6px 9px;border-radius:9px}
.navtoggle:hover{background:rgba(255,255,255,.10)}
.navsocial{display:none}
.bourse-sel{display:inline-flex;align-items:center;gap:2px;background:#ffffff;border:1px solid #eceef0;border-radius:999px;padding:4px;cursor:pointer;user-select:none}
.bourse-sel-item{display:inline-flex;align-items:center;padding:7px 15px;border-radius:999px;font:600 12.5px 'Poppins';color:#606060;white-space:nowrap;transition:background .15s}
.bourse-sel-item.on{background:#1DB792;color:#fff}
.deskgate{display:none}
/* Hors Desktop (<1024px) : nav repliee en accordeon + pages avancees gatees */
@media(max-width:1023px){
  .topbar .in{flex-wrap:wrap}
  .brand{margin-right:auto}
  .topbar .in{flex-wrap:wrap;gap:10px;padding:10px 14px}
  .navtoggle{display:inline-flex;align-items:center;justify-content:center;order:4;min-width:44px;min-height:44px;padding:0}
  .topbar .in > .community{display:none}
  .topbar .support{order:2}
  .topbar .account{min-height:40px;padding:0 16px}
  .navsocial{display:flex;gap:12px;padding:16px 4px 8px;border-top:1px solid #3a454b}
  .topnav .navsocial a.community{width:44px;height:44px;padding:0;border:none;opacity:1}
  .topnav .navsocial a.community svg{width:22px;height:22px}
  .topnav{order:5;flex-basis:100%;display:none;flex-direction:column;gap:0;margin:6px 0 0;font-size:15px}
  .topbar.navopen .topnav{display:flex}
  .topnav a{padding:13px 4px;border-top:1px solid #3a454b;color:#e7ebed}
  .topnav a.gated{opacity:.42}
  /* En accordeon, les groupes sont deplies : sous-menus a plat, indentes. */
  .topnav .grp{flex-direction:column;align-items:stretch;width:100%}
  .topnav .drop{padding:13px 4px;border-top:1px solid #3a454b;color:#e7ebed;font-weight:600}
  .topnav .drop::after{content:''}
  .topnav .submenu{position:static;display:flex;margin:0;padding:0 0 0 16px;background:transparent;border:none;box-shadow:none;min-width:0}
  .topnav .submenu::before{display:none}
  .topnav .submenu a{border-top:1px solid #3a454b;padding:12px 4px;border-radius:0}
  .topbar .account{order:3}
  .deskgate{display:block}
  .deskgate + .wrap{display:none}
}

.gf-wrap{position:relative;width:min(560px,100%);margin:0 auto}
.gf-search{display:flex;align-items:center;gap:11px;background:#ffffff;border:1.5px solid #e5e7e9;
  border-radius:999px;padding:12px 20px;box-shadow:0 1px 2px rgba(43,52,56,.05)}
.gf-search:focus-within{border-color:#1DB792;box-shadow:0 0 0 3px #d2efe7}
.gf-search input{flex:1;background:transparent;border:none;outline:none;color:#1b2226;font:500 14px 'Poppins';min-width:0}
.gf-search input::placeholder{color:#BBC3C9}
.gf-panel{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;background:#ffffff;
  border:1px solid #e5e7e9;border-radius:18px;box-shadow:0 12px 34px rgba(43,52,56,.14);padding:10px;z-index:60}
.gf-panel.show{display:block}
.gf-tabs{display:flex;gap:6px;padding:2px 6px 10px}
.gf-tab{border:none;background:transparent;color:#6d767b;font:600 12.5px 'Poppins';padding:6px 15px;border-radius:999px;cursor:pointer}
.gf-tab.on{background:#1DB792;color:#fff}
.gf-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 10px;cursor:pointer;border-radius:12px;border-bottom:1px solid #eceef0}
.gf-item:last-child{border-bottom:none}
.gf-item:hover,.gf-item.on{background:#f6f7f8}
.gf-il{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.gf-in{font:500 13px 'Poppins';color:#2B3438;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.gf-tag{flex:none;font:700 9.5px 'Poppins';color:#fff;background:#2B3438;border-radius:6px;padding:2px 8px;letter-spacing:.04em}
.gf-ir{display:flex;align-items:center;gap:10px;white-space:nowrap;flex:none}
.gf-irp{font:700 13px 'Poppins';color:#2B3438;font-variant-numeric:tabular-nums}
.gf-irp small{font-size:10px;color:#6d767b;font-weight:600}
.gf-irv{font:600 12px 'Poppins';font-variant-numeric:tabular-nums;min-width:52px;text-align:right}
.gf-badge{width:24px;height:24px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;flex:none}
.gf-empty{padding:16px 10px;color:#6d767b;font:500 13px 'Poppins'}
@media(max-width:600px){
  .gf-search input{font-size:16px}
  .gf-panel{max-height:50vh;overflow-y:auto}
}
