  /* ===== MARCHÉ NOIR : palette nocturne (graphite, ambre sodium, rouge sang, sarcelle froide) ===== */
  .bm{--bg:#07080a; --surface:#111317; --surface-2:#0b0c0f; --border:#2a2d33; --text:#ECE6D8; --text-muted:#8C909A;
    --accent:#E0A040; --accent-strong:#F4BE5E; --accent-soft:#2A200F; --good:#4FC3A1; --good-soft:#0E241E; --bad:#D8404C; --bad-soft:#2A0E12;
    --info:#9CB6C9; --info-soft:#14171C; --buzz:#6E4A1C; --buzz-soft:#17120A; --shadow:0 10px 30px rgba(0,0,0,.6);
    position:relative; width:100%; height:100%; display:flex; flex-direction:column; color:var(--text);
    background:radial-gradient(900px 520px at 85% -12%, rgba(224,160,64,.13), transparent 60%), radial-gradient(700px 420px at -10% 110%, rgba(216,64,76,.10), transparent 60%), #07080a;}
  .bm::before{content:''; position:absolute; inset:0; pointer-events:none; opacity:.05;
    background-image:repeating-linear-gradient(0deg, #fff 0 1px, transparent 1px 3px);}
  .bm-top{display:flex; align-items:center; gap:12px; padding:12px 16px 8px; border-bottom:1px solid #1c1f24;}
  .bm-mark{width:40px; height:40px; border-radius:10px; display:grid; place-items:center; background:#16110a; border:1px solid #4a3515; font-size:1.2rem; box-shadow:0 0 18px rgba(224,160,64,.18) inset;}
  .bm-title b{display:block; font-family:var(--font-display); font-size:1.35rem; letter-spacing:.08em; color:var(--accent-strong); text-transform:uppercase;}
  .bm-title small{display:block; font-size:.72rem; color:var(--text-muted); letter-spacing:.04em;}
  .bm-close{margin-left:auto; background:none; border:1px solid #2a2d33; color:var(--text-muted); width:36px; height:36px; border-radius:10px; font-size:1.2rem;}
  .bm-close:hover{border-color:var(--accent); color:var(--accent-strong);}
  .bm-ind{display:grid; grid-template-columns:repeat(auto-fit,minmax(128px,1fr)); gap:8px; padding:10px 16px;}
  .bm-i{background:linear-gradient(180deg,#121419,#0c0d10); border:1px solid #23262c; border-radius:10px; padding:8px 10px; display:flex; flex-direction:column; gap:4px; min-width:0;}
  .bm-i span{font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); line-height:1.25; min-height:2.5em;}
  .bm-i b{font-family:var(--font-mono); font-size:1.02rem; color:var(--text);}
  .bm-i i{font-style:normal; font-size:.66rem; color:var(--text-muted);}
  .bm-i .meter-track{height:4px; background:#23262c;}
  .bm-i.cash b{color:#9BE3A8;} .bm-i.hot b{color:#FF7A7A;}
  @media (max-width:640px){
    .bm-top{padding:10px 12px 6px;} .bm-title small{display:none;} .bm-title b{font-size:1.15rem;}
    .bm-ind{display:flex; overflow-x:auto; scrollbar-width:none; padding:8px 12px; gap:6px;} .bm-ind::-webkit-scrollbar{display:none;}
    .bm-i{flex:0 0 128px; padding:6px 8px; gap:2px;} .bm-i span{min-height:0;} .bm-i b{font-size:.92rem;} .bm-i i{display:none;}
    .bm-tabs{padding:2px 12px 8px;} .bm-body{padding:12px 12px 40px;}
  }
  .bm-tabs{display:flex; gap:6px; padding:4px 16px 10px; overflow-x:auto; scrollbar-width:none; border-bottom:1px solid #1c1f24;}
  .bm-tabs::-webkit-scrollbar{display:none;}
  .bm-tabs .tab-btn{white-space:nowrap; border-color:#2a2d33;}
  .bm-tabs .tab-btn.active{background:#2A200F; color:var(--accent-strong); border-color:#7a5520;}
  .bm-body{flex:1; overflow-y:auto; padding:14px 16px 40px; display:flex; flex-direction:column; gap:12px;}
  .bm-body > *{max-width:1100px; width:100%; margin-inline:auto; flex-shrink:0;}
  .bm-sec{font-size:.7rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:8px; margin-top:4px;}
  .bm-sec::after{content:''; flex:1; height:1px; background:linear-gradient(90deg,#4a3515,transparent);}
  .bm-note{font-size:.76rem; color:var(--text-muted); line-height:1.5; margin:0;}
  .bm-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:12px;}
  .bm-empty{border:1px dashed #2a2d33; border-radius:10px; padding:16px; text-align:center; color:var(--text-muted); font-size:.8rem;}
  .bm-btn{background:#1a1509; color:var(--accent-strong); border:1px solid #6b4a1a; border-radius:9px; padding:9px 14px; font-weight:800; font-size:.8rem; letter-spacing:.03em;}
  .bm-btn:hover:not(:disabled){background:#2a200f; border-color:var(--accent);}
  .bm-btn:disabled{opacity:.35; cursor:not-allowed;}
  .bm-btn.red{background:#1e0a0c; color:#FF8A8A; border-color:#6a1d24;}
  .bm-btn.teal{background:#0c1c19; color:#7FE0C5; border-color:#1f5a4d;}
  .bm-btn.ghost{background:transparent; color:var(--text-muted); border-color:#2a2d33;}

  /* Dossier : séparation légal / clandestin */
  .bm-split{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  @media (max-width:560px){ .bm-split{grid-template-columns:1fr;} }
  .bm-side{border-radius:12px; padding:12px; display:flex; flex-direction:column; gap:6px; border:1px solid #23262c;}
  .bm-side.legal{background:linear-gradient(160deg,#1b1016,#0d0a0c); border-color:#4A1F2E;}
  .bm-side.dark{background:linear-gradient(160deg,#15120a,#0b0a07); border-color:#4a3515;}
  .bm-side h4{margin:0; font-family:var(--font-display); font-weight:400; font-size:1.05rem; letter-spacing:.04em;}
  .bm-side.legal h4{color:#E3698F;} .bm-side.dark h4{color:var(--accent-strong);}
  .bm-row{display:flex; justify-content:space-between; gap:8px; font-size:.8rem; border-bottom:1px dotted #2a2d33; padding:3px 0;}
  .bm-row span{color:var(--text-muted);} .bm-row b{font-family:var(--font-mono);}
  .bm-bridge{font-size:.74rem; color:var(--text-muted); text-align:center; padding:6px; border:1px dashed #2a2d33; border-radius:8px;}
  .bm-trial{border:1px solid #6a1d24; background:repeating-linear-gradient(135deg,#1a0a0c 0 14px,#150809 14px 28px); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:10px;}
  .bm-trial h4{margin:0; color:#FF8A8A; font-family:var(--font-display); font-weight:400; font-size:1.2rem; letter-spacing:.05em;}
  .bm-evi{height:10px; background:#2a1215; border-radius:6px; overflow:hidden; position:relative;}
  .bm-evi > i{position:absolute; inset:0 auto 0 0; background:linear-gradient(90deg,#E0A040,#D8404C);}
  .bm-evi::before,.bm-evi::after{content:''; position:absolute; top:0; bottom:0; width:2px; background:#ECE6D8; opacity:.5; z-index:1;}
  .bm-evi::before{left:40%;} .bm-evi::after{left:60%;}
  .bm-evi-leg{display:flex; justify-content:space-between; font-size:.66rem; color:var(--text-muted);}
  .bm-choices{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:8px;}
  .bm-choice{background:#0f0b0b; border:1px solid #3a1d20; border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:6px; font-size:.76rem; color:var(--text-muted);}
  .bm-choice b{color:var(--text); font-size:.86rem;}
  .bm-log{background:#0a0b0d; border:1px solid #1f2227; border-radius:10px; padding:4px 12px; max-height:320px; overflow-y:auto;}
  .bm-log div{display:grid; grid-template-columns:48px 22px 1fr; gap:6px; font-size:.76rem; padding:6px 0; border-bottom:1px solid #16181c; align-items:start;}
  .bm-log div em{font-style:normal; color:#5d616a; font-family:var(--font-mono);}
  .bm-log .pos{color:#9FD8C4;} .bm-log .neg{color:#F0A0A0;} .bm-log .neu{color:var(--text);}
  .bm-closed{display:flex; flex-wrap:wrap; gap:6px;}
  .bm-tag{font-size:.7rem; padding:4px 8px; border-radius:999px; background:#1e0a0c; color:#FF9A9A; border:1px solid #4a1a1f;}
  .bm-tag.amber{background:#1a1509; color:var(--accent-strong); border-color:#4a3515;}
  .bm-tag.teal{background:#0c1c19; color:#7FE0C5; border-color:#1f5a4d;}

  /* Opérations : dossiers confidentiels */
  .bm-folder{position:relative; background:linear-gradient(180deg,#2a2519,#1c1911); border:1px solid #4a4130; border-radius:4px 12px 12px 12px; padding:16px 14px 14px; display:flex; flex-direction:column; gap:9px; margin-top:14px; box-shadow:0 12px 24px rgba(0,0,0,.45);}
  .bm-folder-tab{position:absolute; top:-15px; left:-1px; background:#2a2519; border:1px solid #4a4130; border-bottom:none; border-radius:8px 8px 0 0; padding:3px 12px; font-size:.6rem; letter-spacing:.14em; color:#b8a883; font-family:var(--font-mono);}
  .bm-stamp{position:absolute; top:-12px; right:14px; background:#221e14; transform:rotate(-5deg); border:2px solid rgba(216,64,76,.75); color:rgba(216,64,76,.85); padding:2px 8px; font-size:.62rem; font-weight:900; letter-spacing:.2em; border-radius:4px; pointer-events:none;}
  .bm-folder.locked{filter:saturate(.35); opacity:.78;}
  .bm-folder.hl{outline:2px solid var(--accent); outline-offset:3px;}
  .bm-fhead{display:flex; gap:10px; align-items:center;}
  .bm-fhead .ico{font-size:1.5rem; width:42px; height:42px; display:grid; place-items:center; background:#14120c; border:1px solid #4a4130; border-radius:8px; flex:none;}
  .bm-fhead small{display:block; font-size:.62rem; color:#b8a883; letter-spacing:.1em; text-transform:uppercase;}
  .bm-fhead h4{margin:0; font-family:var(--font-display); font-weight:400; font-size:1.08rem; color:#F2E6C8;}
  .bm-brief{margin:0; font-size:.76rem; color:#c9bd9e; line-height:1.45;}
  .bm-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:0;}
  .bm-stats div{background:rgba(0,0,0,.28); border:1px solid rgba(74,65,48,.6); border-radius:6px; padding:5px 6px;}
  .bm-stats dt{font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; color:#9a8f73;}
  .bm-stats dd{margin:0; font-family:var(--font-mono); font-size:.84rem; color:#F2E6C8;}
  .bm-stats .lo{color:#7FE0C5;} .bm-stats .mid{color:#F4BE5E;} .bm-stats .hi{color:#FF8A8A;}
  .bm-crew{display:flex; flex-wrap:wrap; gap:5px;}
  .bm-cc{background:rgba(0,0,0,.3); border:1px solid #4a4130; color:#c9bd9e; border-radius:999px; padding:4px 9px; font-size:.7rem;}
  .bm-cc.sel{background:#3a2c10; border-color:var(--accent); color:#F4E2B8;}
  .bm-folder select{background:rgba(0,0,0,.35); border:1px solid #4a4130; color:#F2E6C8; border-radius:8px; padding:7px 9px; font:inherit; font-size:.8rem;}
  .bm-ev{font-size:.76rem; color:#c9bd9e;} .bm-ev b{font-family:var(--font-mono);}
  .bm-block{font-size:.72rem; color:#FF9A9A;}
  .bm-running{display:flex; flex-direction:column; gap:6px;}
  .bm-run{display:flex; align-items:center; gap:10px; background:#0f1013; border:1px solid #23262c; border-left:3px solid var(--accent); border-radius:8px; padding:8px 10px; font-size:.78rem;}
  .bm-run small{color:var(--text-muted); display:block;}
  .bm-run .eta{margin-left:auto; font-family:var(--font-mono); color:var(--accent-strong); white-space:nowrap;}

  /* Blanchiment */
  .bm-outlets{display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:10px;}
  .bm-out{background:linear-gradient(180deg,#131519,#0c0d10); border:1px solid #262a30; border-radius:12px; padding:12px; display:flex; flex-direction:column; gap:8px;}
  .bm-out.sealed{border-color:#6a1d24; background:repeating-linear-gradient(45deg,#140a0b 0 10px,#110809 10px 20px);}
  .bm-out-h{display:flex; align-items:center; gap:10px;}
  .bm-out-h .ico{font-size:1.3rem; width:38px; height:38px; display:grid; place-items:center; border-radius:9px; background:#1a1509; border:1px solid #4a3515;}
  .bm-out-h b{display:block; font-size:.9rem;} .bm-out-h small{color:var(--text-muted); font-size:.7rem;}
  .bm-out input[type=range]{width:100%; accent-color:#E0A040;}
  .bm-calc{font-size:.76rem; color:var(--text-muted); line-height:1.5;} .bm-calc b{font-family:var(--font-mono); color:var(--text);}
  .bm-calc .ok{color:#9BE3A8;} .bm-calc .warn{color:#FF9A9A;}

  /* Territoires : carte nocturne */
  .bm-mapwrap{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:12px; align-items:start;}
  @media (max-width:820px){ .bm-mapwrap{grid-template-columns:1fr;} }
  .bm-map{position:relative; border:1px solid #1f2227; border-radius:14px; overflow:hidden; background:#05070b;}
  .bm-map svg{display:block; width:100%; height:auto;}
  .bm-map .tz{cursor:pointer;} .bm-map .tz:hover .tz-core{opacity:.34;}
  .bm-map .blink{animation:bmBlink 2.4s ease-in-out infinite;}
  @keyframes bmBlink{0%,100%{opacity:.25;} 50%{opacity:1;}}
  .bm-tpanel{background:#0d0f12; border:1px solid #23262c; border-radius:14px; padding:12px; display:flex; flex-direction:column; gap:8px;}
  .bm-tpanel h4{margin:0; font-family:var(--font-display); font-weight:400; font-size:1.15rem; color:var(--accent-strong);}
  .bm-legend{display:flex; flex-wrap:wrap; gap:10px; font-size:.68rem; color:var(--text-muted);}
  .bm-legend i{display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; vertical-align:-1px;}

  /* Réseau : tableau d'enquête */
  .bm-board{border-radius:14px; overflow:hidden; border:1px solid #2a221a; background:#17120d;}
  .bm-board svg{display:block; width:100%; height:auto;}
  @media (max-width:640px){ .bm-board{overflow-x:auto;} .bm-board svg{width:680px; max-width:none;} }
  .bm-groups{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px;}
  .bm-g{background:#0f1013; border:1px solid #23262c; border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:6px;}
  .bm-g-h{display:flex; align-items:center; gap:8px;} .bm-g-h .ico{font-size:1.2rem;}
  .bm-g-h b{font-size:.88rem;} .bm-g-h small{display:block; font-size:.68rem; color:var(--text-muted);}
  .bm-rel{height:8px; background:#1d2025; border-radius:5px; position:relative; overflow:hidden;}
  .bm-rel::after{content:''; position:absolute; left:50%; top:0; bottom:0; width:1px; background:#5d616a;}
  .bm-rel i{position:absolute; top:0; bottom:0;}

  /* Téléphone jetable */
  .bm-phonewrap{display:grid; grid-template-columns:minmax(0,380px) minmax(0,1fr); gap:14px; align-items:start;}
  @media (max-width:760px){ .bm-phonewrap{grid-template-columns:1fr;} }
  .bm-phone{background:#0b0c0e; border:2px solid #2b2e33; border-radius:30px; padding:14px 12px 18px; box-shadow:0 20px 40px rgba(0,0,0,.6), inset 0 0 0 4px #121418; max-width:380px; width:100%; margin-inline:auto;}
  .bm-phone-top{display:flex; justify-content:space-between; font-size:.66rem; color:#7a7f88; padding:0 10px 8px; font-family:var(--font-mono);}
  .bm-phone-screen{background:#0f1a14; border-radius:18px; padding:10px; min-height:360px; display:flex; flex-direction:column; gap:10px; border:1px solid #1d2a22;}
  .bm-phone-head{text-align:center; font-size:.7rem; color:#7fa08c; letter-spacing:.1em; text-transform:uppercase; padding-bottom:6px; border-bottom:1px solid #1d2a22;}
  .bm-sms{background:#16241c; border:1px solid #243a2d; color:#d6e8dc; border-radius:14px 14px 14px 4px; padding:9px 11px; font-size:.78rem; line-height:1.45; display:flex; flex-direction:column; gap:6px;}
  .bm-sms small{color:#7fa08c; font-size:.64rem; font-family:var(--font-mono);}
  .bm-sms .tm-card{background:#0f1a14; border-color:#243a2d;}
  .bm-sms-act{display:flex; gap:6px; justify-content:flex-end;}
  .bm-contacts{display:flex; flex-direction:column; gap:6px;}
  .bm-ct{display:flex; align-items:center; gap:10px; background:#0f1013; border:1px solid #23262c; border-radius:10px; padding:8px 10px;}
  .bm-ct svg{flex:none;}
  .bm-ct b{font-size:.85rem;} .bm-ct small{display:block; color:var(--text-muted); font-size:.7rem;}

  /* Tableau de bord : panneau Marché Noir */
  .bm-dash{position:relative; display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; width:100%; text-align:left; background:linear-gradient(135deg,#0d0e11,#17120a); border:1px solid #3a2c14; border-radius:12px; padding:12px 14px; color:#ECE6D8; overflow:hidden;}
  .bm-dash::after{content:''; position:absolute; right:-40px; top:-40px; width:160px; height:160px; background:radial-gradient(circle, rgba(224,160,64,.18), transparent 70%);}
  .bm-dash:hover{border-color:#E0A040;}
  .bm-dash-stats{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:.74rem; color:#8C909A;}
  .bm-dash-stats b{color:#ECE6D8; font-family:var(--font-mono);}
  .bm-dash-cta{font-family:var(--font-display); color:#F4BE5E; font-size:1rem; letter-spacing:.05em; white-space:nowrap; z-index:1;}
  .bm-dash-warn{grid-column:1/-1; font-size:.74rem; color:#FF9A9A;}

  /* Alerte plein écran (événements imprévus) */
  #overlay-bmalert{position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center; padding:16px;
    background:radial-gradient(circle at 50% 38%, #2a070b, #000 70%);}
  #overlay-bmalert[hidden]{display:none;}
  .bma{max-width:440px; width:100%; text-align:center; display:flex; flex-direction:column; align-items:center; gap:12px; animation:bmaIn .45s cubic-bezier(.2,.9,.3,1.2);}
  @keyframes bmaIn{from{opacity:0; transform:scale(.9) translateY(10px);} to{opacity:1; transform:none;}}
  .bma .be-logo{width:min(46vw,190px);}
  .bma-badge{font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:#FF8A8A; border:1px solid #6a1d24; border-radius:999px; padding:4px 12px; background:#1a0a0c;}
  .bma-badge.amber{color:#F4BE5E; border-color:#6b4a1a; background:#1a1509;}
  .bma-ico{font-size:2.4rem; filter:drop-shadow(0 0 16px rgba(216,64,76,.6));}
  .bma h3{font-size:1.8rem; color:#FDE7EF; letter-spacing:.04em;}
  .bma p{margin:0; color:#d7c9cf; font-size:.9rem; line-height:1.5;}
  .bma-flash{position:fixed; inset:0; pointer-events:none; animation:bmaFlash 1.2s ease-out 1;}
  @keyframes bmaFlash{0%{box-shadow:inset 0 0 0 9999px rgba(216,64,76,.35);} 25%{box-shadow:inset 0 0 0 9999px rgba(40,80,200,.22);} 50%{box-shadow:inset 0 0 0 9999px rgba(216,64,76,.2);} 100%{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0);}}
  @media (prefers-reduced-motion:reduce){ .bma,.bma-flash,.bm-map .blink{animation:none;} }

  .wm{position:relative; flex:1; display:flex; flex-direction:column; min-width:0; color:#F5E6EE; font-family:var(--font-body);}
  .wm-top{display:flex; align-items:center; gap:12px; padding:10px 14px; padding-top:calc(10px + env(safe-area-inset-top,0px)); background:linear-gradient(180deg,rgba(26,13,23,.95),rgba(10,6,10,.9)); border-bottom:1px solid #2a1422; z-index:3;}
  .wm-title{display:flex; align-items:center; gap:10px; min-width:0;}
  .wm-logo{width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:radial-gradient(circle at 30% 30%,#E3698F,#6a1f3c); box-shadow:0 0 18px rgba(217,70,116,.55); font-size:1.1rem; flex-shrink:0;}
  .wm-title b{font-family:var(--font-display); font-weight:400; font-size:1.35rem; letter-spacing:.02em; display:block; line-height:1;}
  .wm-title small{color:#C987A3; font-size:.72rem; white-space:nowrap;}
  .wm-search{position:relative; margin-left:auto; width:min(280px,40vw);}
  .wm-search input{width:100%; background:#140a11; border:1px solid #3a1f2e; color:#fff; border-radius:999px; padding:8px 14px 8px 32px; font:inherit; font-size:.82rem; background-image:radial-gradient(circle at 16px 50%,transparent 5px,transparent 6px); }
  .wm-search::before{content:'⌕'; position:absolute; left:12px; top:50%; transform:translateY(-52%); color:#C987A3; font-size:1rem; pointer-events:none;}
  .wm-search input:focus{outline:none; border-color:#D94674; box-shadow:0 0 0 3px rgba(217,70,116,.25);}
  .wm-sugg{position:absolute; top:calc(100% + 6px); left:0; right:0; background:#140a11; border:1px solid #3a1f2e; border-radius:12px; overflow:hidden; box-shadow:0 12px 30px rgba(0,0,0,.6); z-index:5;}
  .wm-sugg button{display:flex; justify-content:space-between; width:100%; background:none; border:none; color:#fff; padding:9px 12px; font:inherit; font-size:.82rem; text-align:left;}
  .wm-sugg button:hover{background:#2a1422;} .wm-sugg small{color:#C987A3;}
  .wm-close{background:#1d0f18; border:1px solid #3a1f2e; color:#fff; width:36px; height:36px; border-radius:50%; font-size:1.3rem; line-height:1; flex-shrink:0;}
  .wm-stats{display:flex; gap:8px; padding:8px 14px; overflow-x:auto; scrollbar-width:none; background:rgba(10,6,10,.85); border-bottom:1px solid #1f0f19; z-index:2;}
  .wm-stats::-webkit-scrollbar{display:none;}
  .wm-stat{flex-shrink:0; display:flex; flex-direction:column; gap:1px; padding:6px 12px; border-radius:10px; background:linear-gradient(180deg,#1a0d17,#120910); border:1px solid #2a1422; min-width:92px;}
  .wm-stat span{font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; color:#C987A3; font-weight:800;}
  .wm-stat b{font-size:1.05rem; font-weight:900; font-variant-numeric:tabular-nums;} .wm-stat b em{color:#6b4a5a; font-style:normal; margin:0 2px;}
  .wm-stat small{font-size:.6rem; color:#8a6a7a;}
  .wm-days{display:flex; gap:3px; padding-top:4px;} .wm-days i{width:12px; height:8px; border-radius:3px; background:#2a1422;} .wm-days i.on{background:#D94674; box-shadow:0 0 8px rgba(217,70,116,.8);}
  .wm-filters{display:flex; gap:6px; padding:8px 14px; overflow-x:auto; scrollbar-width:none; align-items:center; z-index:2; background:rgba(10,6,10,.6);}
  .wm-filters::-webkit-scrollbar{display:none;}
  .wm-chip{flex-shrink:0; display:flex; align-items:center; gap:6px; background:#140a11; border:1px solid #2a1422; color:#E8CFDC; border-radius:999px; padding:5px 11px; font-size:.74rem; font-weight:800;}
  .wm-chip small{color:#8a6a7a; font-weight:800;} .wm-chip i{width:8px; height:8px; border-radius:50%; background:#fff;}
  .wm-chip.on{border-color:#D94674; background:#2a1422; color:#fff; box-shadow:0 0 12px rgba(217,70,116,.35);}
  .wm-chip.f-all i{background:linear-gradient(135deg,#F2C14E,#D94674,#4FE3E0);} .wm-chip.f-controlled i{background:#F2C14E;} .wm-chip.f-presence i{background:#D94674;} .wm-chip.f-available i{background:#4FE3E0;} .wm-chip.f-locked i{background:#5A5260;}
  #wm-genre{flex-shrink:0; background:#140a11; border:1px solid #2a1422; color:#E8CFDC; border-radius:999px; padding:5px 10px; font:inherit; font-size:.74rem; font-weight:800;}
  .wm-stage{position:relative; flex:1; min-height:0; overflow:hidden; touch-action:none;}
  #wm-svg{position:absolute; inset:0; width:100%; height:100%; display:block; cursor:grab; user-select:none; -webkit-user-select:none;}
  #wm-svg:active{cursor:grabbing;}
  .wm-stage::after{content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.65)), repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);}
  .wm-dots{stroke-opacity:.5; stroke-width:calc(var(--u,1) * var(--dot,1.6));}
  .wm-s{transform:scale(calc(var(--u,1) * 1.15)); transform-box:view-box; transform-origin:0 0;}
  .wm-city{cursor:pointer; transition:opacity .25s;}
  .wm-city.dim{opacity:.18;} .wm-city.clustered{display:none;}
  .wm-hit{fill:transparent;}
  .wm-city .wm-core{stroke:#0b0609; stroke-width:1.5;}
  .wm-halo{filter:url(#wm-blur); opacity:.55;}
  .wm-pulse{fill:none; stroke-width:1.5; transform-box:fill-box; transform-origin:center; animation:wmPulse 2.4s ease-out infinite;}
  @keyframes wmPulse{0%{transform:scale(.8); opacity:.9;} 100%{transform:scale(2.6); opacity:0;}}
  .st-available .wm-core{fill:#0b0609; stroke:#4FE3E0; stroke-width:2;} .st-available .wm-halo{fill:#4FE3E0; opacity:.25;} .st-available .wm-pulse{stroke:#4FE3E0; animation-duration:3.4s;}
  .st-presence .wm-core{fill:#FF5C98;} .st-presence .wm-halo{fill:#D94674;} .st-presence .wm-pulse{stroke:#FF5C98;}
  .st-controlled .wm-core{fill:#F2C14E;} .st-controlled .wm-halo{fill:#F2C14E; opacity:.6;} .st-controlled .wm-pulse{stroke:#F2C14E;}
  .wm-crown{fill:none; stroke:#F2C14E; stroke-width:1.4; stroke-dasharray:3 3.6; transform-box:fill-box; transform-origin:center; animation:wmSpin 9s linear infinite;}
  @keyframes wmSpin{to{transform:rotate(360deg);}}
  .st-locked .wm-core{fill:#2a2430; stroke:#6b6070; stroke-width:1.2;} .wm-lock-ring{fill:none; stroke:#5A5260; stroke-width:1; stroke-dasharray:2 2.5;}
  .wm-lock rect{fill:#6b6070;} .wm-lock path{stroke:#6b6070; stroke-width:1.3;}
  .wm-office{fill:#0b0609; stroke:none;}
  .wm-eq rect{fill:#F2C14E; transform-box:fill-box; transform-origin:bottom; animation:wmEq .9s ease-in-out infinite alternate;}
  .wm-eq rect:nth-child(2){animation-delay:-.3s;} .wm-eq rect:nth-child(3){animation-delay:-.6s;}
  @keyframes wmEq{0%{transform:scaleY(.25);} 100%{transform:scaleY(1);}}
  .wm-opp circle{fill:#4FE3E0;} .wm-opp text{fill:#061014; font-size:6px; font-weight:900; text-anchor:middle; font-family:var(--font-body);}
  .wm-note{fill:#E3698F; font-size:8px; opacity:0; animation:wmNote 4.2s ease-out infinite; transform-box:fill-box;}
  .wm-note.n2{animation-delay:2.1s; fill:#F2C14E;}
  @keyframes wmNote{0%{opacity:0; transform:translate(0,0);} 20%{opacity:.9;} 100%{opacity:0; transform:translate(6px,-16px);}}
  .wm-pin path{fill:#fff; filter:drop-shadow(0 0 4px rgba(217,70,116,.9));}
  .wm-pin svg{clip-path:circle(50%);}
  .wm-label text{text-anchor:middle; font-family:var(--font-body); paint-order:stroke; stroke:#07040a; stroke-width:3px; stroke-linejoin:round;}
  .wm-name{fill:#F5E6EE; font-size:10.5px; font-weight:900; letter-spacing:.02em;}
  .wm-more{fill:#C987A3; font-size:8.5px; font-weight:800;}
  .st-locked .wm-name{fill:#8a7f8e; font-weight:700;}
  .wm-city.nolabel .wm-label{display:none;}
  .wm-city.sel .wm-core{stroke:#fff; stroke-width:2.2;} .wm-city.sel .wm-name{fill:#fff; font-size:12px;}
  .wm-city.sel .wm-hit{fill:rgba(255,255,255,.06); stroke:rgba(255,255,255,.5); stroke-width:1; stroke-dasharray:3 3;}
  .wm-route-glow{fill:none; stroke:#D94674; stroke-width:7; vector-effect:non-scaling-stroke; filter:url(#wm-blur);}
  .wm-route{fill:none; stroke:#E3698F; stroke-width:1.6; vector-effect:non-scaling-stroke; stroke-linecap:round;}
  .wm-route-flow{fill:none; stroke:#fff; stroke-opacity:.7; stroke-width:1.2; vector-effect:non-scaling-stroke; stroke-dasharray:2 14; stroke-linecap:round; animation:wmFlow 1.6s linear infinite;}
  @keyframes wmFlow{to{stroke-dashoffset:-16;}}
  .wm-runner circle{fill:#fff; filter:url(#wm-glow);}
  .wm-trip{fill:none; stroke:#4FE3E0; stroke-width:1.4; vector-effect:non-scaling-stroke; stroke-dasharray:5 5; animation:wmFlow 1s linear infinite; opacity:.85;}
  .wm-trail{fill:none; stroke:#fff; stroke-width:2; vector-effect:non-scaling-stroke; stroke-dasharray:1000; stroke-dashoffset:1000; animation:wmTrail linear forwards; filter:url(#wm-glow);}
  @keyframes wmTrail{to{stroke-dashoffset:0;}}
  .wm-plane path{fill:#fff; filter:drop-shadow(0 0 3px #4FE3E0);}
  .wm-ctrl{position:absolute; right:12px; top:12px; display:flex; flex-direction:column; gap:6px; z-index:2;}
  .wm-ctrl button,.wm-regions button{background:rgba(20,10,17,.88); border:1px solid #3a1f2e; color:#fff; border-radius:10px; font-weight:900; backdrop-filter:blur(6px);}
  .wm-ctrl button{width:38px; height:38px; font-size:1.05rem;}
  .wm-ctrl button:hover,.wm-regions button:hover{border-color:#D94674; box-shadow:0 0 12px rgba(217,70,116,.4);}
  .wm-regions{position:absolute; left:12px; bottom:12px; display:flex; gap:6px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; z-index:2; max-width:calc(100% - 24px);} .wm-regions::-webkit-scrollbar{display:none;} .wm-regions button{flex:0 0 auto; white-space:nowrap;}
  .wm-regions button{padding:7px 11px; font-size:.72rem;}
  .wm-legend{position:absolute; left:12px; top:12px; z-index:2; display:flex; flex-direction:column; gap:4px; background:rgba(12,6,10,.8); border:1px solid #2a1422; border-radius:10px; padding:8px 10px; font-size:.66rem; color:#C987A3; backdrop-filter:blur(6px);}
  .wm-legend span{display:flex; align-items:center; gap:6px;} .wm-legend i{width:9px; height:9px; border-radius:50%; display:inline-block;}
  .wm-panel{position:absolute; top:0; right:0; bottom:0; width:min(380px,100%); background:linear-gradient(180deg,#160b13,#0a0509); border-left:1px solid #3a1f2e; overflow-y:auto; padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px)); z-index:4; box-shadow:-20px 0 40px rgba(0,0,0,.5); animation:wmIn .25s ease-out;}
  @keyframes wmIn{from{transform:translateX(24px); opacity:0;}}
  .wm-stage.has-panel .wm-ctrl{right:calc(min(380px,100%) + 12px);}
  @media (max-width:700px){
    .wm-panel{top:auto; left:0; width:100%; max-height:62%; border-left:none; border-top:1px solid #3a1f2e; border-radius:18px 18px 0 0; box-shadow:0 -20px 40px rgba(0,0,0,.6); animation:wmUp .25s ease-out;}
    .wm-stage.has-panel .wm-ctrl{right:12px;}
    .wm-stage.has-panel .wm-regions,.wm-stage.has-panel .wm-legend{display:none;}
    .wm-legend{display:none;}
    .wm-title > div{display:none;}
    .wm-search{width:auto; flex:1;}
    .wm-panel{max-height:56%;}
  }
  @keyframes wmUp{from{transform:translateY(30px); opacity:0;}}
  .wm-panel-close{position:absolute; top:10px; right:10px; background:#1d0f18; border:1px solid #3a1f2e; color:#fff; width:30px; height:30px; border-radius:50%; font-size:1.1rem; line-height:1;}
  .wm-ph{display:flex; align-items:center; gap:10px; padding-right:34px;}
  .wm-flag{font-size:1.9rem; line-height:1;}
  .wm-ph h3{font-size:1.5rem; line-height:1;} .wm-ph small{color:#C987A3; font-size:.72rem;}
  .wm-st{margin-left:auto; font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; padding:4px 9px; border-radius:999px; white-space:nowrap;}
  .wm-st.st-controlled{background:#3a2e10; color:#F2C14E;} .wm-st.st-presence{background:#3a1424; color:#FF8AB5;} .wm-st.st-available{background:#0f2a2a; color:#4FE3E0;} .wm-st.st-locked{background:#221e26; color:#9a8fa0;}
  .wm-tags{display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 2px;} .wm-tag{font-size:.68rem; font-weight:800; padding:3px 8px; border-radius:999px; background:#1d0f18; border:1px solid #3a1f2e; color:#E8CFDC;} .wm-tag.me{border-color:#4FE3E0; color:#4FE3E0;}
  .wm-sec{padding:12px 0; border-bottom:1px solid #22111c;}
  .wm-sec h4{font-size:.64rem; text-transform:uppercase; letter-spacing:.1em; color:#C987A3; margin:0 0 8px; display:flex; justify-content:space-between; align-items:center;}
  .wm-sec h4 small{text-transform:none; letter-spacing:0; font-weight:700; color:#8a6a7a;}
  .wm-kv{display:flex; align-items:baseline; gap:8px; margin-bottom:6px;} .wm-kv b{font-size:1.2rem; font-weight:900;} .wm-kv span{font-size:.76rem; color:#C987A3;}
  .wm-bar{height:6px; border-radius:999px; background:#22111c; overflow:hidden;} .wm-bar i{display:block; height:100%; border-radius:999px; box-shadow:0 0 10px rgba(217,70,116,.5);}
  .wm-chips{display:flex; flex-wrap:wrap; gap:5px;} .wm-chips span{font-size:.7rem; font-weight:800; padding:4px 9px; border-radius:999px; background:#1d0f18; border:1px solid #3a1f2e;}
  .wm-chips span.rival{border-color:#D94674; color:#FF8AB5;} .wm-chips span.mine{border-color:#F2C14E; color:#F2C14E;}
  .wm-affs{display:flex; flex-direction:column; gap:4px; margin-top:10px;}
  .wm-aff{display:grid; grid-template-columns:90px 1fr 36px; align-items:center; gap:8px; font-size:.72rem; color:#C987A3;}
  .wm-aff i{display:block; height:4px; border-radius:999px; background:#5a2a42;} .wm-aff b{text-align:right; color:#E8CFDC; font-size:.7rem;}
  .wm-aff.hot i{background:linear-gradient(90deg,#D94674,#F2C14E);} .wm-aff.hot span{color:#fff; font-weight:800;} .wm-aff.cold{opacity:.55;}
  .wm-line{font-size:.74rem; color:#C987A3; margin-top:6px;}
  .wm-two{display:grid; grid-template-columns:1fr 1fr; gap:12px;} .wm-two span{font-size:.68rem; color:#C987A3;} .wm-two b{display:block; font-size:1.2rem; font-weight:900; margin-bottom:4px;}
  .wm-list{display:flex; flex-direction:column; gap:6px;}
  .wm-item{display:flex; align-items:center; gap:10px; justify-content:space-between; background:#140a11; border:1px solid #22111c; border-radius:10px; padding:8px 10px;}
  .wm-item > div{display:flex; flex-direction:column; gap:2px; min-width:0;}
  .wm-item b{font-size:.8rem;} .wm-item small{font-size:.66rem; color:#9a7f8c;} .wm-item .wm-how{color:#C987A3;}
  .wm-item.live{border-color:#F2C14E; box-shadow:0 0 14px rgba(242,193,78,.2);}
  .wm-price{font-weight:900; font-size:.78rem; color:#E3698F; white-space:nowrap;}
  .wm-when{font-size:.7rem; font-weight:900; color:#C987A3; white-space:nowrap;}
  .wm-mini{flex-shrink:0; background:#D94674; border:none; color:#fff; border-radius:8px; padding:7px 10px; font-weight:900; font-size:.7rem; max-width:120px;}
  .wm-mini:disabled{background:#22111c; color:#8a6a7a; cursor:not-allowed; font-weight:700;}
  .wm-fog{font-size:.74rem; color:#8a6a7a; background:repeating-linear-gradient(45deg,#120910 0 6px,#150b12 6px 12px); border:1px dashed #3a1f2e; border-radius:10px; padding:10px;}
  .wm-hint{font-size:.68rem; color:#8a6a7a; margin-top:6px;}
  .wm-reqs{display:flex; flex-direction:column; gap:8px;} .wm-req{display:grid; grid-template-columns:1fr auto; gap:3px 8px; font-size:.74rem;} .wm-req .wm-bar{grid-column:1/-1;} .wm-req small{color:#8a6a7a; font-size:.66rem;} .wm-req.ok span{color:#3BD17A;}
  .wm-actions-sec{border-bottom:none;}
  .wm-actions{display:grid; grid-template-columns:1fr 1fr; gap:6px;}
  .wm-act{display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; background:#1a0d17; border:1px solid #3a1f2e; color:#fff; border-radius:10px; padding:9px 10px;}
  .wm-act b{font-size:.78rem;} .wm-act small{font-size:.64rem; color:#C987A3;}
  .wm-act:hover:not(:disabled){border-color:#D94674; box-shadow:0 0 12px rgba(217,70,116,.3);}
  .wm-act.primary{grid-column:1/-1; background:linear-gradient(90deg,#D94674,#a8325a); border-color:#D94674;} .wm-act.primary small{color:#ffe1ec;}
  .wm-act:disabled{opacity:.5; cursor:not-allowed;}
  @media (prefers-reduced-motion:reduce){ .wm-pulse,.wm-crown,.wm-eq rect,.wm-note,.wm-route-flow,.wm-trip,.map-preview *{animation:none!important;} }
  /* ---------- réseau musical ---------- */
  .net-panel{grid-column:1/-1;}
  .net-preview{display:grid; grid-template-columns:minmax(0,1fr); width:100%; padding:0; border:1px solid var(--border); border-radius:10px; overflow:hidden; background:radial-gradient(90% 90% at 50% 50%,#2a1022,#070407); cursor:pointer; color:var(--text); text-align:left;}
  .net-preview:hover{border-color:var(--accent);}
  .net-preview svg{display:block; width:100%; height:clamp(150px,24vw,210px);}
  .nw-warn{color:#FF8A8A; font-weight:800;}
  #nw-svg{position:absolute; inset:0; width:100%; height:100%; display:block; cursor:grab; user-select:none; -webkit-user-select:none;}
  #nw-svg:active{cursor:grabbing;}
  .nw-orbit{fill:none; stroke:#3a1f2e; stroke-width:1.2; stroke-dasharray:3 7; opacity:.7;}
  .nw-zone{fill:#6b4a5a; font-size:13px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; font-family:var(--font-body);}
  .nw-e{fill:none; stroke-linecap:round; opacity:.72; transition:opacity .2s;}
  .nw-e.loyal{stroke:#3BD17A;} .nw-e.warn{stroke:#F2C14E; stroke-dasharray:6 4;} .nw-e.danger{stroke:#FF5A5A; stroke-dasharray:4 4; animation:wmFlow 1s linear infinite;}
  .nw-e.rival{stroke:#FF5A5A; stroke-dasharray:7 5; animation:wmFlow 1.4s linear infinite;}
  .nw-e.collab{stroke:#4FE3E0;} .nw-e.hit{stroke-dasharray:10 5; animation:wmFlow .9s linear infinite;}
  .nw-e.deal{stroke:#F2C14E;} .nw-e.public{stroke:#E3698F; opacity:.45;} .nw-e.staff{stroke:#7FB2E5; opacity:.55;}
  .nw-e.trust{stroke:#D94674;} .nw-e.respect{stroke:#B0527A; opacity:.55;} .nw-e.media{stroke:#C987A3; opacity:.6;} .nw-e.member{stroke:#4a3446; opacity:.45;}
  .nw-e.off{opacity:.04;}
  #nw-svg.focus .nw-e:not(.hl){opacity:.05;} #nw-svg.focus .nw-node:not(.hl){opacity:.28;}
  .nw-e.hl{opacity:1; filter:url(#nw-glow);}
  .nw-node{cursor:pointer; transition:opacity .2s;}
  .nw-node:hover .nw-edge-ring{stroke:#E3698F; stroke-width:2.5;}
  .nw-edge-ring{fill:none; stroke:#07040a; stroke-width:2;}
  .nw-node.sel .nw-edge-ring{stroke:#fff; stroke-width:3;}
  .k-me .nw-edge-ring{stroke:#F2C14E; stroke-width:3.5; filter:drop-shadow(0 0 8px rgba(242,193,78,.7));}
  .nw-node.foreign{opacity:.7;}
  .nw-loy{fill:none; stroke-width:3.2; stroke-linecap:round;}
  .nw-rivring{fill:none; stroke:#FF5A5A; stroke-width:2; stroke-dasharray:3 3;}
  .nw-name{fill:#F5E6EE; font-size:11px; font-weight:800; text-anchor:middle; paint-order:stroke; stroke:#07040a; stroke-width:3px; font-family:var(--font-body);}
  .k-npc .nw-name{font-size:9px; fill:#C987A3; font-weight:700;} .k-me .nw-name{font-size:13px; fill:#F2C14E;}
  .nw-ic{text-anchor:middle;} .nw-init{fill:#fff; font-weight:900; text-anchor:middle; font-family:var(--font-body);} .nw-init.dark{fill:#111;}
  .nw-alert circle{fill:#FF5A5A; animation:mmPulse 1.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center;} .nw-alert text{fill:#fff; font-size:10px; font-weight:900; text-anchor:middle;}
  .nw-ph-av{flex-shrink:0;} .nw-ph-av svg{display:block;}
  .nw-meter{margin-bottom:8px;} .nw-meter > div:first-child{display:flex; justify-content:space-between; font-size:.74rem; color:#C987A3; margin-bottom:3px;} .nw-meter b{color:#fff;}
  .nw-meter small{display:block; font-size:.66rem; color:#8a6a7a; margin-top:3px;}
  .nw-hist{display:flex; flex-direction:column; gap:4px; font-size:.72rem;} .nw-hist span{display:inline-block; min-width:34px; color:#D94674; font-weight:900;} .nw-hist em{color:#8a6a7a; font-style:normal;}
  .wm-stat.warn{border-color:#FF5A5A;} .wm-stat.warn b{color:#FF8A8A;}
  .loy-chip{font-size:.62rem; font-weight:900; padding:2px 7px; border-radius:999px; white-space:nowrap; cursor:pointer; border:none;}
  .loy-chip.ok{background:#173a26; color:#8ee6ae;} .loy-chip.mid{background:#3a2e10; color:#F2C14E;} .loy-chip.bad{background:#3a1a22; color:#ff9aa9;}
  /* ---------- salle des trophées ---------- */
  .tr-panel-dash{grid-column:1/-1;}
  .tr-preview svg{display:block; width:100%; height:clamp(110px,20vw,160px);}
  #tr-stage{display:flex; flex-direction:column; overflow:hidden; touch-action:auto;}
  #tr-stage.has-panel #tr-body{padding-right:min(380px,100%);}
  @media (max-width:700px){ #tr-stage.has-panel #tr-body{padding-right:0; padding-bottom:56vh; padding-bottom:56dvh;} }
  #tr-body{flex:1; overflow-y:auto; padding:10px 14px 30px;}
  .tr-sep{width:1px; align-self:stretch; background:#3a1f2e; margin:0 4px; flex-shrink:0;}
  .wm-chip.locked{opacity:.55;}
  .tr-roombar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:space-between; font-size:.78rem; color:#C987A3; margin-bottom:8px;}
  .tr-moving{color:#4FE3E0;} .tr-moving button{background:none; border:none; color:#fff; text-decoration:underline; font:inherit; cursor:pointer;}
  .tr-scroll{overflow-x:auto; overflow-y:hidden; border-radius:14px; border:1px solid #2a1422; background:#050305; cursor:grab; scrollbar-width:thin; -webkit-overflow-scrolling:touch;}
  .tr-scroll:active{cursor:grabbing;}
  .tr-room-svg{display:block; height:min(560px,62vh); height:min(560px,62dvh); width:auto; max-width:none; user-select:none;}
  .tr-roomtitle{fill:rgba(242,193,78,.55); font-family:var(--font-display); font-size:24px; letter-spacing:.22em;}
  .tr-cap{fill:#E8CFDC; font-size:10px; font-weight:800; font-family:var(--font-body);} .tr-cap.plaque{font-size:8.5px;} .tr-cap.small{font-size:8.5px; fill:#C987A3;}
  .tr-empty{fill:rgba(255,255,255,.18); font-size:26px; font-weight:900; font-family:var(--font-body);} .tr-empty.big{font-size:12px; letter-spacing:.1em; text-transform:uppercase;}
  .tr-slot{cursor:pointer;}
  .tr-slot.empty:hover rect, .tr-slot.empty:hover ellipse{stroke:#D94674;}
  .tr-slot.sel{filter:drop-shadow(0 0 10px rgba(255,255,255,.35));}
  .tr-slot.drop > rect:first-of-type, .tr-slot.drop ellipse{stroke:#4FE3E0 !important; stroke-width:3;}
  .tr-slot.drop{animation:trDrop 1s ease-in-out infinite alternate;}
  @keyframes trDrop{to{opacity:.7;}}
  .tr-slot.is-new .tr-lit{animation:trLightOn 1.6s ease-out both;}
  @keyframes trLightOn{0%{opacity:0;} 30%{opacity:.9;} 40%{opacity:.2;} 55%{opacity:1;} 100%{}}
  .tr-slot.is-new{animation:trPop .8s .4s cubic-bezier(.3,1.6,.5,1) both;}
  @keyframes trPop{from{opacity:0;}}
  .tr-rays{animation:wmSpin 24s linear infinite; transform-box:fill-box; transform-origin:center;}
  .tr-spark{animation:mmPulse 1.6s ease-in-out infinite; transform-box:fill-box; transform-origin:center;}
  .tr-bulb{filter:drop-shadow(0 0 4px #fff3c4);}
  .tr-reserve{margin-top:12px;} .tr-reserve h4{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:#C987A3; margin:0 0 6px;}
  .tr-pick{display:flex; flex-wrap:wrap; gap:6px;}
  .tr-pick-item{display:flex; align-items:center; gap:6px; background:#140a11; border:1px solid #2a1422; border-radius:10px; padding:4px 10px 4px 4px; color:#E8CFDC; font-size:.72rem; font-weight:800; cursor:pointer; max-width:260px; text-align:left;}
  .tr-pick-item:hover{border-color:#D94674;}
  .tr-locked{max-width:460px; margin:60px auto; text-align:center; color:#E8CFDC;} .tr-lock-ic{font-size:3rem; opacity:.6;} .tr-locked h3{font-size:1.8rem; margin:8px 0;} .tr-locked p{color:#C987A3; font-size:.85rem;}
  .tr-detail-art{display:grid; place-items:center; margin:8px 0 4px; border-radius:14px; background:radial-gradient(circle at 50% 70%,rgba(255,216,154,.18),transparent 65%);}
  .tr-detail-art.r-legendary{background:radial-gradient(circle at 50% 70%,rgba(127,232,255,.28),transparent 65%);}
  .tr-rar{font-size:.62rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; text-align:center;}
  .r-common.tr-rar,.tr-rar.r-common{color:#D9A066;} .tr-rar.r-rare{color:#c3cad2;} .tr-rar.r-epic{color:#F2C14E;} .tr-rar.r-legendary{color:#7fe8ff;}
  .tr-dname{font-size:1.4rem; text-align:center; margin:4px 0 6px; padding-right:0;}
  .tr-kv{display:flex; justify-content:space-between; gap:12px; font-size:.76rem; padding:4px 0; border-bottom:1px dashed #22111c;} .tr-kv span{color:#C987A3;} .tr-kv b{text-align:right;}
  .tr-ctx{font-size:.74rem; color:#E8CFDC; background:#140a11; border-radius:8px; padding:8px; margin:6px 0;}
  .tr-decor{display:grid; grid-template-columns:1fr 1fr; gap:6px;}
  .tr-deco{background:#1a0d17; border:1px solid #3a1f2e; color:#fff; border-radius:10px; padding:8px; text-align:left; display:flex; flex-direction:column; gap:2px; cursor:pointer;} .tr-deco b{font-size:.76rem;} .tr-deco small{font-size:.64rem; color:#C987A3;}
  .tr-deco.on{border-color:#F2C14E;} .tr-deco:disabled{cursor:default;} .tr-deco:disabled:not(.on){opacity:.5;}
  .tr-cat section{margin-bottom:18px;} .tr-cat h4{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#C987A3; margin:0 0 8px;} .tr-cat h4 small{color:#8a6a7a;}
  .tr-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px;}
  .tr-card{display:flex; flex-direction:column; align-items:center; gap:3px; background:linear-gradient(180deg,#1a0d17,#0f080d); border:1px solid #2a1422; border-radius:12px; padding:10px 8px; color:#fff; text-align:center; cursor:pointer;}
  .tr-card b{font-size:.74rem;} .tr-card small{font-size:.66rem; color:#C987A3;} .tr-card em{font-size:.62rem; color:#8a6a7a; font-style:normal;}
  .tr-card.r-epic{border-color:#6b5320;} .tr-card.r-legendary{border-color:#3a8fb8; box-shadow:0 0 16px rgba(127,232,255,.18);}
  .tr-card:hover{border-color:#D94674;}
  .tr-records{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; margin-top:12px;}
  .tr-rec{display:flex; gap:10px; align-items:center; background:#07110f; border:1px solid #1b3a33; border-radius:10px; padding:10px; font-family:var(--font-body);}
  .tr-rec-ic{font-size:1.4rem;} .tr-rec small{display:block; font-size:.62rem; color:#7fb8a8; text-transform:uppercase; letter-spacing:.08em;} .tr-rec b{display:block; color:#8ef0cf; font-size:1.05rem; font-variant-numeric:tabular-nums; text-shadow:0 0 8px rgba(142,240,207,.4);} .tr-rec em{font-size:.62rem; color:#6a8a80; font-style:normal;}
  .tr-noms{display:flex; flex-direction:column; gap:5px; font-size:.76rem; color:#E8CFDC;} .tr-noms em{color:#8a6a7a; font-style:normal;}
  .tr-cfilters{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px;}
  .tr-year h4{font-family:var(--font-display); font-weight:400; font-size:1.3rem; color:#F2C14E; margin:14px 0 6px;}
  .tr-evt{display:flex; gap:10px; align-items:baseline; padding:6px 0; border-bottom:1px solid #1a0d17; font-size:.8rem; color:#E8CFDC;}
  .tr-evt-ic{width:22px; text-align:center;} .tr-evt-w{color:#D94674; font-weight:900; font-size:.7rem; min-width:34px;}
  .tr-evt.k-recompense{color:#FFE9A0;} .tr-evt.k-nomination{color:#C987A3;}
  /* célébration */
  #overlay-trcele{position:fixed; inset:0; z-index:70; display:grid; place-items:center; background:radial-gradient(circle at 50% 45%,rgba(60,20,40,.92),rgba(0,0,0,.96)); animation:trFade .3s ease-out;}
  @keyframes trFade{from{opacity:0;}}
  .trc{position:relative; text-align:center; color:#fff; padding:20px; max-width:520px; width:100%;}
  .trc-rays{position:absolute; left:50%; top:38%; width:900px; height:900px; margin:-450px 0 0 -450px; background:repeating-conic-gradient(from 0deg,rgba(255,216,154,.13) 0 8deg,transparent 8deg 22deg); border-radius:50%; animation:wmSpin 30s linear infinite; pointer-events:none; mask:radial-gradient(circle,#000 20%,transparent 65%); -webkit-mask:radial-gradient(circle,#000 20%,transparent 65%);}
  .trc.r-legendary .trc-rays{background:repeating-conic-gradient(from 0deg,rgba(127,232,255,.18) 0 8deg,transparent 8deg 22deg);}
  .trc-kicker{position:relative; font-family:var(--font-display); font-size:2.2rem; color:#F2C14E; text-shadow:0 0 24px rgba(242,193,78,.6); animation:trKick .6s cubic-bezier(.3,1.6,.5,1) both;}
  @keyframes trKick{from{transform:scale(.4); opacity:0;}}
  .trc-case{position:relative; width:250px; height:260px; margin:10px auto 6px;}
  .trc-light{position:absolute; left:50%; top:-40px; width:220px; height:300px; margin-left:-110px; background:linear-gradient(180deg,rgba(255,216,154,.55),transparent); clip-path:polygon(42% 0,58% 0,100% 100%,0 100%); animation:trLightOn 1.6s .3s ease-out both;}
  .trc-art{position:relative; display:grid; place-items:end center; height:100%; animation:trRise 1s .5s cubic-bezier(.2,1.4,.4,1) both;}
  @keyframes trRise{from{transform:translateY(40px) scale(.3); opacity:0;}}
  .trc-glass{position:absolute; inset:10px 20px 0; border:1.5px solid rgba(255,255,255,.3); background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.02) 45%,rgba(255,255,255,.08) 55%,rgba(255,255,255,.02)); border-radius:6px; animation:trFade .8s 1s both;}
  .trc-rar{position:relative; font-size:.7rem; font-weight:900; letter-spacing:.2em; text-transform:uppercase; color:#C987A3;}
  .trc h2{position:relative; font-size:1.8rem; margin:6px 0;} .trc p{position:relative; color:#E8CFDC; font-size:.9rem; margin:0 0 16px;}
  .trc-btns{position:relative; display:flex; gap:10px; justify-content:center; flex-wrap:wrap;}
  .trc-conf{position:absolute; inset:-40px 0 0; pointer-events:none; overflow:hidden;}
  .trc-conf i{position:absolute; top:-10px; width:7px; height:12px; border-radius:2px; animation:trConf 2.6s ease-in both;}
  @keyframes trConf{0%{transform:translateY(0) rotate(0); opacity:1;} 100%{transform:translateY(720px) rotate(540deg); opacity:0;}}
  @media (prefers-reduced-motion:reduce){ .trc-rays,.tr-rays,.trc-conf i{animation:none!important;} }

  /* ---------- logo officiel (fichier fourni, non modifié : seuls taille et placement varient) ---------- */
  .be-logo{display:block; background:url(../assets/images/logo-boss-empire.webp) center/contain no-repeat; aspect-ratio:1/1; flex-shrink:0;}
  .be-logo.sm{background-image:url(../assets/images/logo-boss-empire-petit.webp);}
  .sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
  .start-hero{display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;}
  .start-hero .be-logo{width:clamp(180px,52vw,300px);}
  .start-hero p{margin-inline:auto;}
  .topbar-logo{width:44px;}
  @media (max-width:420px){ .topbar-logo{width:38px;} }
  .settings-logo{width:64px;}
  .go-logo{width:112px; margin:0 auto 4px;}
  #boot-splash{position:fixed; inset:0; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; background:#000; transition:opacity .45s ease;}
  #boot-splash .be-logo{width:min(58vw,300px);}
  #boot-splash .boot-bar{width:min(46vw,220px); height:3px; border-radius:3px; background:#2a1422; overflow:hidden;}
  #boot-splash .boot-bar i{display:block; height:100%; width:40%; background:var(--accent); border-radius:3px; animation:bootBar 1s ease-in-out infinite;}
  @keyframes bootBar{0%{transform:translateX(-100%);} 100%{transform:translateX(250%);}}
  #boot-splash.out{opacity:0; pointer-events:none;}
  @media (prefers-reduced-motion:reduce){ #boot-splash .boot-bar i{animation:none; width:100%;} }
