@layer modules{
/* ════════ Composant « Discussions » - boîte unifiée (#discussions) ════════
   Vue plein écran (body.in-discussions) : colonnes latérales masquées, 3 panneaux
   internes (canaux+conversations / fil / contact). Réutilise les tokens globaux. */
body.in-discussions .col-profile,body.in-discussions .col-report{ display:none; }
body.in-discussions .split{ grid-template-columns:1fr; }
body.in-discussions #grid{ max-width:none; }

.dsc-wrap{ display:flex; flex-direction:column; height:calc(100vh - 120px); min-height:520px; }
.dsc-head{ display:flex; align-items:center; gap:var(--sp-14); padding:var(--sp-4) var(--sp-4) var(--sp-14); flex-wrap:wrap; }
.dsc-title{ font-size:var(--fs-xl); margin:0; font-weight:var(--fw-bold); }
.dsc-sub{ color:var(--mut); font-weight:var(--fw-regular); font-size:var(--fs-base); }
.dsc-headtools{ margin-left:auto; display:flex; gap:var(--sp-8); align-items:center; flex-wrap:wrap; }

.dsc-btn{ border:1px solid var(--line); background:var(--card); color:var(--txt); border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-12); font-size:var(--fs-md); cursor:pointer; }
.dsc-btn:hover{ border-color:var(--accent); }
.dsc-btn.ghost{ background:transparent; }
.dsc-btn.alch{ border-color:var(--accent); color:var(--accent); background:transparent; font-weight:var(--fw-strong); }
.dsc-btn.alch:hover{ background:var(--accent); color:var(--on-solid); }
.dsc-link{ background:none; border:none; color:var(--accent); cursor:pointer; font-weight:var(--fw-strong); padding:0; }

.dsc-body{ flex:1; display:grid; grid-template-columns:300px 1fr 300px; gap:var(--sp-14); min-height:0; }
@media(max-width:1100px){ .dsc-body{ grid-template-columns:240px 1fr; } .dsc-contact{ display:none; } }

/* ── Colonne gauche : canaux + conversations ── */
.dsc-side{ display:flex; flex-direction:column; gap:var(--sp-10); min-height:0; }
.dsc-channels{ display:flex; flex-direction:column; gap:var(--sp-2); background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-6); }
.dsc-chan{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-6) var(--sp-8); border:none; background:none; color:var(--txt); border-radius:var(--radius); cursor:pointer; font-size:var(--fs-md); text-align:left; }
.dsc-chan:hover{ background:var(--card2); }
.dsc-chan.on{ background:color-mix(in srgb, var(--accent) 16%, transparent); }
.dsc-chan-g{ width:24px; height:24px; border-radius:var(--radius-sm); display:grid; place-items:center; color:var(--on-solid); background:var(--cc,#64748b); font-size:var(--fs-md); flex-shrink:0; }
.dsc-chan-l{ flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dsc-chan-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dsc-chan-dot.ok{ background:var(--ok); } .dsc-chan-dot.off{ background:var(--mut2); }
.dsc-chan-n{ color:var(--mut); font-size:var(--fs-sm); min-width:18px; text-align:right; }

.dsc-convs{ flex:1; overflow:auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-6); }
.dsc-conv{ display:flex; gap:var(--sp-10); width:100%; padding:var(--sp-8); border:none; background:none; color:var(--txt); border-radius:var(--radius); cursor:pointer; text-align:left; align-items:center; }
.dsc-conv:hover{ background:var(--card2); }
.dsc-conv.on{ background:color-mix(in srgb, var(--accent) 14%, transparent); }
.dsc-av{ position:relative; width:40px; height:40px; border-radius:50%; background:var(--cc,#7c6cf0); color:var(--on-solid); display:grid; place-items:center; font-weight:var(--fw-bold); flex-shrink:0; }
.dsc-av-ch{ position:absolute; right:-3px; bottom:-3px; width:18px; height:18px; border-radius:50%; background:var(--cc,#7c6cf0); border:2px solid var(--card); font-size:var(--fs-2xs); display:grid; place-items:center; color:var(--on-solid); }
.dsc-conv-body{ flex:1; min-width:0; }
.dsc-conv-top{ display:flex; justify-content:space-between; gap:var(--sp-6); }
.dsc-conv-name{ font-weight:var(--fw-strong); font-size:var(--fs-md); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dsc-conv-time{ color:var(--mut); font-size:var(--fs-xs); flex-shrink:0; }
.dsc-conv-pv{ display:block; color:var(--mut); font-size:var(--fs-sm); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dsc-pv-me{ color:var(--mut2); }
.dsc-auto-badge{ font-size:var(--fs-2xs); color:var(--accent); }
.dsc-empty{ color:var(--mut); font-size:var(--fs-md); padding:var(--sp-14); text-align:center; }

/* ── Fil central ── */
.dsc-thread{ display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); min-height:0; overflow:hidden; }
.dsc-thread-empty{ margin:auto; text-align:center; color:var(--mut); }
.dsc-thread-empty-ic{ font-size:var(--fs-4xl); opacity:.5; }
.dsc-thread-head{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-10); padding:var(--sp-12) var(--sp-14); border-bottom:1px solid var(--line); }
.dsc-th-id b{ font-size:var(--fs-base); }
.dsc-th-chan{ display:inline-block; margin-left:var(--sp-8); font-size:var(--fs-sm); color:var(--cc,var(--mut)); }
.dsc-th-actions{ display:flex; gap:var(--sp-6); }
.dsc-ic{ border:1px solid var(--line); background:var(--bg2); color:var(--txt); border-radius:var(--radius); width:34px; height:34px; display:grid; place-items:center; cursor:pointer; font-size:var(--fs-base); padding:0; }
.dsc-ic:hover{ border-color:var(--accent); }
.dsc-ic.alch{ color:var(--accent); border-color:var(--accent); }

.dsc-msgs{ flex:1; overflow:auto; padding:var(--sp-16); display:flex; flex-direction:column; gap:var(--sp-8); }
.dsc-msg{ display:flex; flex-direction:column; max-width:74%; }
.dsc-msg.me{ align-self:flex-end; align-items:flex-end; }
.dsc-msg.them{ align-self:flex-start; }
.dsc-bubble{ padding:var(--sp-8) var(--sp-12); border-radius:var(--radius-modal); font-size:var(--fs-base); line-height:1.45; word-break:break-word; }
.dsc-msg.them .dsc-bubble{ background:var(--card2); border:1px solid var(--line); border-bottom-left-radius:5px; }
.dsc-msg.me .dsc-bubble{ background:var(--accent); color:var(--on-solid); border-bottom-right-radius:5px; }
.dsc-msg-meta{ font-size:var(--fs-2xs); color:var(--mut); margin-top:var(--sp-2); }
.dsc-sim{ color:var(--warn); }
.dsc-event{ align-self:center; font-size:var(--fs-sm); color:var(--mut); background:var(--card2); border:1px solid var(--line); padding:var(--sp-4) var(--sp-12); border-radius:var(--radius-modal); }
.dsc-msg-att{ margin-top:var(--sp-6); display:flex; flex-direction:column; gap:var(--sp-4); }
.dsc-att{ display:inline-flex; align-items:center; gap:var(--sp-6); font-size:var(--fs-sm); background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-4) var(--sp-8); max-width:240px; }
.dsc-msg.me .dsc-att{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.3); color:var(--on-solid); }
.dsc-att em{ color:var(--mut); font-style:normal; }
.dsc-att.img{ padding:0; border:none; }
.dsc-att.img img{ max-width:200px; max-height:160px; border-radius:var(--radius); display:block; }
.dsc-att-ic{ opacity:.8; }

/* ── Zone de saisie ── */
.dsc-composer{ border-top:1px solid var(--line); padding:var(--sp-10) var(--sp-12); }
.dsc-att-row{ display:none; gap:var(--sp-6); flex-wrap:wrap; margin-bottom:var(--sp-8); }
.dsc-att.pending{ position:relative; padding-right:var(--sp-22); }
.dsc-att-thumb{ width:20px; height:20px; object-fit:cover; border-radius:var(--radius-xs); }
.dsc-att-x{ position:absolute; right:3px; top:50%; transform:translateY(-50%); border:none; background:none; color:var(--mut); cursor:pointer; font-size:var(--fs-base); }
.dsc-composer-row{ display:flex; gap:var(--sp-8); align-items:flex-end; }
.dsc-input{ flex:1; resize:none; border:1px solid var(--line); background:var(--bg2); color:var(--txt); border-radius:var(--radius); padding:var(--sp-8) var(--sp-12); font:inherit; font-size:var(--fs-base); max-height:160px; }
.dsc-input:focus{ outline:none; box-shadow:var(--focus); }
.dsc-send{ width:38px; height:38px; border:none; border-radius:50%; background:var(--accent); color:var(--on-solid); cursor:pointer; font-size:var(--fs-base); flex-shrink:0; }
.dsc-send:hover{ background:var(--accent-h); }
.dsc-composer-foot{ margin-top:var(--sp-6); display:flex; gap:var(--sp-14); }
.dsc-auto{ font-size:var(--fs-sm); color:var(--mut); display:flex; gap:var(--sp-4); align-items:center; cursor:pointer; }

/* ── Panneau contact ── */
.dsc-contact{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-14); overflow:auto; }
.dsc-ct-head{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-6); padding-bottom:var(--sp-12); border-bottom:1px solid var(--line); }
.dsc-ct-av{ width:56px; height:56px; border-radius:50%; background:var(--accent); color:var(--on-solid); display:grid; place-items:center; font-size:var(--fs-xl); font-weight:var(--fw-bold); }
.dsc-ct-name{ border:none; background:none; color:var(--txt); font-size:var(--fs-base); font-weight:var(--fw-bold); text-align:center; width:100%; }
.dsc-ct-org{ border:none; background:none; color:var(--mut); font-size:var(--fs-sm); text-align:center; width:100%; }
.dsc-ct-name:focus,.dsc-ct-org:focus{ outline:none; }
.dsc-ct-fields{ display:flex; flex-direction:column; gap:var(--sp-6); padding:var(--sp-12) 0; }
.dsc-ct-f{ display:flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-md); color:var(--mut); }
.dsc-ct-f input{ flex:1; border:1px solid var(--line); background:var(--bg2); color:var(--txt); border-radius:var(--radius); padding:var(--sp-4) var(--sp-8); font:inherit; font-size:var(--fs-md); }
.dsc-ct-notes-l{ font-size:var(--fs-sm); color:var(--mut); display:block; }
.dsc-ct-notes{ width:100%; margin-top:var(--sp-4); border:1px solid var(--line); background:var(--bg2); color:var(--txt); border-radius:var(--radius); padding:var(--sp-6) var(--sp-8); font:inherit; font-size:var(--fs-md); resize:vertical; }

/* ── Encart alchimie (profil) ── */
.dsc-alch-box{ margin-top:var(--sp-14); border:1px solid var(--accent); border-radius:var(--radius); padding:var(--sp-10); background:color-mix(in srgb, var(--accent) 7%, transparent); }
.dsc-alch-h{ display:flex; align-items:center; gap:var(--sp-6); font-weight:var(--fw-strong); font-size:var(--fs-md); margin-bottom:var(--sp-8); }
.dsc-alch-g{ font-size:var(--fs-base); }
.dsc-alch-tag{ margin-left:auto; font-size:var(--fs-2xs); color:var(--accent); border:1px solid var(--accent); border-radius:var(--radius-modal); padding:var(--sp-1) var(--sp-6); }
.dsc-alch-hint{ font-size:var(--fs-xs); color:var(--mut); margin-top:var(--sp-6); }
.dsc-alch-cta{ margin-top:var(--sp-14); font-size:var(--fs-sm); color:var(--mut); border:1px dashed var(--line); border-radius:var(--radius); padding:var(--sp-10); }
.dsc-prof{ font-size:var(--fs-md); margin-top:var(--sp-8); }
.dsc-prof-sum{ margin:0 0 var(--sp-8); }
.dsc-prof-tags{ display:flex; flex-wrap:wrap; gap:var(--sp-4); margin-bottom:var(--sp-8); }
.dsc-prof-tags span{ font-size:var(--fs-xs); background:var(--card2); border:1px solid var(--line); border-radius:var(--radius-modal); padding:var(--sp-2) var(--sp-8); }
.dsc-prof-sec{ margin-bottom:var(--sp-8); } .dsc-prof-sec b{ font-size:var(--fs-sm); }
.dsc-prof-facts{ margin:var(--sp-2) 0 0; padding-left:var(--sp-18); } .dsc-prof-facts li{ margin:var(--sp-2) 0; }
.dsc-prof-line{ font-size:var(--fs-sm); color:var(--mut); }
.dsc-prof-next{ margin-top:var(--sp-6); font-size:var(--fs-sm); color:var(--accent); font-weight:var(--fw-strong); }

/* ── Newsletter (overlay de repli) ── */
.dsc-nl-overlay{ position:fixed; inset:0; background:var(--backdrop); display:grid; place-items:center; z-index:200; padding:var(--sp-24); }
.dsc-nl-card{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-22); max-width:640px; width:100%; max-height:84vh; overflow:auto; box-shadow:var(--shadow); }
.dsc-nl-close{ position:absolute; right:12px; top:10px; border:none; background:none; color:var(--mut); font-size:var(--fs-xl); cursor:pointer; }
.dsc-nl-subj{ font-size:var(--fs-base); margin-bottom:var(--sp-4); }
.dsc-nl-pre{ color:var(--mut); font-size:var(--fs-md); margin-bottom:var(--sp-12); }
.dsc-nl-body{ border-top:1px solid var(--line); padding-top:var(--sp-12); font-size:var(--fs-base); line-height:var(--lh-normal); }
.dsc-nl-body h4{ margin:var(--sp-14) 0 var(--sp-4); }
.dsc-nl-cta{ color:var(--accent); font-weight:var(--fw-strong); }
.dsc-nl-social{ margin-top:var(--sp-14); padding-top:var(--sp-12); border-top:1px solid var(--line); font-size:var(--fs-md); display:flex; flex-direction:column; gap:var(--sp-6); }
.dsc-nl-img{ margin-top:var(--sp-12); font-size:var(--fs-sm); color:var(--mut); background:var(--bg2); border-radius:var(--radius); padding:var(--sp-8); }

}
