/* rgnt — chat-sim: reprodução fiel do Slack dark (valores concretos via UX).
   Caixa de ALTURA FIXA — mensagens entram sem empurrar/reflow. */
.slack{
  --sl-bg:#1A1D21; --sl-side:#19171D; --sl-text:#D1D2D3; --sl-time:#8A8D91;
  --sl-hover:#222529; --sl-line:#2C2D30; --sl-link:#1D9BD1; --sl-green:#007A5A;
  font-family:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--sl-bg);border:1px solid var(--sl-line);border-radius:12px;
  overflow:hidden;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);
  width:100%;max-width:560px;user-select:none;
}
.slack-head{height:49px;display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;border-bottom:1px solid var(--sl-line);flex-shrink:0}
.slack-head .ch{display:flex;align-items:baseline;gap:4px;color:var(--sl-text);font-weight:700;font-size:15px}
.slack-head .ch .hash{color:var(--sl-time);font-weight:400}
.slack-head .members{color:var(--sl-time);font-size:13px;display:flex;align-items:center;gap:5px}
.slack-head .members svg{width:13px;height:13px;fill:var(--sl-time)}
/* corpo com ALTURA FIXA — não respira */
.slack-body{height:340px;overflow:hidden;padding:10px 0;display:flex;flex-direction:column;justify-content:flex-end}
.slack-scroll{display:flex;flex-direction:column;gap:2px}
.msg{display:flex;gap:8px;padding:4px 20px;align-items:flex-start;position:relative}
.msg-av{width:36px;height:36px;border-radius:4px;object-fit:cover;flex-shrink:0}
.msg-av.bot{background:#100c06}
.msg-body{min-width:0;flex:1}
.msg-head{display:flex;align-items:baseline;gap:8px;line-height:1.1}
.msg-name{font-weight:900;font-size:15px;color:var(--sl-text)}
.msg-name.bot-name{color:#e8b866}
.msg-tag{font-size:10px;font-weight:700;letter-spacing:.02em;background:#3a2c14;color:#e8b866;border-radius:3px;padding:1px 5px;text-transform:uppercase;position:relative;top:-1px}
.msg-time{font-size:12px;color:var(--sl-time)}
.msg-text{font-size:15px;line-height:1.4666;color:var(--sl-text);margin-top:1px;word-wrap:break-word}
.msg-text a,.msg-text .mention{color:var(--sl-link)}
.msg-text .mention{background:rgba(29,155,209,.14);border-radius:3px;padding:0 3px}
.msg-text b{font-weight:700}
.msg-text .cite{display:inline-flex;align-items:center;gap:5px;background:#222529;border:1px solid var(--sl-line);border-radius:5px;padding:2px 8px;margin-top:6px;font-size:13px;color:var(--sl-time)}
.msg-text .cite svg{width:12px;height:12px;fill:var(--sl-time)}
.msg-text .cite b{color:var(--sl-text);font-weight:600}
/* estado de entrada da mensagem (fade+slide, container não muda de altura) */
.msg.enter{opacity:0;transform:translateY(5px);transition:opacity .25s ease,transform .25s ease}
.msg.shown{opacity:1;transform:none}
/* "está digitando" */
.typing{display:flex;gap:8px;padding:4px 20px;align-items:center;opacity:.85}
.typing .dots{display:flex;gap:3px;padding:8px 12px;background:#222529;border-radius:12px}
.typing .dots i{width:5px;height:5px;border-radius:50%;background:var(--sl-time);animation:tdot 1.2s infinite}
.typing .dots i:nth-child(2){animation-delay:.2s}.typing .dots i:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
/* reunião: faces empilhadas no header */
.slack-head .faces{display:flex}
.slack-head .faces img{width:24px;height:24px;border-radius:4px;margin-left:-6px;border:2px solid var(--sl-bg)}
.slack-head .faces img:first-child{margin-left:0}
