/* ═══════════════════════════════════════════════════════════════
   CORTEX CHAT — Design System Ciano Tech / Minimalista
   Escopo isolado: .cortex-chat-container · não altera WebSocket
   ═══════════════════════════════════════════════════════════════ */

.cortex-chat-container {
  --ch-fs-scale: 1.6;
  --cx-tech: #00e5ff;
  --cx-tech-bright: #66ebff;
  --cx-tech-dim: rgba(0, 229, 255, 0.45);
  --cx-tech-muted: rgba(0, 229, 255, 0.12);
  --cx-amber: #ff9100;
  --cx-amber-hot: #ffab40;
  --cx-amber-dim: rgba(255, 145, 0, 0.45);
  --cx-purple: #cc88ff;
  --cx-purple-dim: rgba(204, 136, 255, 0.45);
  --cx-bg-abs: #000000;
  --cx-bg-matte: #000000;
  --cx-border: rgba(255, 255, 255, 0.06);
  --cx-text: #ffffff;
  --cx-text-dim: #808080;
  --cx-green: #67E6C9;
  --cx-red: #E77A7A;
  --cx-mono: var(--font-bloomberg);
}

/* ── 1. CAIXA DE TEXTO (Input Container) ── */
.cortex-chat-container .cortex-chat-input-area {
  padding: 10px 16px;
  background: var(--cx-bg-abs);
  border-top: 1px solid var(--cx-border);
}

.cortex-chat-container .cortex-chat-input-container,
.cortex-chat-container .ch-input-wrap {
  display: flex;
  gap: 8px;
  align-items: flex-end;
  background: var(--cx-bg-abs);
  border: 1px solid var(--cx-border);
  border-radius: 0;
  padding: 8px 10px;
  transition: border-color 0.15s ease;
  box-shadow: none;
}

.cortex-chat-container .cortex-chat-input-container:focus-within,
.cortex-chat-container .ch-input-wrap:focus-within {
  border-color: rgba(0, 229, 255, 0.38);
  box-shadow: 0 0 14px rgba(0, 229, 255, 0.1), 0 0 0 1px rgba(0, 229, 255, 0.08);
}

.cortex-chat-container .ch-icon-btn {
  background: transparent;
  border: 1px solid rgba(0, 168, 204, 0.22);
  border-radius: 0;
  color: var(--cx-tech);
  font-family: var(--cx-mono);
  font-size: calc(11.5px * var(--ch-fs-scale, 1.3068));
  font-weight: 600;
  letter-spacing: 0.12em;
  opacity: 0.92;
  padding: 8px 10px;
  text-transform: uppercase;
  white-space: nowrap;
}

.cortex-chat-container .ch-icon-btn:hover {
  border-color: rgba(0, 168, 204, 0.42);
  color: var(--cx-tech-bright);
  opacity: 1;
}

.cortex-chat-container #ch-input {
  background: transparent;
  border: none;
  border-radius: 0;
  color: var(--cx-text);
  font-family: var(--cx-mono);
  font-size: calc(22.4px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.02em;
}

.cortex-chat-container #ch-input::placeholder {
  color: var(--cx-text-dim);
  font-family: var(--cx-mono);
  font-size: calc(20.8px * var(--ch-fs-scale, 1.3068));
}

.cortex-chat-container #ch-send,
.cortex-chat-container .cortex-chat-send-btn {
  background: var(--cx-tech);
  border: none;
  border-radius: 0;
  color: #000000;
  cursor: pointer;
  flex-shrink: 0;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 9px 16px;
  text-transform: uppercase;
  transition: background 0.12s ease;
}

.cortex-chat-container #ch-send:hover,
.cortex-chat-container .cortex-chat-send-btn:hover {
  background: var(--cx-tech-bright);
  color: #000000;
}

/* ── 2. MENSAGENS · Bloomberg Terminal compact ── */
.cortex-chat-container .ch-msgs {
  padding: 4px 0 8px;
}

.cortex-chat-container .ch-date-sep {
  padding: 4px 16px;
  gap: 8px;
}

.cortex-chat-container .ch-date-txt {
  font-size: calc(17px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.12em;
}

.cortex-chat-container .ch-msg {
  display: block;
  padding: 4px 16px 8px;
  gap: 0;
}

.cortex-chat-container .ch-msg.msg-first {
  margin-top: 4px;
}

.cortex-chat-container .ch-msg.msg-cont {
  padding-left: 28px;
}

.cortex-chat-container .ch-msg:hover {
  background: rgba(255, 255, 255, 0.025);
}

.cortex-chat-container .ch-avatar {
  display: none !important;
}

.cortex-chat-container .ch-msg-head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  font-family: var(--cx-mono);
  font-size: calc(27px * var(--ch-fs-scale, 1.3068));
  gap: 0 8px;
  line-height: 1.4;
  margin-bottom: 2px;
}

.cortex-chat-container .ch-role-tag {
  color: var(--cx-text-dim);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.cortex-chat-container .ch-role-tag--sys {
  color: var(--cx-purple);
}

.cortex-chat-container .ch-role-tag--mgmt {
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-msg[data-role="admin"] .ch-role-tag,
.cortex-chat-container .ch-msg[data-role="admin"] .ch-author,
.cortex-chat-container .ch-msg[data-role="prof"] .ch-role-tag,
.cortex-chat-container .ch-msg[data-role="prof"] .ch-author {
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-msg[data-role="ia"] .ch-role-tag,
.cortex-chat-container .ch-msg[data-role="ia"] .ch-author {
  color: var(--cx-purple);
}

.cortex-chat-container .ch-msg[data-role="ia"] .ch-text {
  color: #ffffff;
}

/* Notificação de canal — ponto ciano discreto (sem contador vermelho) */
.cortex-chat-container .ch-badge,
.cortex-chat-container .ch-badge-dot {
  background: var(--cx-tech);
  border-radius: 50%;
  box-shadow: 0 0 5px rgba(0, 229, 255, 0.35);
  color: transparent;
  flex-shrink: 0;
  font-size: 0;
  height: 6px;
  line-height: 0;
  margin-left: auto;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  text-indent: -9999px;
  width: 6px;
}

.cortex-chat-container .ch-author {
  color: #ffffff;
  font-size: calc(27px * var(--ch-fs-scale, 1.3068));
  font-weight: 600;
  letter-spacing: 0.02em;
}

.cortex-chat-container .ch-time {
  color: #808080;
  font-size: calc(20px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.04em;
  margin-left: 4px;
  opacity: 0.82;
}

.cortex-chat-container .ch-pin-flag {
  color: rgba(212, 117, 0, 0.8);
  font-size: calc(14px * var(--ch-fs-scale, 1.3068));
  margin-left: 4px;
}

.cortex-chat-container .ch-badge-role,
.cortex-chat-container .cortex-chat-role-badge {
  display: none !important;
}

.cortex-chat-container .ch-text {
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #ffffff;
  font-size: calc(24px * var(--ch-fs-scale, 1.3068));
  line-height: 1.55;
  margin: 0;
  padding: 0 0 4px;
}

.cortex-chat-container .ch-msg.ch-msg--self .ch-text,
.cortex-chat-container .ch-msg.ch-msg--self .ch-text.ch-tip,
.cortex-chat-container .ch-msg.ch-msg--self .cortex-chat-tip {
  color: #67E6C9 !important;
}

.cortex-chat-container .ch-msg.msg-ia .ch-text {
  background: none;
  border: none;
  border-left: none;
}

.cortex-chat-container .ch-text.ch-tip,
.cortex-chat-container .cortex-chat-tip,
.cortex-chat-container .ch-msg.msg-ia .ch-text.ch-tip,
.cortex-chat-container .ch-msg.msg-ia .cortex-chat-tip {
  background: none;
  border: none;
  box-shadow: none;
  color: #808080;
  line-height: 1.55;
  margin: 0;
  padding: 0 0 4px;
}

.cortex-chat-container .ch-msg.msg-ia .ch-text:not(.ch-tip):not(.cortex-chat-tip) {
  background: none;
  border: none;
  box-shadow: none;
  color: #ffffff;
  line-height: 1.55;
  margin: 0;
  padding: 0 0 4px;
}

.cortex-chat-container .ch-reactions,
.cortex-chat-container .ch-reaction {
  display: none !important;
}

.cortex-chat-container .ch-msg-pinned {
  border-left: 2px solid rgba(212, 117, 0, 0.45);
  padding-left: 14px;
}

.cortex-chat-container .ch-msg-flag,
.cortex-chat-container .ch-msg-pin.is-pinned {
  color: rgba(212, 117, 0, 0.85);
  font-size: calc(12px * var(--ch-fs-scale, 1.3068));
}

.cortex-chat-container .ch-audio-msg {
  margin-top: 1px;
  padding: 2px 0;
}

/* ── 3. DASHBOARD RODAPÉ — preservação Raptor Pulse ── */
.cortex-chat-container .cortex-chat-dashboard,
.cortex-chat-container .ch-monitor {
  align-items: center;
  background: #000000;
  border-top: 1px solid var(--cx-border);
  display: flex;
  flex-shrink: 0;
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  gap: 32px;
  padding: 8px 20px;
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-item:first-of-type,
.cortex-chat-container .ch-monitor .ch-mon-item:first-of-type {
  margin-left: auto;
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-lbl,
.cortex-chat-container .ch-monitor .ch-mon-lbl {
  color: #ffffff;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-val,
.cortex-chat-container .ch-monitor .ch-mon-val {
  color: #ffffff;
  font-family: var(--cx-mono);
  font-size: calc(25.9px * var(--ch-fs-scale, 1.3068));
  font-weight: 700;
  letter-spacing: 0.04em;
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-val.amber,
.cortex-chat-container .ch-monitor .ch-mon-val.amber,
.cortex-chat-container .cortex-chat-dashboard #chm-wr,
.cortex-chat-container .ch-monitor #chm-wr {
  color: var(--amber-hot);
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-val.green,
.cortex-chat-container .ch-monitor .ch-mon-val.green {
  color: var(--cx-green);
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-val.red,
.cortex-chat-container .ch-monitor .ch-mon-val.red {
  color: var(--cx-red);
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-val.white,
.cortex-chat-container .ch-monitor .ch-mon-val.white {
  color: #ffffff;
}

.cortex-chat-container .ch-mon-pos-num {
  color: var(--amber-hot);
}

.cortex-chat-container .ch-mon-pos-lbl {
  color: #ffffff;
  font-weight: 700;
}

.cortex-chat-container .cortex-chat-dashboard .ch-mon-note,
.cortex-chat-container .ch-monitor .ch-mon-note {
  order: -1;
  margin-left: 0;
  color: var(--cx-text-dim);
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
}

/* ── 4. Engrenagem · menu Editar / Excluir canal (padrão ciano institucional) ── */
.cortex-chat-container .ch-item {
  padding-right: 10px;
}

.cortex-chat-container .ch-gear-wrap {
  flex-shrink: 0;
  margin-left: auto;
  position: relative;
}

.cortex-chat-container .ch-gear-btn {
  appearance: none;
  background: none;
  border: none;
  color: var(--cx-tech);
  cursor: pointer;
  font-size: calc(20.8px * var(--ch-fs-scale, 1.3068));
  line-height: 1;
  opacity: 0.45;
  padding: 2px 4px;
  transition: opacity 0.12s ease, color 0.12s ease;
}

.cortex-chat-container .ch-item:hover .ch-gear-btn,
.cortex-chat-container .ch-item.active .ch-gear-btn,
.cortex-chat-container .ch-gear-wrap.open .ch-gear-btn {
  opacity: 0.9;
}

.cortex-chat-container .ch-gear-btn:hover,
.cortex-chat-container .ch-gear-wrap.open .ch-gear-btn {
  color: var(--cx-tech-bright);
  opacity: 1;
}

.cortex-chat-container .ch-gear-menu {
  background: #05070a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
  display: none;
  min-width: 176px;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: calc(100% + 2px);
  z-index: 40;
}

.cortex-chat-container .ch-gear-wrap.open .ch-gear-menu {
  display: block;
}

.cortex-chat-container .ch-gear-menu-item {
  align-items: center;
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  font-family: var(--cx-mono);
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  gap: 8px;
  letter-spacing: 0.08em;
  padding: 9px 12px;
  text-align: left;
  text-transform: uppercase;
  width: 100%;
  transition: background 0.12s ease, color 0.12s ease;
}

.cortex-chat-container .ch-gear-menu-edit {
  color: var(--cx-tech);
}

.cortex-chat-container .ch-gear-menu-edit:hover {
  background: rgba(0, 229, 255, 0.08);
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-gear-menu-del {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--cx-text-dim);
}

.cortex-chat-container .ch-gear-menu-del:hover {
  background: rgba(224, 134, 134, 0.08);
  color: var(--cx-red);
}

.cortex-chat-container .ch-gear-menu-ico {
  flex-shrink: 0;
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  line-height: 1;
  opacity: 0.9;
  width: 16px;
}

.cortex-chat-container .ch-channel-dialog {
  align-items: center;
  background: rgba(0, 0, 0, 0.88);
  display: none;
  inset: 0;
  justify-content: center;
  position: fixed;
  z-index: 320;
}

.cortex-chat-container .ch-channel-dialog.open {
  display: flex;
}

.cortex-chat-container .ch-channel-dialog-panel {
  background: #05070a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  box-shadow: none;
  font-family: var(--cx-mono);
  max-width: 440px;
  padding: 18px 20px 16px;
  width: calc(100% - 32px);
}

.cortex-chat-container .ch-channel-dialog-title {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--cx-tech-bright);
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 14px;
  padding-bottom: 10px;
  text-transform: uppercase;
}

.cortex-chat-container .ch-channel-dialog-body {
  color: var(--cx-text-dim);
  font-size: calc(20.8px * var(--ch-fs-scale, 1.3068));
  line-height: 1.55;
  margin: 0;
}

.cortex-chat-container .ch-channel-dialog-body strong,
.cortex-chat-container .ch-channel-dialog-body .ch-dialog-highlight {
  color: var(--cx-tech-bright);
  font-weight: 700;
}

.cortex-chat-container .ch-channel-dialog-label {
  color: var(--cx-tech);
  display: block;
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.12em;
  margin: 10px 0 6px;
  opacity: 0.88;
  text-transform: uppercase;
}

.cortex-chat-container .ch-channel-dialog-input,
.cortex-chat-container .ch-channel-dialog-textarea {
  background: #080b0f;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  box-sizing: border-box;
  color: var(--cx-text);
  font-family: var(--cx-mono);
  font-size: calc(20.8px * var(--ch-fs-scale, 1.3068));
  outline: none;
  padding: 8px 10px;
  width: 100%;
}

.cortex-chat-container .ch-channel-dialog-input:focus,
.cortex-chat-container .ch-channel-dialog-textarea:focus {
  border-color: var(--cx-tech-dim);
  box-shadow: 0 0 0 1px rgba(0, 229, 255, 0.15);
}

.cortex-chat-container .ch-channel-dialog-textarea {
  min-height: 72px;
  resize: vertical;
}

.cortex-chat-container .ch-channel-dialog-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 16px;
}

.cortex-chat-container .ch-channel-dialog-btn {
  appearance: none;
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  color: var(--cx-text-dim);
  cursor: pointer;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.12em;
  padding: 8px 14px;
  text-transform: uppercase;
  transition: all 0.12s ease;
}

.cortex-chat-container .ch-channel-dialog-btn:hover {
  border-color: var(--cx-tech-dim);
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-channel-dialog-btn.primary {
  background: var(--cx-tech);
  border-color: var(--cx-tech);
  color: #000;
  font-weight: 700;
}

.cortex-chat-container .ch-channel-dialog-btn.primary:hover {
  background: var(--cx-tech-bright);
  border-color: var(--cx-tech-bright);
  color: #000;
}

.cortex-chat-container .ch-channel-dialog-btn.danger {
  border-color: rgba(224, 134, 134, 0.35);
  color: #a86868;
}

.cortex-chat-container .ch-channel-dialog-btn.danger:hover {
  background: rgba(224, 134, 134, 0.1);
  border-color: rgba(224, 134, 134, 0.55);
  color: var(--cx-red);
}

/* ── 5. Rodapé da mensagem · assinatura · menu · fixar · excluir ── */
.cortex-chat-container .ch-msg-foot {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  margin-top: 0;
  min-height: 14px;
}

.cortex-chat-container .ch-msg-stamp {
  color: #8a98a4;
  font-family: var(--cx-mono);
  font-size: calc(15px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.04em;
  margin-right: auto;
  opacity: 0.88;
}

.cortex-chat-container .ch-msg-actions {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 4px;
  opacity: 0.35;
  transition: opacity 0.12s ease;
}

.cortex-chat-container .ch-msg:hover .ch-msg-actions,
.cortex-chat-container .ch-msg-actions:has(.ch-msg-more-wrap.open),
.cortex-chat-container .ch-msg-pinned .ch-msg-actions,
.cortex-chat-container .ch-msg-unread .ch-msg-actions {
  opacity: 1;
}

.cortex-chat-container .ch-msg-act {
  appearance: none;
  background: none;
  border: none;
  color: var(--cx-text-dim);
  cursor: pointer;
  font-family: var(--cx-mono);
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  line-height: 1;
  padding: 2px 5px;
  transition: color 0.12s ease, opacity 0.12s ease;
}

.cortex-chat-container .ch-msg-more {
  font-size: calc(22.4px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.08em;
}

.cortex-chat-container .ch-msg-act:hover {
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-msg-pin.is-pinned {
  color: var(--cx-tech-bright);
  filter: none;
}

.cortex-chat-container .ch-msg-del:hover {
  color: var(--cx-red);
}

.cortex-chat-container .ch-msg-more-wrap {
  position: relative;
}

.cortex-chat-container .ch-msg-menu {
  background: #05070a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
  display: none;
  min-width: 210px;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 30;
}

.cortex-chat-container .ch-msg-more-wrap.open .ch-msg-menu {
  display: block;
}

.cortex-chat-container .ch-msg-menu-item {
  align-items: center;
  appearance: none;
  background: none;
  border: none;
  color: var(--cx-tech);
  cursor: pointer;
  display: flex;
  font-family: var(--cx-mono);
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  gap: 8px;
  letter-spacing: 0.06em;
  padding: 9px 12px;
  text-align: left;
  text-transform: uppercase;
  width: 100%;
  transition: background 0.12s ease, color 0.12s ease;
}

.cortex-chat-container .ch-msg-menu-item:hover:not(:disabled) {
  background: rgba(0, 229, 255, 0.08);
  color: var(--cx-tech-bright);
}

.cortex-chat-container .ch-msg-menu-item + .ch-msg-menu-item {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.cortex-chat-container .ch-msg-menu-item--del,
.cortex-chat-container .ch-msg-menu-item--del:hover:not(:disabled) {
  color: var(--cx-text-dim);
}

.cortex-chat-container .ch-msg-menu-item--del:hover:not(:disabled) {
  background: rgba(224, 134, 134, 0.08);
  color: var(--cx-red);
}

.cortex-chat-container .ch-msg-menu-item:disabled {
  color: #454f58;
  cursor: default;
  opacity: 0.45;
}

.cortex-chat-container .ch-msg-menu-ico {
  flex-shrink: 0;
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  line-height: 1;
  width: 16px;
}

.cortex-chat-container .ch-msg-pinned {
  background: rgba(212, 117, 0, 0.04);
}

.cortex-chat-container .ch-msg-unread .ch-msg-stamp::after {
  color: var(--cx-tech-bright);
  content: ' ●';
}

.cortex-chat-container .ch-msg-cont .ch-msg-foot {
  padding-left: 0;
}

/* ── 6. Cabeçalho · Desacoplar · Sala · permissões ── */
.cortex-chat-container .ch-header-btn {
  align-items: center;
  display: inline-flex;
  gap: 6px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cortex-chat-container .ch-header-btn:hover {
  background: rgba(0, 229, 255, 0.06);
}

.cortex-chat-container .ch-room-dialog {
  align-items: center;
  background: rgba(0, 0, 0, 0.88);
  display: none;
  inset: 0;
  justify-content: center;
  position: fixed;
  z-index: 330;
}

.cortex-chat-container .ch-room-dialog.open {
  display: flex;
}

.cortex-chat-container .ch-room-dialog-panel {
  background: #05070a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  box-sizing: border-box;
  font-family: var(--cx-mono);
  max-width: 520px;
  padding: 20px 22px 18px;
  width: calc(100% - 32px);
}

.cortex-chat-container .ch-room-dialog-title {
  color: #ffffff;
  font-size: calc(22.4px * var(--ch-fs-scale, 1.3068));
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.cortex-chat-container .ch-room-dialog-note {
  color: var(--cx-tech);
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  line-height: 1.55;
  margin: 0 0 14px;
  opacity: 0.92;
}

.cortex-chat-container .ch-room-perms {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.cortex-chat-container .ch-room-perm {
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--cx-tech);
  cursor: pointer;
  display: flex;
  font-size: calc(20.8px * var(--ch-fs-scale, 1.3068));
  gap: 10px;
  letter-spacing: 0.02em;
  padding: 11px 2px;
}

.cortex-chat-container .ch-room-perm input {
  accent-color: var(--cx-tech);
  cursor: pointer;
  flex-shrink: 0;
  height: 15px;
  width: 15px;
}

.cortex-chat-container .ch-room-dialog-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

/* ── 7. Nota de voz · gravar e reproduzir ── */
.cortex-chat-container .ch-icon-btn.is-recording {
  border-color: rgba(224, 134, 134, 0.45);
  box-shadow: none;
  color: var(--cx-red);
  opacity: 1;
}

.cortex-chat-container .ch-audio-rec {
  align-items: center;
  border: 1px solid rgba(224, 134, 134, 0.25);
  display: flex;
  gap: 10px;
  margin-top: 8px;
  padding: 8px 10px;
}

.cortex-chat-container .ch-audio-rec[hidden] {
  display: none !important;
}

.cortex-chat-container .ch-audio-rec-dot {
  animation: ch-rec-pulse 1s ease-in-out infinite;
  background: var(--cx-red);
  border-radius: 50%;
  flex-shrink: 0;
  height: 8px;
  width: 8px;
}

@keyframes ch-rec-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.cortex-chat-container .ch-audio-rec-time {
  color: var(--cx-red);
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.06em;
  min-width: 36px;
}

.cortex-chat-container .ch-audio-rec-label {
  color: var(--cx-text-dim);
  flex: 1;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.04em;
}

.cortex-chat-container .ch-audio-rec-cancel {
  appearance: none;
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--cx-text-dim);
  cursor: pointer;
  font-family: var(--cx-mono);
  font-size: calc(15.6px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.08em;
  padding: 4px 10px;
  text-transform: uppercase;
}

.cortex-chat-container .ch-audio-rec-cancel:hover {
  border-color: rgba(224, 134, 134, 0.35);
  color: var(--cx-red);
}

.cortex-chat-container .ch-audio-msg {
  align-items: center;
  background: #080b0f;
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  gap: 10px;
  max-width: 420px;
  padding: 10px 12px;
}

.cortex-chat-container .ch-audio-play {
  appearance: none;
  background: rgba(0, 229, 255, 0.12);
  border: 1px solid var(--cx-tech-dim);
  color: var(--cx-tech-bright);
  cursor: pointer;
  flex-shrink: 0;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  height: 32px;
  width: 32px;
}

.cortex-chat-container .ch-audio-play:hover {
  background: rgba(0, 229, 255, 0.2);
  border-color: var(--cx-tech);
}

.cortex-chat-container .ch-audio-track {
  background: rgba(255, 255, 255, 0.06);
  flex: 1;
  height: 4px;
  min-width: 80px;
  overflow: hidden;
}

.cortex-chat-container .ch-audio-track-fill {
  background: linear-gradient(90deg, var(--cx-tech), var(--cx-tech-bright));
  height: 100%;
  width: 42%;
}

.cortex-chat-container .ch-audio-dur {
  color: var(--cx-tech);
  flex-shrink: 0;
  font-family: var(--cx-mono);
  font-size: calc(17.3px * var(--ch-fs-scale, 1.3068));
  letter-spacing: 0.06em;
  min-width: 36px;
}

.cortex-chat-container .ch-audio-el {
  display: none;
}

/* ── Macro TV no rodapé da sidebar (som ON + chat aberto) ──
   Importante: o desk usa grid (--ch-rail-w). Ampliar a TV exige
   aumentar a COLUNA do grid — senão a TV vaza por cima do chat. */
.cortex-chat-container .ch-tv-slot {
  flex-shrink: 0;
  display: none;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  border-top: 1px solid var(--cx-border);
  background: #05070a;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

body.ch-tv-active .cortex-chat-container .ch-tv-slot {
  display: flex;
}

body.ch-tv-active .ch-tv-slot .ih-tv-block--gov {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  border: none;
  background: transparent;
  position: relative;
}

body.ch-tv-active .ch-tv-slot .ih-module-bar {
  flex-shrink: 0;
  padding: 6px 10px;
  min-height: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.ch-tv-active .ch-tv-slot .ih-module-title {
  font-size: calc(11px * var(--ch-fs-scale, 1.3068) / 1.188);
  letter-spacing: 0.12em;
}

body.ch-tv-active .ch-tv-slot .ih-tv-brand-foot {
  padding: 3px 8px 5px;
}

body.ch-tv-active .ch-tv-slot .ih-tv-brand-credit {
  font-size: calc(7px * var(--ch-fs-scale, 1.3068) / 1.188);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* Grid do desk: rail abre só com TV no canto; chat encolhe.
   Expandido: rail volta ao normal (TV sobe pro centro). */
body.ch-tv-active:not(.ch-tv-expanded) #view-chat.ch-desk {
  /* ~2× da faixa anterior (680–860 → 840–1000) */
  --ch-rail-w: clamp(840px, 42vw, 1000px);
  --ch-ctx-w: clamp(300px, 14vw, 440px);
}

body.ch-tv-expanded #view-chat.ch-desk {
  --ch-rail-w: 571px;
  --ch-ctx-w: 756px;
}

body.ch-tv-active #view-chat.ch-desk .ch-desk-body {
  grid-template-columns: var(--ch-rail-w) minmax(0, 1fr) var(--ch-ctx-w) !important;
}

body.ch-tv-active #view-chat.ch-desk.is-rail-collapsed .ch-desk-body {
  grid-template-columns: var(--ch-rail-w) minmax(0, 1fr) var(--ch-ctx-w) !important;
}

body.ch-tv-active:not(.ch-tv-expanded) #view-chat.ch-desk.is-rail-collapsed .ch-name,
body.ch-tv-active:not(.ch-tv-expanded) #view-chat.ch-desk.is-rail-collapsed .ch-badge,
body.ch-tv-active:not(.ch-tv-expanded) #view-chat.ch-desk.is-rail-collapsed .ch-cat {
  display: flex;
}

/* Sidebar preenche a coluna do grid (não overflowa) */
body.ch-tv-active .cortex-chat-container .ch-sidebar,
body.ch-tv-active #view-chat.ch-desk .ch-sidebar.ch-rail,
body.ch-tv-active #view-chat.ch-desk .ch-rail.ch-sidebar {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100%;
  min-height: 0;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  position: relative;
  z-index: 1;
}

body.ch-tv-active .cortex-chat-container .ch-list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
}

body.ch-tv-active .cortex-chat-container .ch-tv-slot {
  flex: 0 0 auto;
  margin-top: auto;
  width: 100%;
  max-width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}

body.ch-tv-active .ch-tv-slot .ih-tv-aspect {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 0;
  /* ~2× do canto anterior (520 → ~720 / 58vh) */
  max-height: min(58vh, 720px);
  height: auto;
  background: #000;
  overflow: hidden;
  box-sizing: border-box;
}

body.ch-tv-active .ch-tv-slot .ih-tv-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

body.ch-tv-active .ch-tv-slot .ih-tv-chans {
  flex-shrink: 0;
  display: flex;
  gap: 6px;
  padding: 6px 8px 8px;
}

body.ch-tv-active .ch-tv-slot .ih-tv-btn {
  flex: 1;
  font-size: calc(10px * var(--ch-fs-scale, 1.3068) / 1.188);
  padding: 5px 6px;
  letter-spacing: 0.08em;
}

body.ch-tv-active .ch-tv-slot #ih-gov-tv-wl-switch {
  display: none;
}

body.ch-tv-active .ch-tv-slot .ih-tv-mute {
  margin-left: 0;
}

body.ch-tv-active .ch-tv-slot #ih-gov-tv-popout {
  display: none;
}

/* Chat central continua com espaço utilizável */
body.ch-tv-active #view-chat.ch-desk .ch-main {
  min-width: 0 !important;
  overflow: hidden;
}

/* ── Botão expandir Macro TV no chat (barra superior, ao lado do volume) ── */
#ih-gov-tv-expand-chat {
  display: none;
}

body.ch-tv-active #ih-gov-tv-expand-chat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ih-tv-expand-chat {
  appearance: none;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 2px;
  color: #6a7884;
  cursor: pointer;
  font-size: calc(12px * var(--ch-fs-scale, 1.3068) / 1.188);
  line-height: 1;
  min-width: 26px;
  padding: 3px 7px;
  flex-shrink: 0;
}

.ih-tv-expand-chat:hover,
.ih-tv-expand-chat.active {
  border-color: rgba(0, 229, 255, 0.45);
  color: var(--cx-tech);
  background: rgba(0, 229, 255, 0.08);
}

/* ── Macro TV expandida — metade do expandido antigo (78% → ~39%) ── */
.cortex-chat-container .ch-tv-expand-slot {
  display: none;
  flex: 0 0 39%;
  min-height: 260px;
  max-height: 44%;
  flex-direction: column;
  border-bottom: 1px solid var(--cx-border);
  background: #000;
  overflow: hidden;
}

body.ch-tv-expanded .cortex-chat-container .ch-tv-expand-slot {
  display: flex;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-tv-block--gov {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  border: none;
  background: #000;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-module-bar {
  flex-shrink: 0;
  padding: 8px 12px;
  background: #05070a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-module-title {
  font-size: calc(11px * var(--ch-fs-scale, 1.3068) / 1.188);
  letter-spacing: 0.12em;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-tv-aspect {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  aspect-ratio: unset;
  height: auto;
  background: #000;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-tv-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-tv-chans {
  flex-shrink: 0;
  display: flex;
  gap: 6px;
  padding: 6px 10px 8px;
  background: #05070a;
}

body.ch-tv-expanded .ch-tv-expand-slot .ih-tv-btn {
  flex: 1;
  font-size: calc(10px * var(--ch-fs-scale, 1.3068) / 1.188);
  padding: 5px 6px;
  letter-spacing: 0.08em;
}

body.ch-tv-expanded .ch-tv-expand-slot #ih-gov-tv-wl-switch,
body.ch-tv-expanded .ch-tv-expand-slot #ih-gov-tv-popout {
  display: none;
}

body.ch-tv-expanded .cortex-chat-container .ch-msgs {
  flex: 1 1 auto;
  min-height: 100px;
}

body.ch-tv-expanded .ch-tv-expand-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 10px 12px;
  text-align: center;
  color: var(--cx-tech);
  font-family: var(--cx-mono);
  font-size: calc(10px * var(--ch-fs-scale, 1.3068) / 1.188);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-transform: uppercase;
  border: 1px dashed rgba(0, 229, 255, 0.35);
  background: rgba(0, 0, 0, 0.65);
  cursor: pointer;
  box-sizing: border-box;
}

body.ch-tv-expanded .ch-tv-expand-ph:hover {
  color: var(--cx-tech-bright);
  background: rgba(0, 229, 255, 0.08);
}

/* ═══════════════════════════════════════════════════════════════
   GC CHAT PALETTE — mockup GLOBAL CORTEX (isolamento final)
   ═══════════════════════════════════════════════════════════════ */
#view-chat,
#view-chat .cortex-chat-container {
  --ch-fs-scale: 1.6;
  --ch-accent: #00e5ff;
  --ch-accent-bright: #66ebff;
  --ch-accent-dim: rgba(0, 229, 255, 0.42);
  --ch-accent-bg: rgba(0, 48, 64, 0.55);
  --ch-amber: #ff9100;
  --ch-amber-hot: #ffab40;
  --cx-tech: #00e5ff;
  --cx-tech-bright: #66ebff;
  --cx-amber: #ff9100;
  --cx-amber-hot: #ffab40;
  --cx-purple: #cc88ff;
  --cx-text: #ffffff;
  --cx-text-dim: #808080;
}

#view-chat .ch-cat,
.cortex-chat-container .ch-cat {
  color: var(--ch-amber-hot);
}

#view-chat .ch-cat::before,
.cortex-chat-container .ch-cat::before {
  color: var(--ch-amber);
}

#view-chat .ch-item,
.cortex-chat-container .ch-item {
  color: #808080;
}

#view-chat .ch-item.active,
.cortex-chat-container .ch-item.active {
  background: var(--ch-accent-bg);
  color: var(--ch-accent-bright);
}

#view-chat .ch-header-name,
.cortex-chat-container .ch-header-name {
  color: var(--ch-amber-hot);
}

#view-chat .ch-header-icon,
.cortex-chat-container .ch-header-icon {
  color: var(--ch-amber-hot);
}

#view-chat .ch-header-desc,
.cortex-chat-container .ch-header-desc {
  color: #808080;
}

#view-chat .ch-sidebar,
#view-chat .ch-header,
#view-chat .ch-input-area,
#view-chat .ch-presence,
#view-chat .ch-monitor,
.cortex-chat-container .ch-sidebar,
.cortex-chat-container .ch-header,
.cortex-chat-container .ch-input-area,
.cortex-chat-container .ch-presence,
.cortex-chat-container .ch-monitor {
  background: #000000;
}

#view-chat .ch-presence-hdr,
.cortex-chat-container .ch-presence-hdr {
  color: #808080;
}

#view-chat .ch-pres-group,
.cortex-chat-container .ch-pres-group {
  color: #808080;
}

#view-chat .ch-pres-name,
.cortex-chat-container .ch-pres-name {
  color: #ffffff;
}

#view-chat .ch-pres-role,
.cortex-chat-container .ch-pres-role {
  color: var(--ch-accent-bright);
  opacity: 0.95;
}

#view-chat #ch-send,
.cortex-chat-container #ch-send {
  background: var(--ch-accent);
  color: #000000;
}

#view-chat #ch-send:hover,
.cortex-chat-container #ch-send:hover {
  background: var(--ch-accent-bright);
}

#view-chat .ch-mon-lbl,
.cortex-chat-container .ch-mon-lbl {
  color: #ffffff;
}

#view-chat .ch-mon-val,
.cortex-chat-container .ch-mon-val {
  color: #ffffff;
}

#view-chat .ch-mon-val.amber,
.cortex-chat-container .ch-mon-val.amber,
#view-chat #chm-wr,
.cortex-chat-container #chm-wr {
  color: var(--amber-hot);
}

#view-chat .ch-mon-val.green,
.cortex-chat-container .ch-mon-val.green {
  color: var(--green);
}

#view-chat .ch-mon-val.red,
.cortex-chat-container .ch-mon-val.red {
  color: var(--red);
}

#view-chat .ch-mon-pos-num,
.cortex-chat-container .ch-mon-pos-num {
  color: var(--amber-hot);
}

#view-chat .ch-mon-pos-lbl,
.cortex-chat-container .ch-mon-pos-lbl {
  color: #ffffff;
}

/* Sinal publicado — alinhado ao padrão .ch-text */
.cortex-chat-container .pub-signal-stamp {
  font-family: 'Bloomberg Prop Unicode N', var(--font-bloomberg), monospace;
  font-size: calc(19px * var(--ch-fs-scale, 1.3068));
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #8a98a4;
  margin-bottom: 6px;
}

.cortex-chat-container .pub-signal-legenda {
  font-family: 'Bloomberg Prop Unicode N', var(--font-bloomberg), monospace;
  font-size: calc(20.5px * var(--ch-fs-scale, 1.3068));
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: var(--ch-amber-hot, #ffab40);
}

.cortex-chat-container .pub-signal-head {
  font-family: 'Bloomberg Prop Unicode N', var(--font-bloomberg), monospace;
  font-size: calc(25.9px * var(--ch-fs-scale, 1.3068));
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: var(--ch-amber-hot, #ffab40);
  margin-bottom: 8px;
}

.cortex-chat-container .pub-signal-racional,
.cortex-chat-container .pub-signal-params {
  font-family: 'Bloomberg Prop Unicode N', var(--font-bloomberg), monospace;
  font-size: calc(20.5px * var(--ch-fs-scale, 1.3068));
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: var(--ch-amber-hot, #ffab40);
}

.cortex-chat-container .pub-signal-racional {
  margin-bottom: 10px;
}

.cortex-chat-container .pub-signal-params {
  margin-bottom: 12px;
}

.cortex-chat-container .pub-signal-btn {
  font-family: 'Bloomberg Prop Unicode N', var(--font-bloomberg), monospace;
  font-size: calc(13px * var(--pub-signal-scale, 1.14) * var(--ch-fs-scale, 1.3068));
  font-weight: 600;
  letter-spacing: 0.1em;
  padding: 6px 12px;
  min-height: 0;
  min-width: 0;
  width: auto;
  max-width: max-content;
  border-width: 1px;
  border-color: #4A8FA0;
  color: #6fb2c0;
  background: transparent;
  box-shadow: none;
  display: inline-block;
  text-align: left;
}

body.chat-view-active .cortex-chat-container .pub-signal-legenda,
body.chat-view-active .cortex-chat-container .pub-signal-racional,
body.chat-view-active .cortex-chat-container .pub-signal-params {
  font-size: calc(20.5px * var(--ch-fs-scale, 0.92));
}

body.chat-view-active.view-geral-active .cortex-chat-container .pub-signal-legenda,
body.chat-view-active.view-geral-active .cortex-chat-container .pub-signal-racional,
body.chat-view-active.view-geral-active .cortex-chat-container .pub-signal-params {
  font-size: calc(20.5px * var(--ch-fs-scale, 0.92));
}

body.chat-view-active.view-geral-active .cortex-chat-container .pub-signal-btn {
  font-size: calc(13px * var(--pub-signal-scale, 1.14) * var(--ch-fs-scale, 0.92));
  min-height: 0;
  padding: 6px 12px;
}
