.qlearn-lab{display:grid; gap:1rem;}
.qlearn-wrap{display:flex; flex-wrap:wrap; gap:1.8rem; align-items:flex-start;}
.qlearn-grid{
  display:grid; grid-template-columns:repeat(4, 4.2rem); gap:2px;
  background:var(--line); border:1px solid var(--line); width:max-content;
}
.qlearn-grid .cell{
  width:4.2rem; height:4.2rem; background:var(--tile); position:relative;
  display:flex; align-items:center; justify-content:center;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:1.2rem;
}
.qlearn-grid .cell .idx{
  position:absolute; top:2px; left:4px; font-size:.58rem; color:var(--text-dim);
}
.qlearn-grid .cell .val{
  position:absolute; bottom:2px; right:4px; font-size:.58rem; color:var(--text-dim);
}
.qlearn-grid .cell.hole{background:#3e7cb144;}
.qlearn-grid .cell.goal{background:#4c8c6b44;}
.qlearn-controls{
  display:flex; flex-direction:column; gap:.8rem;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.83rem;
}
.qlearn-controls .method{display:flex; gap:.5rem; align-items:center;}
.qlearn-controls .method button{
  font:inherit; background:var(--tile); color:var(--text-dim);
  border:1px solid var(--line); padding:.3rem .8rem; cursor:pointer;
}
.qlearn-controls .method button.on{background:var(--paper-2); color:var(--text); border-color:var(--text);}
.qlearn-buttons{display:flex; gap:.6rem; flex-wrap:wrap;}
.qlearn-buttons 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:.4rem .9rem; cursor:pointer;
}
.qlearn-buttons button:hover{border-color:var(--signal);}
.qlearn-readout{font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.85rem; line-height:1.9;}
.qlearn-readout b{color:var(--signal-ink);}
.qlearn-panel{display:grid; gap:.3rem; justify-items:center;}
.qlearn-panel canvas{border:1px solid var(--line); background:var(--tile);}
.qlearn-panel .panel-label{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.75rem; color:var(--text-dim);
}
