:root{
  --bg:#04131f;
  --panel:#071c2a;
  --panel2:#0a2231;
  --line:rgba(149,205,218,.18);
  --text:#f6f2e9;
  --muted:#8da4ae;
  --teal:#31d1cf;
  --orange:#f58a4b;
  --topbar:56px;
  --footer-main:68px;
  --footer-legal:25px;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--text)}
body{overflow:hidden;font-family:Georgia,"Times New Roman",serif}
a,button{font:inherit}
button{cursor:pointer}
.memberApp{height:100dvh;overflow:hidden;background:radial-gradient(circle at 74% 8%,rgba(245,138,75,.10),transparent 23%),radial-gradient(circle at 14% 18%,rgba(49,209,207,.07),transparent 24%),var(--bg)}

/* Barre supérieure très fine : trois liens, logo central chevauchant, trois liens. */
.memberTopbar{height:var(--topbar);position:fixed;inset:0 0 auto;z-index:50;display:grid;grid-template-columns:minmax(0,1fr) 104px minmax(0,1fr);align-items:center;padding:0 clamp(16px,2.2vw,42px);border-bottom:1px solid var(--line);background:rgba(3,14,23,.96);backdrop-filter:blur(14px)}
.memberNavGroup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(8px,1.2vw,22px)}
.memberNavLeft{text-align:left}.memberNavRight{text-align:right}
.memberNavGroup a{min-width:0;color:rgba(239,244,241,.70);text-decoration:none;font-family:Georgia,"Times New Roman",serif;font-size:clamp(10px,.72vw,13px);font-weight:400;line-height:1.1;white-space:nowrap;transition:color .18s ease}
.memberNavGroup a:hover,.memberNavGroup a.isActive{color:#fff}
.memberBrand{position:absolute;left:50%;top:7px;z-index:55;transform:translateX(-50%);width:78px;height:78px;display:grid;place-items:center;border-radius:50%;text-decoration:none;filter:drop-shadow(0 12px 19px rgba(0,0,0,.45))}
.memberBrand:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:radial-gradient(circle,rgba(245,138,75,.24),transparent 67%)}
.memberBrand img{position:relative;width:100%;height:100%;object-fit:contain}

/* Cœur de page sans scroll. */
.memberLayout{position:fixed;top:var(--topbar);bottom:calc(var(--footer-main) + var(--footer-legal));left:0;right:0;display:grid;grid-template-columns:clamp(190px,16vw,300px) minmax(0,1fr) clamp(310px,20vw,390px);gap:14px;padding:22px 14px 14px;overflow:hidden}
.memberSidePanel,.memberWelcome,.memberProfile,.memberMapCard{border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,rgba(10,34,49,.96),rgba(4,20,31,.99));box-shadow:0 20px 48px rgba(0,0,0,.18)}
.memberSidePanel{min-width:0;padding:clamp(18px,1.8vw,30px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;position:relative}
.memberSidePanel:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(49,209,207,.04),transparent 38%),radial-gradient(circle at 50% 20%,rgba(49,209,207,.09),transparent 36%);pointer-events:none}
.panelEyebrow,.memberEyebrow{position:relative;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:9px;font-weight:700;letter-spacing:.19em}
.memberSidePanel h2{position:relative;margin:14px 0 12px;font-size:clamp(24px,2vw,37px);font-weight:400;line-height:1.08}.memberSidePanel p{position:relative;margin:0;color:var(--muted);font-family:"Segoe UI",Arial,sans-serif;font-size:12px;line-height:1.55}.panelSoon{position:relative;margin-top:22px;padding-top:13px;border-top:1px solid var(--line);color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase}

.memberWelcome{min-width:0;position:relative;overflow:hidden;background:linear-gradient(110deg,rgba(6,26,39,.97) 0%,rgba(7,28,42,.79) 61%,rgba(12,30,38,.70) 100%),url('../assets/images/dashboard-centre-orange-hd.png') center/cover}
.memberWelcome:after{content:"";position:absolute;right:-10%;bottom:-22%;width:min(43vw,600px);height:min(43vw,600px);border-radius:50%;border:min(7vw,96px) solid rgba(245,138,75,.07)}
.memberWelcomeContent{position:relative;z-index:2;width:min(83%,900px);padding:clamp(40px,6vh,86px) clamp(30px,4.4vw,78px)}
.memberWelcome h1{margin:18px 0 21px;font-size:clamp(46px,5vw,88px);font-weight:400;line-height:.94;letter-spacing:-.035em}.memberWelcome h1 em{display:inline;color:var(--orange);font-style:normal;overflow-wrap:anywhere}.memberWelcome p{max-width:760px;margin:0;color:#a9bbc1;font-family:"Segoe UI",Arial,sans-serif;font-size:clamp(14px,1.05vw,19px);line-height:1.63}

.memberRightRail{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) clamp(105px,19vh,190px);gap:10px;overflow:hidden}
.memberProfile{min-height:0;padding:clamp(15px,1.3vw,23px);position:relative;overflow:hidden;display:flex;flex-direction:column}
.memberProfile:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--orange),var(--teal))}
.memberProfileHead{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.memberProfileHead>span{color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:8px;font-weight:700;letter-spacing:.16em}.memberProfileHead b{border:1px solid rgba(49,209,207,.25);border-radius:999px;padding:5px 8px;color:#7edfd2;background:rgba(49,209,207,.06);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.memberProfileHead b.isPending{color:#e6aa84;border-color:rgba(245,138,75,.25)}
.memberIdentity{display:grid;grid-template-columns:clamp(58px,4.4vw,78px) minmax(0,1fr);align-items:center;gap:13px;margin-top:clamp(13px,1.5vh,20px);flex:none}.memberAvatar{width:clamp(58px,4.4vw,78px);height:clamp(58px,4.4vw,78px);border:2px solid var(--orange);border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#0b2b3b;font-size:34px;box-shadow:0 0 0 5px rgba(245,138,75,.06)}.memberAvatar img{width:100%;height:100%;display:block;object-fit:cover}.memberIdentityText{min-width:0}.memberIdentity h2{max-width:100%;margin:0;font-size:clamp(22px,1.65vw,33px);font-weight:400;line-height:.98;letter-spacing:-.025em;overflow-wrap:anywhere;word-break:normal}.memberIdentity p{margin:6px 0 0;color:#718b96;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;overflow-wrap:anywhere}
.memberDescription{flex:none;min-height:48px;margin:clamp(12px,1.3vh,18px) 0 8px;padding:clamp(9px,1.1vh,14px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#c4d0d3;font-size:clamp(13px,.94vw,16px);font-weight:400;line-height:1.38}
.memberProfileDetails{margin:0;flex:none}.memberProfileDetailsInline{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:5px 0 7px;border-bottom:1px solid rgba(255,255,255,.055)}.memberProfileDetailsInline>div{min-width:0}.memberProfileDetails dt{color:#6f8893;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.memberProfileDetails dd{margin:6px 0 0;color:#e8eeee;font-family:"Segoe UI",Arial,sans-serif;font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memberFlag{width:18px;height:12px;object-fit:cover;border-radius:2px;vertical-align:-2px;margin-right:5px}
.memberInterests{flex:none;margin-top:10px}.memberInterests h3{margin:0 0 7px;font-size:clamp(15px,1vw,18px);font-weight:400}.memberInterests>div{display:flex;flex-wrap:wrap;gap:5px}.memberInterests span{border:1px solid rgba(49,209,207,.18);border-radius:999px;padding:5px 8px;background:rgba(49,209,207,.04);color:#aec0c6;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.memberStats{flex:none;display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.memberStats div{text-align:center;padding:9px 2px}.memberStats b{display:block;font-family:"Segoe UI",Arial,sans-serif;font-size:17px}.memberStats span{color:#607b87;font-family:"Segoe UI",Arial,sans-serif;font-size:6.5px;text-transform:uppercase;letter-spacing:.03em}
.memberDistinction{flex:1;min-height:76px;display:grid;grid-template-columns:clamp(58px,4vw,72px) minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;overflow:hidden}.memberDistinction img{width:clamp(58px,4vw,72px);height:clamp(58px,4vw,72px);object-fit:contain}.memberDistinction>div{min-width:0}.memberDistinction span{color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;font-weight:700;letter-spacing:.10em}.memberDistinction h3{margin:2px 0 1px;font-size:clamp(15px,1vw,18px);font-weight:400}.memberDistinction p{margin:0;color:#819aa3;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;line-height:1.28}.memberDistinction a{display:inline-block;margin-top:4px;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:8px;text-decoration:none}.memberDistinction a:hover{text-decoration:underline}
.memberProfileActions{flex:none;display:grid;grid-template-columns:1.35fr .85fr;gap:7px}.memberEdit,.memberLogout{min-height:34px;border-radius:8px;font-family:Georgia,"Times New Roman",serif;font-size:9px;font-weight:400}.memberEdit{border:1px solid rgba(245,138,75,.28);background:rgba(245,138,75,.07);color:#e7b18c}.memberEdit:disabled{cursor:not-allowed;opacity:.72}.memberEdit small{font-size:6px;margin-left:3px}.memberLogout{border:1px solid rgba(149,205,218,.20);background:rgba(255,255,255,.025);color:#b8c7cc}.memberLogout:hover{border-color:rgba(245,138,75,.44);color:#fff}.memberSince{flex:none;margin:7px 0 0;color:#58737e;text-align:center;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.memberMapCard{padding:clamp(14px,1.3vw,22px);position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(10,34,49,.97),rgba(5,23,35,.99)),url('../assets/images/dashboard-centre-orange-hd.png') center/cover}.memberMapCard:after{content:"◎";position:absolute;right:16px;bottom:-16px;color:rgba(49,209,207,.07);font-size:100px}.memberMapCard>span{color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;font-weight:700;letter-spacing:.14em}.memberMapCard h2{margin:8px 0 4px;font-size:clamp(18px,1.4vw,25px);font-weight:400}.memberMapCard p{margin:0;color:#8098a2;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}.memberMapCard small{position:absolute;left:clamp(14px,1.3vw,22px);bottom:13px;color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;text-transform:uppercase;letter-spacing:.1em}

/* Pied de page fixé, deux niveaux. */
.memberFooter{position:fixed;left:0;right:0;bottom:0;z-index:45;height:calc(var(--footer-main) + var(--footer-legal));background:#03111b;border-top:1px solid var(--line)}
.memberFooterMain{height:var(--footer-main);display:grid;grid-template-columns:minmax(300px,34vw) 1fr;align-items:center;gap:20px;padding:0 clamp(15px,2.1vw,40px)}.memberVersion{min-width:0}.memberVersion strong{display:block;color:#fff;font-size:14px;font-weight:400}.memberVersion span{display:block;margin-top:2px;color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:8.5px;line-height:1.25}.memberFooterMain nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px}.memberFooterMain nav a{color:#9aafb7;text-decoration:none;text-align:center;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;white-space:nowrap}.memberFooterMain nav a:hover{color:#fff}
.memberFooterLegal{height:var(--footer-legal);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(15px,2.1vw,40px);border-top:1px solid rgba(149,205,218,.11);color:#617985}.memberFooterLegal>a{justify-self:start;color:#d9e2df;text-decoration:none;font-size:10px;letter-spacing:.08em}.memberFooterLegal nav{display:flex;align-items:center;gap:clamp(12px,1.5vw,24px)}.memberFooterLegal nav a{color:#718893;text-decoration:none;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;text-transform:uppercase;letter-spacing:.04em}.memberFooterLegal small{justify-self:end;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}

.memberLoading,.memberFatal{position:fixed;inset:var(--topbar) 0 calc(var(--footer-main) + var(--footer-legal));z-index:60;background:#04131f;display:grid;place-content:center;justify-items:center;text-align:center}.memberLoading img{width:88px;height:88px;object-fit:contain;animation:memberPulse 1.4s ease-in-out infinite}.memberLoading p{color:#8da4ae;font-family:"Segoe UI",Arial,sans-serif}.memberApp.isReady .memberLoading{display:none}.memberFatal[hidden]{display:none!important}.memberFatal h1{font-size:38px;font-weight:400}.memberFatal p{color:#8da4ae;font-family:"Segoe UI",Arial,sans-serif}.memberFatal a{margin-top:18px;padding:13px 18px;border-radius:9px;background:var(--orange);color:#061722;text-decoration:none;font-family:"Segoe UI",Arial,sans-serif;font-weight:700}@keyframes memberPulse{50%{transform:scale(1.05);opacity:.72}}
.memberSoonToast{position:fixed;left:50%;bottom:calc(var(--footer-main) + var(--footer-legal) + 16px);z-index:90;transform:translateX(-50%);padding:10px 16px;border:1px solid rgba(49,209,207,.25);border-radius:999px;background:#082332;color:#dce6e4;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;box-shadow:0 12px 30px rgba(0,0,0,.3)}

/* Page Mes distinctions. */
.distinctionsApp{overflow:hidden}.distinctionsMain{position:fixed;top:var(--topbar);bottom:var(--footer-legal);left:0;right:0;padding:34px clamp(24px,4vw,70px) 20px;overflow:hidden;display:grid;grid-template-columns:minmax(260px,.74fr) minmax(270px,.75fr) minmax(0,2.5fr);grid-template-rows:auto 1fr auto;gap:20px}.distinctionsIntro{grid-column:1;grid-row:1/3;align-self:center}.distinctionsIntro>span,.distinctionsUnlocked span{color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:9px;font-weight:700;letter-spacing:.18em}.distinctionsIntro h1{margin:16px 0 20px;font-size:clamp(46px,5vw,82px);font-weight:400;line-height:.92}.distinctionsIntro p{max-width:430px;margin:0;color:#92a8b0;font-family:"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.65}.distinctionsUnlocked{grid-column:2;grid-row:1/3;align-self:center;padding:28px;border:1px solid rgba(245,138,75,.28);border-radius:18px;background:linear-gradient(180deg,rgba(10,34,49,.97),rgba(4,20,31,.99));text-align:center}.distinctionsUnlocked img{width:min(190px,75%);aspect-ratio:1;object-fit:contain}.distinctionsUnlocked h2{margin:8px 0 7px;font-size:29px;font-weight:400}.distinctionsUnlocked p{margin:0;color:#819aa3;font-family:"Segoe UI",Arial,sans-serif;font-size:11px;line-height:1.5}.distinctionLevels{grid-column:3;grid-row:1/3;display:grid;grid-template-columns:1fr 1fr;gap:13px;min-height:0}.distinctionLevels article{min-height:0;padding:17px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(10,34,49,.94),rgba(5,23,35,.98));overflow:hidden}.distinctionLevels article h2{margin:0 0 10px;font-size:20px;font-weight:400}.levelRow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.levelRow figure{min-width:0;margin:0;padding:8px 5px;border:1px solid rgba(149,205,218,.10);border-radius:10px;background:rgba(255,255,255,.018);text-align:center;opacity:.45;filter:saturate(.45)}.levelRow figure.isUnlocked{opacity:1;filter:none;border-color:rgba(49,209,207,.28)}.levelRow img{width:min(72px,84%);aspect-ratio:1;object-fit:contain}.levelRow figcaption b,.levelRow figcaption span{display:block;font-family:"Segoe UI",Arial,sans-serif}.levelRow figcaption b{color:#9aafb7;font-size:7px;text-transform:uppercase}.levelRow figcaption span{margin-top:2px;color:#d9e2df;font-size:8px}.distinctionsMore{grid-column:1/-1;grid-row:3;margin:0;text-align:center;color:#68818b;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}.memberFooterCompact{height:var(--footer-legal)}.memberFooterCompact .memberFooterLegal{border-top:0}

@media(max-height:820px){
  :root{--topbar:50px;--footer-main:60px;--footer-legal:23px}
  .memberBrand{width:68px;height:68px;top:5px}.memberLayout{padding-top:17px;grid-template-columns:clamp(175px,15vw,230px) minmax(0,1fr) clamp(300px,23vw,350px)}
  .memberWelcomeContent{padding-top:38px}.memberWelcome h1{font-size:clamp(42px,4.5vw,68px)}
  .memberProfile{padding:13px}.memberIdentity{margin-top:10px}.memberDescription{margin-top:10px;margin-bottom:5px;padding:7px 0;min-height:38px}.memberInterests{margin-top:6px}.memberStats{margin-top:6px}.memberDistinction{min-height:62px;padding:5px 0}.memberDistinction img{width:54px;height:54px}.memberProfileActions{gap:5px}.memberEdit,.memberLogout{min-height:30px}.memberSince{margin-top:4px}
  .memberMapCard{padding:12px}.memberMapCard h2{margin-top:5px}.memberFooterMain{grid-template-columns:minmax(270px,31vw) 1fr}.memberVersion span{font-size:7.5px}.memberFooterMain nav a{font-size:8px}
  .distinctionsMain{padding-top:25px;gap:14px}.distinctionsUnlocked{padding:18px}.distinctionsUnlocked img{width:130px}.distinctionLevels article{padding:12px}.levelRow img{width:56px}
}
@media(max-width:1180px){
  .memberNavGroup a{font-size:9px}.memberLayout{grid-template-columns:180px minmax(0,1fr) 310px;gap:10px;padding-left:9px;padding-right:9px}.memberFooterMain{grid-template-columns:300px 1fr;padding-left:12px;padding-right:12px}.memberFooterMain nav{gap:3px}.memberFooterMain nav a{font-size:7.5px}
}

/* Ajustements de contrôle visuel R55 : réserver clairement le centre au logo. */
.memberTopbar{grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr)}
.distinctionsMain{grid-template-columns:minmax(250px,310px) minmax(260px,320px) minmax(0,1fr)}
.distinctionsIntro h1{font-size:clamp(48px,4.1vw,68px);overflow-wrap:normal}
.distinctionLevels{align-self:center;grid-auto-rows:260px}
.distinctionLevels article{height:260px}
@media(max-width:1450px){.memberTopbar{grid-template-columns:minmax(0,1fr) 210px minmax(0,1fr)}}
.memberNavLeft{grid-column:1}.memberNavRight{grid-column:3}


/* R58 — avertisseur générique et identité privée.
   Typographie officielle, sans graisse ajoutée. */
.memberProfileUpdateNotice{
  flex:none;
  margin-top:9px;
  padding:10px 11px;
  border:1px solid rgba(245,138,75,.35);
  border-radius:10px;
  background:rgba(245,138,75,.075);
}
.memberProfileUpdateNotice[hidden]{display:none!important}
.memberProfileUpdateNotice span{display:block;color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;font-weight:400;letter-spacing:.12em}
.memberProfileUpdateNotice h3{margin:4px 0 3px;color:#f6f2e9;font-size:14px;font-weight:400;line-height:1.15}
.memberProfileUpdateNotice p{margin:0;color:#aabac0;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;font-weight:400;line-height:1.38}
.memberProfileUpdateNotice button{margin-top:7px;padding:6px 9px;border:1px solid rgba(245,138,75,.35);border-radius:7px;background:rgba(245,138,75,.10);color:#ffd1b0;font-family:Georgia,"Times New Roman",serif;font-size:8px;font-weight:400}
.memberEdit:disabled{cursor:default;opacity:1}
.memberProfileModal[hidden]{display:none!important}
.memberProfileModal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px}
.memberProfileModalBackdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(1,8,13,.80);backdrop-filter:blur(8px)}
.memberProfileDialog{position:relative;z-index:1;width:min(620px,92vw);padding:30px;border:1px solid rgba(149,205,218,.24);border-radius:17px;background:radial-gradient(circle at 100% 0%,rgba(245,138,75,.13),transparent 34%),linear-gradient(145deg,#082b3d,#041722);box-shadow:0 34px 100px rgba(0,0,0,.55)}
.memberProfileDialogClose{position:absolute;right:13px;top:11px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.04);color:#9fb1b8;font-size:23px;font-weight:400}
.memberProfileDialogLabel{display:block;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:8px;font-weight:400;letter-spacing:.17em}
.memberProfileDialog h2{margin:9px 0 9px;color:#f6f2e9;font-size:31px;font-weight:400;line-height:1.08}
.memberProfileDialog>p{margin:0;color:#9fb1b8;font-family:"Segoe UI",Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.55}
.memberProfileDialog form{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:23px}
.memberProfileDialog label{display:flex;flex-direction:column;gap:7px}
.memberProfileDialog label span{color:#e8eeeb;font-size:14px;font-weight:400}
.memberProfileDialog input{width:100%;height:45px;padding:0 13px;border:1px solid rgba(149,205,218,.22);border-radius:9px;outline:0;background:#061d2a;color:#f6f2e9;font-family:Georgia,"Times New Roman",serif;font-size:14px;font-weight:400}
.memberProfileDialog input:focus{border-color:rgba(49,209,207,.55);box-shadow:0 0 0 3px rgba(49,209,207,.07)}
.memberProfileFormError{grid-column:1/-1;margin:0;color:#ffb07c;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;font-weight:400}
.memberProfileDialogActions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:3px}
.memberProfileDialogActions button{min-width:128px;min-height:40px;border-radius:8px;font-size:11px;font-weight:400}
.memberProfileDialogActions button:first-child{border:1px solid rgba(149,205,218,.20);background:rgba(255,255,255,.025);color:#b8c7cc}
.memberProfileDialogActions button:last-child{border:1px solid rgba(245,138,75,.45);background:rgba(245,138,75,.13);color:#ffd4b5}
.memberProfileDialogActions button:disabled{cursor:wait;opacity:.65}
.hasMemberModal{overflow:hidden}
@media(max-height:820px){
  .memberProfileUpdateNotice{padding:7px 9px;margin-top:6px}
  .memberProfileUpdateNotice h3{font-size:12px}
  .memberProfileUpdateNotice p{font-size:7px}
  .memberProfileUpdateNotice button{margin-top:5px;padding:5px 8px}
}

/* Lorsqu’une mise à jour est nécessaire, la fiche utilise temporairement la
   place de la carte future afin de conserver toutes ses actions visibles. */
.memberRightRail.hasProfileUpdate{grid-template-rows:minmax(0,1fr) 0;gap:0}
.memberRightRail.hasProfileUpdate .memberMapCard{display:none}

/* ========================================================================== */
/* R59 — navigation, pied compact et nouvelle présentation des trophées       */
/* ========================================================================== */
:root{
  --topbar:54px;
  --footer-main:50px;
  --footer-legal:22px;
}
.memberTopbar{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr) !important}
.memberNavGroup{gap:clamp(18px,2.4vw,48px) !important}
.memberNavGroup a{
  font-size:clamp(12px,.84vw,15px) !important;
  font-weight:400 !important;
}
.memberFooter{height:calc(var(--footer-main) + var(--footer-legal)) !important}
.memberFooterMain{
  height:var(--footer-main) !important;
  grid-template-columns:minmax(330px,35vw) 1fr !important;
  padding:0 clamp(18px,2vw,38px) !important;
}
.memberVersion strong{font-size:15px !important;font-weight:400 !important}
.memberVersion span{font-size:clamp(9.5px,.68vw,12px) !important;font-weight:400 !important}
.memberFooterMain nav a{font-size:clamp(9.5px,.66vw,11.5px) !important;font-weight:400 !important}
.memberFooterLegal{height:var(--footer-legal) !important;padding:0 clamp(18px,2vw,38px) !important}
.memberFooterLegal>a{font-size:11px !important;font-weight:400 !important}
.memberFooterLegal nav a{font-size:8.5px !important;font-weight:400 !important}
.memberFooterLegal small{font-size:8px !important;font-weight:400 !important}

/* Le haut de fiche ne conserve que le repère utile. */
.memberProfileHead{min-height:15px;justify-content:flex-start !important}
.memberProfileHead>span{font-size:8px !important;font-weight:400 !important;letter-spacing:.16em}

/* Trophée obtenu et collection mystère. */
.memberTrophies{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  padding:8px 0;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.memberTrophyIntro{
  display:grid;
  grid-template-columns:clamp(54px,4vw,72px) minmax(0,1fr);
  align-items:center;
  gap:11px;
}
.memberTrophyIntro>img{width:clamp(54px,4vw,72px);height:clamp(54px,4vw,72px);object-fit:contain}
.memberTrophyCopy{min-width:0}
.memberTrophyCopy span{
  display:block;
  color:var(--orange);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(13px,.9vw,17px);
  font-weight:400;
  line-height:1.1;
}
.memberTrophyCopy p{
  margin:3px 0 0;
  color:#f6f2e9;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(10px,.72vw,13px);
  font-weight:400;
  line-height:1.2;
}
.memberTrophyButton{
  display:none;
  min-height:35px;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border:1px solid rgba(245,138,75,.32);
  border-radius:8px;
  background:rgba(245,138,75,.075);
  color:#ffd0ad;
  text-decoration:none;
  text-align:center;
  font-size:10px;
  font-weight:400;
  white-space:nowrap;
}
.memberMysteryTrophies{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:7px 9px;
  min-height:0;
}
.memberMysteryTrophies figure{min-width:0;margin:0;text-align:center}
.memberMysteryTrophies img{
  display:block;
  width:clamp(42px,3vw,58px);
  height:clamp(42px,3vw,58px);
  margin:0 auto 3px;
  object-fit:contain;
  opacity:.56;
  filter:saturate(.35);
}
.memberMysteryTrophies figcaption{
  color:#f6f2e9;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(7px,.5vw,9px);
  font-weight:400;
  line-height:1.12;
  text-align:center;
}
.memberProfileActions{margin-top:7px}

/* Grands et moyens écrans : la fiche utilise davantage de hauteur et montre
   directement les six trophées mystère. */
@media (min-width:1701px) and (min-height:901px){
  .memberRightRail{grid-template-rows:minmax(0,1fr) 92px !important}
  .memberMapCard{padding:12px 18px !important}
  .memberMapCard h2{margin:4px 0 2px !important;font-size:19px !important}
  .memberMapCard p{font-size:8px !important}
  .memberMapCard small{bottom:9px !important}
}

/* Petits formats PC : une ligne compacte et un accès direct à Mes trophées. */
@media (max-width:1700px), (max-height:900px){
  :root{--topbar:50px;--footer-main:46px;--footer-legal:21px}
  .memberTopbar{grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr) !important;padding:0 18px !important}
  .memberBrand{width:68px !important;height:68px !important;top:4px !important}
  .memberNavGroup{gap:clamp(12px,2vw,28px) !important}
  .memberNavGroup a{font-size:11px !important}
  .memberLayout{
    bottom:calc(var(--footer-main) + var(--footer-legal)) !important;
    padding-top:16px !important;
  }
  .memberRightRail{grid-template-rows:minmax(0,1fr) 82px !important}
  .memberProfile{padding:12px !important}
  .memberIdentity{margin-top:7px !important}
  .memberDescription{margin:8px 0 5px !important;padding:6px 0 !important;min-height:34px !important}
  .memberInterests{margin-top:5px !important}
  .memberStats{margin-top:5px !important}
  .memberTrophies{
    flex:0 0 auto;
    padding:5px 0 6px;
    border-bottom:0;
  }
  .memberTrophyIntro{
    grid-template-columns:52px minmax(0,1fr) auto;
    gap:8px;
  }
  .memberTrophyIntro>img{width:52px;height:52px}
  .memberTrophyCopy span{font-size:12px}
  .memberTrophyCopy p{font-size:9px;margin-top:2px}
  .memberTrophyButton{display:flex}
  .memberMysteryTrophies{display:none}
  .memberProfileActions{margin-top:5px}
  .memberMapCard{padding:10px 13px !important}
  .memberMapCard h2{margin:3px 0 1px !important;font-size:17px !important}
  .memberMapCard p{font-size:7px !important}
  .memberFooterMain{grid-template-columns:minmax(330px,38vw) 1fr !important;padding:0 20px !important}
  .memberVersion span{font-size:9.5px !important}
  .memberFooterMain nav a{font-size:9px !important}
  .memberFooterLegal{padding:0 20px !important}
  .memberFooterLegal nav a{font-size:7.8px !important}
}

/* Résistance 1280 × 720 et 1366 × 768 : le bouton reste visible sans
   écraser les centres d'intérêt ni la description. */
@media (max-width:1450px) and (max-height:820px){
  .memberLayout{grid-template-columns:190px minmax(0,1fr) 330px !important;gap:10px !important;padding-left:10px !important;padding-right:10px !important}
  .memberProfileHead{min-height:11px}
  .memberIdentity{grid-template-columns:55px minmax(0,1fr) !important;gap:9px !important}
  .memberAvatar{width:55px !important;height:55px !important}
  .memberIdentity h2{font-size:23px !important}
  .memberInterests span{padding:4px 7px !important;font-size:7px !important}
  .memberStats div{padding:6px 2px !important}
  .memberTrophyIntro{grid-template-columns:46px minmax(0,1fr) auto}
  .memberTrophyIntro>img{width:46px;height:46px}
  .memberTrophyCopy span{font-size:11px}
  .memberTrophyCopy p{font-size:8px}
  .memberTrophyButton{min-height:31px;padding:0 9px;font-size:8px}
  .memberEdit,.memberLogout{min-height:29px !important}
}

/* Page anciennement Distinctions : intitulé public Mes trophées. */
.distinctionsIntro h1,.distinctionsUnlocked h2,.distinctionLevels h2{font-weight:400 !important}

/* R59.1 — la collection commence réellement en haut de son espace et reste
   lisible, sans modifier la fiche publique ni ajouter de graisse. */
.memberTrophies{justify-content:flex-start !important}
@media (min-width:1701px) and (min-height:901px){
  .memberTrophyIntro{grid-template-columns:68px minmax(0,1fr) !important;gap:13px !important}
  .memberTrophyIntro>img{width:68px !important;height:68px !important}
  .memberTrophyCopy span{font-size:16px !important}
  .memberTrophyCopy p{font-size:12px !important;line-height:1.24 !important}
  .memberMysteryTrophies{gap:10px 12px !important}
  .memberMysteryTrophies img{width:60px !important;height:60px !important;margin-bottom:5px !important}
  .memberMysteryTrophies figcaption{font-size:9px !important;line-height:1.15 !important}
}
@media (max-width:1700px), (max-height:900px){
  .memberTrophies{padding:8px 0 !important}
  .memberTrophyIntro{grid-template-columns:58px minmax(0,1fr) auto !important;gap:10px !important}
  .memberTrophyIntro>img{width:58px !important;height:58px !important}
  .memberTrophyCopy span{font-size:13px !important}
  .memberTrophyCopy p{font-size:9.5px !important;line-height:1.2 !important}
  .memberTrophyButton{min-height:34px !important;padding:0 11px !important;font-size:9px !important}
}
@media (max-width:1450px) and (max-height:820px){
  .memberTrophyIntro{grid-template-columns:52px minmax(0,1fr) auto !important;gap:8px !important}
  .memberTrophyIntro>img{width:52px !important;height:52px !important}
  .memberTrophyCopy span{font-size:12px !important}
  .memberTrophyCopy p{font-size:8.7px !important}
  .memberTrophyButton{min-height:32px !important;font-size:8.5px !important}
}

/* ========================================================================== */
/* R60 — fiche plus compacte, carte conservée et navigation harmonisée        */
/* ========================================================================== */

/* La navigation basse reprend la typographie et l'échelle de la barre haute. */
.memberFooterMain nav a{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(12px,.84vw,15px) !important;
  font-weight:400 !important;
  line-height:1.1 !important;
}
.memberVersion strong{
  display:flex !important;
  align-items:baseline !important;
  gap:7px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-weight:400 !important;
}
.memberVersion strong small{
  color:rgba(239,244,241,.42) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:.72em !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
}
.memberFooterLegal{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.memberFooterLegal nav{
  justify-content:center !important;
}

/* La fiche adopte la hauteur réelle de son contenu. La carte reste toujours
   présente juste en dessous au lieu d'être écrasée ou supprimée. */
.memberRightRail,
.memberRightRail.hasProfileUpdate{
  grid-template-rows:auto 92px !important;
  align-content:start !important;
  gap:10px !important;
  overflow:hidden !important;
}
.memberRightRail.hasProfileUpdate .memberMapCard{
  display:block !important;
}
.memberProfile{
  flex:none !important;
}
.memberTrophies{
  flex:0 0 auto !important;
  overflow:visible !important;
}
.memberProfileActions{
  margin-top:9px !important;
}

/* Les trophées à découvrir restent présents mais plus légers, comme en
   filigrane. Leur libellé suit le même effet transparent. */
.memberMysteryTrophies img{
  opacity:.30 !important;
  filter:saturate(.22) brightness(1.18) !important;
}
.memberMysteryTrophies figcaption{
  color:rgba(246,242,233,.46) !important;
}

/* Petits PC : l'avertissement remplace temporairement tout l'espace trophées.
   Il se place après les statistiques et la carte demeure visible. */
@media (max-width:1700px), (max-height:900px){
  .memberRightRail,
  .memberRightRail.hasProfileUpdate{
    grid-template-rows:auto 82px !important;
  }
  .memberProfileUpdateNotice{
    order:6 !important;
    margin:8px 0 0 !important;
    padding:11px 12px !important;
  }
  .memberProfileUpdateNotice h3{
    font-size:14px !important;
  }
  .memberProfileUpdateNotice p{
    font-size:8.5px !important;
    line-height:1.42 !important;
  }
  .memberProfileUpdateNotice button{
    font-size:9px !important;
  }
  .memberTrophies{order:6 !important}
  .memberProfileActions{order:7 !important}
  .memberRightRail.hasProfileUpdate .memberTrophies{
    display:none !important;
  }
  .memberFooterMain nav a{
    font-size:11px !important;
  }
}

@media (max-width:1450px) and (max-height:820px){
  .memberRightRail,
  .memberRightRail.hasProfileUpdate{
    grid-template-rows:auto 76px !important;
  }
  .memberProfileUpdateNotice{
    padding:9px 10px !important;
  }
  .memberProfileUpdateNotice h3{font-size:12.5px !important}
  .memberProfileUpdateNotice p{font-size:7.6px !important}
  .memberProfileActions{margin-top:7px !important}
  .memberFooterMain nav a{font-size:10px !important}
}

/* R60.1 — derniers ajustements visuels validés. */
.memberMysteryTrophies img{opacity:.20 !important}
.memberMysteryTrophies figcaption{color:rgba(246,242,233,.32) !important}
@media (max-width:1450px) and (max-height:820px){
  .memberRightRail,
  .memberRightRail.hasProfileUpdate{grid-template-rows:auto 84px !important}
  .memberFooterMain nav a{font-size:11px !important}
  .memberMapCard small{bottom:8px !important}
}


/* ========================================================================== */
/* R83 — Explorateur des salons dans le bloc gauche validé                    */
/* ========================================================================== */

/* La largeur du bloc gauche reste strictement celle de la grille validée. */
.memberExplorerPanel{
  justify-content:flex-start !important;
  padding:12px 10px 10px !important;
  overflow:hidden !important;
}
.memberExplorerPanel>*{position:relative;z-index:2}
.memberExplorerHead{flex:none;padding:2px 4px 9px;border-bottom:1px solid var(--line)}
.memberExplorerHead h2{margin:7px 0 0 !important;font-size:clamp(19px,1.45vw,27px) !important;line-height:1 !important}
.salonExplorerLabel{color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;font-weight:700;letter-spacing:.13em}
.salonQuickSearch{flex:none;display:grid;gap:6px;padding:10px 4px 11px;border-bottom:1px solid var(--line)}
.salonQuickSearch>label{display:grid;gap:3px;min-width:0}
.salonQuickSearch label>span{color:#7f99a4;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;line-height:1}
.salonQuickSearch select,.salonQuickSearch input{
  width:100%;min-width:0;height:29px;padding:0 8px;border:1px solid rgba(149,205,218,.20);border-radius:7px;
  outline:none;background:#0a2534;color:#edf4f2;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;
}
.salonQuickSearch input::placeholder{color:#607b86}
.salonQuickSearch select:focus,.salonQuickSearch input:focus{border-color:rgba(49,209,207,.58);box-shadow:0 0 0 2px rgba(49,209,207,.08)}
.salonQuickSearch select:disabled{opacity:.46}
.salonQuickSearch button{height:31px;border:0;border-radius:7px;background:var(--orange);color:#071520;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;font-weight:700;letter-spacing:.04em}
.salonQuickSearch button:hover{filter:brightness(1.06)}
.salonManualExplorer{min-height:0;flex:1;display:flex;flex-direction:column;padding:10px 0 0}
.salonManualTitle{flex:none;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 4px 7px}
.salonManualTitle button{border:0;background:none;color:#667f8a;font-family:"Segoe UI",Arial,sans-serif;font-size:7px;padding:2px 0}
.salonManualTitle button:hover{color:#fff}
.salonTree{min-height:0;flex:1;overflow:auto;padding:0 2px 8px 0;scrollbar-width:thin;scrollbar-color:rgba(49,209,207,.28) transparent}
.salonTree::-webkit-scrollbar{width:5px}.salonTree::-webkit-scrollbar-thumb{background:rgba(49,209,207,.25);border-radius:999px}
.salonTreeBranch{display:block;min-width:0}
.salonTreeRow{display:grid;grid-template-columns:15px 16px minmax(0,1fr) auto;align-items:center;gap:3px;min-height:26px;padding:1px 3px 1px calc(var(--tree-level,0) * 11px);border-radius:5px}
.salonTreeRow:hover,.salonTreeRow.isSelected{background:rgba(49,209,207,.07)}
.salonTreeToggle,.salonTreeSelect{border:0;background:none;color:inherit;padding:0;min-width:0;text-align:left}
.salonTreeToggle{width:15px;height:22px;color:#6f8c98;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;display:grid;place-items:center}
.salonTreeToggle[aria-expanded="true"]{color:var(--orange)}
.salonTreeIcon{width:15px;text-align:center;font-size:11px;line-height:1}
.salonTreeIcon img{display:block;width:15px;height:10px;object-fit:cover;border-radius:2px}
.salonTreeSelect{overflow:hidden;color:#c5d3d6;font-family:"Segoe UI",Arial,sans-serif;font-size:8.5px;line-height:1.18;white-space:nowrap;text-overflow:ellipsis}
.salonTreeRow[data-kind="country"] .salonTreeSelect{color:#f3eee5;font-family:Georgia,"Times New Roman",serif;font-size:11px}
.salonTreeRow[data-kind="theme"] .salonTreeSelect{color:#e8d8cb}
.salonTreeRow[data-kind="salon"] .salonTreeSelect{color:#fff}
.salonTreeCount{color:#54717d;font-family:"Segoe UI",Arial,sans-serif;font-size:7px;white-space:nowrap}
.salonTreeChildren[hidden]{display:none}
.salonCityFilter{margin:3px 4px 5px calc(var(--tree-level,0) * 11px + 30px);width:calc(100% - (var(--tree-level,0) * 11px) - 36px);height:25px;padding:0 7px;border:1px solid rgba(149,205,218,.16);border-radius:6px;background:#071f2d;color:#eaf1ef;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonTreeEmpty{padding:8px 7px;color:#6f8993;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;line-height:1.35}

/* État 0 : la zone centrale ne contient absolument aucun bloc ni texte. */
.memberWorkspace{display:block !important}
.memberWorkspace:not(.hasSalonContent){}
.memberWorkspace.hasSalonContent{overflow:auto;background:linear-gradient(110deg,rgba(6,26,39,.985),rgba(7,28,42,.93)),url('../assets/images/dashboard-centre-orange-hd.png') center/cover}
.memberWorkspaceContent{position:relative;z-index:3;min-height:100%;padding:clamp(24px,3.5vw,58px)}
.memberWorkspaceTop{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.memberWorkspaceBreadcrumb{margin:0 0 8px;color:#70909b;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;line-height:1.45}
.memberWorkspaceTitle{margin:0;font-size:clamp(30px,3vw,54px);font-weight:400;line-height:1.02;letter-spacing:-.025em}
.memberWorkspaceSubtitle{max-width:760px;margin:10px 0 0;color:#a8bac0;font-family:"Segoe UI",Arial,sans-serif;font-size:clamp(11px,.85vw,15px);line-height:1.55}
.memberWorkspaceClose{flex:none;width:34px;height:34px;border:1px solid rgba(149,205,218,.22);border-radius:50%;background:rgba(255,255,255,.025);color:#b7c8cd;font-family:"Segoe UI",Arial,sans-serif;font-size:18px}
.memberWorkspaceClose:hover{border-color:var(--orange);color:#fff}
.salonResultGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.salonResultCard{min-width:0;padding:16px;border:1px solid rgba(149,205,218,.18);border-radius:12px;background:rgba(5,23,35,.88)}
.salonResultCardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.salonResultCard h3{margin:0;font-size:clamp(18px,1.45vw,25px);font-weight:400;line-height:1.12}
.salonResultPath{margin:8px 0;color:#77939d;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;line-height:1.42}
.salonResultMeta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;color:#91a8af;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonResultMeta .isLive{color:#72dec9}
.salonFavoriteButton{flex:none;width:30px;height:30px;border:1px solid rgba(245,138,75,.28);border-radius:50%;background:rgba(245,138,75,.06);color:#d7a37f;font-family:"Segoe UI Symbol","Segoe UI",sans-serif;font-size:17px;line-height:1}
.salonFavoriteButton.isFavorite{background:rgba(245,138,75,.18);color:#ff9c5f}
.salonOpenButton{display:inline-flex;align-items:center;justify-content:center;min-height:34px;margin-top:14px;padding:0 15px;border:1px solid rgba(49,209,207,.28);border-radius:8px;background:rgba(49,209,207,.07);color:#a9ebe5;text-decoration:none;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}
.salonOpenButton:hover{border-color:rgba(49,209,207,.62);color:#fff}
.salonCategoryList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.salonCategoryButton{min-height:82px;padding:13px;border:1px solid rgba(149,205,218,.16);border-radius:10px;background:rgba(5,23,35,.76);color:#e6eceb;text-align:left;font-size:15px;line-height:1.2}
.salonCategoryButton span{display:block;margin-top:7px;color:#68838e;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonCategoryButton:hover{border-color:rgba(245,138,75,.45);background:rgba(245,138,75,.055)}
.salonNoResult{max-width:720px;padding:24px;border:1px solid rgba(149,205,218,.17);border-radius:13px;background:rgba(5,23,35,.82)}
.salonNoResult h3{margin:0 0 10px;font-size:27px;font-weight:400}.salonNoResult p{margin:0;color:#9db0b6;font-family:"Segoe UI",Arial,sans-serif;font-size:12px;line-height:1.55}
.salonCreateButton{min-height:38px;margin-top:17px;padding:0 17px;border:0;border-radius:8px;background:var(--orange);color:#071520;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;font-weight:700}
.salonSearchSummary{margin:0 0 16px;color:#93aab1;font-family:"Segoe UI",Arial,sans-serif;font-size:10px}

@media (max-width:1700px), (max-height:900px){
  .memberExplorerPanel{padding:9px 8px 8px !important}
  .memberExplorerHead{padding-bottom:7px}
  .memberExplorerHead h2{font-size:19px !important}
  .salonQuickSearch{gap:4px;padding:7px 3px 8px}
  .salonQuickSearch select,.salonQuickSearch input{height:25px;font-size:8px}
  .salonQuickSearch button{height:27px;font-size:8px}
  .salonManualExplorer{padding-top:7px}
  .salonTreeRow{min-height:23px;grid-template-columns:13px 14px minmax(0,1fr) auto;gap:2px;padding-left:calc(var(--tree-level,0) * 9px)}
  .salonTreeSelect{font-size:7.7px}.salonTreeRow[data-kind="country"] .salonTreeSelect{font-size:9.5px}
  .salonTreeIcon,.salonTreeIcon img{width:13px}.salonTreeIcon img{height:9px}
  .memberWorkspaceContent{padding:24px}
  .salonResultGrid{gap:9px}.salonResultCard{padding:12px}
  .salonCategoryList{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1450px) and (max-height:820px){
  .memberExplorerHead h2{font-size:17px !important}
  .salonExplorerLabel{font-size:6.5px}
  .salonQuickSearch label>span{font-size:6.5px}
  .salonQuickSearch{padding-top:6px;padding-bottom:7px}
  .salonQuickSearch select,.salonQuickSearch input{height:23px;padding:0 6px;font-size:7.4px}
  .salonQuickSearch button{height:25px;font-size:7.5px}
  .salonTreeRow{min-height:21px;padding-left:calc(var(--tree-level,0) * 8px)}
  .salonTreeSelect{font-size:7px}.salonTreeRow[data-kind="country"] .salonTreeSelect{font-size:8.7px}
  .salonTreeCount{font-size:6px}
  .memberWorkspaceContent{padding:20px}
  .memberWorkspaceTitle{font-size:32px}
}

/* ========================================================================== */
/* R84 — recherche par volets coulissants, état 0 et salons officiels        */
/* ========================================================================== */

/* Le bloc de gauche conserve exactement la largeur de référence de la grille. */
.memberExplorerPanel{
  justify-content:flex-start !important;
  padding:12px 10px 10px !important;
  overflow:hidden !important;
}
.memberExplorerBody{
  min-height:0;
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:2px;
  scrollbar-width:thin;
  scrollbar-color:rgba(49,209,207,.25) transparent;
}
.memberExplorerBody::-webkit-scrollbar{width:5px}
.memberExplorerBody::-webkit-scrollbar-thumb{background:rgba(49,209,207,.24);border-radius:999px}
.salonQuickSearch{gap:6px;padding:10px 4px 11px}
.salonQuickSearch select,.salonQuickSearch input{height:29px}
.salonQuickSearch button{height:31px}

.salonExplorerSection{padding:10px 4px;border-bottom:1px solid var(--line)}
.salonExplorerSection:last-child{border-bottom:0}
.salonExplorerSectionHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.salonExplorerSectionHead>button{border:0;background:none;color:#68828d;padding:0;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonExplorerSectionHead>button:hover{color:#fff}
.salonExplorerSection>p{margin:0 0 8px;color:#78919b;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;line-height:1.4}

.salonContinentShortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.salonContinentShortcuts button{
  min-width:0;min-height:29px;display:flex;align-items:center;justify-content:space-between;gap:5px;
  padding:5px 7px;border:1px solid rgba(149,205,218,.16);border-radius:6px;background:rgba(7,31,45,.78);
  color:#c8d6d8;text-align:left;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;
}
.salonContinentShortcuts button:hover:not(:disabled){border-color:rgba(245,138,75,.42);background:rgba(245,138,75,.055);color:#fff}
.salonContinentShortcuts button:disabled{opacity:.38;cursor:default}
.salonContinentShortcuts button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonContinentShortcuts button small{flex:none;color:#567480;font-size:6.5px}

.salonOfficialEntries{display:grid;gap:5px}
.salonOfficialEntries button{
  min-height:29px;padding:0 8px;border:1px solid rgba(149,205,218,.17);border-radius:6px;background:rgba(7,31,45,.72);
  color:#d5dfe0;text-align:left;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;
}
.salonOfficialEntries button:hover{border-color:rgba(49,209,207,.42);color:#fff}
.salonOfficialMiniSearch{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:end;gap:5px;margin-top:6px}
.salonOfficialMiniSearch label{display:grid;gap:3px;min-width:0}
.salonOfficialMiniSearch label>span{color:#718b96;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonOfficialMiniSearch input{width:100%;min-width:0;height:28px;padding:0 7px;border:1px solid rgba(149,205,218,.18);border-radius:6px;background:#081f2d;color:#eef3f2;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;outline:none}
.salonOfficialMiniSearch input:focus{border-color:rgba(49,209,207,.55)}
.salonOfficialMiniSearch button{height:28px;border:0;border-radius:6px;background:var(--orange);color:#071520;font-family:"Segoe UI",Arial,sans-serif;font-size:13px;font-weight:700}

.salonTodayList{display:grid;gap:4px}
.salonTodayList>p{margin:0;color:#617c87;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;line-height:1.35}
.salonTodayButton{
  min-width:0;min-height:27px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 7px;
  border:1px solid rgba(149,205,218,.13);border-radius:6px;background:rgba(5,25,37,.72);color:#aebfc4;
  font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;text-align:left;
}
.salonTodayButton:hover{border-color:rgba(245,138,75,.35);color:#fff}
.salonTodayButton span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonTodayButton b{flex:none;color:var(--orange);font-weight:400}

/* État 0 : aucun élément central. Les volets se superposent au décor. */
.memberWorkspace{display:block !important;position:relative !important;overflow:hidden !important}
.memberWorkspace.hasSalonContent{
  overflow:hidden !important;
  background:linear-gradient(110deg,rgba(6,26,39,.97) 0%,rgba(7,28,42,.79) 61%,rgba(12,30,38,.70) 100%),url('../assets/images/dashboard-centre-orange-hd.png') center/cover !important;
}
.salonDrawerStage{position:absolute;z-index:4;inset:0;padding:18px 20px 66px 14px;pointer-events:none}
.salonDrawerStack{
  width:100%;height:min(76%,700px);display:flex;align-items:stretch;gap:10px;overflow-x:auto;overflow-y:hidden;
  padding:0 3px 8px 0;pointer-events:auto;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(245,138,75,.30) transparent;
}
.salonDrawerStack::-webkit-scrollbar{height:6px}
.salonDrawerStack::-webkit-scrollbar-thumb{background:rgba(245,138,75,.28);border-radius:999px}
.salonDrawerPanel{
  flex:0 0 clamp(250px,31%,360px);min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden;
  border:1px solid rgba(149,205,218,.25);border-radius:12px;background:linear-gradient(180deg,rgba(9,35,49,.985),rgba(4,21,32,.985));
  box-shadow:0 18px 46px rgba(0,0,0,.38);animation:salonDrawerSlide .28s cubic-bezier(.22,.72,.25,1) both;
}
@keyframes salonDrawerSlide{from{opacity:0;transform:translateX(-42px)}to{opacity:1;transform:translateX(0)}}
.salonDrawerHead{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 13px 12px;border-bottom:1px solid rgba(149,205,218,.16);background:rgba(4,20,31,.60)}
.salonDrawerHead>div{min-width:0}
.salonDrawerEyebrow{display:block;margin-bottom:5px;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:7px;font-weight:700;letter-spacing:.12em}
.salonDrawerBreadcrumb{margin:0 0 5px;color:#6d8994;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salonDrawerHead h2{margin:0;color:#f5f0e8;font-size:clamp(19px,1.45vw,27px);font-weight:400;line-height:1.04;overflow-wrap:anywhere}
.salonDrawerDescription{margin:7px 0 0;color:#829aa3;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;line-height:1.4}
.salonDrawerClose{flex:none;width:27px;height:27px;display:grid;place-items:center;padding:0;border:1px solid rgba(149,205,218,.23);border-radius:50%;background:rgba(255,255,255,.025);color:#aebfc4;font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1}
.salonDrawerClose:hover{border-color:var(--orange);color:#fff;background:rgba(245,138,75,.08)}
.salonDrawerBody{min-height:0;flex:1;overflow-y:auto;padding:10px;scrollbar-width:thin;scrollbar-color:rgba(49,209,207,.23) transparent}
.salonDrawerBody::-webkit-scrollbar{width:5px}.salonDrawerBody::-webkit-scrollbar-thumb{background:rgba(49,209,207,.22);border-radius:999px}
.salonDrawerListButton{
  width:100%;min-width:0;min-height:48px;display:grid;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;
  margin-bottom:6px;padding:7px 8px;border:1px solid rgba(149,205,218,.15);border-radius:8px;background:rgba(6,27,40,.76);
  color:#dbe4e3;text-align:left;
}
.salonDrawerListButton:hover:not(:disabled){border-color:rgba(245,138,75,.42);background:rgba(245,138,75,.055)}
.salonDrawerListButton:disabled{opacity:.4;cursor:default}
.salonDrawerListIcon{width:24px;text-align:center;color:#7aa0aa;font-family:"Segoe UI Symbol","Segoe UI",sans-serif;font-size:13px}
.salonDrawerListIcon img{display:block;width:22px;height:15px;object-fit:cover;border-radius:2px}
.salonDrawerListCopy{min-width:0;display:block}
.salonDrawerListCopy strong{display:block;color:#e8eeec;font-family:Georgia,"Times New Roman",serif;font-size:12px;font-weight:400;line-height:1.18;overflow-wrap:anywhere}
.salonDrawerListCopy small{display:block;margin-top:4px;color:#68838e;font-family:"Segoe UI",Arial,sans-serif;font-size:7px;line-height:1.3}
.salonDrawerListArrow{color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:11px;text-align:right}

.salonResultList{display:grid;gap:8px}
.salonResultCard{padding:12px;border-radius:9px;background:rgba(5,23,35,.88)}
.salonResultCard h3{font-size:17px;line-height:1.13}
.salonResultCardHead>div{min-width:0}
.salonOfficialBadge{display:inline-block;margin-bottom:5px;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:6.5px;font-weight:700;letter-spacing:.10em}
.salonResultPath{font-size:7.5px}
.salonResultMeta{gap:5px;font-size:7px}
.salonFavoriteButton{width:27px;height:27px;font-size:15px}
.salonOpenButton{min-height:31px;margin-top:10px;padding:0 11px;font-size:8px}
.salonNoResult{max-width:none;padding:16px;border-radius:9px}
.salonNoResult h3{font-size:20px}.salonNoResult p{font-size:9px}
.salonCreateButton{min-height:33px;margin-top:12px;font-size:8px}

@media (max-width:1700px), (max-height:900px){
  .memberExplorerPanel{padding:9px 8px 8px !important}
  .salonExplorerSection{padding:7px 3px}
  .salonExplorerSection>p{margin-bottom:6px;font-size:7px}
  .salonContinentShortcuts{gap:4px}
  .salonContinentShortcuts button{min-height:25px;padding:4px 6px;font-size:7px}
  .salonOfficialEntries button{min-height:25px;font-size:7px}
  .salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:25px}
  .salonDrawerStage{padding:14px 14px 58px 10px}
  .salonDrawerStack{height:min(79%,620px);gap:8px}
  .salonDrawerPanel{flex-basis:clamp(235px,31%,320px)}
  .salonDrawerHead{padding:11px 10px 9px}
  .salonDrawerHead h2{font-size:19px}
  .salonDrawerBody{padding:8px}
  .salonDrawerListButton{min-height:42px;margin-bottom:5px;padding:6px}
  .salonDrawerListCopy strong{font-size:10.5px}
}
@media (max-width:1450px) and (max-height:820px){
  .memberExplorerHead h2{font-size:17px !important}
  .salonQuickSearch{padding:6px 3px 7px}
  .salonQuickSearch select,.salonQuickSearch input{height:23px}
  .salonQuickSearch button{height:25px}
  .salonExplorerSection{padding:6px 3px}
  .salonExplorerSection>p{display:none}
  .salonContinentShortcuts button{min-height:23px;font-size:6.7px}
  .salonOfficialEntries button{min-height:23px}
  .salonOfficialMiniSearch{margin-top:5px}.salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:23px}
  .salonTodayButton{min-height:23px;font-size:6.8px}
  .salonDrawerStage{padding:10px 10px 48px 8px}
  .salonDrawerStack{height:min(82%,520px)}
  .salonDrawerPanel{flex-basis:235px}
  .salonDrawerHead{padding:9px 9px 8px}
  .salonDrawerDescription{font-size:7px}
  .salonDrawerBody{padding:7px}
}


/* ========================================================================== */
/* R85 — hiérarchie agrandie, volets stables, national/local                  */
/* ========================================================================== */
.memberExplorerHead{padding-top:7px !important}
.memberExplorerHead h2{margin-top:0 !important}
.salonExplorerLabel{font-size:9px !important;letter-spacing:.14em !important}
.salonQuickSearch label>span{font-size:9px !important;line-height:1.15 !important}
.salonQuickSearch select,.salonQuickSearch input{height:34px !important;font-size:10.5px !important;padding:0 10px !important}
.salonQuickSearch button{height:35px !important;font-size:10.5px !important}
.salonExplorerSection>p{font-size:9.5px !important;line-height:1.45 !important}
.salonContinentShortcuts button{min-height:34px !important;font-size:9.5px !important;padding:7px 9px !important}
.salonContinentShortcuts button small{font-size:7.5px !important}
.salonOfficialEntries button{min-height:34px !important;font-size:9.5px !important;padding:0 10px !important}
.salonOfficialMiniSearch label>span{font-size:8.5px !important}
.salonOfficialMiniSearch{grid-template-columns:minmax(0,1fr) 35px !important}
.salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:34px !important}
.salonOfficialMiniSearch input{font-size:9.5px !important;padding:0 9px !important}
.salonOfficialMiniSearch button{font-size:15px !important}
.salonExplorerSectionHead>button{font-size:8px !important}
.salonTodayList>p,.salonTodayButton{font-size:9px !important;line-height:1.4 !important}
.salonTodayButton{min-height:32px !important;padding:6px 8px !important}

.salonDrawerStack{scroll-behavior:smooth}
.salonDrawerPanel{animation:none !important}
.salonDrawerPanel.isEntering{animation:salonDrawerSlide .28s cubic-bezier(.22,.72,.25,1) both !important}
.salonDrawerPanel--continent{flex-basis:300px !important}
.salonDrawerPanel--countries{flex-basis:300px !important}
.salonDrawerPanel--themes{flex-basis:330px !important}
.salonDrawerPanel--topics{flex-basis:335px !important}
.salonDrawerPanel--detail{flex-basis:320px !important}
.salonDrawerPanel--final{flex-basis:350px !important}
.salonDrawerHead{padding:13px 12px 11px !important}
.salonDrawerHead h2{font-size:24px !important;line-height:1.05 !important}
.salonDrawerEyebrow{font-size:7.5px !important;margin-bottom:8px !important}
.salonDrawerContext{display:block;margin-top:7px;color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:8px;font-weight:700;letter-spacing:.12em;line-height:1.35}
.salonDrawerDescription{margin-top:8px !important;color:#91a7ae !important;font-family:"Segoe UI",Arial,sans-serif !important;font-size:8px !important;line-height:1.45 !important;white-space:pre-line}
.salonDrawerClose{width:30px !important;height:30px !important;display:flex !important;align-items:center !important;justify-content:center !important;padding:0 0 2px !important;font-size:16px !important;line-height:1 !important}
.salonDrawerListCopy small{font-size:8.5px !important;line-height:1.35 !important;margin-top:4px !important}
.salonDrawerListButton{min-height:52px !important}

.salonCountryScope{padding:0 0 13px;margin-bottom:13px;border-bottom:1px solid rgba(149,205,218,.15)}
.salonCountryScope:last-child{margin-bottom:0;border-bottom:0}
.salonCountryNationalHint,.salonCountryLocalHint{margin:7px 4px 9px;color:#7f98a1;font-family:"Segoe UI",Arial,sans-serif;font-size:8px;line-height:1.45}
.salonCountryLocalTitle{display:block;margin:12px 4px 4px;color:var(--teal);font-family:"Segoe UI",Arial,sans-serif;font-size:8px;letter-spacing:.11em}
.salonCountryCitySelect{width:calc(100% - 8px);height:34px;margin:0 4px;padding:0 9px;border:1px solid rgba(149,205,218,.22);border-radius:7px;background:#082333;color:#edf4f2;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;outline:none}
.salonCountryCitySelect:focus{border-color:rgba(49,209,207,.60);box-shadow:0 0 0 2px rgba(49,209,207,.08)}

.salonDrawerPanel--final{border-color:rgba(255,178,119,.68) !important;background:linear-gradient(180deg,#f58a4b 0%,#e97838 100%) !important}
.salonDrawerPanel--final .salonDrawerHead{background:rgba(255,255,255,.08) !important;border-bottom-color:rgba(5,23,35,.22) !important}
.salonDrawerPanel--final .salonDrawerHead h2{color:#071b28 !important}
.salonDrawerPanel--final .salonDrawerContext{color:#15313d !important}
.salonDrawerPanel--final .salonDrawerDescription{color:#183744 !important;font-weight:600}
.salonDrawerPanel--final .salonDrawerClose{border-color:rgba(5,23,35,.32) !important;color:#071b28 !important;background:rgba(255,255,255,.14) !important}
.salonDrawerPanel--final .salonDrawerBody{scrollbar-color:rgba(5,23,35,.36) transparent}
.salonDrawerPanel--final .salonResultCard,.salonDrawerPanel--final .salonNoResult{background:#071f2d !important;border-color:rgba(255,255,255,.16) !important}
.salonDrawerPanel--final .salonNoResult h3,.salonDrawerPanel--final .salonResultCard h3{color:#f5f0e8 !important}
.salonDrawerPanel--final .salonCreateButton{background:#082333 !important;color:#f5f0e8 !important;border:1px solid rgba(255,255,255,.18) !important}

@media (max-width:1700px), (max-height:900px){
  .salonExplorerLabel{font-size:8px !important}
  .salonQuickSearch label>span{font-size:8px !important}
  .salonQuickSearch select,.salonQuickSearch input{height:29px !important;font-size:9px !important}
  .salonQuickSearch button{height:30px !important;font-size:9px !important}
  .salonExplorerSection>p{font-size:8px !important}
  .salonContinentShortcuts button,.salonOfficialEntries button{min-height:29px !important;font-size:8px !important}
  .salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:29px !important}
  .salonTodayList>p,.salonTodayButton{font-size:8px !important}
  .salonDrawerPanel--continent,.salonDrawerPanel--countries{flex-basis:270px !important}
  .salonDrawerPanel--themes,.salonDrawerPanel--topics{flex-basis:295px !important}
  .salonDrawerPanel--detail{flex-basis:285px !important}
  .salonDrawerPanel--final{flex-basis:310px !important}
  .salonDrawerHead h2{font-size:20px !important}
  .salonDrawerDescription{font-size:7.5px !important}
  .salonDrawerListCopy small{font-size:7.5px !important}
  .salonCountryNationalHint,.salonCountryLocalHint{font-size:7.5px !important}
  .salonCountryCitySelect{height:30px;font-size:8px}
}
@media (max-width:1450px) and (max-height:820px){
  .salonExplorerLabel{font-size:7.5px !important}
  .salonQuickSearch label>span{font-size:7px !important}
  .salonQuickSearch select,.salonQuickSearch input{height:26px !important;font-size:8px !important}
  .salonQuickSearch button{height:27px !important;font-size:8px !important}
  .salonExplorerSection>p{display:block !important;font-size:7px !important}
  .salonContinentShortcuts button,.salonOfficialEntries button{min-height:26px !important;font-size:7px !important}
  .salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:26px !important}
  .salonTodayList>p,.salonTodayButton{font-size:7px !important}
  .salonDrawerPanel--continent,.salonDrawerPanel--countries{flex-basis:245px !important}
  .salonDrawerPanel--themes,.salonDrawerPanel--topics,.salonDrawerPanel--detail{flex-basis:265px !important}
  .salonDrawerPanel--final{flex-basis:285px !important}
  .salonDrawerHead h2{font-size:18px !important}
  .salonDrawerContext,.salonDrawerEyebrow{font-size:6.7px !important}
  .salonDrawerDescription{font-size:6.8px !important}
  .salonDrawerListCopy small{font-size:7px !important}
  .salonCountryNationalHint,.salonCountryLocalHint{font-size:6.8px !important}
}

/* R85.1 — lisibilité minimale du bloc gauche sur les formats compacts. */
@media (max-width:1450px) and (max-height:820px){
  .salonExplorerLabel{font-size:8.4px !important}
  .salonQuickSearch label>span{font-size:7.8px !important}
  .salonQuickSearch select,.salonQuickSearch input{font-size:8.8px !important}
  .salonQuickSearch button{font-size:8.8px !important}
  .salonExplorerSection>p{font-size:7.8px !important;line-height:1.42 !important}
  .salonContinentShortcuts button,.salonOfficialEntries button{font-size:7.9px !important}
  .salonOfficialMiniSearch label>span{font-size:7.5px !important}
  .salonOfficialMiniSearch input{font-size:8px !important}
  .salonTodayList>p,.salonTodayButton{font-size:7.8px !important}
}


/* ========================================================================== */
/* R86 — architecture des volets, salons officiels et test 1920 × 1080       */
/* ========================================================================== */

/* Changements fonctionnels et typographiques : tous formats. */
.salonDrawerEyebrow,.salonDrawerContext,.salonDrawerBreadcrumb{display:none !important}
.salonDrawerHead>div{min-width:0;max-width:calc(100% - 38px)}
.salonDrawerHead h2{white-space:normal !important;overflow-wrap:anywhere !important;hyphens:auto}
.salonDrawerDescription{
  color:#a7b9bf !important;
  font-family:"Segoe UI",Arial,sans-serif !important;
  font-size:10px !important;
  line-height:1.46 !important;
  white-space:pre-line !important;
}
.salonDrawerClose{
  width:31px !important;height:31px !important;display:grid !important;place-items:center !important;
  padding:0 0 2px !important;font-size:17px !important;line-height:1 !important;
}
.salonDrawerListCopy strong{white-space:normal;overflow-wrap:anywhere;hyphens:auto}
.salonDrawerListCopy small{font-size:9.5px !important;line-height:1.35 !important}

/* Bloc gauche : continents centrés, sans compteur. */
.salonContinentShortcuts button{position:relative;justify-content:center !important;text-align:center !important;font-size:11px !important}
.salonContinentShortcuts button span{width:100%;white-space:normal !important;text-align:center}
.salonContinentShortcuts button small{position:absolute;right:7px;font-size:7.5px !important}

/* Architecture interne du premier volet pays. */
.salonCountryScope{padding:0 0 18px;margin-bottom:18px}
.salonCountryNationalTitle,.salonCountryLocalTitle,.salonCountryOfficialTitle{
  display:block;margin:4px 4px 7px;color:#f5f0e8;font-family:"Segoe UI",Arial,sans-serif;
  font-size:18px;font-weight:500;line-height:1.25;letter-spacing:0;text-transform:none;
}
.salonCountryNationalHint,.salonCountryLocalHint{
  margin:0 4px 9px !important;color:#91a7ae !important;font-size:9.5px !important;line-height:1.42 !important;
}
.salonCountryLocalTitle{margin-top:19px}
.salonCountryOfficialTitle{margin-top:21px}
.salonCountryCitySelect{height:38px !important;font-size:10px !important}
.salonCountryOfficialSearch{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:7px;margin:0 4px}
.salonCountryOfficialSearch input,.salonCountryOfficialSearch button{
  height:38px;border:1px solid rgba(149,205,218,.22);border-radius:7px;background:#082333;color:#edf4f2;
  font-family:"Segoe UI",Arial,sans-serif;outline:none;
}
.salonCountryOfficialSearch input{min-width:0;padding:0 10px;font-size:9.5px}
.salonCountryOfficialSearch input::placeholder{color:#5f7984}
.salonCountryOfficialSearch button{background:var(--orange);border-color:var(--orange);color:#071520;font-size:16px}

/* Flèche de remontée interne, transparente comme celle de l'accueil. */
.salonDrawerToTop{
  position:absolute;z-index:6;right:10px;bottom:10px;width:34px;height:34px;display:grid;place-items:center;
  border:1px solid rgba(149,205,218,.20);border-radius:50%;background:rgba(4,20,31,.34);color:#9eb4bb;
  font-family:"Segoe UI",Arial,sans-serif;font-size:19px;opacity:0;pointer-events:none;transition:opacity .18s ease,background .18s ease;
  backdrop-filter:blur(3px);
}
.salonDrawerToTop.isVisible{opacity:.72;pointer-events:auto}
.salonDrawerToTop:hover{opacity:1;background:rgba(4,20,31,.72);color:#fff}

/* Recherche officielle : choix résultat global ou affinage par pays. */
.salonOfficialThemeChoice{display:grid;gap:8px;margin:0 0 12px;padding:12px;border:1px solid rgba(245,138,75,.30);border-radius:9px;background:rgba(245,138,75,.055)}
.salonOfficialThemeChoice strong{color:#f5f0e8;font-family:"Segoe UI",Arial,sans-serif;font-size:13px;font-weight:600;line-height:1.35}
.salonOfficialThemeChoice button{min-height:36px;border:0;border-radius:7px;background:var(--orange);color:#071520;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;font-weight:700}
.salonOfficialThemeChoice button.isSecondary{border:1px solid rgba(49,209,207,.28);background:#082333;color:#b8e7e3}

/* Résultats officiels directs : fenêtre centrale superposée, jamais dans la zone droite. */
.salonCentralResultsWindow{
  position:absolute;z-index:12;top:7%;left:50%;transform:translateX(-50%);width:min(68%,760px);max-height:82%;
  display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(149,205,218,.30);border-radius:13px;
  background:linear-gradient(180deg,rgba(9,35,49,.99),rgba(4,21,32,.99));box-shadow:0 24px 70px rgba(0,0,0,.55);
}
.salonCentralResultsWindow>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px;border-bottom:1px solid rgba(149,205,218,.16)}
.salonCentralResultsWindow>header h2{margin:0;color:#f5f0e8;font-size:27px;font-weight:400;line-height:1.08;overflow-wrap:anywhere}
.salonCentralResultsWindow>header p{margin:7px 0 0;color:#8da5ad;font-family:"Segoe UI",Arial,sans-serif;font-size:10px}
.salonCentralResultsClose{flex:none;width:32px;height:32px;display:grid;place-items:center;padding:0 0 2px;border:1px solid rgba(149,205,218,.24);border-radius:50%;background:transparent;color:#b4c5ca;font-size:17px}
.salonCentralResultsBody{min-height:0;overflow:auto;padding:14px;scrollbar-width:thin;scrollbar-color:rgba(49,209,207,.22) transparent}
.salonCentralResultsEmpty{margin:0;color:#b4c5ca;font-family:"Segoe UI",Arial,sans-serif;font-size:12px}

/* Volet terminal : en-tête gris-bleu, corps orange, sans gros bloc vide. */
.salonDrawerPanel--final{background:#f58a4b !important;border-color:rgba(255,178,119,.72) !important}
.salonDrawerPanel--final .salonDrawerHead{background:linear-gradient(180deg,rgba(9,35,49,.995),rgba(5,24,36,.995)) !important;border-bottom-color:rgba(149,205,218,.18) !important}
.salonDrawerPanel--final .salonDrawerHead h2{color:#f5f0e8 !important}
.salonDrawerPanel--final .salonDrawerDescription{color:#aabcc1 !important;font-weight:400 !important}
.salonDrawerPanel--final .salonDrawerClose{border-color:rgba(149,205,218,.25) !important;color:#b7c8cd !important;background:rgba(255,255,255,.025) !important}
.salonDrawerPanel--final .salonDrawerBody{background:#f58a4b !important;padding:14px !important}
.salonDrawerPanel--final .salonResultCard{background:#071f2d !important}
.salonCreateButton--empty{display:block;margin:2px auto 0 !important;background:#082333 !important;color:#f5f0e8 !important;border:1px solid rgba(255,255,255,.20) !important}
.salonNoResult{display:none !important}

/* 1920 × 1080 uniquement : tous les volets visibles, dernier volet entier. */
@media (min-width:1800px) and (max-width:2050px) and (min-height:950px) and (max-height:1150px){
  .salonDrawerStage{padding:16px 12px 62px 10px !important}
  .salonDrawerStack{height:min(84%,820px) !important;gap:8px !important;overflow-x:hidden !important;padding-right:0 !important}
  .salonDrawerPanel{min-width:0 !important;max-width:none !important}
  .salonDrawerPanel--continent,.salonDrawerPanel--countries,.salonDrawerPanel--themes,.salonDrawerPanel--topics,.salonDrawerPanel--detail,.salonDrawerPanel--final{max-width:none !important}
  .salonDrawerHead{padding:12px 10px 10px !important;gap:7px !important}
  .salonDrawerHead h2{font-size:22px !important;line-height:1.03 !important}
  .salonDrawerDescription{font-size:10px !important;line-height:1.43 !important}
  .salonDrawerBody{padding:8px !important}
  .salonDrawerListButton{grid-template-columns:21px minmax(0,1fr) 12px !important;gap:5px !important;min-height:49px !important;padding:7px 6px !important}
  .salonDrawerListIcon{width:21px !important;font-size:12px !important}
  .salonDrawerListIcon img{width:20px !important;height:14px !important}
  .salonDrawerListCopy strong{font-size:11.5px !important;line-height:1.16 !important}
  .salonDrawerListCopy small{font-size:8.5px !important}
  .salonDrawerListArrow{font-size:10px !important}
  .salonCountryNationalTitle,.salonCountryLocalTitle,.salonCountryOfficialTitle{font-size:16px !important}
  .salonCountryNationalHint,.salonCountryLocalHint{font-size:9px !important}
  .salonCountryCitySelect,.salonCountryOfficialSearch input,.salonCountryOfficialSearch button{height:34px !important}
}

@media (max-width:1700px), (max-height:900px){
  .salonDrawerDescription{font-size:8px !important}
  .salonCountryNationalTitle,.salonCountryLocalTitle,.salonCountryOfficialTitle{font-size:14px}
  .salonCountryNationalHint,.salonCountryLocalHint{font-size:7.8px !important}
  .salonCountryCitySelect,.salonCountryOfficialSearch input,.salonCountryOfficialSearch button{height:30px !important}
  .salonOfficialThemeChoice strong{font-size:10px}
  .salonOfficialThemeChoice button{min-height:30px;font-size:8px}
}


/* ========================================================================== */
/* R87 - finalisation du bloc gauche et finitions fonctionnelles               */
/* ========================================================================== */

/* Motifs graphiques très discrets, dans l'esprit du bloc statistiques. */
.memberExplorerPanel:before{
  z-index:0 !important;
  opacity:.9;
  background:
    radial-gradient(circle at 108% 18%,transparent 0 78px,rgba(49,209,207,.055) 79px 81px,transparent 82px),
    radial-gradient(circle at -18% 70%,transparent 0 112px,rgba(245,138,75,.038) 113px 115px,transparent 116px),
    linear-gradient(151deg,transparent 0 42%,rgba(149,205,218,.032) 42.2% 42.45%,transparent 42.7%),
    linear-gradient(180deg,rgba(49,209,207,.035),transparent 38%),
    radial-gradient(circle at 50% 20%,rgba(49,209,207,.055),transparent 36%) !important;
}
.memberExplorerPanel:after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0 7%,rgba(149,205,218,.028) 7.2% 7.4%,transparent 7.6%),
    linear-gradient(12deg,transparent 0 78%,rgba(49,209,207,.026) 78.2% 78.45%,transparent 78.7%);
}
.memberExplorerPanel>*{position:relative;z-index:2}

/* Hiérarchie typographique du bloc gauche. */
.memberExplorerHead{padding:10px 8px 18px !important}
.memberExplorerHead h2{
  margin:0 !important;
  color:#f7f2e9 !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(31px,2.15vw,41px) !important;
  font-weight:400 !important;
  line-height:1.02 !important;
  letter-spacing:-.025em;
}
.salonExplorerLabel{
  color:#f7f2e9 !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(17px,1.08vw,21px) !important;
  font-weight:400 !important;
  line-height:1.12 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.salonQuickSearch{gap:13px !important;padding:20px 8px 22px !important}
.salonQuickSearch>label{gap:7px !important}
.salonQuickSearch label>span,
.salonOfficialMiniSearch label>span{
  color:#f7f2e9 !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.15 !important;
}
.salonQuickSearch select,.salonQuickSearch input{
  height:42px !important;
  padding:0 13px !important;
  font-size:13px !important;
}
.salonQuickSearch button{
  height:43px !important;
  font-size:13px !important;
  font-weight:600 !important;
}
.salonExplorerSection{padding:22px 8px !important}
.salonExplorerSectionHead{margin-bottom:12px !important}
.salonExplorerSectionHead>button{font-size:10px !important}
.salonExplorerSection>p{
  margin:0 0 15px !important;
  color:rgba(247,242,233,.88) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:13px !important;
  font-weight:400 !important;
  line-height:1.5 !important;
}
.salonContinentShortcuts{gap:8px !important}
.salonContinentShortcuts button{
  min-height:40px !important;
  padding:8px 9px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:13px !important;
  font-weight:400 !important;
}
.salonOfficialEntries{gap:9px !important}
.salonOfficialEntries button{
  min-height:42px !important;
  padding:0 12px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:13px !important;
  font-weight:400 !important;
}
.salonOfficialMiniSearch{grid-template-columns:minmax(0,1fr) 42px !important;gap:8px !important;margin-top:11px !important}
.salonOfficialMiniSearch label{gap:7px !important}
.salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:42px !important}
.salonOfficialMiniSearch input{padding:0 11px !important;font-size:12px !important}
.salonOfficialMiniSearch button{font-size:17px !important}
.salonTodayList{gap:7px !important}
.salonTodayList>p,.salonTodayButton{
  color:rgba(247,242,233,.82) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:1.4 !important;
}
.salonTodayButton{min-height:38px !important;padding:7px 10px !important}

/* Drapeau devant les trois titres du premier volet pays. */
.salonCountryNationalTitle,.salonCountryLocalTitle,.salonCountryOfficialTitle{
  display:flex !important;
  align-items:center;
  gap:8px;
}
.salonCountrySectionFlag{
  flex:none;
  width:22px;
  height:15px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.10);
}

/* Les sauts de ligne remplacent les séparateurs artificiels. */
.salonDrawerHead h2,.salonResultCard h3,.salonCentralResultsWindow>header h2{white-space:pre-line !important}

/* Largeur auto identique pour les parcours officiels et ordinaires en 1920. */
@media (min-width:1800px) and (max-width:2050px) and (min-height:950px) and (max-height:1150px){
  .salonDrawerStack{gap:7px !important}
  .salonDrawerHead h2{font-size:var(--drawer-title-size,22px) !important}
  .salonDrawerDescription{font-size:var(--drawer-copy-size,10px) !important}
  .salonDrawerListCopy strong{font-size:clamp(10px,var(--drawer-copy-size,10px),11.5px) !important}
  .salonDrawerListCopy small{font-size:clamp(7.5px,calc(var(--drawer-copy-size,10px) - 1px),9px) !important}
}

/* Adaptation typographique des formats compacts sans toucher à leur largeur. */
@media (max-width:1700px), (max-height:900px){
  .memberExplorerHead{padding:5px 4px 10px !important}
  .memberExplorerHead h2{font-size:24px !important}
  .salonExplorerLabel{font-size:14px !important}
  .salonQuickSearch{gap:8px !important;padding:12px 4px 13px !important}
  .salonQuickSearch label>span,.salonOfficialMiniSearch label>span{font-size:10px !important}
  .salonQuickSearch select,.salonQuickSearch input{height:31px !important;font-size:9.5px !important;padding:0 8px !important}
  .salonQuickSearch button{height:32px !important;font-size:10px !important}
  .salonExplorerSection{padding:13px 4px !important}
  .salonExplorerSection>p{display:block !important;font-size:9px !important;line-height:1.42 !important;margin-bottom:9px !important}
  .salonContinentShortcuts{gap:5px !important}
  .salonContinentShortcuts button{min-height:30px !important;font-size:9px !important;padding:5px 6px !important}
  .salonOfficialEntries{gap:5px !important}
  .salonOfficialEntries button{min-height:31px !important;font-size:9px !important;padding:0 7px !important}
  .salonOfficialMiniSearch{grid-template-columns:minmax(0,1fr) 31px !important;gap:5px !important;margin-top:7px !important}
  .salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:31px !important}
  .salonOfficialMiniSearch input{font-size:8.5px !important}
  .salonTodayList>p,.salonTodayButton{font-size:8.5px !important}
  .salonTodayButton{min-height:29px !important}
}
@media (max-width:1450px) and (max-height:820px){
  .memberExplorerHead h2{font-size:21px !important}
  .salonExplorerLabel{font-size:12px !important}
  .salonQuickSearch label>span,.salonOfficialMiniSearch label>span{font-size:8.5px !important}
  .salonExplorerSection>p{font-size:7.8px !important}
  .salonContinentShortcuts button,.salonOfficialEntries button{font-size:8px !important}
}

/* ========================================================================== */
/* R88 - premier salon local test et dernier réglage du bloc de recherche      */
/* ========================================================================== */

/* Premier volet pays : une lecture simple, sans répétition. */
.salonCountryScope{
  display:grid;
  gap:10px;
  padding:10px 2px 18px;
  margin:0 0 15px;
  border-bottom:2px solid rgba(149,205,218,.24);
}
.salonCountryScope:last-child{margin-bottom:0;border-bottom:0}
.salonCountryIdentity{display:flex;align-items:center;gap:11px;padding:0 4px 2px}
.salonCountryIdentity img{width:34px;height:23px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.salonCountryIdentity strong{color:#f7f2e9;font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:400;line-height:1}
.salonCountryNationalButton{
  width:100%;min-height:42px;padding:8px 12px;border:1px solid rgba(149,205,218,.21);border-radius:8px;
  background:rgba(7,31,45,.82);color:#f7f2e9;text-align:left;font-family:Georgia,"Times New Roman",serif;
  font-size:15px;font-weight:400;line-height:1.2
}
.salonCountryNationalButton:hover{border-color:rgba(245,138,75,.55);background:rgba(245,138,75,.07)}
.salonCountryCitySelect{
  width:100%;height:40px;padding:0 11px;border:1px solid rgba(149,205,218,.22);border-radius:8px;
  background:#092535;color:#f7f2e9;font-family:Georgia,"Times New Roman",serif;font-size:14px;outline:none
}
.salonCountryCitySelect:focus{border-color:rgba(49,209,207,.58)}
.salonCountryOfficialSearch{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px;margin:0}
.salonCountryOfficialSearch input{
  min-width:0;width:100%;height:40px;padding:0 11px;border:1px solid rgba(149,205,218,.22);border-radius:8px;
  background:#092535;color:#f7f2e9;font-family:Georgia,"Times New Roman",serif;font-size:13px;outline:none
}
.salonCountryOfficialSearch input::placeholder{color:rgba(247,242,233,.88);opacity:1}
.salonCountryOfficialSearch input:focus{border-color:rgba(49,209,207,.58)}
.salonCountryOfficialSearch button{height:40px;border:0;border-radius:8px;background:var(--orange);color:#071520;font-size:17px}
.salonCountryNationalTitle,.salonCountryLocalTitle,.salonCountryOfficialTitle,
.salonCountryNationalHint,.salonCountryLocalHint{display:none !important}

/* 1920 x 1080 : le bloc gauche tient sans barre de défilement. */
@media (min-width:1800px) and (max-width:2050px) and (min-height:950px) and (max-height:1150px){
  .memberExplorerBody{overflow:hidden !important;padding-right:0 !important}
  .memberExplorerHead{padding:8px 6px 13px !important}
  .memberExplorerHead h2{font-size:32px !important;line-height:1 !important;white-space:nowrap !important;letter-spacing:-.035em !important}
  .salonExplorerLabel{font-size:17px !important}
  .salonQuickSearch{gap:8px !important;padding:13px 6px 15px !important}
  .salonQuickSearch>label{gap:5px !important}
  .salonQuickSearch label>span,.salonOfficialMiniSearch label>span{font-size:11.5px !important}
  .salonQuickSearch select,.salonQuickSearch input{height:34px !important;font-size:11px !important;padding:0 10px !important}
  .salonQuickSearch button{height:35px !important;font-size:11.5px !important}
  .salonExplorerSection{padding:15px 6px !important}
  .salonExplorerSectionHead{margin-bottom:8px !important}
  .salonExplorerSection>p{font-size:10.5px !important;line-height:1.42 !important;margin-bottom:10px !important}
  .salonContinentShortcuts{gap:6px !important}
  .salonContinentShortcuts button{min-height:34px !important;font-size:11px !important;padding:6px 7px !important}
  .salonOfficialEntries{gap:6px !important}
  .salonOfficialEntries button{min-height:34px !important;font-size:11px !important}
  .salonOfficialMiniSearch{grid-template-columns:minmax(0,1fr) 35px !important;gap:6px !important;margin-top:8px !important}
  .salonOfficialMiniSearch input,.salonOfficialMiniSearch button{height:34px !important}
  .salonOfficialMiniSearch input{font-size:10px !important}
  .salonTodayList>p,.salonTodayButton{font-size:10px !important}
  .salonTodayButton{min-height:32px !important}
}

/* Salon de discussion local. */
.memberWorkspace.isSalonOpen{background:linear-gradient(115deg,rgba(4,20,31,.995),rgba(6,27,40,.96)) !important}
.salonRoomView{
  position:absolute;z-index:12;inset:10px;display:flex;min-width:0;min-height:0;flex-direction:column;
  overflow:hidden;border:1px solid rgba(149,205,218,.25);border-radius:14px;background:#061c29;
  box-shadow:0 22px 58px rgba(0,0,0,.44)
}
.salonRoomHeader{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:15px 17px 13px;border-bottom:1px solid rgba(149,205,218,.18);background:linear-gradient(110deg,#092a3a,#071e2c)}
.salonRoomTitle{min-width:0}
.salonRoomBreadcrumb{margin:0 0 4px;color:#6f909a;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salonRoomTitle h1{margin:0;color:#f7f2e9;font-family:Georgia,"Times New Roman",serif;font-size:clamp(25px,2vw,36px);font-weight:400;line-height:1}
.salonRoomTitle>p:last-child{margin:6px 0 0;color:#8eabb3;font-family:"Segoe UI",Arial,sans-serif;font-size:10px}
.salonRoomHeaderActions{display:flex;align-items:center;gap:8px}
.salonRoomFavorite,.salonRoomClose{border:1px solid rgba(149,205,218,.24);background:rgba(255,255,255,.025);color:#c6d4d6}
.salonRoomFavorite{min-height:34px;padding:0 12px;border-radius:8px;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}
.salonRoomFavorite.isFavorite{border-color:rgba(245,138,75,.55);color:#ffac72;background:rgba(245,138,75,.08)}
.salonRoomClose{width:34px;height:34px;display:grid;place-items:center;padding:0 0 2px;border-radius:50%;font-size:19px}
.salonRoomTabs{flex:none;display:flex;align-items:stretch;min-width:0;border-bottom:1px solid rgba(149,205,218,.18);background:#071f2d}
.salonRoomTabs button{min-height:43px;padding:0 16px;border:0;border-right:1px solid rgba(149,205,218,.12);background:transparent;color:#a6b9be;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}
.salonRoomTabs button:hover,.salonRoomTabs button.isActive{color:#fff;background:rgba(49,209,207,.07)}
.salonRoomTabs button.isActive{box-shadow:inset 0 -2px 0 var(--orange)}
.salonRoomTabs .salonRoomQuit{margin-left:auto;border-left:1px solid rgba(149,205,218,.12);border-right:0;color:#ff9a62}
.salonRoomBody{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) clamp(205px,21%,260px);gap:10px;padding:10px;background:linear-gradient(135deg,rgba(5,24,36,.96),rgba(4,18,28,.99))}
.salonRoomMain{min-width:0;min-height:0;overflow:hidden}
.salonDialoguePanel{height:100%;display:flex;min-width:0;min-height:0;flex-direction:column;border:1px solid rgba(149,205,218,.18);border-radius:10px;background:#071f2d}
.salonDialogueHeading{flex:none;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-bottom:1px solid rgba(149,205,218,.16)}
.salonDialogueHeading h2{margin:0;color:var(--teal);font-size:17px;font-weight:400}.salonDialogueHeading span{color:#728e98;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonMessages{min-height:0;flex:1;overflow-y:auto;padding:7px 12px 12px;scrollbar-width:thin;scrollbar-color:rgba(49,209,207,.24) transparent}
.salonMessage{display:grid;grid-template-columns:128px minmax(0,1fr);gap:9px;padding:6px 4px;border-bottom:1px solid rgba(149,205,218,.055)}
.salonMessage.isHost{background:rgba(245,138,75,.04)}.salonMessage.isMine{background:rgba(49,209,207,.04)}
.salonMessageMeta{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
.salonMessageMeta time{color:#667f89;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonMessageAuthor{max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:none;color:#a896ff;padding:0;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;text-align:right}
.salonMessage.isHost .salonMessageAuthor{color:#ff9c65}.salonMessage.isMine .salonMessageAuthor{color:#63d8d3}
.salonMessage p{margin:0;color:#e4ebea;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;line-height:1.45}
.salonComposer{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px;border-top:1px solid rgba(149,205,218,.15)}
.salonComposer textarea{grid-row:1/3;min-width:0;resize:none;padding:9px 10px;border:1px solid rgba(149,205,218,.22);border-radius:8px;background:#092736;color:#f2f5f4;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;outline:none}
.salonComposerControls{display:grid;grid-template-columns:auto 34px 82px;align-items:center;gap:6px}
.salonTranslateToggle{color:#90a9b0;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px;white-space:nowrap}
.salonEmojiButton,.salonSendButton{height:34px;border-radius:7px}.salonEmojiButton{border:1px solid rgba(149,205,218,.22);background:#092736;color:#dfe9e7;font-size:17px}.salonSendButton{border:0;background:var(--orange);color:#071520;font-size:9px;font-weight:700}
.salonRoomMembers{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid rgba(149,205,218,.18);border-radius:10px;background:#071f2d;overflow:hidden}
.salonRoomMembersHead{flex:none;display:flex;align-items:center;justify-content:space-between;padding:11px 11px 8px}.salonRoomMembersHead h2{margin:0;font-size:14px;font-weight:400}.salonRoomMembersHead span{color:#708b95;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonRoomMembers>input{flex:none;margin:0 9px 8px;height:31px;padding:0 9px;border:1px solid rgba(149,205,218,.18);border-radius:7px;background:#092736;color:#f2f5f4;font-size:8.5px;outline:none}
.salonRoomMemberList{min-height:0;flex:1;overflow-y:auto;padding:0 7px 7px}
.salonRoomMemberRow{width:100%;display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:8px;padding:6px;border:0;border-radius:6px;background:transparent;color:#e4ebea;text-align:left}
.salonRoomMemberRow:hover{background:rgba(49,209,207,.07)}.salonRoomMemberRow span{min-width:0}.salonRoomMemberRow strong{display:block;overflow:hidden;text-overflow:ellipsis;color:#e7eceb;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;font-weight:400}.salonRoomMemberRow small{display:block;margin-top:2px;color:#657f89;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonPresence{display:block;width:7px;height:7px;border-radius:50%;background:#5d7078}.salonPresence.is-online{background:#74d85b}.salonPresence.is-away{background:#f0b252}.salonPresence.is-offline{background:#68777d}
.salonRoomMemberStats{flex:none;margin:0;padding:8px 10px;border-top:1px solid rgba(149,205,218,.12);color:#708a94;font-family:"Segoe UI",Arial,sans-serif;font-size:7.5px}
.salonRoomReport{flex:none;margin:0 9px 9px;min-height:34px;border:0;border-radius:7px;background:var(--orange);color:#071520;font-size:8px;font-weight:700}
.salonInformationPanel,.salonMembersFullPanel,.salonPrivateHub,.salonPrivateConversation{height:100%;overflow-y:auto;padding:18px;border:1px solid rgba(149,205,218,.18);border-radius:10px;background:#071f2d}
.salonInformationPanel h2,.salonMembersFullPanel h2,.salonPrivateHub h2,.salonPrivateConversation h2{margin:0 0 13px;font-size:25px;font-weight:400}
.salonInformationPath{color:#78939c;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}.salonInformationDescription{max-width:700px;color:#d8e1df;font-size:16px;line-height:1.5}
.salonInformationGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}.salonInformationGrid div{padding:11px;border:1px solid rgba(149,205,218,.13);border-radius:8px}.salonInformationGrid dt{color:#6f8b95;font-family:"Segoe UI",Arial,sans-serif;font-size:7px;text-transform:uppercase;letter-spacing:.08em}.salonInformationGrid dd{margin:5px 0 0;color:#edf2f0;font-size:12px}
.salonRoomRules{padding:15px;border-left:3px solid var(--orange);background:rgba(245,138,75,.045)}.salonRoomRules h3{margin:0 0 9px;font-size:17px;font-weight:400}.salonRoomRules p{margin:5px 0;color:#a9babe;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}
.salonMembersGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.salonMemberCard{display:grid;grid-template-columns:40px minmax(0,1fr) 8px;align-items:center;gap:9px;padding:10px;border:1px solid rgba(149,205,218,.15);border-radius:8px;background:#092534;text-align:left}.salonMemberCard:hover{border-color:rgba(245,138,75,.4)}
.salonMemberAvatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(49,209,207,.1);color:#a9ece5;font-family:"Segoe UI",Arial,sans-serif;font-size:11px}.salonMemberCardCopy{min-width:0}.salonMemberCardCopy strong,.salonMemberCardCopy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.salonMemberCardCopy strong{color:#eff3f1;font-size:11px;font-weight:400}.salonMemberCardCopy small{margin-top:3px;color:#728b94;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonPrivateIntro{color:#9eb0b5;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;line-height:1.5}.salonPrivateActive,.salonPrivatePending,.salonPrivateGroupForm{margin-top:18px;padding-top:15px;border-top:1px solid rgba(149,205,218,.14)}.salonPrivateActive h3,.salonPrivatePending h3,.salonPrivateGroupForm h3{margin:0 0 9px;font-size:16px;font-weight:400}
.salonPrivateConversationButton{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;padding:10px;border:1px solid rgba(149,205,218,.15);border-radius:8px;background:#092534;color:#e8eeec;text-align:left}.salonPrivateConversationButton strong,.salonPrivateConversationButton small{display:block}.salonPrivateConversationButton strong{font-size:11px;font-weight:400}.salonPrivateConversationButton small{margin-top:3px;color:#718b94;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}.salonPrivateConversationButton b{color:var(--orange);font-family:"Segoe UI",Arial,sans-serif;font-size:8px}
.salonPrivatePending p{display:flex;justify-content:space-between;margin:5px 0;padding:8px;border-radius:6px;background:rgba(255,255,255,.025);font-size:10px}.salonPrivatePending small{color:#d29a70;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonPrivateGroupForm>input{width:100%;height:36px;padding:0 10px;border:1px solid rgba(149,205,218,.18);border-radius:7px;background:#092534;color:#fff}.salonPrivateChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0}.salonPrivateChoices label{padding:7px;border:1px solid rgba(149,205,218,.12);border-radius:6px;color:#cdd8d9;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}.salonPrivateGroupForm>button{min-height:35px;border:0;border-radius:7px;background:var(--orange);color:#071520;font-size:9px;font-weight:700}
.salonPrivateConversationHead{display:flex;align-items:flex-start;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(149,205,218,.14)}.salonPrivateConversationHead>button{border:0;background:none;color:#87abae;font-size:9px}.salonPrivateConversationHead h2{margin-bottom:4px}.salonPrivateConversationHead p{margin:0;color:#728b94;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}.salonPrivateMessages{height:calc(100% - 120px);overflow-y:auto;padding:12px 0}.salonPrivateMessages article{max-width:75%;margin:7px 0;padding:9px;border-radius:8px;background:#092534}.salonPrivateMessages article.isMine{margin-left:auto;background:rgba(49,209,207,.09)}.salonPrivateMessages strong{font-size:9px;font-weight:400;color:#a5e5df}.salonPrivateMessages p{margin:4px 0 0;color:#e0e7e5;font-family:"Segoe UI",Arial,sans-serif;font-size:9px;line-height:1.4}.salonPrivateComposer{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:7px}.salonPrivateComposer input{min-width:0;height:35px;padding:0 9px;border:1px solid rgba(149,205,218,.18);border-radius:7px;background:#092534;color:#fff}.salonPrivateComposer button{border:0;border-radius:7px;background:var(--orange);color:#071520;font-size:8px;font-weight:700}
.salonMemberDialog{position:absolute;z-index:40;inset:0;display:grid;place-items:center}.salonMemberDialogBackdrop{position:absolute;inset:0;border:0;background:rgba(0,8,14,.72)}.salonMemberDialogCard{position:relative;width:min(360px,calc(100% - 30px));padding:18px;border:1px solid rgba(149,205,218,.25);border-radius:12px;background:#071f2d;box-shadow:0 18px 50px rgba(0,0,0,.5)}.salonMemberDialogClose{position:absolute;top:10px;right:10px;width:30px;height:30px;border:1px solid rgba(149,205,218,.2);border-radius:50%;background:transparent;color:#c4d2d4;font-size:17px}.salonMemberDialogIdentity{display:flex;align-items:center;gap:12px;padding-right:32px}.salonMemberDialogIdentity h3{margin:0;font-size:20px;font-weight:400}.salonMemberDialogIdentity p{margin:4px 0 0;color:#78929b;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}.salonMemberPresence{margin:14px 0;color:#8fa8af;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}.salonMemberDialogActions{display:grid;gap:7px}.salonMemberDialogActions button{min-height:35px;border:1px solid rgba(149,205,218,.18);border-radius:7px;background:#092534;color:#dfe7e5;font-size:9px}.salonMemberDialogActions button.isPrimary{border:0;background:var(--orange);color:#071520;font-weight:700}.salonMemberDialogActions button.isDanger{color:#ff9870;border-color:rgba(245,138,75,.35)}

@media (max-width:1500px), (max-height:850px){
  .salonRoomView{inset:7px}.salonRoomHeader{padding:10px 12px 9px}.salonRoomTitle h1{font-size:24px}.salonRoomTabs button{min-height:35px;padding:0 10px;font-size:7.5px}.salonRoomBody{grid-template-columns:minmax(0,1fr) 210px;gap:7px;padding:7px}.salonMessage{grid-template-columns:105px minmax(0,1fr);padding:4px 2px}.salonMessage p{font-size:8.5px}.salonComposerControls{grid-template-columns:auto 30px 66px}.salonTranslateToggle{font-size:6.5px}.salonMembersGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ========================================================================== */
/* R89 - finitions du premier volet, séparateurs et résultats compacts         */
/* ========================================================================== */

/* Flèche orange discrète dans l'accès national. */
.salonCountryNationalButton{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.salonCountryNationalButton::after{
  content:"→";
  flex:none;
  color:var(--orange);
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:17px;
  font-weight:400;
  line-height:1;
}

/* Centrage optique strict de la flèche du moteur officiel. */
.salonCountryOfficialSearch button{
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  line-height:1 !important;
  text-align:center !important;
}

/* Résultat final compact : sujet, ville, présence et activité récente. */
.salonResultCard{
  padding:13px !important;
}
.salonResultCard h3{
  font-size:clamp(18px,1.25vw,23px) !important;
  line-height:1.08 !important;
}
.salonResultLocation{
  margin:5px 0 0;
  color:#d7e0df;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(14px,1vw,18px);
  line-height:1.1;
}
.salonResultPath{display:none !important}
.salonResultMeta{
  display:grid !important;
  gap:4px !important;
  margin-top:10px !important;
  font-size:8px !important;
}
.salonOpenButton{
  min-height:32px !important;
  margin-top:11px !important;
  padding:0 13px !important;
}

/* En 1920 x 1080 et en dessous : deux respirations courtes avec trait centré. */
@media (max-width:1920px) and (max-height:1080px){
  .salonQuickSearch,
  .salonDeepSearch{
    border-bottom:0 !important;
  }
  .salonQuickSearch::after,
  .salonDeepSearch::after{
    content:"";
    display:block;
    width:54%;
    height:1px;
    margin:10px auto 0;
    background:linear-gradient(90deg,transparent,rgba(149,205,218,.38),transparent);
  }
  .salonQuickSearch{
    padding-bottom:10px !important;
  }
  .salonDeepSearch{
    padding-bottom:10px !important;
  }
}

/* ========================================================================== */
/* R90 - structure évolutive du salon, chat clair et panneau membres coulissant */
/* ========================================================================== */

/* Finitions du premier volet pays : flèches et chevrons placés optiquement. */
.salonCountryNationalButton{
  position:relative !important;
  display:block !important;
  padding-right:52px !important;
}
.salonCountryNationalButton::after{
  content:"→" !important;
  position:absolute !important;
  right:18px !important;
  top:50% !important;
  transform:translateY(-54%) !important;
  margin:0 !important;
  color:var(--orange) !important;
  font-family:Arial,sans-serif !important;
  font-size:18px !important;
  font-weight:400 !important;
  line-height:1 !important;
}
.salonCountryOfficialSearch button{
  position:relative !important;
  display:block !important;
  padding:0 !important;
  font-size:0 !important;
  line-height:0 !important;
}
.salonCountryOfficialSearch button::after{
  content:"→";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-55%);
  color:#071520;
  font-family:Arial,sans-serif;
  font-size:18px;
  font-weight:400;
  line-height:1;
}
.salonCountryCitySelect{
  -webkit-appearance:none !important;
  appearance:none !important;
  padding-right:42px !important;
  background-color:#092535 !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%23f7f2e9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:12px 8px !important;
}

/* Liens privés conservés dans le bloc de gauche après la fermeture d'un salon. */
.salonOpenPrivateLinks{
  margin-top:12px;
  padding:10px 0 0;
  border-top:1px solid rgba(245,138,75,.28);
}
.salonOpenPrivateLinksTitle{
  display:block;
  margin-bottom:7px;
  color:var(--orange);
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.04em;
}
.salonOpenPrivateLinksList{display:grid;gap:5px}
.salonOpenPrivateLinksList button{
  width:100%;
  min-height:29px;
  padding:5px 8px;
  overflow:hidden;
  border:1px solid rgba(149,205,218,.17);
  border-radius:6px;
  background:rgba(7,31,45,.72);
  color:#d9e3e2;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:8px;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.salonOpenPrivateLinksList button:hover{border-color:rgba(245,138,75,.48);color:#fff}
.memberExplorerPanel.hasPrivateLinks .memberExplorerHead{padding-bottom:12px !important}

/* Le visuel constitue le fond du salon. Les blocs fonctionnels se posent dessus. */
.memberWorkspace.isSalonOpen{
  background:linear-gradient(115deg,rgba(4,20,31,.995),rgba(6,27,40,.96)) !important;
}
.salonRoomView{
  position:absolute;
  z-index:12;
  inset:10px;
  display:flex;
  min-width:0;
  min-height:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(149,205,218,.25);
  border-radius:14px;
  background:#061c29;
  box-shadow:0 22px 58px rgba(0,0,0,.44);
}
.salonVisualStage{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(3,17,26,.16),rgba(3,17,26,.52)),
    radial-gradient(circle at 78% 16%,rgba(245,138,75,.25),transparent 29%),
    linear-gradient(135deg,rgba(7,30,42,.58),rgba(26,27,25,.48)),
    url('../assets/images/dashboard-centre-orange-hd.png') center/cover;
}
.salonVisualStage::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(4,20,31,.96) 0 3%,transparent 19% 100%);
  pointer-events:none;
}
.salonVisualTop{
  position:absolute;
  top:18px;
  right:18px;
  width:31%;
  height:112px;
  border-top:1px solid rgba(255,255,255,.08);
  border-right:1px solid rgba(255,255,255,.08);
}
.salonVisualEyebrow{
  position:absolute;
  top:12px;
  right:12px;
  color:rgba(245,242,233,.42);
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:7px;
  letter-spacing:.15em;
}
.salonVisualSide{
  position:absolute;
  top:150px;
  right:0;
  bottom:0;
  width:22%;
  display:flex;
  align-items:flex-end;
  gap:10px;
  padding:18px;
  border-left:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(6,21,29,.05),rgba(3,15,23,.62));
}
.salonVisualMark{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,138,75,.35);
  border-radius:50%;
  color:rgba(245,138,75,.74);
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
}
.salonVisualCopy{min-width:0;padding-bottom:2px}
.salonVisualCopy strong,.salonVisualCopy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonVisualCopy strong{color:rgba(247,242,233,.75);font-size:12px;font-weight:400}
.salonVisualCopy span{margin-top:3px;color:rgba(182,200,203,.47);font-family:"Segoe UI",Arial,sans-serif;font-size:7px}

/* Bandeau et navigation volontairement courts pour laisser vivre le visuel. */
.salonRoomHeader{
  position:relative;
  z-index:3;
  width:min(66%,780px);
  min-width:560px;
  min-height:116px;
  flex:none;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px 12px;
  border:0;
  border-right:1px solid rgba(149,205,218,.17);
  border-bottom:1px solid rgba(149,205,218,.17);
  border-radius:0 0 12px 0;
  background:linear-gradient(110deg,rgba(9,42,58,.97),rgba(7,30,44,.92));
}
.salonRoomBreadcrumb{
  max-width:100%;
  margin:0 0 4px;
  color:#91a8af;
  font-size:10px;
}
.salonRoomTitle h1{font-size:clamp(26px,2vw,35px)}
.salonRoomTitle>p:last-child{
  margin-top:7px;
  color:#a6b9be;
  font-size:9.5px;
}
.salonRoomHeaderActions{flex:none}
.salonRoomFavorite{min-height:32px;padding:0 10px;font-size:8px}
.salonRoomClose{width:33px;height:33px}
.salonRoomTabs{
  position:relative;
  z-index:3;
  width:min(66%,780px);
  min-width:560px;
  flex:none;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
  border-right:1px solid rgba(149,205,218,.17);
  border-bottom:1px solid rgba(149,205,218,.17);
  background:rgba(7,31,45,.96);
}
.salonRoomTabs button{
  position:relative;
  min-height:42px;
  padding:0 14px;
  white-space:nowrap;
}
.salonRoomTabs button.hasUnread{
  color:#fff4e9;
  animation:salonTabPulse 1.05s ease-in-out infinite;
}
.salonRoomTabs button.hasUnread::after{
  content:"";
  position:absolute;
  top:7px;
  right:7px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 0 4px rgba(245,138,75,.12);
}
.salonRoomTabs button.isPanelActive{color:#fff;background:rgba(49,209,207,.08);box-shadow:inset 0 -2px 0 var(--teal)}
.salonPrivateTab{display:flex;align-items:center;gap:5px;max-width:170px}
.salonPrivateTab>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonTabUnread{
  min-width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--orange);
  color:#071520;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:7px;
}
.salonTabUnread[hidden]{display:none}
@keyframes salonTabPulse{0%,100%{background:rgba(245,138,75,.03)}50%{background:rgba(245,138,75,.19)}}

/* Corps du salon : largeur principale, laissant le L visuel apparent à droite. */
.salonRoomBody{
  position:relative;
  z-index:2;
  width:79%;
  min-height:0;
  flex:1;
  display:block;
  padding:8px 8px 8px 12px;
  background:transparent;
}
.salonRoomMain{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}

/* Chat traditionnel clair, plus lisible. */
.salonDialoguePanel{
  height:100%;
  border-color:rgba(17,48,61,.35);
  background:#f4f1e8;
  box-shadow:0 14px 40px rgba(0,0,0,.22);
}
.salonDialogueHeading{
  min-height:48px;
  padding:11px 14px;
  border-bottom:1px solid rgba(149,205,218,.16);
  background:#072431;
}
.salonDialogueHeading h2{font-size:19px}
.salonMessages{
  padding:8px 14px 14px;
  background:#f8f6f0;
  scrollbar-color:rgba(20,69,83,.35) transparent;
}
.salonMessage{
  position:relative;
  grid-template-columns:145px minmax(0,1fr);
  gap:12px;
  min-height:33px;
  padding:8px 7px;
  border-bottom:1px solid rgba(19,53,65,.09);
}
.salonMessage.isHost{background:rgba(245,138,75,.07)}
.salonMessage.isMine{background:rgba(49,209,207,.08)}
.salonMessage.isMention{
  padding-left:12px;
  border-left:4px solid var(--orange);
  background:#fff0dd;
  box-shadow:inset 0 0 0 1px rgba(245,138,75,.15);
}
.salonMentionMarker{
  position:absolute;
  top:4px;
  right:6px;
  color:#b45d2d;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:7px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.salonMessageMeta time{color:#7a8a8f;font-size:9px}
.salonMessageAuthor{
  max-width:112px;
  color:#6754b8;
  font-size:10.5px;
  font-weight:600;
}
.salonMessageAuthor:hover{text-decoration:underline}
.salonMessage.isHost .salonMessageAuthor{color:#c9632e}
.salonMessage.isMine .salonMessageAuthor{color:#147b78}
.salonMessage p{
  color:#1e2d33;
  font-size:12px;
  line-height:1.52;
}
.salonComposer{
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  padding:10px;
  border-top:1px solid rgba(20,55,66,.15);
  background:#ebe7dc;
}
.salonComposer textarea{
  min-height:58px;
  padding:10px 12px;
  border-color:rgba(20,62,75,.28);
  background:#fff;
  color:#1c2d33;
  font-size:12px;
}
.salonComposer textarea::placeholder{color:#829196}
.salonComposerControls{
  display:grid;
  grid-template-columns:auto auto 36px 84px;
  align-items:center;
  gap:7px;
}
.salonComposerToggle{
  display:flex;
  align-items:center;
  gap:3px;
  color:#4f646b;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:8px;
  white-space:nowrap;
}
.salonComposerToggle input{accent-color:var(--orange)}
.salonEmojiButton{
  border-color:rgba(19,61,74,.28);
  background:#fff;
  color:#18343e;
}

/* Le panneau des membres glisse au-dessus du visuel et se replie avec son encoche. */
.salonMembersDrawer{
  position:absolute;
  z-index:15;
  top:14px;
  right:0;
  bottom:14px;
  width:clamp(235px,25%,315px);
  min-width:0;
  min-height:0;
  transform:translateX(calc(100% + 22px));
  transition:transform .26s ease,box-shadow .26s ease;
  border-radius:12px 0 0 12px;
  background:linear-gradient(180deg,#082737,#061d2a);
  box-shadow:none;
  overflow:visible;
}
.salonRoomView.isMembersOpen .salonMembersDrawer{
  transform:translateX(0);
  box-shadow:-18px 0 42px rgba(0,0,0,.38);
}
.salonMembersDrawerHandle{
  position:absolute;
  left:-25px;
  top:50%;
  width:26px;
  height:58px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  padding:0 2px 2px 0;
  border:1px solid rgba(149,205,218,.28);
  border-right:0;
  border-radius:12px 0 0 12px;
  background:#082737;
  color:var(--orange);
  font-size:23px;
  line-height:1;
  box-shadow:-8px 0 20px rgba(0,0,0,.22);
}
.salonRoomMembersHead{padding:12px 12px 9px}
.salonRoomMembersHead>div{min-width:0}
.salonRoomMembersHead h2{font-size:16px}
.salonRoomMembersHead span{display:block;margin-top:3px;font-size:7.5px}
.salonMembersDrawerClose{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  padding:0 0 2px;
  border:1px solid rgba(149,205,218,.2);
  border-radius:50%;
  background:transparent;
  color:#cad6d7;
  font-size:17px;
}
.salonRoomMembers>input{height:35px;font-size:9.5px}
.salonRoomMemberRow{padding:8px}
.salonRoomMemberRow strong{font-size:10px}
.salonRoomMemberRow small{font-size:7.5px}

/* Les autres vues restent claires à lire sur la structure graphique. */
.salonInformationPanel,.salonPrivateHub,.salonPrivateConversation{
  background:rgba(7,31,45,.97);
  box-shadow:0 14px 40px rgba(0,0,0,.24);
}
.salonPrivateEmpty{color:#78929b;font-family:"Segoe UI",Arial,sans-serif;font-size:9px}

/* Dialogue de fermeture lorsque des conversations privées sont ouvertes. */
.salonCloseDialog{
  position:absolute;
  z-index:50;
  inset:0;
  display:grid;
  place-items:center;
}
.salonCloseDialogBackdrop{position:absolute;inset:0;border:0;background:rgba(0,8,14,.76)}
.salonCloseDialogCard{
  position:relative;
  width:min(430px,calc(100% - 34px));
  padding:24px;
  border:1px solid rgba(149,205,218,.25);
  border-radius:13px;
  background:#071f2d;
  box-shadow:0 24px 70px rgba(0,0,0,.58);
}
.salonCloseDialogCard h2{margin:0 0 8px;font-size:25px;font-weight:400}
.salonCloseDialogCard p{margin:0;color:#9db0b5;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;line-height:1.5}
.salonCloseDialogActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.salonCloseDialogActions button{
  min-height:39px;
  border:1px solid rgba(149,205,218,.2);
  border-radius:8px;
  background:#092534;
  color:#dfe7e5;
  font-size:9px;
}
.salonCloseDialogActions button.isPrimary{grid-column:1/-1;border:0;background:var(--orange);color:#071520;font-weight:700}

@media (max-width:1500px), (max-height:850px){
  .salonRoomHeader,.salonRoomTabs{width:70%;min-width:510px}
  .salonRoomHeader{min-height:102px;padding:10px 12px 9px}
  .salonRoomTitle h1{font-size:24px}
  .salonRoomTitle>p:last-child{font-size:8.5px}
  .salonRoomTabs button{min-height:36px;padding:0 9px;font-size:7.5px}
  .salonRoomBody{width:80%;padding:7px 7px 7px 9px}
  .salonVisualSide{top:132px;width:20%;padding:12px}
  .salonVisualCopy{display:none}
  .salonMessage{grid-template-columns:120px minmax(0,1fr);padding:6px 5px}
  .salonMessage p{font-size:10.5px !important}
  .salonMessageAuthor{font-size:9.5px}
  .salonComposer textarea{min-height:50px;font-size:10.5px}
  .salonComposerControls{grid-template-columns:auto auto 32px 70px}
  .salonComposerToggle{font-size:6.7px}
  .salonMembersDrawer{width:245px}
}

@media (max-width:1120px){
  .salonRoomHeader,.salonRoomTabs{width:76%;min-width:0}
  .salonRoomBody{width:84%}
  .salonVisualSide{width:16%}
  .salonRoomFavorite{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .salonComposerControls{grid-template-columns:1fr 1fr 32px 68px}
  .salonComposerToggle{white-space:normal;line-height:1.2}
}

/* ========================================================================== */
/* R91 - refonte graphique du salon et harmonisation 1920 / grands formats    */
/* ========================================================================== */

/* Premier volet pays : centrages optiques définitifs. */
.salonCountryNationalButton::after{
  top:50% !important;
  right:20px !important;
  transform:translateY(-50%) !important;
  line-height:1 !important;
}
.salonCountryOfficialSearch button::after{
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  line-height:1 !important;
}
.salonCountryCitySelect{
  padding-right:48px !important;
  background-position:right 22px center !important;
}
.salonDrawerListArrow{
  display:grid !important;
  width:18px !important;
  min-width:18px !important;
  height:24px !important;
  place-items:center !important;
  align-self:center !important;
  padding:0 !important;
  line-height:1 !important;
  text-align:center !important;
}

/* La fiche droite rend de la place au salon à partir du format de référence. */
@media (min-width:1800px) and (min-height:950px){
  .memberLayout{
    grid-template-columns:clamp(292px,15.5vw,350px) minmax(0,1fr) clamp(318px,16.6vw,350px) !important;
  }
  .memberIdentity{
    grid-template-columns:72px minmax(0,1fr) !important;
    gap:12px !important;
  }
  .memberAvatar{width:72px !important;height:72px !important}
  .memberIdentity h2{
    font-size:clamp(27px,1.55vw,31px) !important;
    line-height:.98 !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }
  .memberMysteryTrophies{
    gap:7px 9px !important;
    padding-top:2px !important;
  }
  .memberMysteryTrophies img{
    width:44px !important;
    height:44px !important;
    margin-bottom:3px !important;
    opacity:.43 !important;
  }
  .memberMysteryTrophies figcaption{
    font-size:7.5px !important;
    line-height:1.1 !important;
    color:rgba(246,242,233,.55) !important;
  }
}

/* En 1920 x 1080, les textes de thèmes, catégories et sous-catégories gagnent
   une vraie taille de lecture sans modifier la largeur des volets. */
@media (min-width:1800px) and (max-width:2050px) and (min-height:950px) and (max-height:1150px){
  .salonDrawerPanel--themes .salonDrawerListCopy strong,
  .salonDrawerPanel--topics .salonDrawerListCopy strong,
  .salonDrawerPanel--detail .salonDrawerListCopy strong{
    font-size:13px !important;
    line-height:1.2 !important;
  }
  .salonDrawerPanel--themes .salonDrawerListCopy small,
  .salonDrawerPanel--topics .salonDrawerListCopy small,
  .salonDrawerPanel--detail .salonDrawerListCopy small{
    font-size:9.5px !important;
    line-height:1.35 !important;
  }
  .salonDrawerPanel--themes .salonDrawerListButton,
  .salonDrawerPanel--topics .salonDrawerListButton,
  .salonDrawerPanel--detail .salonDrawerListButton{
    min-height:56px !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Une seule composition centrale : plus de carte ajoutée dans une autre carte. */
.memberWorkspace.isSalonOpen{
  isolation:isolate;
  overflow:hidden !important;
  background:#061c29 !important;
}
.salonRoomView{
  inset:0 !important;
  border:0 !important;
  border-radius:inherit !important;
  background:transparent !important;
  box-shadow:none !important;
}
.salonRoomView::after{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(149,205,218,.18);
}

/* Le visuel est le fond même du salon, sans bordure, carte ou double arrondi. */
.salonVisualStage{
  z-index:0 !important;
  inset:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:
    linear-gradient(90deg,rgba(5,24,36,.12) 0 55%,rgba(5,21,30,.38) 76%,rgba(3,15,22,.72) 100%),
    linear-gradient(180deg,rgba(9,33,43,.06),rgba(3,14,21,.32)),
    url('../assets/images/dashboard-centre-orange-hd.png') center/cover !important;
}
.salonVisualStage::after{
  background:
    linear-gradient(90deg,rgba(4,20,31,.15) 0 58%,transparent 75%),
    radial-gradient(circle at 79% 14%,rgba(245,138,75,.13),transparent 31%) !important;
}
.salonVisualTop{
  top:0 !important;
  right:0 !important;
  width:28% !important;
  height:150px !important;
  border:0 !important;
}
.salonVisualEyebrow{
  top:22px !important;
  right:22px !important;
  color:rgba(247,242,233,.44) !important;
  font-size:8px !important;
}
.salonVisualSide{
  top:150px !important;
  right:0 !important;
  bottom:0 !important;
  width:18% !important;
  padding:0 24px 24px !important;
  border:0 !important;
  background:linear-gradient(180deg,transparent 0 60%,rgba(3,14,21,.55) 100%) !important;
}
.salonVisualMark{
  width:42px !important;
  height:42px !important;
  border-color:rgba(245,138,75,.48) !important;
  background:rgba(4,20,31,.32) !important;
}
.salonVisualCopy strong{font-size:13px !important}
.salonVisualCopy span{font-size:8px !important}

/* Bandeau compact et onglets sur le même axe. */
.salonRoomHeader{
  z-index:4 !important;
  width:72% !important;
  min-width:0 !important;
  min-height:126px !important;
  padding:18px 22px 15px !important;
  border:0 !important;
  border-right:1px solid rgba(149,205,218,.14) !important;
  border-bottom:1px solid rgba(149,205,218,.14) !important;
  border-radius:0 !important;
  background:linear-gradient(108deg,rgba(8,39,54,.985),rgba(7,31,45,.96)) !important;
  box-shadow:none !important;
}
.salonRoomBreadcrumb{
  margin-bottom:5px !important;
  color:#a8bbc0 !important;
  font-size:12px !important;
  line-height:1.25 !important;
}
.salonRoomTitle h1{
  margin:0 !important;
  color:#f7f2e9 !important;
  font-size:clamp(30px,2.25vw,42px) !important;
  line-height:.98 !important;
  letter-spacing:-.025em !important;
}
.salonRoomTitle>p:last-child{
  margin-top:10px !important;
  color:#a9bcc1 !important;
  font-size:10.5px !important;
  line-height:1.25 !important;
}
.salonRoomHeaderActions{gap:9px !important}
.salonRoomFavorite{
  min-height:36px !important;
  padding:0 13px !important;
  border-radius:9px !important;
  font-size:9px !important;
}
.salonRoomClose{
  width:38px !important;
  height:38px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 0 2px !important;
}
.salonRoomTabs{
  z-index:4 !important;
  width:72% !important;
  min-width:0 !important;
  min-height:48px !important;
  border:0 !important;
  border-right:1px solid rgba(149,205,218,.14) !important;
  border-bottom:1px solid rgba(149,205,218,.14) !important;
  background:#071f2d !important;
  box-shadow:none !important;
}
.salonRoomTabs button{
  min-height:48px !important;
  padding:0 15px !important;
  border-right:1px solid rgba(149,205,218,.10) !important;
  color:#b4c5c9 !important;
  font-size:9px !important;
}
.salonRoomTabs button.isActive,
.salonRoomTabs button.isPanelActive{
  color:#fff !important;
  background:rgba(49,209,207,.055) !important;
  box-shadow:inset 0 -3px 0 var(--orange) !important;
}
.salonRoomQuit{
  margin-left:auto !important;
  color:#f3a06f !important;
  border-left:1px solid rgba(149,205,218,.10) !important;
}

/* Le corps s'élargit sous le bandeau : forme en L inversé, sans collage. */
.salonRoomBody{
  z-index:3 !important;
  width:82% !important;
  min-height:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.salonRoomMain{
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
}

/* Chat public : une seule surface traditionnelle claire. */
.salonDialoguePanel{
  height:100% !important;
  overflow:hidden !important;
  border:0 !important;
  border-right:1px solid rgba(11,44,57,.24) !important;
  border-radius:0 !important;
  background:#f7f4ed !important;
  box-shadow:none !important;
}
.salonDialogueHeading{
  min-height:46px !important;
  padding:10px 15px !important;
  border:0 !important;
  border-bottom:1px solid rgba(149,205,218,.16) !important;
  background:#082737 !important;
}
.salonDialogueHeading h2{font-size:20px !important}
.salonDialogueHeading span{font-size:8px !important}
.salonMessages{
  padding:6px 14px 8px !important;
  background:#f7f4ed !important;
}
.salonMessage{
  grid-template-columns:150px minmax(0,1fr) !important;
  gap:14px !important;
  min-height:36px !important;
  padding:8px 7px !important;
}
.salonMessageMeta time{font-size:9.5px !important}
.salonMessageAuthor{font-size:11px !important}
.salonMessage p{font-size:13px !important;line-height:1.48 !important}

/* Console d'écriture : un seul niveau continu. */
.salonComposer{
  min-height:66px !important;
  grid-template-columns:minmax(230px,1fr) auto !important;
  align-items:center !important;
  gap:10px !important;
  padding:10px 12px !important;
  border:0 !important;
  border-top:1px solid rgba(20,55,66,.15) !important;
  background:#ebe7dc !important;
}
.salonComposer textarea{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:11px 12px !important;
  resize:none !important;
  border-radius:8px !important;
  font-size:12.5px !important;
  line-height:1.45 !important;
}
.salonComposerControls{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  min-width:0 !important;
}
.salonComposerToggle{
  min-height:36px !important;
  gap:5px !important;
  color:#50656c !important;
  font-size:8.5px !important;
}
.salonEmojiButton,.salonSendButton{
  height:38px !important;
  min-height:38px !important;
  border-radius:8px !important;
}
.salonEmojiButton{width:38px !important;min-width:38px !important}
.salonSendButton{min-width:88px !important;padding:0 15px !important}

/* Informations et privé : une surface bleue continue, jamais blanche. */
.salonInformationPanel,
.salonPrivateHub,
.salonPrivateConversation{
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:22px 24px !important;
  overflow:auto !important;
  border:0 !important;
  border-right:1px solid rgba(149,205,218,.14) !important;
  border-radius:0 !important;
  background:linear-gradient(180deg,#082737,#061f2d) !important;
  box-shadow:none !important;
}
.salonPrivateConversation{
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
  overflow:hidden !important;
}
.salonPrivateConversationHead{
  align-items:center !important;
  padding:0 0 16px !important;
  border-bottom:1px solid rgba(149,205,218,.16) !important;
}
.salonPrivateConversationHead>button{
  min-height:34px !important;
  padding:0 10px !important;
  border:1px solid rgba(149,205,218,.18) !important;
  border-radius:7px !important;
  background:rgba(255,255,255,.025) !important;
}
.salonPrivateConversationHead h2{
  margin:0 !important;
  font-size:28px !important;
  line-height:1.05 !important;
}
.salonPrivateMessages{
  height:auto !important;
  min-height:0 !important;
  padding:16px 2px !important;
}
.salonPrivateMessages article{
  max-width:72% !important;
  padding:10px 12px !important;
  border:1px solid rgba(149,205,218,.10) !important;
  border-radius:9px !important;
  background:#0a3041 !important;
}
.salonPrivateMessages article.isMine{
  background:rgba(49,209,207,.10) !important;
  border-color:rgba(49,209,207,.16) !important;
}
.salonPrivateMessages strong{font-size:10px !important}
.salonPrivateMessages p{font-size:10.5px !important}
.salonPrivateComposer{
  grid-template-columns:minmax(0,1fr) 88px !important;
  gap:9px !important;
  padding-top:12px !important;
  border-top:1px solid rgba(149,205,218,.16) !important;
}
.salonPrivateComposer input,.salonPrivateComposer button{
  height:40px !important;
  border-radius:8px !important;
}
.salonPrivateHub h2,.salonInformationPanel h2{font-size:29px !important}
.salonPrivateConversationButton{
  min-height:58px !important;
  margin-bottom:8px !important;
  border-radius:9px !important;
}

/* Panneau membres : glisse proprement au-dessus du visuel, encoche toujours nette. */
.salonMembersDrawer{
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:clamp(260px,22%,310px) !important;
  border:0 !important;
  border-left:1px solid rgba(149,205,218,.20) !important;
  border-radius:12px 0 0 12px !important;
  background:linear-gradient(180deg,#092b3b,#061d2a) !important;
}
.salonMembersDrawerHandle{
  left:-27px !important;
  width:28px !important;
  height:62px !important;
  border-color:rgba(149,205,218,.32) !important;
  background:#092b3b !important;
}
.salonRoomView.isMembersOpen .salonMembersDrawer{
  box-shadow:-20px 0 48px rgba(0,0,0,.42) !important;
}

/* Grands formats : mêmes principes, davantage d'air sans diluer l'ensemble. */
@media (min-width:2200px) and (min-height:1200px){
  .salonRoomHeader,.salonRoomTabs{width:70% !important}
  .salonRoomBody{width:83% !important}
  .salonVisualTop{width:30% !important}
  .salonVisualSide{width:17% !important;padding-right:30px !important;padding-bottom:30px !important}
  .salonRoomHeader{min-height:144px !important;padding:24px 28px 18px !important}
  .salonRoomBreadcrumb{font-size:14px !important}
  .salonRoomTitle h1{font-size:48px !important}
  .salonRoomTitle>p:last-child{font-size:12px !important}
  .salonRoomTabs,.salonRoomTabs button{min-height:54px !important}
  .salonRoomTabs button{font-size:10.5px !important;padding:0 18px !important}
  .salonDialogueHeading{min-height:52px !important;padding:12px 18px !important}
  .salonDialogueHeading h2{font-size:23px !important}
  .salonMessage{grid-template-columns:170px minmax(0,1fr) !important;min-height:40px !important;padding:9px 9px !important}
  .salonMessageAuthor{font-size:12px !important}
  .salonMessage p{font-size:14px !important}
  .salonComposer{min-height:74px !important;padding:12px 15px !important}
  .salonComposer textarea{height:48px !important;min-height:48px !important;max-height:48px !important;font-size:13.5px !important}
  .salonComposerToggle{font-size:9.5px !important}
  .salonEmojiButton,.salonSendButton{height:42px !important;min-height:42px !important}
}

/* Résistance aux formats plus compacts : la refonte ne doit pas recréer des
   étages ni des cadres supplémentaires. */
@media (max-width:1700px), (max-height:900px){
  .salonRoomHeader,.salonRoomTabs{width:72% !important;min-width:0 !important}
  .salonRoomHeader{min-height:101px !important;padding:11px 13px 9px !important}
  .salonRoomTitle h1{font-size:25px !important}
  .salonRoomBreadcrumb{font-size:8.5px !important}
  .salonRoomTitle>p:last-child{margin-top:6px !important;font-size:8px !important}
  .salonRoomTabs,.salonRoomTabs button{min-height:36px !important}
  .salonRoomTabs button{padding:0 9px !important;font-size:7.3px !important}
  .salonRoomBody{width:82% !important;padding:0 !important}
  .salonDialogueHeading{min-height:38px !important;padding:8px 11px !important}
  .salonDialogueHeading h2{font-size:16px !important}
  .salonMessage{grid-template-columns:112px minmax(0,1fr) !important;gap:8px !important;min-height:29px !important;padding:5px 4px !important}
  .salonMessageAuthor{font-size:9px !important}
  .salonMessage p{font-size:10.5px !important}
  .salonComposer{min-height:54px !important;gap:7px !important;padding:7px 8px !important}
  .salonComposer textarea{height:38px !important;min-height:38px !important;max-height:38px !important;font-size:10px !important}
  .salonComposerControls{gap:5px !important}
  .salonComposerToggle{font-size:6.5px !important}
  .salonEmojiButton,.salonSendButton{height:32px !important;min-height:32px !important}
  .salonEmojiButton{width:32px !important;min-width:32px !important}
  .salonSendButton{min-width:68px !important;padding:0 9px !important}
  .salonVisualTop{height:120px !important}
  .salonVisualSide{top:120px !important;padding:0 12px 13px !important}
}

/* ========================================================================== */
/* R92 — finitions prioritaires du salon : bandeau, panneaux et console        */
/* ========================================================================== */

/* Bandeau nettement plus compact, sans croix, avec un arrondi propre. */
.salonRoomHeader{
  width:72% !important;
  min-height:92px !important;
  padding:11px 16px 10px !important;
  align-items:center !important;
  border-radius:0 0 18px 0 !important;
}
.salonRoomTitle{align-self:center !important}
.salonRoomBreadcrumb{
  margin:0 0 3px !important;
  font-size:9.5px !important;
  line-height:1.15 !important;
}
.salonRoomTitle h1{
  font-size:clamp(28px,2vw,36px) !important;
  line-height:1 !important;
}
.salonRoomTitle>p:last-child{
  margin-top:5px !important;
  font-size:9px !important;
  line-height:1.15 !important;
}
.salonRoomHeaderActions{align-self:center !important}
.salonRoomClose{display:none !important}
.salonRoomFavorite{
  min-width:176px !important;
  min-height:42px !important;
  padding:0 22px !important;
  border-radius:12px !important;
  border-color:rgba(245,138,75,.42) !important;
  background:rgba(4,20,31,.28) !important;
  color:#ffd2b4 !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:.01em !important;
}
.salonRoomFavorite:hover,
.salonRoomFavorite.isFavorite{
  border-color:rgba(245,138,75,.72) !important;
  background:rgba(245,138,75,.13) !important;
  color:#ffb17c !important;
}

/* Onglets moins hauts, dans l'ordre fonctionnel demandé. */
.salonRoomTabs{
  min-height:38px !important;
  border-radius:0 0 12px 0 !important;
}
.salonRoomTabs button{
  min-height:38px !important;
  padding:0 13px !important;
  font-size:8.5px !important;
}
.salonRoomTabs button.isActive,
.salonRoomTabs button.isPanelActive{
  box-shadow:inset 0 -2px 0 var(--orange) !important;
}

/* Axe strict du fil : heure à gauche, pseudonyme, puis texte. */
.salonMessage{
  grid-template-columns:48px 128px minmax(0,1fr) !important;
  gap:10px !important;
  align-items:start !important;
  min-height:36px !important;
  padding:8px 7px !important;
}
.salonMessageMeta{display:contents !important}
.salonMessageMeta time{
  grid-column:1 !important;
  justify-self:start !important;
  padding-top:2px !important;
  text-align:left !important;
  font-size:9.5px !important;
}
.salonMessageAuthor{
  grid-column:2 !important;
  max-width:128px !important;
  justify-self:start !important;
  padding-top:1px !important;
  text-align:left !important;
  font-size:11px !important;
}
.salonMessage p{
  grid-column:3 !important;
  font-size:13px !important;
  line-height:1.48 !important;
}

/* Console unique et compacte ; les deux interrupteurs sont empilés. */
.salonComposer{
  position:relative !important;
  min-height:62px !important;
  grid-template-columns:minmax(230px,1fr) auto !important;
  gap:10px !important;
  padding:8px 11px !important;
}
.salonComposer textarea{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:10px 12px !important;
}
.salonComposerControls{
  display:grid !important;
  grid-template-columns:minmax(148px,auto) 40px 88px !important;
  align-items:center !important;
  gap:8px !important;
}
.salonComposerToggleStack{
  display:grid;
  align-content:center;
  gap:3px;
  min-width:148px;
}
.salonComposerToggle{
  min-height:0 !important;
  line-height:1.15 !important;
  font-size:8px !important;
}
.salonEmojiButton,.salonSendButton{
  height:38px !important;
  min-height:38px !important;
}
.salonEmojiButton{
  width:40px !important;
  min-width:40px !important;
  font-size:19px !important;
}
.salonSendButton{min-width:88px !important}

/* Palette compacte : catégories, récents et insertion au curseur. */
.salonEmojiPalette{
  position:absolute;
  z-index:30;
  right:107px;
  bottom:calc(100% + 8px);
  width:370px;
  max-width:calc(100% - 24px);
  padding:11px;
  border:1px solid rgba(149,205,218,.28);
  border-radius:13px;
  background:#082737;
  box-shadow:0 18px 48px rgba(0,0,0,.42);
}
.salonEmojiPalette[hidden]{display:none !important}
.salonEmojiPaletteHead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:1px 2px 9px;
}
.salonEmojiPaletteHead strong{
  color:#f5f0e8;
  font-family:Georgia,"Times New Roman",serif;
  font-size:17px;
  font-weight:400;
}
.salonEmojiPaletteHead span{
  color:#7f9aa2;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:8px;
}
.salonEmojiCategories{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(149,205,218,.14);
}
.salonEmojiCategory{
  height:31px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  font-size:16px;
}
.salonEmojiCategory:hover,
.salonEmojiCategory.isActive{
  border-color:rgba(245,138,75,.34);
  background:rgba(245,138,75,.10);
}
.salonEmojiGrid{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:4px;
  min-height:76px;
  padding-top:9px;
}
.salonEmojiChoice{
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(149,205,218,.08);
  border-radius:7px;
  background:rgba(255,255,255,.025);
  font-size:19px;
}
.salonEmojiChoice:hover{
  border-color:rgba(49,209,207,.32);
  background:rgba(49,209,207,.09);
  transform:translateY(-1px);
}
.salonEmojiEmpty{
  grid-column:1/-1;
  align-self:center;
  margin:0;
  color:#819aa1;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:9px;
  text-align:center;
}

/* Informations : volet latéral coulissant, exclusif du panneau Membres. */
.salonInformationDrawer{
  position:absolute;
  z-index:16;
  top:0;
  right:0;
  bottom:0;
  width:clamp(320px,27%,400px);
  min-width:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  transform:translateX(calc(100% + 30px));
  transition:transform .26s ease,box-shadow .26s ease;
  border-left:1px solid rgba(149,205,218,.22);
  border-radius:14px 0 0 14px;
  background:linear-gradient(180deg,#092b3b,#061d2a);
  box-shadow:none;
}
.salonRoomView.isInformationOpen .salonInformationDrawer{
  transform:translateX(0);
  box-shadow:-20px 0 48px rgba(0,0,0,.42);
}
.salonInformationDrawerHandle{
  position:absolute;
  left:-28px;
  top:50%;
  width:29px;
  height:62px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  padding:0 0 2px 2px;
  border:1px solid rgba(149,205,218,.32);
  border-right:0;
  border-radius:12px 0 0 12px;
  background:#092b3b;
  color:var(--orange);
  font-size:23px;
  box-shadow:-8px 0 20px rgba(0,0,0,.22);
}
.salonInformationDrawerHead{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 15px 12px;
  border-bottom:1px solid rgba(149,205,218,.15);
}
.salonInformationDrawerHead>div{min-width:0}
.salonInformationDrawerEyebrow{
  display:block;
  margin-bottom:3px;
  color:var(--orange);
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:7px;
  font-weight:700;
  letter-spacing:.12em;
}
.salonInformationDrawerHead h2{
  margin:0;
  overflow:hidden;
  color:#f5f0e8;
  font-size:19px;
  font-weight:400;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.salonInformationDrawerClose{
  width:30px;
  height:30px;
  flex:none;
  display:grid;
  place-items:center;
  padding:0 0 2px;
  border:1px solid rgba(149,205,218,.2);
  border-radius:50%;
  background:transparent;
  color:#cad6d7;
  font-size:17px;
}
.salonInformationDrawerBody{min-height:0;overflow:hidden}
.salonInformationDrawer .salonInformationPanel{
  height:100% !important;
  padding:16px !important;
  border:0 !important;
  background:transparent !important;
}
.salonInformationDrawer .salonInformationPanel h2{display:none}
.salonInformationDrawer .salonInformationPath{margin-top:0}
.salonInformationDrawer .salonInformationDescription{
  font-size:13px !important;
  line-height:1.45 !important;
}
.salonInformationDrawer .salonInformationGrid{
  grid-template-columns:1fr !important;
  gap:7px !important;
  margin:14px 0 !important;
}
.salonInformationDrawer .salonInformationGrid div{padding:9px 10px !important}
.salonInformationDrawer .salonRoomRules{padding:12px !important}

/* Le privé demeure une surface bleue continue, sans le visuel du public. */
.salonRoomView.isPrivateMode .salonRoomBody{
  background:#071f2d !important;
}
.salonRoomView.isPrivateMode .salonVisualStage{
  opacity:.18 !important;
}

@media (min-width:2200px) and (min-height:1200px){
  .salonRoomHeader{min-height:106px !important;padding:14px 21px 12px !important}
  .salonRoomTitle h1{font-size:42px !important}
  .salonRoomFavorite{min-width:210px !important;min-height:48px !important;font-size:15px !important}
  .salonRoomTabs,.salonRoomTabs button{min-height:43px !important}
  .salonRoomTabs button{font-size:9.5px !important}
  .salonMessage{grid-template-columns:56px 148px minmax(0,1fr) !important}
  .salonMessageAuthor{max-width:148px !important;font-size:12px !important}
  .salonMessage p{font-size:14px !important}
  .salonComposerToggle{font-size:9px !important}
  .salonEmojiPalette{width:400px !important}
}

@media (max-width:1700px), (max-height:900px){
  .salonRoomHeader{min-height:78px !important;padding:8px 11px 7px !important}
  .salonRoomTitle h1{font-size:24px !important}
  .salonRoomBreadcrumb{font-size:7.7px !important}
  .salonRoomTitle>p:last-child{margin-top:4px !important;font-size:7.5px !important}
  .salonRoomFavorite{min-width:145px !important;min-height:34px !important;padding:0 15px !important;font-size:10px !important}
  .salonRoomTabs,.salonRoomTabs button{min-height:32px !important}
  .salonRoomTabs button{padding:0 8px !important;font-size:6.9px !important}
  .salonMessage{grid-template-columns:39px 96px minmax(0,1fr) !important;gap:7px !important;min-height:28px !important;padding:5px 4px !important}
  .salonMessageAuthor{max-width:96px !important;font-size:8.8px !important}
  .salonMessageMeta time{font-size:7.8px !important}
  .salonMessage p{font-size:10.3px !important}
  .salonComposer{min-height:51px !important;gap:6px !important;padding:6px 7px !important}
  .salonComposer textarea{height:37px !important;min-height:37px !important;max-height:37px !important;font-size:10px !important}
  .salonComposerControls{grid-template-columns:minmax(112px,auto) 31px 66px !important;gap:5px !important}
  .salonComposerToggleStack{min-width:112px !important;gap:1px !important}
  .salonComposerToggle{font-size:6.2px !important}
  .salonEmojiButton,.salonSendButton{height:31px !important;min-height:31px !important}
  .salonEmojiButton{width:31px !important;min-width:31px !important;font-size:16px !important}
  .salonSendButton{min-width:66px !important;padding:0 8px !important}
  .salonEmojiPalette{right:77px !important;width:330px !important;padding:8px !important}
  .salonEmojiChoice{height:30px !important;font-size:17px !important}
  .salonInformationDrawer{width:clamp(285px,28%,350px) !important}
}

/* R92 correctif : en mode privé, aucun visuel personnalisé du salon public. */
.salonRoomView.isPrivateMode{
  background:#061f2d !important;
}
.salonRoomView.isPrivateMode .salonVisualStage{
  display:none !important;
}
.salonRoomView.isPrivateMode .salonRoomBody{
  width:100% !important;
  background:#071f2d !important;
}
.salonRoomView.isPrivateMode .salonPrivateHub,
.salonRoomView.isPrivateMode .salonPrivateConversation{
  border-right:0 !important;
}


/* ========================================================================== */
/* R93 — corrections validées pendant la revue visuelle du 30 juillet 2026   */
/* ========================================================================== */

/* Arrondis : uniquement en haut à droite du bandeau. La navigation et Quitter
   conservent des angles droits. */
.salonRoomHeader{
  border-radius:0 18px 0 0 !important;
}
.salonRoomTabs{
  border-radius:0 !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
}
.salonRoomTabActions{
  position:sticky;
  right:0;
  z-index:5;
  margin-left:auto;
  display:flex;
  flex:none;
  background:rgba(7,31,45,.99);
}
.salonRoomTabActions button{
  border-radius:0 !important;
}
.salonRoomTabs .salonRoomInfo{
  border-left:1px solid rgba(149,205,218,.12) !important;
}
.salonRoomTabs .salonRoomQuit{
  margin-left:0 !important;
  border-left:0 !important;
  border-right:0 !important;
  color:#ff9a62 !important;
}

/* Ligne membres plus grande ; seul le nombre est vert. */
.salonRoomStatus{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:0;
  font-size:11px !important;
  line-height:1.3 !important;
}
.salonRoomMemberCount{
  color:#49d789;
  font-size:1.15em;
  font-weight:800;
}

/* Le visuel orange est cadré sur la droite et à sa hauteur réelle : il ne se
   retrouve plus étiré sur toute la largeur du salon. */
.salonVisualStage{
  background:
    linear-gradient(90deg,rgba(3,17,26,.10),rgba(3,17,26,.34)),
    radial-gradient(circle at 82% 16%,rgba(245,138,75,.17),transparent 31%),
    linear-gradient(135deg,rgba(7,30,42,.42),rgba(26,27,25,.34)),
    url('../assets/images/dashboard-centre-orange-hd.png') right center / auto 100% no-repeat !important;
}
.salonVisualCopy strong{
  color:#f5f0e8 !important;
  font-size:clamp(23px,1.65vw,32px) !important;
  line-height:1 !important;
  text-shadow:0 2px 10px rgba(0,0,0,.36);
}
.salonVisualMark,.salonVisualCopy span{display:none !important}
.salonVisualSide{
  align-items:flex-end !important;
  padding:22px 24px !important;
}

/* Console : pièce jointe et émojis à gauche du champ. */
.salonComposer{
  grid-template-columns:auto minmax(230px,1fr) auto !important;
  align-items:center !important;
}
.salonComposerTools{
  display:flex;
  align-items:center;
  gap:6px;
}
.salonAttachmentButton,.salonEmojiButton{
  width:40px !important;
  min-width:40px !important;
  height:38px !important;
  min-height:38px !important;
  display:grid;
  place-items:center;
  padding:0 !important;
  border:1px solid rgba(19,61,74,.28) !important;
  border-radius:7px !important;
  background:#fff !important;
  color:#18343e !important;
  font-size:19px !important;
}
.salonComposerControls{
  grid-template-columns:minmax(155px,auto) 88px !important;
}
.salonComposerToggleStack{
  min-width:155px !important;
  gap:3px !important;
}
.salonTranslationLanguage{
  width:100%;
  height:23px;
  padding:0 22px 0 7px;
  border:1px solid rgba(20,62,75,.25);
  border-radius:5px;
  background:#fff;
  color:#29434b;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:8px;
  outline:none;
}
.salonAttachmentPreview{
  grid-column:1/-1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:1px;
  padding:7px 9px;
  border:1px solid rgba(20,62,75,.20);
  border-radius:8px;
  background:#fff;
  color:#1d353d;
}
.salonAttachmentPreview[hidden]{display:none !important}
.salonAttachmentPreview img{
  width:42px;
  height:34px;
  flex:none;
  object-fit:cover;
  border-radius:5px;
}
.salonAttachmentPreviewIcon{font-size:24px}
.salonAttachmentPreviewCopy{min-width:0;flex:1}
.salonAttachmentPreviewCopy strong,.salonAttachmentPreviewCopy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonAttachmentPreviewCopy strong{font-family:"Segoe UI",Arial,sans-serif;font-size:9px}
.salonAttachmentPreviewCopy small{margin-top:2px;color:#71868d;font-family:"Segoe UI",Arial,sans-serif;font-size:7px}
.salonAttachmentRemove{
  width:25px;
  height:25px;
  flex:none;
  border:1px solid rgba(20,62,75,.20);
  border-radius:50%;
  background:transparent;
  color:#7d4b37;
  font-size:15px;
}

/* Pièces jointes affichées dans le fil. */
.salonMessageContent{grid-column:3;min-width:0}
.salonMessageContent>p{margin:0}
.salonMessageAttachment{
  width:min(430px,100%);
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:7px;
  padding:8px;
  border:1px solid rgba(20,62,75,.16);
  border-radius:8px;
  background:rgba(255,255,255,.78);
  color:#243c44;
  text-decoration:none;
}
.salonMessageAttachment img{width:84px;height:58px;flex:none;object-fit:cover;border-radius:6px}
.salonMessageAttachmentIcon{font-size:28px}
.salonMessageAttachmentCopy{min-width:0}
.salonMessageAttachmentCopy strong,.salonMessageAttachmentCopy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salonMessageAttachmentCopy strong{font-family:"Segoe UI",Arial,sans-serif;font-size:10px}
.salonMessageAttachmentCopy small{margin-top:3px;color:#71868d;font-family:"Segoe UI",Arial,sans-serif;font-size:8px}

/* Palette enrichie à environ 350 entrées, compacte et défilable. */
.salonEmojiPalette{left:0 !important;right:auto !important;width:430px !important}
.salonEmojiCategories{grid-template-columns:repeat(7,minmax(0,1fr)) !important;max-height:72px;overflow-y:auto}
.salonEmojiGrid{max-height:210px;overflow-y:auto;align-content:start}

/* Le privé reprend les couleurs et la structure claire du salon principal. */
.salonRoomView.isPrivateMode{
  background:#061c29 !important;
}
.salonRoomView.isPrivateMode .salonVisualStage{
  display:block !important;
  opacity:1 !important;
}
.salonRoomView.isPrivateMode .salonRoomBody{
  width:79% !important;
  background:transparent !important;
}
.salonPrivateConversationChat{
  height:100% !important;
  padding:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(17,48,61,.35) !important;
  border-radius:10px !important;
  background:#f4f1e8 !important;
}
.salonPrivateConversationChat .salonPrivateConversationHead{
  min-height:52px;
  padding:9px 14px !important;
  border-bottom:1px solid rgba(149,205,218,.16) !important;
  background:#072431 !important;
}
.salonPrivateHeadingCopy{min-width:0}
.salonPrivateHeadingCopy h2{margin:0 !important;color:var(--teal) !important;font-size:19px !important;font-weight:400 !important}
.salonPrivateHeadingCopy p{margin:3px 0 0 !important;color:#829ca4 !important;font-size:8px !important}
.salonPrivateBack{
  flex:none;
  padding:7px 9px !important;
  border:1px solid rgba(149,205,218,.20) !important;
  border-radius:7px !important;
  background:rgba(255,255,255,.03) !important;
  color:#b7cacd !important;
}
.salonPrivateConversationChat .salonPrivateMessages{
  height:auto !important;
  min-height:0;
  flex:1;
  padding:8px 14px 14px !important;
  background:#f8f6f0 !important;
}
.salonPrivateConversationChat .salonPrivateMessages article{
  max-width:none !important;
  margin:0 !important;
  padding:8px 7px !important;
  border-radius:0 !important;
  background:transparent !important;
}
.salonPrivateConversationChat .salonPrivateMessages article.isMine{background:rgba(49,209,207,.08) !important}
.salonPrivateConversationChat .salonPrivateComposer{
  display:grid !important;
  grid-template-columns:auto minmax(230px,1fr) auto !important;
  gap:10px !important;
  padding:8px 11px !important;
  border-top:1px solid rgba(20,55,66,.15) !important;
  background:#ebe7dc !important;
}
.salonPrivateConversationChat .salonPrivateComposer textarea{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  resize:none;
  padding:10px 12px !important;
  border:1px solid rgba(20,62,75,.28) !important;
  border-radius:8px !important;
  background:#fff !important;
  color:#1c2d33 !important;
  font-family:"Segoe UI",Arial,sans-serif;
  font-size:12px !important;
}
.salonPrivateHub{
  border-color:rgba(17,48,61,.35) !important;
  background:#f8f6f0 !important;
  color:#1e2d33 !important;
}
.salonPrivateHub h2,.salonPrivateHub h3{color:#15333d !important}
.salonPrivateIntro,.salonPrivateEmpty{color:#5f747b !important}
.salonPrivateConversationButton,.salonPrivateGroupForm>input,.salonPrivateChoices label{
  border-color:rgba(20,62,75,.18) !important;
  background:#fff !important;
  color:#243840 !important;
}

@media (max-width:1700px), (max-height:900px){
  .salonRoomStatus{font-size:8.8px !important}
  .salonComposer{grid-template-columns:auto minmax(180px,1fr) auto !important}
  .salonAttachmentButton,.salonEmojiButton{width:31px !important;min-width:31px !important;height:31px !important;min-height:31px !important;font-size:16px !important}
  .salonComposerControls{grid-template-columns:minmax(118px,auto) 66px !important}
  .salonComposerToggleStack{min-width:118px !important}
  .salonTranslationLanguage{height:19px;font-size:6.4px}
  .salonEmojiPalette{width:350px !important;max-width:calc(100vw - 34px) !important}
  .salonRoomView.isPrivateMode .salonRoomBody{width:82% !important}
  .salonPrivateConversationChat .salonPrivateComposer{grid-template-columns:auto minmax(180px,1fr) auto !important}
}

@media (min-width:2200px) and (min-height:1200px){
  .salonRoomStatus{font-size:13px !important}
  .salonRoomView.isPrivateMode .salonRoomBody{width:83% !important}
  .salonVisualCopy strong{font-size:36px !important}
}

/* R93 correctif de placement : les outils sont réellement de l'autre côté du
   champ, à gauche, quelle que soit une ancienne règle de grille héritée. */
.salonComposerTools{grid-column:1 !important;grid-row:1 !important}
.salonComposer textarea{grid-column:2 !important;grid-row:1 !important}
.salonComposerControls{grid-column:3 !important;grid-row:1 !important}
.salonAttachmentPreview{grid-column:1/-1 !important;grid-row:2 !important}
.salonRoomStatus{font-size:13px !important}
.salonVisualCopy strong{font-size:clamp(30px,2.2vw,42px) !important}
@media (max-width:1700px), (max-height:900px){
  .salonRoomStatus{font-size:10px !important}
}

/* ==========================================================
   R94 — tableau de bord respirant + largeur commune profil/map/chat
   ========================================================== */
:root{
  --ethnos-context-width:clamp(250px,17.2vw,330px);
  --ethnos-card-height:clamp(132px,15.5vh,168px);
}
.memberLayout{
  grid-template-columns:clamp(190px,16vw,300px) minmax(0,1fr) var(--ethnos-context-width) !important;
  column-gap:0 !important;
  padding-right:14px !important;
}
.memberWelcome{border-radius:15px 0 0 15px !important}
.memberRightRail{
  width:var(--ethnos-context-width);
  display:flex !important;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
  overflow:visible !important;
  position:relative;
  z-index:12;
  transform:translateX(-10px);
  pointer-events:none;
}
.memberProfile,.memberMapCard{
  width:100%;
  height:var(--ethnos-card-height);
  min-height:var(--ethnos-card-height) !important;
  max-height:var(--ethnos-card-height);
  border-radius:13px !important;
  pointer-events:auto;
  box-shadow:0 18px 38px rgba(0,0,0,.34) !important;
}
.memberProfileCompact{
  padding:18px 20px !important;
  cursor:pointer;
  overflow:hidden !important;
  transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease;
}
.memberProfileCompact:hover,.memberProfileCompact:focus-visible{
  border-color:rgba(49,209,207,.48) !important;
  box-shadow:0 22px 46px rgba(0,0,0,.42) !important;
  outline:none;
}
.memberProfileCompact .memberProfileHead{min-height:12px}
.memberProfileCompact .memberIdentity{margin-top:10px !important;grid-template-columns:58px minmax(0,1fr) !important;gap:12px !important}
.memberProfileCompact .memberAvatar{width:58px !important;height:58px !important;font-size:26px !important}
.memberProfileCompact .memberIdentity h2{font-size:clamp(20px,1.45vw,28px) !important;line-height:.95 !important}
.memberProfileCompact .memberIdentity p{font-size:7px !important;margin-top:5px !important}
.memberProfileCompact .memberDescription,
.memberProfileCompact .memberProfileDetails,
.memberProfileCompact .memberInterests,
.memberProfileCompact .memberStats,
.memberProfileCompact .memberTrophies,
.memberProfileCompact .memberProfileUpdateNotice,
.memberProfileCompact .memberEdit,
.memberProfileCompact .memberLogout{display:none !important}
.memberProfileCompact .memberProfileActions{display:block !important;margin-top:9px !important}
.memberProfileOpen{
  min-height:26px;padding:0;border:0;background:transparent;color:var(--orange);
  font-family:"Segoe UI",Arial,sans-serif;font-size:8px;letter-spacing:.04em;
}
.memberProfileClose{display:none;position:absolute;right:13px;top:11px;z-index:4;width:31px;height:31px;border:1px solid rgba(149,205,218,.22);border-radius:50%;background:#071d2b;color:#fff;font-size:20px}
.memberMapCard{padding:18px 20px !important;cursor:pointer}
.memberMapCard h2{font-size:clamp(18px,1.35vw,25px) !important;margin:8px 0 3px !important}
.memberMapCard p{font-size:8px !important}

/* Fiche complète ouvrable même pendant un salon. Elle conserve exactement
   la largeur du visuel latéral du tchat. */
.memberProfileCompact.isExpanded{
  position:fixed !important;
  z-index:95 !important;
  top:calc(var(--topbar) + 14px) !important;
  right:14px !important;
  bottom:calc(var(--footer-main) + var(--footer-legal) + 14px) !important;
  width:var(--ethnos-context-width) !important;
  height:auto !important;
  max-height:none !important;
  padding:20px !important;
  cursor:default;
  overflow:auto !important;
  transform:none !important;
}
.memberProfileCompact.isExpanded .memberProfileClose{display:grid;place-items:center}
.memberProfileCompact.isExpanded .memberIdentity{grid-template-columns:70px minmax(0,1fr) !important;margin-top:16px !important}
.memberProfileCompact.isExpanded .memberAvatar{width:70px !important;height:70px !important}
.memberProfileCompact.isExpanded .memberDescription,
.memberProfileCompact.isExpanded .memberProfileDetails,
.memberProfileCompact.isExpanded .memberInterests,
.memberProfileCompact.isExpanded .memberStats,
.memberProfileCompact.isExpanded .memberTrophies,
.memberProfileCompact.isExpanded .memberProfileUpdateNotice{display:flex !important}
.memberProfileCompact.isExpanded .memberDescription{display:block !important}
.memberProfileCompact.isExpanded .memberProfileDetails{display:grid !important}
.memberProfileCompact.isExpanded .memberInterests{display:block !important}
.memberProfileCompact.isExpanded .memberStats{display:grid !important}
.memberProfileCompact.isExpanded .memberTrophies{display:block !important}
.memberProfileCompact.isExpanded .memberProfileUpdateNotice{display:block !important}
.memberProfileCompact.isExpanded .memberProfileUpdateNotice[hidden]{display:none !important}
.memberProfileCompact.isExpanded .memberProfileActions{display:grid !important;grid-template-columns:1fr 1fr !important;gap:7px !important;margin-top:12px !important}
.memberProfileCompact.isExpanded .memberProfileOpen{display:none !important}
.memberProfileCompact.isExpanded .memberEdit,
.memberProfileCompact.isExpanded .memberLogout{display:block !important}
body.hasProfileCardOpen::after{content:"";position:fixed;inset:0;z-index:90;background:rgba(1,9,14,.56);backdrop-filter:blur(3px)}

/* Le visuel du thème Sport occupe la même largeur que profil et carte. */
.salonRoomHeader,.salonRoomTabs{width:calc(100% - var(--ethnos-context-width)) !important;min-width:0 !important}
.salonRoomBody{width:calc(100% - var(--ethnos-context-width)) !important}
.salonVisualTop,.salonVisualSide{width:var(--ethnos-context-width) !important}
.salonVisualStage{
  background-image:linear-gradient(rgba(255,251,244,.08),rgba(255,251,244,.08)),url('../assets/images/theme-sport-r94.png') !important;
  background-position:center !important;
  background-size:cover !important;
}
.salonVisualSide{padding:16px !important}

@media (max-width:1700px), (max-height:900px){
  :root{--ethnos-context-width:clamp(220px,18vw,280px);--ethnos-card-height:120px}
  .memberProfileCompact{padding:12px 14px !important}
  .memberProfileCompact .memberIdentity{grid-template-columns:46px minmax(0,1fr) !important;margin-top:7px !important}
  .memberProfileCompact .memberAvatar{width:46px !important;height:46px !important}
  .memberProfileCompact .memberIdentity h2{font-size:19px !important}
  .memberMapCard{padding:13px 15px !important}
}

/* ==========================================================
   R96 — cartes posées sur les barres + fonds dédiés par format
   ========================================================== */
.memberRightRail{
  position:fixed !important;
  top:calc(var(--topbar) - 12px) !important;
  right:14px !important;
  bottom:calc(var(--footer-main) + var(--footer-legal) - 12px) !important;
  height:auto !important;
  transform:none !important;
  z-index:72 !important;
}
.memberProfile,.memberMapCard{height:var(--ethnos-card-height) !important;min-height:var(--ethnos-card-height) !important;max-height:var(--ethnos-card-height) !important}
.memberProfileCompact{display:flex !important;flex-direction:column !important;justify-content:center !important}
.memberProfileCompact .memberProfileHead{position:absolute;top:18px;left:20px}
.memberProfileCompact .memberIdentity{margin-top:0 !important}
.memberProfileCompact .memberProfileActions{position:absolute;right:20px;bottom:22px;margin:0 !important}
.memberProfileOpen{font-size:16px !important;line-height:1.1 !important;letter-spacing:.02em !important;min-height:32px !important;padding:0 4px !important}
.memberMapCard{display:flex !important;flex-direction:column !important;justify-content:center !important}
.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1920x1080.jpg') !important;background-position:center !important;background-size:cover !important}
@media (width:1366px) and (height:768px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1366x768.jpg') !important}}
@media (width:1536px) and (height:864px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1536x864.jpg') !important}}
@media (width:1920px) and (height:1080px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1920x1080.jpg') !important}}
@media (width:2560px) and (height:1440px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-2560x1440.jpg') !important}}
@media (width:1707px) and (height:1067px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1707x1067.jpg') !important}}
@media (width:1280px) and (height:720px){.memberWelcome{background-image:linear-gradient(110deg,rgba(6,26,39,.78),rgba(7,28,42,.56)),url('../assets/images/dashboard-r96/dashboard-1280x720.jpg') !important}}
@media (max-width:1700px), (max-height:900px){
  .memberRightRail{top:calc(var(--topbar) - 10px) !important;bottom:calc(var(--footer-main) + var(--footer-legal) - 10px) !important}
  .memberProfileCompact .memberProfileHead{top:12px;left:14px}
  .memberProfileCompact .memberProfileActions{right:14px;bottom:16px}
  .memberProfileOpen{font-size:14px !important}
}

/* ==========================================================
   R96 — cartes réellement posées SUR les barres de navigation
   + fond pleine largeur sans déformation
   ========================================================== */
.memberTopbar{padding-right:calc(var(--ethnos-context-width) + 34px) !important}
.memberNavRight{justify-content:flex-start !important;gap:clamp(18px,2.5vw,50px) !important}
.memberLayout{
  grid-template-columns:clamp(190px,16vw,300px) minmax(0,1fr) !important;
  padding-right:14px !important;
  background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1920x1080.jpg') !important;
  background-position:center !important;background-size:cover !important;background-repeat:no-repeat !important;
}
.memberWelcome{background:none !important}
.memberRightRail{position:static !important;width:0 !important;height:0 !important;display:block !important;transform:none !important}
.memberProfileCompact{
  position:fixed !important;top:0 !important;right:14px !important;z-index:80 !important;
  width:var(--ethnos-context-width) !important;height:var(--ethnos-card-height) !important;
}
.memberMapCard{
  position:fixed !important;right:14px !important;bottom:var(--footer-legal) !important;z-index:80 !important;
  width:var(--ethnos-context-width) !important;height:var(--ethnos-card-height) !important;
}
.memberFooterMain{padding-right:calc(var(--ethnos-context-width) + 34px) !important}
.memberFooterMain nav{transform:translateX(-10px)}
.memberProfileCompact .memberProfileActions{position:static !important;margin:10px 0 0 !important;align-self:center !important}
.memberProfileCompact .memberIdentity{justify-content:center !important;align-items:center !important}
.memberProfileCompact .memberProfileHead{left:20px !important;top:18px !important}
.memberProfileOpen{font-size:16px !important;font-weight:600 !important;padding:4px 10px !important}
@media (width:1366px) and (height:768px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1366x768.jpg') !important}}
@media (width:1536px) and (height:864px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1536x864.jpg') !important}}
@media (width:1920px) and (height:1080px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1920x1080.jpg') !important}}
@media (width:2560px) and (height:1440px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-2560x1440.jpg') !important}}
@media (width:1707px) and (height:1067px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1707x1067.jpg') !important}}
@media (width:1280px) and (height:720px){.memberLayout{background-image:linear-gradient(110deg,rgba(6,26,39,.73),rgba(7,28,42,.55)),url('../assets/images/dashboard-r96/dashboard-1280x720.jpg') !important}}
@media (max-width:1700px), (max-height:900px){
  .memberTopbar{padding-right:calc(var(--ethnos-context-width) + 24px) !important}
  .memberFooterMain{padding-right:calc(var(--ethnos-context-width) + 24px) !important}
  .memberProfileOpen{font-size:14px !important}
}


/* ==========================================================
   R97 — correction stricte selon la maquette validée
   - cartes réellement en butée à droite
   - arrondis uniquement côté image (gauche)
   - carte basse uniquement sur la barre principale
   - retour au fond historique du tableau de bord, limité à la zone centrale
   ========================================================== */
.memberTopbar{
  padding-right:calc(var(--ethnos-context-width) + 20px) !important;
}
.memberNavRight{
  justify-content:start !important;
  transform:translateX(-8px) !important;
}
.memberProfileCompact{
  top:0 !important;
  right:0 !important;
  border-radius:14px 0 0 14px !important;
}
.memberMapCard{
  right:0 !important;
  bottom:var(--footer-legal) !important;
  border-radius:14px 0 0 14px !important;
}
.memberFooterMain{
  padding-right:calc(var(--ethnos-context-width) + 20px) !important;
}
.memberFooterMain nav{
  transform:translateX(-8px) !important;
}
/* Le fond ne couvre jamais le panneau de recherche de gauche. */
.memberLayout{
  background:none !important;
}
.memberWelcome{
  background:
    linear-gradient(110deg,rgba(6,26,39,.97) 0%,rgba(7,28,42,.79) 61%,rgba(12,30,38,.70) 100%),
    url('../assets/images/dashboard-centre-orange-hd.png') center/cover no-repeat !important;
}
/* Les cartes gardent exactement leurs dimensions actuelles. */
.memberProfileCompact,.memberMapCard{
  width:var(--ethnos-context-width) !important;
  height:var(--ethnos-card-height) !important;
  min-height:var(--ethnos-card-height) !important;
  max-height:var(--ethnos-card-height) !important;
}
@media (max-width:1700px), (max-height:900px){
  .memberTopbar,.memberFooterMain{
    padding-right:calc(var(--ethnos-context-width) + 16px) !important;
  }
}

/* ==========================================================
   R98 — correction stricte sans extrapolation
   - format compact R95 conservé
   - profil réellement AU-DESSUS de la barre haute
   - carte réellement AU-DESSUS de la barre principale basse
   - arrondis uniquement vers l'image
   - fond central sans fondu et sans recouvrir la recherche
   ========================================================== */

/* La navigation réserve la largeur exacte des cartes, sans les déplacer. */
.memberTopbar{
  padding-right:calc(var(--ethnos-context-width) + 20px) !important;
}
.memberNavRight{
  justify-content:start !important;
  transform:translateX(-8px) !important;
}
.memberFooterMain{
  padding-right:calc(var(--ethnos-context-width) + 20px) !important;
}
.memberFooterMain nav{
  transform:translateX(-8px) !important;
}

/* Le rail ne crée plus de colonne ni de décalage dans le tableau de bord. */
.memberLayout{
  grid-template-columns:clamp(190px,16vw,300px) minmax(0,1fr) !important;
  column-gap:0 !important;
  padding-right:14px !important;
  background:none !important;
}
.memberRightRail{
  position:static !important;
  display:block !important;
  width:0 !important;
  height:0 !important;
  min-width:0 !important;
  transform:none !important;
  overflow:visible !important;
  pointer-events:none !important;
}

/* Format R95 conservé : mêmes largeur, hauteur et organisation interne. */
.memberProfileCompact,
.memberMapCard{
  width:var(--ethnos-context-width) !important;
  height:var(--ethnos-card-height) !important;
  min-height:var(--ethnos-card-height) !important;
  max-height:var(--ethnos-card-height) !important;
  margin:0 !important;
  transform:none !important;
  pointer-events:auto !important;
}
.memberProfileCompact:not(.isExpanded){
  position:fixed !important;
  top:0 !important;
  right:0 !important;
  z-index:120 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:18px 20px !important;
  border-radius:0 0 0 14px !important;
  overflow:hidden !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileHead{
  position:absolute !important;
  top:18px !important;
  left:20px !important;
  min-height:12px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity{
  margin-top:0 !important;
  grid-template-columns:58px minmax(0,1fr) !important;
  gap:12px !important;
  justify-content:initial !important;
  align-items:center !important;
  padding-right:0 !important;
}
.memberProfileCompact:not(.isExpanded) .memberAvatar{
  width:58px !important;
  height:58px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity h2{
  font-size:clamp(20px,1.45vw,28px) !important;
  line-height:.95 !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileActions{
  position:absolute !important;
  right:20px !important;
  bottom:22px !important;
  margin:0 !important;
  align-self:auto !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileOpen{
  min-height:32px !important;
  padding:0 4px !important;
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  letter-spacing:.02em !important;
}

/* Le bloc Carte est uniquement sur la barre principale basse. */
.memberMapCard{
  position:fixed !important;
  right:0 !important;
  bottom:var(--footer-legal) !important;
  z-index:120 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  border-radius:14px 0 0 0 !important;
}

/* Fond uniquement dans l'espace central, jamais sous le bloc Recherche.
   Aucun voile, dégradé, opacité, filtre ou fondu ajouté. */
.memberWelcome{
  background-image:url('../assets/images/dashboard-r98/dashboard-1920x1080.jpg') !important;
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-color:#f58a4b !important;
  background-blend-mode:normal !important;
  filter:none !important;
  opacity:1 !important;
}
.memberWelcome::after{
  display:none !important;
  content:none !important;
}

@media (width:1280px) and (height:720px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-1280x720.jpg') !important}
}
@media (width:1366px) and (height:768px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-1366x768.jpg') !important}
}
@media (width:1536px) and (height:864px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-1536x864.jpg') !important}
}
@media (width:1707px) and (height:1067px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-1707x1067.jpg') !important}
}
@media (width:1920px) and (height:1080px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-1920x1080.jpg') !important}
}
@media (width:2560px) and (height:1440px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r98/dashboard-2560x1440.jpg') !important}
}

@media (max-width:1700px), (max-height:900px){
  .memberTopbar,
  .memberFooterMain{
    padding-right:calc(var(--ethnos-context-width) + 16px) !important;
  }
  .memberProfileCompact:not(.isExpanded){
    padding:12px 14px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileHead{
    top:12px !important;
    left:14px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberIdentity{
    grid-template-columns:46px minmax(0,1fr) !important;
    gap:10px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberAvatar{
    width:46px !important;
    height:46px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberIdentity h2{
    font-size:19px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileActions{
    right:14px !important;
    bottom:16px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileOpen{
    font-size:14px !important;
  }
}

/* Contrôle R95 : dimensions conservées, mais aucun retour à une disposition
   qui ferait chevaucher le bouton et l'adresse sur les petits formats. */
.memberProfileCompact:not(.isExpanded) .memberIdentity{
  justify-content:center !important;
  align-items:center !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileActions{
  position:static !important;
  right:auto !important;
  bottom:auto !important;
  margin:10px 0 0 !important;
  align-self:center !important;
}

/* ==========================================================
   R99 — navigation haute, fiche compacte et volets verticaux
   ========================================================== */
:root{
  --ethnos-search-width:clamp(190px,16vw,300px);
  --ethnos-card-height:clamp(108px,12vh,132px);
  --font-title:"Fraunces",Georgia,"Times New Roman",serif;
  --font-interface:"Manrope","Segoe UI",Arial,sans-serif;
}

/* Test typographique demandé : titres Fraunces, corps/interface Manrope. */
.memberApp,
.memberApp a,
.memberApp button,
.memberApp input,
.memberApp select,
.memberApp textarea,
.memberApp p,
.memberApp span,
.memberApp label,
.memberApp dt,
.memberApp dd,
.memberApp small{
  font-family:var(--font-interface) !important;
}
.memberApp h1,
.memberApp h2,
.memberApp h3,
.memberApp h4,
.memberApp h5,
.memberApp h6{
  font-family:var(--font-title) !important;
}

/* Logo placé au-dessus du bloc Recherche, comme sur la maquette. */
.memberTopbar{
  display:block !important;
  padding:0 calc(var(--ethnos-context-width) + 8px) 0 calc(var(--ethnos-search-width) + 16px) !important;
  overflow:visible !important;
}
.memberBrand{
  left:calc(14px + (var(--ethnos-search-width) / 2)) !important;
  top:calc(var(--topbar) - 22px) !important;
  transform:translateX(-50%) !important;
  z-index:132 !important;
}

/* Sept boutons, chacun avec un pictogramme léger et un séparateur discret. */
.memberTopNavigation{
  width:100%;
  height:100%;
  display:grid;
  grid-template-columns:.82fr 1.34fr 1.32fr .92fr .96fr 1fr .82fr;
  align-items:stretch;
  min-width:0;
}
.memberTopNavButton{
  position:relative;
  min-width:0;
  height:100%;
  padding:4px clamp(5px,.65vw,12px);
  border:0;
  background:transparent;
  color:rgba(239,244,241,.72);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(5px,.55vw,10px);
  font-family:var(--font-interface) !important;
  font-size:clamp(9px,.7vw,13px);
  font-weight:500;
  line-height:1.12;
  text-align:left;
  transition:color .18s ease,background .18s ease;
}
.memberTopNavButton:not(:first-child)::before{
  content:"";
  position:absolute;
  left:0;
  top:17%;
  width:1px;
  height:66%;
  background:linear-gradient(180deg,transparent,rgba(197,225,230,.36),transparent);
}
.memberTopNavButton svg{
  flex:0 0 clamp(17px,1.3vw,24px);
  width:clamp(17px,1.3vw,24px);
  height:clamp(17px,1.3vw,24px);
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.88;
}
.memberTopNavButton span{
  min-width:0;
  overflow-wrap:anywhere;
}
.memberTopNavButton:hover,
.memberTopNavButton:focus-visible,
.memberTopNavButton.isActive{
  color:#fff;
  background:rgba(49,209,207,.035);
  outline:none;
}
.memberTopNavButton.isActive::after{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  bottom:0;
  height:1px;
  background:rgba(49,209,207,.7);
}

/* Le profil est reconstruit en CSS : aucun liseré ni image issue d'une capture. */
.memberProfile::before{
  display:none !important;
  content:none !important;
}
.memberProfileCompact:not(.isExpanded),
.memberMapCard{
  height:var(--ethnos-card-height) !important;
  min-height:var(--ethnos-card-height) !important;
  max-height:var(--ethnos-card-height) !important;
  background:linear-gradient(145deg,#082738 0%,#041722 100%) !important;
  background-image:linear-gradient(145deg,#082738 0%,#041722 100%) !important;
}
.memberProfileCompact:not(.isExpanded){
  padding:14px 18px !important;
  justify-content:center !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileHead{
  top:13px !important;
  left:18px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity{
  width:100%;
  margin-top:14px !important;
  grid-template-columns:54px minmax(0,1fr) !important;
  gap:13px !important;
  justify-content:initial !important;
  align-items:center !important;
}
.memberProfileCompact:not(.isExpanded) .memberAvatar{
  width:54px !important;
  height:54px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity h2{
  margin:0 !important;
  font-family:var(--font-title) !important;
  font-size:clamp(20px,1.42vw,28px) !important;
  font-weight:500 !important;
  line-height:.94 !important;
}
.memberProfileMetaRow{
  min-width:0;
  margin-top:7px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
.memberProfileCompact:not(.isExpanded) .memberProfileMetaRow p{
  min-width:0;
  margin:0 !important;
  color:#8ea4ad !important;
  font-family:var(--font-interface) !important;
  font-size:clamp(8px,.58vw,10px) !important;
  line-height:1.15 !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.memberProfileCompact:not(.isExpanded) .memberProfileOpen{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-end;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0;
  background:transparent;
  color:var(--orange);
  font-family:var(--font-interface) !important;
  font-size:clamp(9px,.66vw,12px) !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  letter-spacing:0 !important;
  white-space:nowrap;
}
.memberProfileCompact:not(.isExpanded) .memberProfileActions{
  display:none !important;
}
.memberProfileCompact.isExpanded .memberProfileMetaRow{
  display:block;
}
.memberProfileCompact.isExpanded .memberProfileMetaRow p{
  margin:6px 0 0 !important;
}
.memberProfileCompact.isExpanded .memberProfileOpen{
  display:none !important;
}
.memberProfileCompact.isExpanded .memberProfileActions{
  display:grid !important;
}

/* Carte basse réduite exactement à la même hauteur que le profil. */
.memberMapCard{
  padding:14px 18px !important;
}
.memberMapCard>span{
  position:absolute;
  left:18px;
  top:13px;
}
.memberMapCard h2{
  margin:7px 0 2px !important;
  font-size:clamp(17px,1.18vw,22px) !important;
}
.memberMapCard p{
  font-size:8px !important;
}
.memberMapCard small{
  left:18px !important;
  bottom:10px !important;
}

/* Un volet vide par bouton. Tous utilisent le même emplacement vertical,
   directement sous Profil et jusqu'au-dessus de Maps. */
.memberNavDrawerLayer{
  position:fixed;
  top:var(--ethnos-card-height);
  right:0;
  bottom:calc(var(--footer-legal) + var(--ethnos-card-height));
  width:var(--ethnos-context-width);
  z-index:116;
  overflow:hidden;
  pointer-events:none;
}
.memberNavDrawer{
  position:absolute;
  inset:0;
  border-left:1px solid rgba(149,205,218,.18);
  background:linear-gradient(180deg,#082738 0%,#041722 100%);
  box-shadow:-18px 0 42px rgba(0,0,0,.23);
  transform:translateY(-102%);
  opacity:0;
  pointer-events:none;
  transition:transform .34s cubic-bezier(.22,.72,.18,1),opacity .18s ease;
}
.memberNavDrawer.isOpen{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.memberVisuallyHidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

@media (max-width:1700px), (max-height:900px){
  :root{--ethnos-card-height:108px}
  .memberTopbar{
    padding-left:calc(var(--ethnos-search-width) + 10px) !important;
    padding-right:calc(var(--ethnos-context-width) + 4px) !important;
  }
  .memberBrand{
    top:calc(var(--topbar) - 20px) !important;
  }
  .memberTopNavButton{
    padding:3px 5px;
    gap:5px;
    font-size:9px;
  }
  .memberTopNavButton svg{
    flex-basis:18px;
    width:18px;
    height:18px;
  }
  .memberProfileCompact:not(.isExpanded){
    padding:11px 14px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileHead{
    top:10px !important;
    left:14px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberIdentity{
    margin-top:12px !important;
    grid-template-columns:46px minmax(0,1fr) !important;
    gap:10px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberAvatar{
    width:46px !important;
    height:46px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberIdentity h2{
    font-size:19px !important;
  }
  .memberProfileMetaRow{
    margin-top:5px;
    gap:8px;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileMetaRow p{
    font-size:8px !important;
  }
  .memberProfileCompact:not(.isExpanded) .memberProfileOpen{
    font-size:9px !important;
  }
  .memberMapCard{
    padding:11px 14px !important;
  }
  .memberMapCard>span{
    left:14px;
    top:10px;
  }
  .memberMapCard h2{
    font-size:17px !important;
  }
  .memberMapCard small{
    left:14px !important;
    bottom:8px !important;
  }
}

/* Ajustements ciblés après contrôle local R99. */
.memberBrand{
  top:5px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity h2{
  font-size:clamp(19px,1.3vw,25px) !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileMetaRow p{
  font-size:clamp(8.5px,.62vw,10.5px) !important;
}
@media (max-width:1700px), (max-height:900px){
  .memberBrand{top:4px !important}
  .memberTopNavButton{font-size:10.5px !important}
  .memberProfileCompact:not(.isExpanded) .memberIdentity h2{font-size:18px !important}
  .memberProfileCompact:not(.isExpanded) .memberProfileMetaRow p{font-size:8.6px !important}
  .memberProfileCompact:not(.isExpanded) .memberProfileOpen{font-size:9.5px !important}
}

/* ==========================================================
   R100 — jalon de contrôle + navigation et pied de page unifiés
   ========================================================== */
:root{
  --footer-main:0px;
  --footer-legal:38px;
}

/* Navigation haute : Fraunces 400 et répartition strictement régulière. */
.memberTopNavigation{
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
}
.memberTopNavButton{
  padding:4px clamp(8px,.72vw,14px) !important;
  gap:clamp(7px,.62vw,12px) !important;
  font-family:var(--font-title) !important;
  font-weight:400 !important;
  justify-content:center !important;
}
.memberTopNavButton span{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
  text-wrap:balance;
}
.memberTopNavButton:not(:first-child)::before{
  left:0 !important;
  top:20% !important;
  height:60% !important;
  background:rgba(197,225,230,.27) !important;
}

/* Profil compact : suppression du libellé FICHE et centrage vertical réel. */
.memberProfileCompact:not(.isExpanded){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:12px 18px !important;
}
.memberProfileCompact:not(.isExpanded) .memberIdentity{
  width:100% !important;
  margin:0 !important;
  align-items:center !important;
}
/* Le nom du profil reste verrouillé dans son rendu R99. */
.memberProfileCompact:not(.isExpanded) .memberIdentity h2{
  font-family:var(--font-title) !important;
  font-weight:500 !important;
}
.memberProfileCompact:not(.isExpanded) .memberProfileMetaRow,
.memberProfileCompact:not(.isExpanded) .memberProfileMetaRow p,
.memberProfileCompact:not(.isExpanded) .memberProfileOpen{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
}
.memberProfileCompact.isActive{
  border-color:rgba(49,209,207,.48) !important;
}

/* Les sept volets et le profil coulissent depuis le dessous de l'onglet Profil.
   Ils recouvrent l'image sans déplacer ni redimensionner la mise en page. */
.memberNavDrawerLayer{
  top:var(--ethnos-card-height) !important;
  bottom:var(--ethnos-card-height) !important;
  right:0 !important;
  width:var(--ethnos-context-width) !important;
  overflow:hidden !important;
  contain:paint;
}
.memberNavDrawer{
  transform:translate3d(0,-100%,0) !important;
  opacity:1 !important;
  visibility:hidden;
  will-change:transform;
  transition:transform .42s cubic-bezier(.22,.72,.18,1),visibility 0s linear .42s !important;
}
.memberNavDrawer.isOpen{
  transform:translate3d(0,0,0) !important;
  visibility:visible;
  transition:transform .42s cubic-bezier(.22,.72,.18,1),visibility 0s !important;
}
.memberProfileDrawer{
  padding:22px 20px 18px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(149,205,218,.28) transparent;
}
.memberProfileDrawer .memberProfileClose{
  display:grid !important;
  place-items:center;
  position:sticky !important;
  top:0 !important;
  margin-left:auto;
  z-index:4;
}
.memberProfileDrawer .memberDescription{
  margin-top:10px;
}
.memberProfileDrawer .memberProfileActions{
  margin-top:14px;
}
body.hasProfileCardOpen::after{
  display:none !important;
  content:none !important;
}

/* Une seule barre basse, légèrement agrandie. */
.memberFooter{
  height:var(--footer-legal) !important;
}
.memberFooterMain{
  display:none !important;
}
.memberFooterLegal{
  height:var(--footer-legal) !important;
  display:block !important;
  padding:0 calc(var(--ethnos-context-width) + 12px) 0 14px !important;
  border-top:1px solid rgba(149,205,218,.16) !important;
}
.memberFooterLegal nav{
  width:100%;
  height:100%;
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:center;
  gap:0 !important;
}
.memberFooterLegal nav>*{
  position:relative;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  padding:0 8px;
  font-family:var(--font-title) !important;
  font-weight:400 !important;
  text-align:center;
}
.memberFooterLegal nav>*:not(:first-child)::before{
  content:"";
  position:absolute;
  left:0;
  top:24%;
  width:1px;
  height:52%;
  background:rgba(197,225,230,.24);
}
.memberVersionCompact strong,
.memberVersionCompact small{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
  color:#dce5e2;
  font-size:clamp(8px,.67vw,11px);
  white-space:nowrap;
}
.memberFooterLegal nav a{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
  font-size:clamp(7px,.55vw,9px) !important;
  line-height:1.1;
  white-space:normal;
}

/* Le bloc Maps descend en pied de page et ne chevauche que cette barre unique. */
.memberMapCard{
  bottom:0 !important;
  font-family:var(--font-title) !important;
}
.memberMapCard>span,
.memberMapCard h2,
.memberMapCard p,
.memberMapCard small{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
}

/* Nouveau fond HD léger, sable et sans effet de fondu. */
.memberWelcome{
  background-image:url('../assets/images/dashboard-r100/dashboard-1920x1080.jpg') !important;
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-color:#c39465 !important;
  background-blend-mode:normal !important;
  filter:none !important;
  opacity:1 !important;
}
.memberWelcome::after{
  display:none !important;
  content:none !important;
}
@media (width:1280px) and (height:720px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-1280x720.jpg') !important}
}
@media (width:1366px) and (height:768px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-1366x768.jpg') !important}
}
@media (width:1536px) and (height:864px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-1536x864.jpg') !important}
}
@media (width:1707px) and (height:1067px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-1707x1067.jpg') !important}
}
@media (width:1920px) and (height:1080px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-1920x1080.jpg') !important}
}
@media (width:2560px) and (height:1440px){
  .memberWelcome{background-image:url('../assets/images/dashboard-r100/dashboard-2560x1440.jpg') !important}
}

@media (max-height:820px){
  :root{--footer-main:0px;--footer-legal:34px}
}
@media (max-width:1700px), (max-height:900px){
  .memberTopNavButton{
    padding:3px 6px !important;
    gap:6px !important;
    font-size:10px !important;
  }
  .memberProfileCompact:not(.isExpanded){
    padding:10px 14px !important;
  }
  .memberFooterLegal{
    padding-right:calc(var(--ethnos-context-width) + 8px) !important;
    padding-left:8px !important;
  }
  .memberFooterLegal nav>*{
    padding:0 4px;
  }
}

/* ==========================================================
   R101 — Annuaire de la communauté v1.0
   Corrections ciblées : largeur/hauteur communes des volets,
   espace avant Maps et annuaire fonctionnel.
   ========================================================== */
:root{
  --ethnos-drawer-inset:36px;
  --ethnos-drawer-map-gap:28px;
}

/* Le volet commence après l'arrondi gauche du bloc Profil et laisse
   une respiration constante avant le bloc Maps. Tous les volets ont
   exactement la même géométrie, quel que soit leur contenu. */
.memberNavDrawerLayer{
  right:0 !important;
  width:calc(var(--ethnos-context-width) - var(--ethnos-drawer-inset)) !important;
  top:var(--ethnos-card-height) !important;
  bottom:calc(var(--ethnos-card-height) + var(--ethnos-drawer-map-gap)) !important;
}
.memberNavDrawer{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  border-left:1px solid rgba(149,205,218,.17) !important;
  border-bottom:1px solid rgba(245,138,75,.42) !important;
}

.memberDirectoryDrawer{
  overflow:hidden;
  color:#f2eee7;
  font-family:var(--font-interface) !important;
}
.memberDirectoryShell{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:clamp(18px,1.45vw,26px) clamp(17px,1.35vw,24px) clamp(14px,1.1vw,20px);
  background:linear-gradient(180deg,#082738 0%,#041722 100%);
}
.memberDirectoryHeader{
  padding:0 0 clamp(13px,1vw,18px);
  border-bottom:1px solid rgba(149,205,218,.17);
}
.memberDirectoryHeader h2{
  margin:0;
  color:#f5f0e8;
  font-family:var(--font-title) !important;
  font-size:clamp(23px,1.55vw,31px);
  font-weight:400;
  line-height:1.04;
}
.memberDirectoryHeader h2 small{
  color:var(--orange);
  font-family:var(--font-title) !important;
  font-size:.55em;
  font-weight:400;
  white-space:nowrap;
}
.memberDirectoryHeader p{
  margin:7px 0 0;
  color:#8ea4ad;
  font-family:var(--font-interface) !important;
  font-size:clamp(9px,.63vw,11px);
  line-height:1.4;
}
.memberDirectoryContent{
  min-height:0;
  overflow-y:auto;
  padding:clamp(12px,.95vw,17px) 4px 10px 0;
  scrollbar-width:thin;
  scrollbar-color:rgba(149,205,218,.3) transparent;
}
.memberDirectoryContent::-webkit-scrollbar{width:6px}
.memberDirectoryContent::-webkit-scrollbar-thumb{background:rgba(149,205,218,.25);border-radius:8px}
.memberDirectorySection{
  padding:0 0 clamp(13px,1vw,18px);
  margin:0 0 clamp(13px,1vw,18px);
  border-bottom:1px solid rgba(149,205,218,.12);
}
.memberDirectorySection h3{
  margin:0 0 10px;
  color:#f5f0e8;
  font-family:var(--font-title) !important;
  font-size:clamp(16px,1.05vw,20px);
  font-weight:400;
}
.memberDirectoryDrawer label{
  display:block;
  margin:0 0 6px;
  color:#afc0c6;
  font-family:var(--font-interface) !important;
  font-size:clamp(8px,.58vw,10px);
  font-weight:500;
}
.memberDirectoryDrawer input,
.memberDirectoryDrawer select{
  width:100%;
  height:clamp(35px,2.45vw,42px);
  border:1px solid rgba(214,231,233,.34);
  border-radius:8px;
  outline:none;
  background:#061e2c;
  color:#f5f0e8;
  font-family:var(--font-interface) !important;
  font-size:clamp(10px,.72vw,12px);
  padding:0 11px;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.memberDirectoryDrawer input:focus,
.memberDirectoryDrawer select:focus{
  border-color:rgba(49,209,207,.62);
  box-shadow:0 0 0 3px rgba(49,209,207,.07);
}
.memberDirectoryDrawer select:disabled{opacity:.48;cursor:not-allowed}
.memberDirectoryInlineSearch{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.memberDirectoryDrawer form button,
.memberDirectoryLocationForm>button{
  min-height:clamp(35px,2.45vw,42px);
  padding:0 clamp(13px,1vw,18px);
  border:1px solid var(--orange);
  border-radius:8px;
  background:var(--orange);
  color:#061722;
  font-family:var(--font-title) !important;
  font-size:clamp(10px,.72vw,12px);
  font-weight:400;
  cursor:pointer;
  transition:filter .18s ease,transform .18s ease;
}
.memberDirectoryDrawer form button:hover,
.memberDirectoryDrawer form button:focus-visible{
  filter:brightness(1.07);
  transform:translateY(-1px);
  outline:none;
}
.memberDirectoryNameForm>p{
  margin:7px 0 0;
  color:#6f8993;
  font-size:clamp(7.5px,.52vw,9px);
  line-height:1.35;
}
.memberDirectoryLocationForm{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px 9px;
}
.memberDirectoryLocationForm label{margin-bottom:0}
.memberDirectoryLocationForm>button{
  grid-column:1/-1;
  margin-top:4px;
}
.memberDirectoryAlphabet{
  display:grid;
  grid-template-columns:repeat(13,minmax(0,1fr));
  gap:4px;
  margin-bottom:10px;
}
.memberDirectoryAlphabet button{
  aspect-ratio:1.15;
  min-width:0;
  padding:0;
  border:1px solid rgba(149,205,218,.2);
  border-radius:6px;
  background:rgba(255,255,255,.018);
  color:#aebfc4;
  font-family:var(--font-title) !important;
  font-size:clamp(8px,.58vw,10px);
  font-weight:400;
  cursor:pointer;
}
.memberDirectoryAlphabet button:hover,
.memberDirectoryAlphabet button:focus-visible,
.memberDirectoryAlphabet button.isActive{
  border-color:rgba(245,138,75,.72);
  color:#fff;
  background:rgba(245,138,75,.1);
  outline:none;
}
.memberDirectoryLetterSelectLabel{margin-top:0 !important}
.memberDirectoryResults{
  display:grid;
  gap:7px;
  padding-bottom:4px;
}
.memberDirectoryResultsTitle{
  margin:0 0 3px;
  color:#91a8b0;
  font-family:var(--font-interface) !important;
  font-size:clamp(8px,.58vw,10px);
  font-weight:500;
}
.memberDirectoryEmpty{
  margin:0;
  padding:14px;
  border:1px dashed rgba(149,205,218,.18);
  border-radius:9px;
  color:#728b94;
  font-size:clamp(8px,.58vw,10px);
  line-height:1.45;
  text-align:center;
}
.memberDirectoryResult{
  width:100%;
  min-height:62px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 25px 38px minmax(92px,auto);
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:1px solid rgba(149,205,218,.15);
  border-radius:9px;
  background:rgba(3,17,27,.52);
}
.memberDirectoryAvatar{
  width:42px;
  height:42px;
  border:2px solid rgba(245,138,75,.76);
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:#0a3042;
  color:#f5f0e8;
  font-family:var(--font-title) !important;
  font-size:13px;
}
.memberDirectoryAvatar img{width:100%;height:100%;object-fit:cover;display:block}
.memberDirectoryIdentity{min-width:0}
.memberDirectoryIdentity strong{
  display:block;
  overflow:hidden;
  color:#f5f0e8;
  font-family:var(--font-title) !important;
  font-size:clamp(12px,.82vw,15px);
  font-weight:400;
  line-height:1.12;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.memberDirectoryIdentity small{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:#78919a;
  font-size:clamp(7px,.5vw,9px);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.memberDirectoryFlag{
  width:24px;
  max-height:17px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.13);
}
.memberDirectoryShield{
  width:35px;
  height:35px;
  object-fit:contain;
}
.memberDirectoryPresence{
  min-width:0;
  display:grid;
  grid-template-columns:9px minmax(0,1fr);
  align-items:start;
  gap:6px;
}
.memberDirectoryPresenceDot{
  width:8px;
  height:8px;
  margin-top:3px;
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(255,255,255,.025);
}
.memberDirectoryPresence.isVisible .memberDirectoryPresenceDot{background:#42d68a}
.memberDirectoryPresence.isDiscreet .memberDirectoryPresenceDot{background:#f4a259}
.memberDirectoryPresence.isOffline .memberDirectoryPresenceDot{background:#708087}
.memberDirectoryPresence span{
  min-width:0;
  color:#a4b6bc;
  font-size:clamp(6.8px,.48vw,8.5px);
  line-height:1.25;
}
.memberDirectoryPresence.isVisible span{color:#8fd9b3}
.memberDirectoryPresence.isDiscreet span{color:#e8ad79}
.memberDrawerCloseButton{
  justify-self:center;
  min-width:116px;
  min-height:34px;
  margin-top:10px;
  padding:0 22px;
  border:1px solid rgba(245,138,75,.7);
  border-radius:999px;
  background:transparent;
  color:#f5f0e8;
  font-family:var(--font-title) !important;
  font-size:clamp(10px,.72vw,12px);
  font-weight:400;
  cursor:pointer;
}
.memberDrawerCloseButton:hover,
.memberDrawerCloseButton:focus-visible{
  background:rgba(245,138,75,.1);
  border-color:var(--orange);
  outline:none;
}

@media (max-width:1700px), (max-height:900px){
  :root{
    --ethnos-drawer-inset:28px;
    --ethnos-drawer-map-gap:22px;
  }
  .memberDirectoryShell{padding:15px 14px 12px}
  .memberDirectoryHeader h2{font-size:21px}
  .memberDirectoryHeader p{font-size:8px}
  .memberDirectorySection{padding-bottom:11px;margin-bottom:11px}
  .memberDirectorySection h3{font-size:15px;margin-bottom:7px}
  .memberDirectoryDrawer input,
  .memberDirectoryDrawer select,
  .memberDirectoryDrawer form button,
  .memberDirectoryLocationForm>button{height:32px;min-height:32px;font-size:9px}
  .memberDirectoryAlphabet{gap:3px}
  .memberDirectoryResult{
    min-height:54px;
    grid-template-columns:37px minmax(0,1fr) 21px 31px minmax(78px,auto);
    gap:7px;
    padding:6px 8px;
  }
  .memberDirectoryAvatar{width:35px;height:35px;font-size:11px}
  .memberDirectoryFlag{width:20px;max-height:14px}
  .memberDirectoryShield{width:29px;height:29px}
  .memberDrawerCloseButton{min-height:30px;min-width:102px;margin-top:7px;font-size:9px}
}


/* ==========================================================
   R102 — annuaire réel, géométrie responsive et fond Visages
   Corrections ciblées uniquement (pas d'audit général R102).
   ========================================================== */
:root{
  /* moitié de l'ancien retrait extérieur : valeur commune des 3 espaces horizontaux */
  --ethnos-r102-gap-x:7px;
  /* moitié de l'ancien espace supérieur : valeur commune haut / bas */
  --ethnos-r102-gap-y:11px;
}

/* Trois espaces horizontaux identiques : écran/salons, salons/image, image/écran. */
.memberLayout{
  grid-template-columns:clamp(190px,16vw,300px) minmax(0,1fr) !important;
  gap:var(--ethnos-r102-gap-x) !important;
  padding:var(--ethnos-r102-gap-y) var(--ethnos-r102-gap-x) !important;
}

/* Nouveau fond central R102. Le fondu latéral est intégré comme couche de fond,
   sans assombrir ni déplacer les contenus qui s'ouvrent au-dessus. */
.memberWelcome{
  border-radius:15px !important;
  background-color:#d7c29c !important;
  background-image:
    linear-gradient(90deg,
      rgba(4,19,31,.44) 0%,
      rgba(4,19,31,.13) 7%,
      rgba(4,19,31,0) 15%,
      rgba(4,19,31,0) 85%,
      rgba(4,19,31,.13) 93%,
      rgba(4,19,31,.44) 100%),
    url('../assets/images/dashboard-r102/dashboard-master-4096x2304.webp') !important;
  background-position:center,center !important;
  background-size:100% 100%,cover !important;
  background-repeat:no-repeat !important;
  background-blend-mode:normal !important;
}
.memberWelcome::after{display:none !important;content:none !important}

/* Le volet conserve sa largeur R101. Seul son angle bas-gauche devient arrondi. */
.memberNavDrawer{
  border-radius:0 0 0 18px !important;
  overflow:hidden !important;
}
.memberProfileDrawer{overflow-y:auto !important}

/* Annuaire : textes centrés, aucune barre de scroll visible, largeur conservée. */
.memberDirectoryHeader,
.memberDirectorySection h3,
.memberDirectoryNameForm>label,
.memberDirectoryNameForm>p{
  text-align:center !important;
}
.memberDirectoryContent{
  overflow-y:auto !important;
  padding-right:0 !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none;
}
.memberDirectoryContent::-webkit-scrollbar{display:none !important;width:0 !important;height:0 !important}
.memberDirectoryLocationSection h3{white-space:nowrap !important}
.memberDirectoryLocationForm{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:9px !important;
}
.memberDirectoryLocationForm>button{grid-column:1/-1 !important}
.memberDirectoryLetterForm{display:grid;gap:10px}
.memberDirectoryAlphabet{
  grid-template-columns:repeat(13,minmax(0,1fr)) !important;
  gap:5px !important;
  margin-bottom:0 !important;
}
.memberDirectoryAlphabet button{
  min-height:24px;
  aspect-ratio:1 / 1 !important;
  font-size:clamp(10px,.72vw,13px) !important;
  border-radius:50% !important;
}
.memberDirectoryLetterSearchButton{
  width:100%;
  min-height:clamp(35px,2.45vw,42px);
}
.memberDirectoryLetterSearchButton:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none !important;
  filter:none !important;
}
.memberDirectoryEmpty.isLoading{color:#9fb1b7}
.memberDirectoryEmpty.isLoading::before{
  content:'…';
  display:block;
  margin-bottom:4px;
  color:var(--orange);
  font-size:20px;
  letter-spacing:4px;
}

@media (width:1280px) and (height:720px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1280x720.webp') !important}
}
@media (width:1366px) and (height:768px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1366x768.webp') !important}
}
@media (width:1536px) and (height:864px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1536x864.webp') !important}
}
@media (width:1707px) and (height:1067px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1707x1067.webp') !important}
}
@media (width:1920px) and (height:1080px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1920x1080.webp') !important}
}
@media (width:2560px) and (height:1440px){
  .memberWelcome{background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-2560x1440.webp') !important}
}

@media (max-width:1700px), (max-height:900px){
  :root{--ethnos-r102-gap-x:5px;--ethnos-r102-gap-y:8px}
  .memberDirectoryAlphabet{gap:4px !important}
  .memberDirectoryAlphabet button{min-height:20px;font-size:10px !important}
}


/* ==========================================================
   R103 — corrections ciblées : annuaire sans scroll et
   centrage typographique du bloc « Trouver un salon ».
   ========================================================== */

/* Annuaire au repos : le message d'attente disparaît et le volet ne scrolle plus. */
.memberDirectoryContent{
  overflow:hidden !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
.memberDirectoryContent::-webkit-scrollbar{display:none !important;width:0 !important;height:0 !important}
.memberDirectoryResults[hidden]{display:none !important}

/* Bloc de recherche des salons : seuls les titres et sous-titres demandés sont centrés. */
.memberExplorerHead h2{
  width:100% !important;
  margin-inline:auto !important;
  text-align:center !important;
  white-space:nowrap !important;
  font-size:clamp(19px,1.65vw,29px) !important;
  letter-spacing:-.035em !important;
}
.salonQuickSearch>.salonExplorerLabel{
  display:block !important;
  width:100% !important;
  text-align:center !important;
}
.salonExplorerSectionHead{
  position:relative !important;
  justify-content:center !important;
}
.salonExplorerSectionHead>.salonExplorerLabel{
  display:block !important;
  width:100% !important;
  text-align:center !important;
}
.salonExplorerSectionHead>button{
  position:absolute !important;
  right:0 !important;
}
.salonDeepSearch>p,
.salonOfficialSearch>p{
  text-align:center !important;
}

@media (max-width:1450px) and (max-height:820px){
  .memberExplorerHead h2{font-size:19px !important}
}

/* Le format 1280 × 720 conserve tous les éléments de l'annuaire sans défilement. */
@media (max-width:1450px) and (max-height:820px){
  .memberDirectoryShell{padding:9px 10px 8px !important}
  .memberDirectoryHeader{padding-bottom:8px !important}
  .memberDirectoryHeader h2{font-size:19px !important}
  .memberDirectoryHeader p{margin-top:4px !important;font-size:7px !important;line-height:1.3 !important}
  .memberDirectoryContent{padding:7px 2px 2px 0 !important}
  .memberDirectorySection{padding-bottom:7px !important;margin-bottom:7px !important}
  .memberDirectorySection h3{margin-bottom:5px !important;font-size:13.5px !important}
  .memberDirectoryDrawer label{margin-bottom:4px !important;font-size:7.5px !important}
  .memberDirectoryNameForm>p{margin-top:4px !important;font-size:6.8px !important;line-height:1.25 !important}
  .memberDirectoryDrawer input,
  .memberDirectoryDrawer select,
  .memberDirectoryDrawer form button,
  .memberDirectoryLocationForm>button{height:29px !important;min-height:29px !important}
  .memberDirectoryAlphabet{gap:2px !important}
  .memberDirectoryAlphabet button{min-height:18px !important;font-size:9px !important}
  .memberDirectoryLetterForm{gap:6px !important}
  .memberDrawerCloseButton{min-height:27px !important;margin-top:4px !important}
}

/* ==========================================================
   R104 — volet « Mes trophées » paginé, sans défilement.
   Trois catégories par page, blason unique et Soignant retiré.
   ========================================================== */
.memberTrophiesDrawer{
  overflow:hidden !important;
  font-family:var(--font-interface) !important;
  color:#f5f0e8;
}
.memberTrophiesShell{
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto auto 1px minmax(0,1fr) auto 13px auto;
  gap:clamp(5px,.55vh,9px);
  padding:clamp(12px,1.1vw,20px) clamp(13px,1.15vw,21px) clamp(10px,.9vw,17px);
  overflow:hidden;
  background:linear-gradient(180deg,#082738 0%,#041722 100%);
}
.memberTrophiesHeader h2{
  margin:0;
  text-align:center;
  font-family:var(--font-title) !important;
  font-size:clamp(24px,1.8vw,34px);
  font-weight:400;
  line-height:1;
}
.memberChosenShield{
  min-height:0;
  display:grid;
  grid-template-columns:clamp(62px,5.1vw,86px) minmax(0,1fr);
  align-items:center;
  gap:clamp(10px,.9vw,16px);
  padding:2px clamp(3px,.35vw,7px);
}
.memberChosenShield>img{
  width:clamp(62px,5.1vw,86px);
  height:clamp(62px,5.1vw,86px);
  object-fit:contain;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.24));
}
.memberChosenShieldCopy{min-width:0;text-align:left}
.memberChosenShieldCopy h3{
  margin:0 0 clamp(5px,.5vh,8px);
  font-family:var(--font-title) !important;
  font-size:clamp(14px,1.08vw,20px);
  font-weight:400;
  line-height:1.12;
}
.memberChosenShieldStatus{
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  color:#9fb4bb;
  font-size:clamp(8px,.62vw,11px);
  font-weight:400;
}
.memberChosenShieldStatus input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.memberChosenShieldStatus span,
.memberTrophyOption>span{
  box-sizing:border-box;
  width:15px;
  height:15px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,240,232,.72);
  background:rgba(255,255,255,.018);
}
.memberChosenShieldStatus input:checked+span::after,
.memberTrophyOption input:checked+span::after{
  content:'✓';
  color:#31d1cf;
  font-family:var(--font-interface);
  font-size:10px;
  line-height:1;
}
.memberChosenShieldStatus b{font-weight:400}
.memberTrophiesSeparator{
  width:82%;
  height:1px;
  justify-self:center;
  background:rgba(245,240,232,.72);
}
.memberTrophyPages{min-height:0;overflow:hidden}
.memberTrophyPage{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:clamp(5px,.62vh,10px);
}
.memberTrophyPage[hidden]{display:none !important}
.memberTrophyCategory{
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  align-items:stretch;
  padding:clamp(4px,.38vw,7px) clamp(4px,.32vw,6px);
  border:1px solid rgba(149,205,218,.055);
  background:rgba(2,21,32,.18);
}
.memberTrophyCategory h3{
  margin:0;
  text-align:left;
  font-family:var(--font-title) !important;
  font-size:clamp(12px,.92vw,17px);
  font-weight:400;
  line-height:1.05;
  white-space:nowrap;
}
.memberTrophyOptions{
  min-height:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  gap:clamp(6px,.75vw,13px);
}
.memberTrophyOption{
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) 16px;
  place-items:center;
  gap:2px;
  cursor:pointer;
}
.memberTrophyOption img{
  width:min(64px,86%);
  max-height:clamp(42px,5.6vh,72px);
  aspect-ratio:1;
  object-fit:contain;
  transition:opacity .18s ease,filter .18s ease,transform .18s ease;
}
.memberTrophyOption input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.memberTrophyOption.isLocked{cursor:default}
.memberTrophyOption.isLocked img{
  opacity:.23;
  filter:grayscale(.76) saturate(.28) brightness(.56) contrast(.92);
}
.memberTrophyOption.isLocked>span{
  opacity:.42;
  border-color:rgba(245,240,232,.5);
}
.memberTrophyOption.isUnlocked img{opacity:1;filter:none}
.memberTrophyOption.isUnlocked:hover img{transform:translateY(-2px)}
.memberTrophyOption.isSelected img{filter:drop-shadow(0 0 10px rgba(245,138,75,.35))}
.memberTrophyOption.isSelected>span{border-color:var(--orange)}
.memberTrophyCategoryPlaceholder{visibility:hidden}
.memberTrophyPagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:4px;
}
.memberTrophyPagination button{
  box-sizing:border-box;
  width:clamp(25px,1.75vw,31px);
  height:clamp(25px,1.75vw,31px);
  padding:0;
  border:1px solid rgba(149,205,218,.28);
  background:rgba(1,16,25,.38);
  color:#b9c8cc;
  font-family:var(--font-interface) !important;
  font-size:clamp(9px,.66vw,12px);
  cursor:pointer;
}
.memberTrophyPagination button:first-child,
.memberTrophyPagination button:last-child{border-color:rgba(245,138,75,.42);color:#f58a4b}
.memberTrophyPagination button.isActive{
  border-color:var(--orange);
  background:rgba(245,138,75,.14);
  color:#f5f0e8;
}
.memberTrophyPagination button:disabled{opacity:.28;cursor:default}
.memberTrophySaveState{
  min-height:13px;
  margin:0;
  text-align:center;
  color:#75cfd0;
  font-size:8px;
  line-height:13px;
}
.memberTrophiesShell>.memberDrawerCloseButton{margin-top:0 !important}

@media (max-width:1700px), (max-height:900px){
  .memberTrophiesShell{
    grid-template-rows:auto auto 1px minmax(0,1fr) auto 10px auto;
    gap:4px;
    padding:9px 11px 8px;
  }
  .memberTrophiesHeader h2{font-size:22px}
  .memberChosenShield{grid-template-columns:54px minmax(0,1fr);gap:9px;padding:0 2px}
  .memberChosenShield>img{width:54px;height:54px}
  .memberChosenShieldCopy h3{margin-bottom:3px;font-size:13px}
  .memberChosenShieldStatus{gap:6px;font-size:7.5px}
  .memberChosenShieldStatus span,.memberTrophyOption>span{width:13px;height:13px}
  .memberChosenShieldStatus input:checked+span::after,.memberTrophyOption input:checked+span::after{font-size:8px}
  .memberTrophyPage{gap:4px}
  .memberTrophyCategory{padding:3px 4px}
  .memberTrophyCategory h3{font-size:11px}
  .memberTrophyOptions{gap:5px}
  .memberTrophyOption{grid-template-rows:minmax(0,1fr) 13px;gap:1px}
  .memberTrophyOption img{width:min(47px,82%);max-height:44px}
  .memberTrophyPagination{gap:3px}
  .memberTrophyPagination button{width:23px;height:23px;font-size:8px}
  .memberTrophySaveState{min-height:10px;font-size:7px;line-height:10px}
}

@media (max-width:1450px) and (max-height:820px){
  .memberTrophiesShell{padding:7px 9px 6px;gap:3px}
  .memberTrophiesHeader h2{font-size:19px}
  .memberChosenShield{grid-template-columns:46px minmax(0,1fr);gap:7px}
  .memberChosenShield>img{width:46px;height:46px}
  .memberChosenShieldCopy h3{font-size:11px}
  .memberChosenShieldStatus{font-size:6.8px}
  .memberTrophyCategory h3{font-size:9.5px}
  .memberTrophyOption img{width:min(39px,80%);max-height:36px}
  .memberTrophyPagination button{width:20px;height:20px;font-size:7px}
}


/* ==========================================================
   R105 — harmonisation générale ciblée, annuaire, salons,
   recherches du jour et trophées mystère.
   ========================================================== */

/* Le fond Visages reste la référence pendant tout le parcours de recherche. */
.memberWorkspace.hasSalonContent:not(.isSalonOpen){
  background-color:#d7c29c !important;
  background-image:
    linear-gradient(90deg,rgba(4,19,31,.44) 0%,rgba(4,19,31,.13) 7%,rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.13) 93%,rgba(4,19,31,.44) 100%),
    url('../assets/images/dashboard-r102/dashboard-master-4096x2304.webp') !important;
  background-position:center,center !important;
  background-size:100% 100%,cover !important;
  background-repeat:no-repeat !important;
}

/* Trouver un salon : quatre volumes aérés, séparateurs et respirations identiques. */
.memberExplorerBody{
  --explorer-volume-space:clamp(20px,2.2vh,32px);
  overflow:hidden !important;
  padding-right:0 !important;
}
.salonQuickSearch,
.salonExplorerSection{
  box-sizing:border-box !important;
  margin:0 !important;
  padding-inline:clamp(8px,.7vw,13px) !important;
}
.salonQuickSearch{
  padding-top:clamp(12px,1.3vh,20px) !important;
  padding-bottom:var(--explorer-volume-space) !important;
  border-bottom:0 !important;
}
.salonExplorerSection{
  position:relative;
  padding-top:var(--explorer-volume-space) !important;
  padding-bottom:var(--explorer-volume-space) !important;
  border:0 !important;
}
.salonExplorerSection::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:0;
  height:1px;
  background:rgba(149,205,218,.18);
}
.salonTodaySearches{padding-bottom:clamp(16px,1.6vh,24px) !important}
.salonExplorerSectionHead{margin-bottom:clamp(10px,1vh,15px) !important}
.salonTodayOpenButton{
  width:100%;
  min-height:clamp(38px,3vw,48px);
  border:1px solid var(--orange);
  border-radius:9px;
  background:var(--orange);
  color:#061722;
  font-family:var(--font-title) !important;
  font-size:clamp(11px,.82vw,14px);
  font-weight:400;
  cursor:pointer;
}
.salonTodayOpenButton:hover,.salonTodayOpenButton:focus-visible{filter:brightness(1.06);outline:none}

/* Volets de recherche : aucun rétrécissement automatique des niveaux précédents. */
.salonDrawerStack{overflow-x:auto !important;scroll-snap-type:x proximity}
.salonDrawerPanel{flex-shrink:0 !important;scroll-snap-align:start}
.salonDrawerPanel--continent{flex-basis:245px !important}
.salonDrawerPanel--countries{flex-basis:250px !important}
.salonDrawerPanel--themes{flex-basis:255px !important}
.salonDrawerPanel--topics{flex-basis:255px !important}
.salonDrawerPanel--detail{flex-basis:255px !important}
.salonDrawerPanel--final{flex-basis:275px !important}
/* Tous les textes ordinaires sont agrandis après le premier volet ; les titres restent inchangés. */
.salonDrawerPanel:not(.salonDrawerPanel--continent) .salonDrawerDescription{font-size:clamp(10px,.72vw,12px) !important;line-height:1.48 !important}
.salonDrawerPanel:not(.salonDrawerPanel--continent) .salonDrawerListCopy strong{font-size:clamp(11px,.8vw,14px) !important;line-height:1.25 !important}
.salonDrawerPanel:not(.salonDrawerPanel--continent) .salonDrawerListCopy small{font-size:clamp(8.5px,.62vw,11px) !important;line-height:1.35 !important}
.salonDrawerPanel:not(.salonDrawerPanel--continent) .salonDrawerListButton{min-height:clamp(52px,4.2vw,64px) !important}

/* Annuaire : la largeur utile est intégralement rendue au contenu, sans colonne parasite. */
.memberDirectoryShell,.memberDirectoryContent,.memberDirectorySection,.memberDirectoryDrawer form,
.memberDirectoryDrawer input,.memberDirectoryDrawer select,.memberDirectoryDrawer button{box-sizing:border-box !important;max-width:100% !important}
.memberDirectoryContent{width:100% !important;overflow:hidden !important;padding-right:0 !important}
.memberDirectorySection{width:100% !important;min-width:0 !important}
.memberDirectoryLocationSection h3{font-size:clamp(15px,1vw,19px) !important;letter-spacing:-.015em !important}
.memberDirectoryAlphabet{
  width:100% !important;
  grid-template-columns:repeat(13,minmax(0,1fr)) !important;
  gap:clamp(4px,.36vw,7px) !important;
  overflow:visible !important;
}
.memberDirectoryAlphabet button{
  width:100% !important;
  min-width:0 !important;
  min-height:clamp(25px,1.75vw,31px) !important;
  aspect-ratio:1/1 !important;
  padding:0 !important;
  border:1px solid rgba(149,205,218,.28) !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.02) !important;
  color:#c5d2d5 !important;
  font-family:var(--font-title) !important;
  font-size:clamp(11px,.78vw,14px) !important;
  transform:none !important;
  filter:none !important;
}
.memberDirectoryAlphabet button:hover,.memberDirectoryAlphabet button:focus-visible{
  border-color:rgba(245,138,75,.72) !important;
  background:rgba(245,138,75,.12) !important;
  color:#fff !important;
}
.memberDirectoryAlphabet button.isActive{
  border-color:var(--orange) !important;
  background:var(--orange) !important;
  color:#061722 !important;
}
.memberDirectoryLetterSearchButton{width:100% !important}

/* Recherches du jour : vrai volet indépendant montant depuis le bloc Maps. */
.memberTodaySearchDrawer{
  position:fixed;
  z-index:74;
  right:0;
  top:var(--ethnos-card-height);
  bottom:calc(var(--ethnos-card-height) + var(--ethnos-drawer-map-gap));
  width:calc(var(--ethnos-context-width) - var(--ethnos-drawer-inset));
  border-left:1px solid rgba(149,205,218,.18);
  border-top:1px solid rgba(245,138,75,.42);
  border-radius:18px 0 0 0;
  background:linear-gradient(180deg,#082738 0%,#041722 100%);
  box-shadow:0 -18px 42px rgba(0,0,0,.38);
  transform:translate3d(0,110%,0);
  visibility:hidden;
  transition:transform .42s cubic-bezier(.22,.72,.18,1),visibility 0s linear .42s;
  overflow:hidden;
}
.memberTodaySearchDrawer.isOpen{
  transform:translate3d(0,0,0);
  visibility:visible;
  transition:transform .42s cubic-bezier(.22,.72,.18,1),visibility 0s;
}
.memberTodaySearchShell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:18px 17px 14px;gap:14px}
.memberTodaySearchShell>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid rgba(149,205,218,.17)}
.memberTodaySearchShell h2{margin:0;font-family:var(--font-title);font-weight:400;font-size:clamp(22px,1.55vw,31px)}
.memberTodaySearchShell>header button{width:30px;height:30px;border:1px solid rgba(149,205,218,.22);border-radius:50%;background:transparent;color:#d8e1df;font-size:18px;cursor:pointer}
.memberTodaySearchList{min-height:0;display:grid;align-content:start;gap:8px;overflow:hidden}
.memberTodaySearchList>p{margin:0;padding:18px;border:1px dashed rgba(149,205,218,.18);border-radius:10px;color:#77909a;text-align:center;font-size:10px}
.memberTodaySearchList .salonTodayButton{min-height:42px !important;padding:8px 11px !important;font-size:10px !important}

/* Trophées verrouillés : aucun futur dessin n'est visible avant déblocage. */
.memberTrophyOption.isLocked img{
  opacity:.24 !important;
  filter:grayscale(1) brightness(.72) contrast(.88) !important;
}
.memberTrophyOption.isLocked>span{opacity:.34 !important;pointer-events:none}
.memberTrophyOption.isUnlocked img{opacity:1 !important;filter:none !important}

@media (max-width:1450px) and (max-height:820px){
  .memberExplorerBody{--explorer-volume-space:14px}
  .salonTodayOpenButton{min-height:31px;font-size:9px}
  .memberDirectoryAlphabet{gap:3px !important}
  .memberDirectoryAlphabet button{min-height:19px !important;font-size:9px !important}
  .memberTodaySearchShell{padding:11px 10px 9px;gap:9px}
  .memberTodaySearchShell h2{font-size:18px}
}
@media (width:1280px) and (height:720px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1280x720.webp') !important}}
@media (width:1366px) and (height:768px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1366x768.webp') !important}}
@media (width:1536px) and (height:864px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1536x864.webp') !important}}
@media (width:1707px) and (height:1067px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1707x1067.webp') !important}}
@media (width:1920px) and (height:1080px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-1920x1080.webp') !important}}
@media (width:2560px) and (height:1440px){.memberWorkspace.hasSalonContent:not(.isSalonOpen){background-image:linear-gradient(90deg,rgba(4,19,31,.44),rgba(4,19,31,0) 15%,rgba(4,19,31,0) 85%,rgba(4,19,31,.44)),url('../assets/images/dashboard-r102/dashboard-2560x1440.webp') !important}}

/* ==========================================================
   R107 — compteurs temps réel, favoris persistants, 16 pays,
   bandeaux compacts et typographie unifiée sur l’Annuaire.
   ========================================================== */

/* Typographie Annuaire = référence pour recherche, salons et trophées. */
.memberExplorerPanel,
.salonDrawerPanel,
.salonCentralResultsWindow,
.salonRoomView,
.memberTrophiesDrawer{
  font-family:var(--font-interface) !important;
}
.memberExplorerHead h2,
.salonExplorerLabel,
.salonDrawerHead h2,
.salonCentralResultsWindow h2,
.salonResultCard h3,
.salonRoomTitle h1,
.memberTrophiesHeader h2,
.memberChosenShieldCopy h3,
.memberTrophyCategory h3{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
}
.memberExplorerPanel button,
.salonDrawerPanel button,
.salonDrawerPanel input,
.salonDrawerPanel select,
.salonCentralResultsWindow button,
.salonRoomView button,
.salonRoomView input,
.salonRoomView select,
.memberTrophiesDrawer button,
.memberTrophiesDrawer input{
  font-family:var(--font-title) !important;
  font-weight:400 !important;
}
.memberExplorerPanel p,
.memberExplorerPanel label,
.memberExplorerPanel input,
.memberExplorerPanel select,
.salonDrawerPanel p,
.salonDrawerPanel small,
.salonRoomView p,
.salonRoomView label,
.memberTrophiesDrawer p,
.memberChosenShieldStatus{
  font-family:var(--font-interface) !important;
}

/* Trophées : hiérarchie plus compacte, mystère visible sans révélation. */
.memberTrophiesHeader h2{font-size:clamp(20px,1.32vw,27px) !important;line-height:1.05 !important}
.memberChosenShieldCopy h3{font-size:clamp(11px,.82vw,15px) !important;line-height:1.12 !important}
.memberChosenShieldStatus{font-size:clamp(7.5px,.52vw,9.5px) !important}
.memberTrophyOption.isLocked img{
  opacity:.52 !important;
  filter:grayscale(1) brightness(.82) contrast(.96) !important;
}
.memberTrophyOption.isLocked>span{opacity:.52 !important}

/* Annuaire : clavier alphabétique net, rectangulaire et sans chevauchement. */
.memberDirectoryAlphabet{
  grid-template-columns:repeat(9,minmax(0,1fr)) !important;
  gap:clamp(5px,.4vw,8px) !important;
  width:100% !important;
  overflow:visible !important;
}
.memberDirectoryAlphabet button{
  aspect-ratio:auto !important;
  min-height:clamp(29px,2vw,35px) !important;
  width:100% !important;
  border-radius:6px !important;
  background:rgba(255,255,255,.025) !important;
  font-size:clamp(10px,.72vw,13px) !important;
  box-shadow:none !important;
}
.memberDirectoryAlphabet button.isActive{
  background:var(--orange) !important;
  color:#061722 !important;
  border-color:var(--orange) !important;
}
.memberDirectoryContent,.memberDirectorySection,.memberDirectoryLetterForm{min-width:0 !important;max-width:100% !important}
.memberDirectoryDrawer{overflow:hidden !important}

/* Menus pays avec vrais drapeaux. Le select natif reste accessible. */
.ethnosFlagSelect{position:relative;width:100%;font-family:var(--font-interface)}
.ethnosFlagSelect>select{position:absolute !important;inset:0 !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important}
.ethnosFlagSelectButton{
  width:100%;height:clamp(35px,2.45vw,42px);display:flex;align-items:center;gap:9px;padding:0 34px 0 11px;
  border:1px solid rgba(214,231,233,.34);border-radius:8px;background:#061e2c;color:#f5f0e8;
  font-family:var(--font-interface) !important;font-size:clamp(10px,.72vw,12px);text-align:left;cursor:pointer;position:relative;
}
.ethnosFlagSelectButton::after{content:'⌄';position:absolute;right:11px;top:50%;transform:translateY(-55%);color:#9eb2b8}
.ethnosFlagSelectButton img,.ethnosFlagSelectOption img{width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.15);flex:none}
.ethnosFlagSelectMenu{
  position:absolute;z-index:140;left:0;right:0;top:calc(100% + 5px);max-height:min(330px,42vh);overflow-y:auto;padding:5px;
  border:1px solid rgba(149,205,218,.28);border-radius:9px;background:#061e2c;box-shadow:0 18px 38px rgba(0,0,0,.45);
}
.ethnosFlagSelectMenu[hidden]{display:none}
.ethnosFlagSelectOption{width:100%;min-height:35px;display:flex;align-items:center;gap:9px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:#dce6e5;font-family:var(--font-interface) !important;font-size:10px;text-align:left;cursor:pointer}
.ethnosFlagSelectOption:hover,.ethnosFlagSelectOption:focus-visible,.ethnosFlagSelectOption.isSelected{background:rgba(245,138,75,.13);color:#fff;outline:none}

/* Résultats finaux sous forme de bandeaux horizontaux, plus étroits. */
.salonDrawerPanel--final{flex-basis:238px !important;max-width:238px !important}
.salonDrawerPanel--final .salonResultList{display:grid !important;grid-template-columns:1fr !important;gap:8px !important}
.salonResultCard{
  width:100% !important;min-height:0 !important;padding:10px 11px !important;border-radius:9px !important;
  display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;grid-template-areas:'head head' 'location action' 'meta action' !important;
  column-gap:10px !important;row-gap:4px !important;
}
.salonResultCardHead{grid-area:head !important;align-items:center !important}
.salonResultLocation{grid-area:location !important;margin:0 !important}
.salonResultMeta{grid-area:meta !important;margin:0 !important;display:flex !important;gap:8px !important;flex-wrap:wrap !important}
.salonOpenButton{grid-area:action !important;align-self:end !important;min-height:32px !important;padding:0 10px !important;white-space:nowrap !important}
.salonResultParticipantCount,.salonResultMeta>span:first-child,.salonResultMeta .isLive{color:#57d995 !important;font-weight:600 !important}
.salonResultMeta .isInactive{color:#72858c !important}

/* Bandeau complet du salon plus court pour préparer plusieurs onglets. */
.salonRoomHeader,.salonRoomTabs{
  width:min(58%,760px) !important;
  min-width:520px !important;
  max-width:760px !important;
}
.salonRoomStatus .salonRoomMemberCount,
.salonRoomStatus .salonRoomActiveLabel{color:#57d995 !important;font-weight:600 !important}
.salonRoomStatus .salonRoomInactiveLabel{color:#75878d !important}

/* Recherches du jour : une ligne, volet mi-hauteur collé au bloc Maps. */
.salonTodaySearchesTitle,.salonTodaySearches .salonExplorerLabel{white-space:nowrap !important}
.salonTodayOpenButton{
  width:100% !important;min-height:clamp(38px,3vw,48px) !important;padding:0 clamp(13px,1vw,18px) !important;
  border-radius:8px !important;font-size:clamp(10px,.72vw,12px) !important;
}
.memberTodaySearchDrawer{
  top:auto !important;
  bottom:var(--ethnos-card-height) !important;
  height:min(48vh,440px) !important;
  border-radius:18px 0 0 0 !important;
}
.memberTodaySearchShell h2{white-space:nowrap !important;font-size:clamp(19px,1.3vw,26px) !important}

/* Salons favoris : première version réellement alimentée. */
.memberFavoritesShell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:clamp(18px,1.45vw,26px) clamp(17px,1.35vw,24px) clamp(14px,1.1vw,20px);font-family:var(--font-interface);background:linear-gradient(180deg,#082738 0%,#041722 100%)}
.memberFavoritesShell header{padding-bottom:14px;border-bottom:1px solid rgba(149,205,218,.17)}
.memberFavoritesShell h2{margin:0;font-family:var(--font-title);font-size:clamp(22px,1.5vw,30px);font-weight:400}
.memberFavoritesShell header p{margin:6px 0 0;color:#8ea4ad;font-size:10px}
.memberFavoritesList{min-height:0;display:grid;align-content:start;gap:8px;overflow:hidden}
.memberFavoriteSalonRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(149,205,218,.18);border-radius:9px;background:rgba(4,19,31,.45)}
.memberFavoriteSalonRow h3{margin:0;font-family:var(--font-title);font-size:15px;font-weight:400}
.memberFavoriteSalonRow p{margin:3px 0 0;color:#8fa3aa;font-size:9px}
.memberFavoriteSalonRow button{min-height:32px;padding:0 12px;border:1px solid var(--orange);border-radius:7px;background:var(--orange);color:#061722;font-family:var(--font-title);font-weight:400;cursor:pointer}
.memberFavoritesEmpty{margin:0;padding:18px;border:1px dashed rgba(149,205,218,.18);border-radius:9px;color:#78909a;text-align:center;font-size:10px}

@media(max-width:1500px){
  .salonRoomHeader,.salonRoomTabs{width:61% !important;min-width:460px !important}
  .salonDrawerPanel--final{flex-basis:220px !important;max-width:220px !important}
  .memberDirectoryAlphabet{grid-template-columns:repeat(9,minmax(0,1fr)) !important;gap:4px !important}
}
@media(max-width:1300px){
  .salonRoomHeader,.salonRoomTabs{width:64% !important;min-width:430px !important}
  .memberTodaySearchDrawer{height:min(46vh,350px) !important}
}
/* Les deux boutons orange du bloc gauche sont strictement identiques. */
.salonQuickSearch>button,
.salonTodayOpenButton{
  width:100% !important;
  height:clamp(35px,2.45vw,43px) !important;
  min-height:clamp(35px,2.45vw,43px) !important;
  padding:0 clamp(13px,1vw,18px) !important;
  border:1px solid var(--orange) !important;
  border-radius:8px !important;
  background:var(--orange) !important;
  color:#061722 !important;
  font-family:var(--font-title) !important;
  font-size:clamp(10px,.72vw,12px) !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
}


/* ==========================================================
   R106 correctif 3 — volet pays allégé en deux étapes.
   ========================================================== */
.salonCountryAccordionList{display:grid;align-content:start;gap:0;width:100%}
.salonCountryAccordion{width:100%;border-bottom:1px solid rgba(149,205,218,.14)}
.salonCountryAccordion:last-child{border-bottom:0}
.salonCountryAccordionButton{
  width:100%;min-height:58px;display:grid;grid-template-columns:38px minmax(0,1fr) 22px;
  align-items:center;gap:11px;padding:8px 10px;border:0;background:rgba(8,35,50,.34);
  color:#f5f0e8;text-align:left;cursor:pointer
}
.salonCountryAccordionButton:hover,.salonCountryAccordionButton:focus-visible,
.salonCountryAccordion.isOpen>.salonCountryAccordionButton{background:rgba(49,209,207,.07);outline:none}
.salonCountryAccordionButton img{width:34px;height:23px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.17)}
.salonCountryAccordionButton strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-title)!important;font-size:clamp(18px,1.3vw,25px);font-weight:400;line-height:1}
.salonCountryAccordionChevron{color:#91a9b0;font-family:Arial,sans-serif;font-size:18px;line-height:1;text-align:center;transition:transform .2s ease,color .2s ease}
.salonCountryAccordion.isOpen .salonCountryAccordionChevron{color:var(--orange);transform:rotate(180deg)}
.salonCountryAccordionActions{display:grid;gap:7px;padding:2px 10px 12px 59px;background:rgba(3,22,33,.34)}
.salonCountryAccordionActions[hidden]{display:none!important}
.salonCountryActionButton{
  width:100%;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:stretch;
  padding:0;border:1px solid rgba(149,205,218,.22);border-radius:7px;overflow:hidden;
  background:#092535;color:#f5f0e8;text-align:left;cursor:pointer
}
.salonCountryActionButton>span{display:flex;align-items:center;min-width:0;padding:0 11px;font-family:var(--font-title)!important;font-size:clamp(11px,.78vw,14px);line-height:1.15}
.salonCountryActionButton>b{display:grid;place-items:center;background:var(--orange);color:#061722;font-family:Arial,sans-serif;font-size:17px;font-weight:400}
.salonCountryActionButton:hover,.salonCountryActionButton:focus-visible{border-color:rgba(245,138,75,.72);outline:none}
.salonCountryAccordionCitySelect{
  width:100%;height:38px;padding:0 39px 0 11px;border:1px solid rgba(149,205,218,.22);border-radius:7px;
  background-color:#092535;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%23f7f2e9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;color:#f5f0e8;
  font-family:var(--font-title)!important;font-size:clamp(11px,.78vw,14px);-webkit-appearance:none;appearance:none;outline:none
}
.salonCountryAccordionCitySelect:focus{border-color:rgba(49,209,207,.62)}
@media(max-width:1500px),(max-height:850px){
  .salonCountryAccordionButton{min-height:49px;grid-template-columns:32px minmax(0,1fr) 18px;gap:8px;padding:6px 8px}
  .salonCountryAccordionButton img{width:29px;height:19px}.salonCountryAccordionButton strong{font-size:16px}
  .salonCountryAccordionActions{padding:2px 8px 9px 48px;gap:5px}
  .salonCountryActionButton,.salonCountryAccordionCitySelect{min-height:33px;height:33px}
  .salonCountryActionButton>span,.salonCountryAccordionCitySelect{font-size:10px}
}


/* ==========================================================
   R107 — stabilisation finale depuis R105 restaurée.
   Aucun observateur global du DOM : le chargement du profil
   reste prioritaire et les compteurs/favoris sont intégrés.
   ========================================================== */

/* Typographie Annuaire = référence pour recherche, salons et trophées. */
.memberExplorerPanel,
.salonDrawerPanel,
.salonCentralResultsWindow,
.salonRoomView,
.memberTrophiesDrawer,
.memberFavoritesShell,
.memberTodaySearchDrawer{
  --font-title:Fraunces,Georgia,"Times New Roman",serif;
  --font-interface:Manrope,"Segoe UI",Arial,sans-serif;
}
.memberExplorerPanel button,.memberExplorerPanel input,.memberExplorerPanel select,
.salonDrawerPanel button,.salonDrawerPanel input,.salonDrawerPanel select,
.salonCentralResultsWindow button,.salonRoomView button,.salonRoomView input,.salonRoomView select,.salonRoomView textarea,
.memberTrophiesDrawer button,.memberTrophiesDrawer input,
.memberFavoritesShell button,.memberTodaySearchDrawer button{
  font-family:var(--font-interface) !important;
}
.memberExplorerPanel h2,.memberExplorerPanel h3,
.salonDrawerPanel h2,.salonDrawerPanel h3,
.salonCentralResultsWindow h2,.salonCentralResultsWindow h3,
.salonRoomView h1,.salonRoomView h2,.salonRoomView h3,
.memberTrophiesDrawer h2,.memberTrophiesDrawer h3,
.memberFavoritesShell h2,.memberFavoritesShell h3,
.memberTodaySearchDrawer h2{
  font-family:var(--font-title) !important;
}

/* Le titre Recherches du jour ne casse jamais sur deux lignes. */
.memberTodaySearchShell>header h2,
.salonTodaySearches .salonExplorerLabel{white-space:nowrap !important}

/* Le volet monte directement du bloc Maps et s'arrête à mi-hauteur. */
.memberTodaySearchDrawer{
  top:auto !important;
  bottom:var(--ethnos-card-height) !important;
  height:min(48vh,440px) !important;
  max-height:calc(100vh - (2 * var(--ethnos-card-height))) !important;
}

/* Compteurs réels : nombre et état actif en vert. */
.salonResultParticipantCount,
.salonRoomMemberCount,
.salonResultMeta .isLive,
.salonRoomActiveLabel{color:#57d995 !important;font-weight:650 !important}
.salonResultMeta .isInactive,.salonRoomInactiveLabel{color:#75878d !important}

/* Bandeaux de résultats finaux courts et horizontaux. */
.salonDrawerPanel--final{flex-basis:230px !important;max-width:230px !important}
.salonDrawerPanel--final .salonResultCard{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:"head head" "location action" "meta action" !important;
  gap:4px 9px !important;
  padding:10px 11px !important;
  border-radius:8px !important;
}
.salonDrawerPanel--final .salonResultCardHead{grid-area:head !important}
.salonDrawerPanel--final .salonResultLocation{grid-area:location !important}
.salonDrawerPanel--final .salonResultMeta{grid-area:meta !important}
.salonDrawerPanel--final .salonOpenButton{grid-area:action !important;align-self:end !important}

/* Bandeau complet du salon raccourci, sans réduire sa hauteur. */
.salonRoomHeader,.salonRoomTabs{width:min(56%,720px) !important;min-width:500px !important;max-width:720px !important}

/* Le bouton Recherches du jour reprend exactement le bouton Rechercher. */
.salonQuickSearch>button,.salonTodayOpenButton{
  box-sizing:border-box !important;
  width:100% !important;
  height:clamp(35px,2.45vw,43px) !important;
  min-height:clamp(35px,2.45vw,43px) !important;
  padding:0 clamp(13px,1vw,18px) !important;
  border:1px solid var(--orange) !important;
  border-radius:8px !important;
  background:var(--orange) !important;
  color:#061722 !important;
  font-family:var(--font-interface) !important;
  font-size:clamp(10px,.72vw,12px) !important;
  font-weight:600 !important;
}

/* Trophée mystère visible mais le futur dessin reste intégralement caché. */
.memberTrophyOption.isLocked img{opacity:.58 !important;filter:grayscale(1) brightness(.84) contrast(.98) !important}
.memberTrophyOption.isLocked>span{opacity:.58 !important}
.memberTrophiesHeader h2{font-size:clamp(19px,1.24vw,25px) !important}
.memberChosenShieldCopy h3{font-size:clamp(10px,.76vw,13px) !important}

@media(max-width:1500px){
  .salonRoomHeader,.salonRoomTabs{width:60% !important;min-width:455px !important}
  .salonDrawerPanel--final{flex-basis:214px !important;max-width:214px !important}
}


/* ==========================================================
   R108 — corrections ciblées demandées après R107.
   Front uniquement : aucune modification du backend R107.
   ========================================================== */

/* L'Annuaire reste la référence typographique officielle. */
.memberExplorerPanel button,
.salonDrawerPanel button,
.salonCentralResultsWindow button,
.salonRoomView button,
.memberTrophiesDrawer button,
.memberFavoritesShell button,
.memberTodaySearchDrawer button{
  font-family:var(--font-title)!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
.memberExplorerPanel input,.memberExplorerPanel select,.memberExplorerPanel p,.memberExplorerPanel label,
.salonDrawerPanel input,.salonDrawerPanel select,.salonDrawerPanel p,.salonDrawerPanel small,
.salonRoomView input,.salonRoomView select,.salonRoomView textarea,.salonRoomView p,.salonRoomView label,
.memberTrophiesDrawer p,.memberFavoritesShell p,.memberTodaySearchDrawer p{
  font-family:var(--font-interface)!important;
}

/* ANNuaire : le menu pays personnalisé remplace le select, il ne crée plus de bouton parasite. */
.memberDirectoryLocationForm{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:9px!important;
}
.memberDirectoryLocationForm>.realFlagSelect,
.memberDirectoryLocationForm>select{min-width:0!important;width:100%!important}
.memberDirectoryLocationForm>button{
  grid-column:1/-1!important;
  margin-top:4px!important;
}

/* Clavier lettres compact : trois lignes propres, aucun écrasement du bouton. */
.memberDirectoryLetterSection{padding-bottom:0!important;margin-bottom:0!important;border-bottom:0!important}
.memberDirectoryLetterForm{display:grid!important;gap:clamp(7px,.7vh,10px)!important;min-height:0!important}
.memberDirectoryAlphabet{
  width:100%!important;
  grid-template-columns:repeat(9,minmax(0,1fr))!important;
  gap:clamp(4px,.36vw,7px)!important;
  margin:0!important;
  overflow:visible!important;
}
.memberDirectoryAlphabet button{
  box-sizing:border-box!important;
  width:100%!important;
  height:clamp(28px,2vw,34px)!important;
  min-height:clamp(28px,2vw,34px)!important;
  aspect-ratio:auto!important;
  padding:0!important;
  border-radius:6px!important;
  background:rgba(255,255,255,.025)!important;
  color:#b6c4c7!important;
  font-family:var(--font-title)!important;
  font-size:clamp(10px,.72vw,13px)!important;
  box-shadow:none!important;
}
.memberDirectoryAlphabet button.isActive{
  border-color:var(--orange)!important;
  background:var(--orange)!important;
  color:#061722!important;
}
.memberDirectoryLetterSearchButton{
  width:100%!important;
  min-height:clamp(35px,2.45vw,42px)!important;
}

/* Une recherche remplace les formulaires : titre, sous-titre, trait puis résultats. */
.memberDirectoryShell.isResultsMode .memberDirectorySection{display:none!important}
.memberDirectoryShell.isResultsMode .memberDirectoryContent{
  display:block!important;
  width:100%!important;
  padding:clamp(13px,1vw,18px) 0 4px!important;
  overflow-y:auto!important;
}
.memberDirectoryShell.isResultsMode .memberDirectoryResults{
  display:grid!important;
  width:100%!important;
  gap:8px!important;
  padding:0!important;
}
.memberDirectoryShell.isResultsMode .memberDirectoryResultsTitle{display:none!important}

/* Trophées : titres de catégories centrés et cases légèrement descendues. */
.memberTrophyCategory h3{text-align:center!important}
.memberTrophyOption>span{transform:translateY(4px)!important}

/* Bloc Trouver un salon : un seul trait par séparation, mêmes respirations. */
.memberExplorerBody{--explorer-volume-space:clamp(18px,2vh,28px)!important}
.salonQuickSearch,
.salonExplorerSection{
  border:0!important;
  margin:0!important;
}
.salonQuickSearch::before,.salonQuickSearch::after,
.salonDeepSearch::after,.salonOfficialSearch::after,.salonTodaySearches::after{display:none!important;content:none!important}
.salonQuickSearch{
  padding-top:clamp(12px,1.3vh,19px)!important;
  padding-bottom:var(--explorer-volume-space)!important;
}
.salonExplorerSection{
  position:relative!important;
  padding-top:var(--explorer-volume-space)!important;
  padding-bottom:var(--explorer-volume-space)!important;
}
.salonExplorerSection::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  top:0!important;
  left:8%!important;
  right:8%!important;
  width:auto!important;
  height:1px!important;
  margin:0!important;
  background:rgba(149,205,218,.24)!important;
}
.salonTodaySearches{padding-bottom:clamp(14px,1.5vh,22px)!important}

/* Les deux boutons orange ont le style officiel de l'Annuaire. */
.salonQuickSearch>button,.salonTodayOpenButton{
  box-sizing:border-box!important;
  width:100%!important;
  height:clamp(35px,2.45vw,43px)!important;
  min-height:clamp(35px,2.45vw,43px)!important;
  padding:0 clamp(13px,1vw,18px)!important;
  border:1px solid var(--orange)!important;
  border-radius:8px!important;
  background:var(--orange)!important;
  color:#061722!important;
  font-family:var(--font-title)!important;
  font-size:clamp(10px,.72vw,12px)!important;
  font-weight:400!important;
  letter-spacing:0!important;
}

/* Volet pays en deux étapes : pays plus fins et trois accès sur une ligne. */
.salonDrawerPanel--countries{
  flex-basis:clamp(300px,18vw,340px)!important;
  width:clamp(300px,18vw,340px)!important;
  max-width:340px!important;
}
.salonCountryAccordionButton{
  min-height:46px!important;
  grid-template-columns:31px minmax(0,1fr) 18px!important;
  gap:9px!important;
  padding:6px 9px!important;
}
.salonCountryAccordionButton img{width:29px!important;height:19px!important}
.salonCountryAccordionButton strong{
  font-size:clamp(15px,1vw,18px)!important;
  line-height:1!important;
}
.salonCountryAccordionActions{
  width:100%!important;
  box-sizing:border-box!important;
  gap:7px!important;
  padding:6px 10px 12px!important;
}
.salonCountryActionButton,
.salonCountryAccordionCitySelect{
  width:100%!important;
  min-height:40px!important;
  height:40px!important;
}
.salonCountryActionButton{grid-template-columns:minmax(0,1fr) 48px!important}
.salonCountryActionButton>span{
  padding:0 13px!important;
  white-space:nowrap!important;
  font-size:clamp(11px,.76vw,13px)!important;
  line-height:1!important;
}
.salonCountryAccordionCitySelect{
  padding-left:13px!important;
  padding-right:42px!important;
  white-space:nowrap!important;
  font-size:clamp(11px,.76vw,13px)!important;
}

/* Résultat final : véritable bandeau horizontal, jamais une carte carrée. */
.salonDrawerPanel--final{
  flex-basis:clamp(280px,17vw,315px)!important;
  width:clamp(280px,17vw,315px)!important;
  max-width:315px!important;
}
.salonDrawerPanel--final .salonResultCard{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:0!important;
  height:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"head head" "location action" "meta action"!important;
  align-items:center!important;
  gap:3px 10px!important;
  padding:10px 11px!important;
  border-radius:9px!important;
}
.salonDrawerPanel--final .salonResultCardHead{grid-area:head!important;align-items:center!important}
.salonDrawerPanel--final .salonResultCard h3{
  margin:0!important;
  font-size:clamp(16px,1.08vw,19px)!important;
  line-height:1.08!important;
  white-space:nowrap!important;
}
.salonDrawerPanel--final .salonFavoriteButton{
  width:29px!important;height:29px!important;min-height:29px!important;padding:0!important;flex:none!important;
}
.salonDrawerPanel--final .salonResultLocation{
  grid-area:location!important;
  margin:0!important;
  font-size:clamp(10px,.72vw,12px)!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.salonDrawerPanel--final .salonResultMeta{
  grid-area:meta!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:7px!important;
  margin:1px 0 0!important;
  font-size:clamp(7.5px,.54vw,9px)!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.salonDrawerPanel--final .salonOpenButton{
  grid-area:action!important;
  align-self:center!important;
  min-height:31px!important;
  margin:0!important;
  padding:0 9px!important;
  border-radius:7px!important;
  font-family:var(--font-title)!important;
  font-size:clamp(8px,.58vw,10px)!important;
  white-space:nowrap!important;
}

/* Bandeau complet du salon : environ moitié de la longueur R107. */
.salonRoomHeader,.salonRoomTabs{
  box-sizing:border-box!important;
  width:clamp(520px,30%,620px)!important;
  min-width:520px!important;
  max-width:620px!important;
}
.salonRoomHeader{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
  padding-left:18px!important;
  padding-right:14px!important;
}
.salonRoomHeaderActions{align-self:center!important}
.salonRoomFavorite{
  width:auto!important;
  min-width:118px!important;
  min-height:38px!important;
  padding:0 13px!important;
  font-size:clamp(9px,.66vw,11px)!important;
}
.salonRoomTabs button{
  min-height:40px!important;
  padding:0 10px!important;
  font-size:clamp(7.5px,.54vw,9px)!important;
  white-space:nowrap!important;
}
.salonRoomTabActions{margin-left:auto!important;display:flex!important}

/* Angle supérieur droit du panneau de discussion arrondi. */
.salonDialoguePanel{
  border-radius:0 16px 0 0!important;
  overflow:hidden!important;
}
.salonDialogueHeading{border-radius:0 16px 0 0!important}

/* Panneau Membres entièrement visible ; seule la liste défile. */
.salonMembersDrawer{
  top:8px!important;
  right:8px!important;
  bottom:8px!important;
  height:auto!important;
  max-height:calc(100% - 16px)!important;
  border-radius:14px!important;
  overflow:visible!important;
}
.salonRoomMembersHead,
.salonRoomMembers>input,
.salonRoomMemberStats{flex:none!important}
.salonRoomMemberList{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.salonMembersDrawerHandle{top:50%!important}

/* Favoris : Ouvrir plus petit et avec la typographie officielle. */
.memberFavoriteSalonRow button{
  min-height:30px!important;
  padding:0 10px!important;
  font-family:var(--font-title)!important;
  font-size:clamp(9px,.64vw,11px)!important;
  font-weight:400!important;
  line-height:1!important;
}

@media(max-width:1500px), (max-height:850px){
  .memberDirectoryAlphabet{gap:3px!important}
  .memberDirectoryAlphabet button{height:24px!important;min-height:24px!important;font-size:9px!important}
  .memberDirectoryLetterForm{gap:5px!important}
  .salonDrawerPanel--countries{flex-basis:292px!important;width:292px!important}
  .salonCountryAccordionButton{min-height:40px!important}
  .salonCountryAccordionButton strong{font-size:14px!important}
  .salonCountryActionButton,.salonCountryAccordionCitySelect{height:35px!important;min-height:35px!important}
  .salonCountryActionButton>span,.salonCountryAccordionCitySelect{font-size:10px!important}
  .salonDrawerPanel--final{flex-basis:270px!important;width:270px!important}
  .salonRoomHeader,.salonRoomTabs{width:500px!important;min-width:500px!important;max-width:500px!important}
  .salonRoomFavorite{min-width:105px!important}
  .salonRoomTabs button{padding:0 7px!important;font-size:7.3px!important}
}
@media(max-width:1300px){
  .salonRoomHeader,.salonRoomTabs{width:470px!important;min-width:470px!important;max-width:470px!important}
  .salonRoomTitle h1{font-size:26px!important}
  .salonRoomFavorite{min-width:92px!important;padding:0 9px!important}
  .salonRoomTabs button{padding:0 5px!important;font-size:6.8px!important}
}


/* ==========================================================
   R109 — synthèse complète des demandes postérieures à R108.
   ========================================================== */

/* Audit des champs déroulants du tableau de bord. */
.memberApp select:not([data-real-flag-select]){
  box-sizing:border-box!important;
  padding-left:14px!important;
  padding-right:44px!important;
  background-position:right 15px center!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.memberDirectoryLocationForm select,
.salonCountryAccordionCitySelect,
.salonTranslationLanguage{padding-left:14px!important;padding-right:42px!important}

/* Premier volet de recherche raccourci d'environ 30 %. */
.salonDrawerPanel--continent{
  flex-basis:172px!important;
  width:172px!important;
  max-width:172px!important;
}
.salonDrawerPanel--continent .salonDrawerHead{padding-left:12px!important;padding-right:10px!important}
.salonDrawerPanel--continent .salonDrawerHead h2{font-size:clamp(17px,1.18vw,22px)!important}
.salonDrawerPanel--continent .salonDrawerListButton{min-height:48px!important;padding-left:10px!important;padding-right:8px!important}

/* Les descendantes restent visibles, notamment le g de Portugal. */
.salonCountryAccordionButton strong,
.salonDrawerListCopy strong{
  line-height:1.25!important;
  padding-top:2px!important;
  padding-bottom:3px!important;
  overflow:visible!important;
}

/* Bandeau du salon encore plus court et entièrement en typographie officielle. */
.salonRoomHeader,.salonRoomTabs{
  width:clamp(430px,26%,520px)!important;
  min-width:430px!important;
  max-width:520px!important;
  font-family:var(--font-title)!important;
}
.salonRoomHeader{min-height:70px!important;padding:7px 11px 6px 15px!important;gap:9px!important}
.salonRoomTitle h1{font-family:var(--font-title)!important;font-size:clamp(23px,1.75vw,31px)!important;line-height:.96!important}
.salonRoomBreadcrumb,.salonRoomStatus,.salonRoomTabs button,.salonRoomFavorite{
  font-family:var(--font-title)!important;
  font-weight:400!important;
}
.salonRoomStatus{gap:3px!important}
.salonRoomFavorite{min-width:104px!important;min-height:34px!important;padding:0 10px!important;font-size:10px!important}
.salonRoomTabs,.salonRoomTabs button{min-height:34px!important}
.salonRoomTabs button{padding:0 7px!important;font-size:7.2px!important}

/* Nouvelle palette claire du chat. */
.salonDialoguePanel{
  border-color:#c9d7d3!important;
  border-radius:0 16px 0 0!important;
  background:#f3eee5!important;
  color:#18333d!important;
}
.salonDialogueHeading{
  min-height:48px!important;
  padding:10px 16px!important;
  border-bottom:1px solid #bfd0cc!important;
  border-radius:0 16px 0 0!important;
  background:#d9e7e3!important;
}
.salonDialogueHeading h2{color:#082b38!important;font-family:var(--font-title)!important}
.salonDialogueHeading span{color:#527078!important;font-family:var(--font-interface)!important}
.salonMessages{background:#f3eee5!important;padding-left:14px!important;padding-right:14px!important}
.salonMessage{
  margin:0!important;
  border-bottom:1px solid rgba(41,72,80,.10)!important;
  color:#243b43!important;
}
.salonMessage.speakerToneA{background:#f7ede0!important}
.salonMessage.speakerToneB{background:#e7eff0!important}
.salonMessage.isMention{box-shadow:inset 4px 0 0 #f58a4b!important}
.salonMessage p{color:#2e4249!important}
.salonMessageMeta time{color:#71868c!important}

/* Console plus haute avec cadeaux, ordre son/traduction et vraie typographie. */
.salonComposer{
  grid-template-columns:auto minmax(240px,1fr) auto!important;
  grid-template-rows:auto auto auto!important;
  align-items:center!important;
  gap:8px 10px!important;
  min-height:132px!important;
  padding:10px 12px!important;
  border-top:1px solid #c8d1cd!important;
  background:#e8e3d8!important;
}
.salonGiftStrip{
  grid-column:1/-1!important;
  grid-row:1!important;
  display:grid!important;
  grid-template-columns:repeat(4,62px) minmax(230px,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  min-width:0!important;
}
.salonGiftItem{display:grid;justify-items:center;gap:3px;min-width:0}
.salonGiftItem img{width:34px;height:34px;object-fit:contain;display:block}
.salonGiftItem span{color:#28434b;font-family:var(--font-interface)!important;font-size:8px;line-height:1;white-space:nowrap}
.salonGifNotice{
  min-height:42px!important;
  padding:6px 12px!important;
  border:1px solid rgba(89,110,115,.24)!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.40)!important;
  color:#718087!important;
  font-family:var(--font-title)!important;
  font-size:9px!important;
  font-weight:400!important;
  line-height:1.25!important;
  text-align:center!important;
  cursor:not-allowed!important;
}
.salonComposerTools{grid-column:1!important;grid-row:2!important}
.salonComposer textarea{grid-column:2!important;grid-row:2!important;height:52px!important;min-height:52px!important;max-height:52px!important;background:#fff!important;color:#243940!important;font-size:12px!important}
.salonComposerControls{grid-column:3!important;grid-row:2!important;grid-template-columns:minmax(178px,auto) 92px!important;gap:10px!important}
.salonComposerToggleStack{min-width:178px!important;gap:4px!important}
.salonComposerToggle{
  color:#405d65!important;
  font-family:var(--font-title)!important;
  font-size:10px!important;
  font-weight:400!important;
  line-height:1.2!important;
}
.salonTranslationLanguage{height:27px!important;background:#fff!important;color:#29434b!important;font-family:var(--font-interface)!important;font-size:9px!important}
.salonSendButton{
  min-width:92px!important;
  height:52px!important;
  min-height:52px!important;
  border-radius:9px!important;
  font-family:var(--font-title)!important;
  font-size:11px!important;
  font-weight:400!important;
}
.salonAttachmentPreview{grid-column:1/-1!important;grid-row:3!important}

/* Les deux tiroirs coulissent depuis la gauche au-dessus du bas du chat. */
.salonEmojiPalette,.salonAttachmentLibraryPanel{
  position:absolute!important;
  z-index:45!important;
  left:0!important;
  right:auto!important;
  bottom:calc(100% + 1px)!important;
  width:min(760px,72vw)!important;
  max-width:calc(100vw - 52px)!important;
  max-height:310px!important;
  transform:translateX(-104%)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:transform .28s cubic-bezier(.22,.72,.25,1),opacity .2s ease!important;
  border:1px solid rgba(149,205,218,.28)!important;
  border-radius:0 16px 16px 0!important;
  background:#082737!important;
  box-shadow:18px 18px 48px rgba(0,0,0,.32)!important;
}
.salonEmojiPalette.isOpen,.salonAttachmentLibraryPanel.isOpen{
  transform:translateX(0)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.salonEmojiPalette[hidden],.salonAttachmentLibraryPanel[hidden]{display:block!important}
.salonEmojiPalette{padding:13px!important}
.salonEmojiCategories{grid-template-columns:repeat(12,minmax(0,1fr))!important;max-height:none!important;overflow:visible!important}
.salonEmojiGrid{grid-template-columns:repeat(12,minmax(0,1fr))!important;max-height:210px!important;overflow-y:auto!important}
.salonEmojiChoice{height:34px!important;font-size:19px!important}

/* Bibliothèque horizontale des pièces jointes. */
.salonAttachmentLibraryPanel{height:132px!important;padding:12px 14px!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;gap:9px!important}
.salonAttachmentLibraryHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.salonAttachmentLibraryHead strong{font-family:var(--font-title)!important;font-size:17px;font-weight:400;color:#f5f0e8}
.salonAttachmentLibraryHead span{font-family:var(--font-interface)!important;font-size:8px;color:#7f9aa2}
.salonAttachmentLibraryRow{display:flex;align-items:stretch;gap:9px;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:3px;scrollbar-width:thin;scrollbar-color:rgba(245,138,75,.5) transparent}
.salonAttachmentLibraryItem{width:100px;min-width:100px;height:70px;display:grid;grid-template-rows:46px 1fr;overflow:hidden;padding:0;border:1px solid rgba(149,205,218,.18);border-radius:8px;background:#061e2c;color:#dbe5e4;text-align:left}
.salonAttachmentLibraryItem img{width:100%;height:46px;object-fit:cover}
.salonAttachmentLibraryItem .salonMediaFileIcon{display:grid;place-items:center;height:46px;font-size:25px;background:rgba(255,255,255,.035)}
.salonAttachmentLibraryItem span{overflow:hidden;padding:4px 6px;font-family:var(--font-interface)!important;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.salonAttachmentLibraryUpload{position:sticky;right:0;width:132px;min-width:132px;height:70px;border:1px solid var(--orange);border-radius:8px;background:var(--orange);color:#071722;font-family:var(--font-title)!important;font-size:9px;font-weight:400;line-height:1.2}

/* Panneau membres : dans la zone, sans rognage ni vide à droite. */
.salonMembersDrawer{
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:clamp(248px,22vw,320px)!important;
  max-width:calc(100% - 36px)!important;
  height:100%!important;
  max-height:100%!important;
  box-sizing:border-box!important;
  border-radius:14px 0 0 14px!important;
  border-right:0!important;
}
.salonRoomMembers{width:100%!important;min-width:0!important}
.salonRoomMemberList{width:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding-right:0!important}
.salonRoomMemberRow{width:100%!important;box-sizing:border-box!important}
.salonRoomMemberStats{margin-bottom:8px!important}

/* Page Mes photos et documents : avatar déjà chargé + nouveaux fichiers. */
.memberMediaDrawer{font-family:var(--font-interface)!important}
.memberMediaShell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:13px;padding:22px 20px 16px;background:linear-gradient(180deg,#082738,#041722)}
.memberMediaHeader{padding-bottom:13px;border-bottom:1px solid rgba(149,205,218,.17)}
.memberMediaHeader h2{margin:0;font-family:var(--font-title)!important;font-size:clamp(23px,1.55vw,30px);font-weight:400}
.memberMediaHeader p{margin:6px 0 0;color:#8fa4ac;font-size:10px;line-height:1.4}
.memberMediaGrid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;overflow-y:auto;padding-right:3px}
.memberMediaCard{min-width:0;display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:10px;padding:9px;border:1px solid rgba(149,205,218,.17);border-radius:9px;background:rgba(4,19,31,.46)}
.memberMediaCard img{width:70px;height:58px;object-fit:cover;border-radius:7px}
.memberMediaCardIcon{width:70px;height:58px;display:grid;place-items:center;border-radius:7px;background:rgba(255,255,255,.035);font-size:29px}
.memberMediaCard strong,.memberMediaCard small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.memberMediaCard strong{font-family:var(--font-title)!important;font-size:12px;font-weight:400}
.memberMediaCard small{margin-top:5px;color:#79919a;font-size:8px}
.memberMediaActions button{width:100%;min-height:40px;border:1px solid var(--orange);border-radius:8px;background:var(--orange);color:#071722;font-family:var(--font-title)!important;font-size:11px;font-weight:400}
.memberMediaEmpty{grid-column:1/-1;margin:0;padding:18px;border:1px dashed rgba(149,205,218,.18);border-radius:9px;color:#78909a;text-align:center;font-size:10px}

@media(max-width:1700px),(max-height:900px){
  .salonDrawerPanel--continent{flex-basis:165px!important;width:165px!important;max-width:165px!important}
  .salonRoomHeader,.salonRoomTabs{width:430px!important;min-width:430px!important;max-width:430px!important}
  .salonComposer{min-height:112px!important;padding:7px 8px!important;gap:6px 7px!important}
  .salonGiftStrip{grid-template-columns:repeat(4,48px) minmax(180px,1fr)!important;gap:6px!important}
  .salonGiftItem img{width:27px;height:27px}.salonGiftItem span{font-size:6.5px}
  .salonGifNotice{min-height:35px!important;font-size:7px!important}
  .salonComposer textarea{height:42px!important;min-height:42px!important;max-height:42px!important;font-size:10px!important}
  .salonComposerControls{grid-template-columns:minmax(132px,auto) 70px!important;gap:6px!important}
  .salonComposerToggleStack{min-width:132px!important;gap:2px!important}.salonComposerToggle{font-size:7.4px!important}
  .salonTranslationLanguage{height:22px!important;font-size:7px!important}.salonSendButton{min-width:70px!important;height:42px!important;min-height:42px!important;font-size:8px!important}
  .salonEmojiPalette,.salonAttachmentLibraryPanel{width:min(610px,76vw)!important}
  .salonEmojiCategories,.salonEmojiGrid{grid-template-columns:repeat(10,minmax(0,1fr))!important}
  .memberMediaGrid{grid-template-columns:1fr}
}
