.loop-lab{display:grid; gap:1rem;}
.loop-track{display:flex; gap:2px; width:max-content;}
.loop-track .cell{
  width:3rem; height:3rem; border:1px solid var(--line); background:var(--tile);
  display:flex; align-items:center; justify-content:center;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:1.3rem;
  position:relative;
}
.loop-track .cell .idx{
  position:absolute; top:2px; left:4px; font-size:.6rem; color:var(--text-dim);
}
.loop-track .cell.pit{background:#b1503f33;}
.loop-track .cell.goal{background:#4c8c6b33;}
.loop-controls{display:flex; gap:.6rem; align-items:center; flex-wrap:wrap;}
.loop-controls button{
  font:inherit; font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.9rem;
  background:var(--paper-2); color:var(--text); border:1px solid var(--text);
  padding:.4rem 1rem; cursor:pointer;
}
.loop-controls button:hover{border-color:var(--signal);}
.loop-controls button:disabled{opacity:.4; cursor:default;}
.loop-wrap{display:flex; flex-wrap:wrap; gap:1.8rem; align-items:flex-start;}
.loop-log{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.78rem; line-height:1.7;
  max-height:12rem; overflow-y:auto; border:1px solid var(--line); background:var(--paper-2);
  padding:.5rem .8rem; min-width:16rem;
}
.loop-readout{font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.85rem; line-height:1.9;}
.loop-readout b{color:var(--signal-ink);}
.loop-readout .done{color:var(--good); font-weight:600;}
