.gw-lab{display:grid; gap:1rem;}
.gw-wrap{display:flex; flex-wrap:wrap; gap:1.8rem; align-items:flex-start;}
.gw-left{display:grid; gap:.9rem; max-width:24rem;}
.gw-controls{
  display:flex; flex-direction:column; gap:.55rem;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.83rem;
}
.gw-controls input[type=number]{
  font:inherit; width:5.5rem; background:var(--tile); color:var(--text);
  border:1px solid var(--line); padding:.15rem .4rem;
}
.gw-controls select{
  font:inherit; background:var(--tile); color:var(--text);
  border:1px solid var(--line); padding:.15rem .3rem;
}
.gw-check{display:flex; gap:.45rem; align-items:center;}
.gw-buttons, .gw-actions{display:flex; gap:.5rem; flex-wrap:wrap; align-items:center;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.83rem;}
.gw-buttons button, .gw-actions button{
  font:inherit; font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.82rem;
  background:var(--paper-2); color:var(--text); border:1px solid var(--text);
  padding:.35rem .8rem; cursor:pointer;
}
.gw-actions button{padding:.35rem .6rem; min-width:2.2rem;}
.gw-buttons button:hover, .gw-actions button:hover{border-color:var(--signal);}
.gw-actions .gw-episode{min-width:auto;}
.gw-actions button:disabled{opacity:.45; cursor:default;}
.gw-readout{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.84rem; line-height:1.85;
}
.gw-readout b{color:var(--signal-ink);}
.gw-readout .pol-manual{color:var(--good); font-weight:bold;}
.gw-readout .pol-auto{color:var(--signal-ink); font-weight:bold;}
.gw-readout .flag-term{
  background:color-mix(in srgb, var(--good) 22%, transparent);
  padding:.05rem .4rem; border:1px solid var(--good);
}
.gw-readout .flag-trunc{
  background:color-mix(in srgb, var(--signal) 22%, transparent);
  padding:.05rem .4rem; border:1px solid var(--signal);
}
.gw-grid{
  display:grid; grid-template-columns:repeat(5, 3.4rem); gap:2px;
  background:var(--line); border:1px solid var(--line); width:max-content;
}
.gw-grid .cell{
  width:3.4rem; height:3.4rem; background:var(--tile); position:relative;
  display:flex; align-items:center; justify-content:center;
}
.gw-grid .cell .xy{
  position:absolute; top:2px; left:4px; font-size:.55rem; color:var(--text-dim);
  font-family:Consolas,"SF Mono",ui-monospace,monospace;
}
.gw-grid .agent{
  width:1.7rem; height:1.7rem; border-radius:50%;
  background:#3e7cb1; border:2px solid color-mix(in srgb, #3e7cb1 60%, var(--text));
}
.gw-grid .target{
  width:1.9rem; height:1.9rem;
  background:#b1553e; border:2px solid color-mix(in srgb, #b1553e 60%, var(--text));
}
.gw-grid .cell.both .agent{position:absolute; z-index:2;}
.gw-grid .cell.both .target{position:absolute; z-index:1;}
.gw-legend{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.75rem;
  color:var(--text-dim); margin-top:.4rem;
}
.gw-legend .ag{color:#3e7cb1;}
.gw-legend .tg{color:#b1553e;}
.gw-log{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.78rem; line-height:1.75;
  border:1px solid var(--line); background:var(--tile); padding:.6rem .8rem;
  max-height:14rem; overflow-y:auto; white-space:pre-wrap;
}
.gw-log .ep-head{color:var(--signal-ink);}
.gw-log .term{color:var(--good);}
.gw-log .trunc{color:var(--signal-ink);}
