/* e4a.css -- build, run, error marks. Uses the tokens from core.css (var(--surface) etc.). */

/* ---- the Run/Stop buttons above the editor: top right of the tab strip ---- */
#main { position: relative; }
.runbar {
  position: absolute; top: 0; right: 0; height: var(--tab-h); z-index: 3;
  display: flex; align-items: center; gap: 6px; padding: 0 10px 0 14px;
  background: var(--surface);
}
.runbar[hidden] { display: none; }
body.panelopen.panelmax .runbar { display: none; }
.runbar button {
  font: calc(var(--ui-fs) * 12 / 13) var(--font-ui); border-radius: 4px; padding: 3px 12px;
  border: 1px solid var(--rule); background: var(--surface2); color: var(--text-strong); cursor: pointer;
}
.runbar .runbar-run { background: var(--ok); border-color: var(--ok); color: #fff; }
.runbar button:disabled { opacity: .45; cursor: default; }

/* the program's arguments */
.runbar .runbar-args { width: 9.5em; min-width: 0; font: calc(var(--ui-fs) * 12 / 13) var(--font-code); padding: 3px 6px; border: 1px solid var(--rule); border-radius: 4px; background: var(--bg); color: var(--text); }

/* ---- Publish: the button, the chip once published, and its small panel ---- */
.runbar .runbar-publish { background: var(--accent); border-color: var(--accent); color: var(--accent-tx); }
.runbar .runbar-pubchip { background: var(--surface2); }
.runbar .runbar-pubchip.live { border-color: var(--ok); color: var(--ok); }
.runbar .runbar-pubchip.paused { border-color: var(--attn); color: var(--attn); }
.runbar .runbar-pubchip.error { border-color: var(--danger); color: var(--danger-tx); }
.runbar .runbar-pubchip.stopped, .runbar .runbar-pubchip.restarting { border-color: var(--danger); color: var(--danger-tx); }
.pubpanel { position: absolute; top: var(--tab-h); right: 10px; z-index: 20; min-width: 320px; max-width: 520px;
  background: var(--surface); border: 1px solid var(--rule); border-radius: 6px; padding: 10px 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,.35); display: flex; flex-direction: column; gap: 8px; font: var(--ui-fs) var(--font-ui); }
.pubpanel[hidden] { display: none; }
.pubpanel-title { font-weight: 600; color: var(--text-strong); }
.pubpanel-url { display: flex; gap: 8px; align-items: center; min-width: 0; }
.pubpanel-url a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--accent-hi); }
.pubpanel-hint { color: var(--text-dim); font-size: calc(var(--ui-fs) * .9); }
.pubpanel-err { color: var(--danger-tx); }
.pubpanel-mcp-ok { color: var(--ok); }
.pubpanel-acts { display: flex; gap: 6px; }
.pubpanel-btn { background: var(--surface2); color: var(--text); border: 1px solid var(--rule); border-radius: 4px; padding: 3px 10px; font: inherit; cursor: pointer; }
.publogs { display: flex; flex-direction: column; height: 100%; padding: 10px 14px; gap: 8px; box-sizing: border-box; }
.publogs-bar { display: flex; gap: 10px; align-items: center; }
.publogs-text { flex: 1; margin: 0; overflow: auto; font: var(--code-fs) var(--font-code); white-space: pre-wrap; color: var(--text); background: var(--bg); border: 1px solid var(--rule); border-radius: 4px; padding: 8px; }
