/* ============================================================
   gauntlet.css — the Gauntlet output surface (gnto-* namespace).
   Gateway OS track. Deliberately contains NO progress-bar fill rule:
   the frame contract has a stage enum and no percentage, so there is
   nothing to fill. The stage track is three discrete segments.
   ============================================================ */

.gnto-split{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:var(--s-5);align-items:start}
@media (max-width:1100px){.gnto-split{grid-template-columns:1fr}}

.gnto-runs{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-3)}
.gnto-run{display:flex;flex-direction:column;gap:var(--s-1);text-align:left;background:var(--bg-2);border:1px solid var(--stroke-1);border-radius:var(--r-3);padding:var(--s-3);cursor:pointer;transition:background-color .12s,border-color .12s}
.gnto-run:hover{background:var(--bg-3);border-color:var(--stroke-2)}
.gnto-run--sel{background:var(--bg-3);border-color:var(--stroke-gold)}
.gnto-run__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.gnto-run__id{font-size:10.5px;color:var(--gold-3)}
.gnto-run__mission{font-size:12px;line-height:1.45;color:var(--text-1);text-wrap:pretty}
.gnto-run__meta{font-size:10px;color:var(--text-dim)}

.gnto{display:flex;flex-direction:column}
.gnto-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;padding-bottom:var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--stroke-1)}
.gnto-head b{font-family:var(--font-mono);font-size:12px;color:var(--gold-4)}
.gnto-head__ts{font-size:10px;color:var(--text-dim);margin-left:var(--s-3)}
.gnto-head__right{display:flex;align-items:center;gap:var(--s-2)}
.gnto-mission{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.25;color:var(--text-0);margin-bottom:var(--s-4);text-wrap:pretty}

.gnto-v{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;border-radius:var(--r-pill);border:1px solid;white-space:nowrap}
.gnto-v--pass{color:var(--rd-live);border-color:rgba(74,222,128,.32);background:rgba(74,222,128,.08)}
.gnto-v--hold{color:var(--rd-half);border-color:rgba(250,204,21,.32);background:rgba(250,204,21,.08)}
.gnto-v--pending{color:var(--text-dim);border-color:var(--stroke-1);background:var(--bg-2)}
.gnto-v--off{color:var(--rd-blocked);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}

.gnto-lanes{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-3)}
.gnto-lane{display:flex;flex-direction:column;gap:var(--s-2);background:var(--bg-2);border:1px solid var(--stroke-1);border-radius:var(--r-2);padding:var(--s-3)}
.gnto-lane__name{font-size:11px;color:var(--text-1)}
.gnto-lane__text{background:var(--bg-1);border:1px solid var(--stroke-0);border-radius:var(--r-1);padding:var(--s-2);font-family:var(--font-mono);font-size:10.5px;line-height:1.5;color:var(--text-2);max-height:140px;overflow:auto;white-space:pre-wrap;margin:0}
.gnto-lane__verdict{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;padding-top:var(--s-2);border-top:1px solid var(--stroke-0)}
.gnto-lane__note{font-size:11.5px;color:var(--text-2)}

.gnto-track{display:flex;align-items:center;gap:var(--s-2)}
.gnto-track__seg{width:34px;height:3px;border-radius:2px;background:var(--stroke-1);transition:background-color .12s}
.gnto-track__seg--on{background:var(--gold-3)}
.gnto-stage{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-3)}
.gnto-stage--none{color:var(--text-faint)}
.gnto-stage--err{color:var(--red-4)}

.gnto-overall{background:var(--bg-3);border:1px solid var(--stroke-gold);border-radius:var(--r-3);padding:var(--s-4);margin-bottom:var(--s-3)}
.gnto-overall__top{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-2)}
.gnto-overall__k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim)}
.gnto-overall__note{font-size:12px;line-height:1.55;color:var(--text-1);margin:0;text-wrap:pretty}

.gnto-ev{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.gnto-ev li{display:flex;align-items:baseline;gap:var(--s-2);font-size:10.5px}
.gnto-ev code{font-family:var(--font-mono);font-size:10.5px;color:var(--steel-4);overflow-wrap:anywhere}
.gnto-ev__span{font-family:var(--font-mono);font-size:9.5px;color:var(--text-dim)}

.gnto-agents{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-3)}
.gnto-agents__k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim)}
.gnto-agents__list{display:flex;flex-wrap:wrap;gap:var(--s-2)}

/* The chat-side panel must scroll inside its column, like .room does.
   Without this it overflows and its own controls become unclickable. */
.gnt-panel{height:100%;min-height:0;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4)}
