/* Publish Signal — modal institucional (dark + ciano + Bloomberg) */
#pub-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 9900;
  align-items: center;
  justify-content: center;
}

#pub-overlay.open {
  display: flex;
}

#pub-box {
  --ch-amber: #ff9100;
  --ch-amber-hot: #ffab40;
  background: var(--inst-panel, #05070a);
  border: 1px solid var(--inst-border, rgba(0, 168, 204, 0.22));
  box-shadow: var(--inst-luma-glow, 0 0 10px rgba(0, 168, 204, 0.1));
  width: 80vw;
  height: 80vh;
  max-width: 80vw;
  max-height: 80vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  color: var(--inst-text, #d4dce4);
}

#pub-box .pub-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.06));
  background: var(--inst-bg, #000);
}

#pub-box .pub-hdr-title {
  font-size: var(--inst-fs-tab, 19.5px);
  font-weight: 600;
  letter-spacing: var(--inst-ls-tab, 0.12em);
  text-transform: uppercase;
  color: var(--inst-cyan, #00a8cc);
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
}

#pub-box .pub-hdr-close {
  background: transparent;
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.08));
  color: var(--inst-text-dim, #6a7884);
  font-size: 18px;
  width: 34px;
  height: 34px;
  cursor: pointer;
  line-height: 1;
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  transition: color 0.15s ease, border-color 0.15s ease;
}

#pub-box .pub-hdr-close:hover {
  color: var(--inst-cyan, #00a8cc);
  border-color: var(--inst-cyan-muted, rgba(0, 168, 204, 0.45));
}

#pub-box .pub-section {
  padding: 16px 22px;
  border-bottom: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.06));
}

#pub-box .pub-lbl {
  font-size: var(--inst-fs-label, 16.8px);
  font-weight: 500;
  letter-spacing: var(--inst-ls-label, 0.08em);
  color: var(--inst-text-dim, #6a7884);
  text-transform: uppercase;
  margin-bottom: 10px;
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
}

#pub-racional {
  width: 100%;
  box-sizing: border-box;
  background: var(--inst-bg, #000);
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.08));
  color: var(--ch-amber-hot, var(--inst-amber-hot, #ffab40));
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  font-size: var(--inst-fs-micro, 15.4px);
  line-height: 1.45;
  padding: 12px 14px;
  resize: vertical;
  outline: none;
  min-height: 96px;
}

#pub-racional:focus {
  border-color: var(--inst-cyan-muted, rgba(0, 168, 204, 0.45));
}

#pub-racional::placeholder {
  color: var(--inst-text-faint, #454f58);
}

#pub-canvas-wrap {
  background: var(--inst-bg, #000);
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.08));
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#pub-canvas {
  max-width: 100%;
  display: block;
}

#pub-params-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.pub-param-cell {
  background: var(--inst-surface, #080b0f);
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.06));
  padding: 10px 12px;
  min-height: 58px;
}

.pub-param-lbl {
  font-size: var(--inst-fs-micro, 15.4px);
  color: var(--ch-amber, var(--inst-amber, #ff9100));
  letter-spacing: var(--inst-ls-label, 0.06em);
  text-transform: uppercase;
  margin-bottom: 6px;
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
}

.pub-param-val {
  font-size: var(--inst-fs-data, 21.1px);
  font-weight: var(--inst-fw-data, 500);
  color: var(--ch-amber-hot, var(--inst-amber-hot, #ffab40));
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  line-height: 1.2;
  word-break: break-word;
}

#pub-canal-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pub-canal-btn {
  background: var(--inst-surface, #080b0f);
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.08));
  color: var(--inst-text-dim, #6a7884);
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  font-size: var(--inst-fs-micro, 15.4px);
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 8px 14px;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.pub-canal-btn:hover {
  color: var(--inst-cyan, #00a8cc);
  border-color: var(--inst-cyan-muted, rgba(0, 168, 204, 0.35));
}

.pub-canal-btn.sel {
  background: var(--inst-luma-bg, rgba(0, 168, 204, 0.05));
  color: var(--inst-cyan, #00a8cc);
  border-color: var(--inst-luma-border, rgba(0, 168, 204, 0.26));
  box-shadow: var(--inst-luma-glow, 0 0 10px rgba(0, 168, 204, 0.08));
}

#pub-footer {
  padding: 16px 22px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  background: var(--inst-bg, #000);
  border-top: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.06));
}

#pub-cancel-btn {
  background: var(--inst-surface, #080b0f);
  border: 1px solid var(--inst-border-dim, rgba(255, 255, 255, 0.08));
  color: var(--inst-text-dim, #6a7884);
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  font-size: var(--inst-fs-label, 16.8px);
  font-weight: 500;
  letter-spacing: var(--inst-ls-label, 0.06em);
  padding: 10px 20px;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}

#pub-cancel-btn:hover {
  color: var(--inst-text, #d4dce4);
  border-color: var(--inst-cyan-muted, rgba(0, 168, 204, 0.35));
}

#pub-send-btn {
  background: var(--inst-luma-bg, rgba(0, 168, 204, 0.08));
  border: 1px solid var(--inst-luma-border, rgba(0, 168, 204, 0.28));
  color: var(--inst-cyan, #00a8cc);
  font-family: var(--font-bloomberg, var(--inst-mono, var(--mono)));
  font-size: var(--inst-fs-label, 16.8px);
  font-weight: 600;
  letter-spacing: var(--inst-ls-label, 0.08em);
  padding: 10px 22px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

#pub-send-btn:hover {
  background: rgba(0, 168, 204, 0.14);
  border-color: var(--inst-cyan, #00a8cc);
  box-shadow: var(--inst-luma-glow, 0 0 12px rgba(0, 168, 204, 0.18));
}

#btn-broadcast-on .pub-led {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--inst-text-faint, #454f58);
  margin-left: 6px;
  vertical-align: middle;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

#btn-broadcast-on.on-active {
  color: var(--inst-green, #67E6C9);
  border-color: var(--inst-green, #67E6C9);
}

#btn-broadcast-on.on-active .pub-led {
  background: var(--inst-green, #67E6C9);
  box-shadow: 0 0 6px rgba(116, 222, 198, 0.55);
}

body.view-geral-active #pub-box .pub-hdr-title {
  font-size: 20px;
}

body.view-geral-active .pub-param-val {
  font-size: 21.1px;
}

@media (max-width: 720px) {
  #pub-params-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
