.ac-lab{display:grid; gap:1rem;}
.ac-wrap{display:flex; flex-wrap:wrap; gap:1.8rem; align-items:flex-start;}
.ac-left{display:grid; gap:.9rem; max-width:20rem;}
.ac-buttons{display:flex; gap:.5rem; flex-wrap:wrap;}
.ac-buttons button{
  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;
}
.ac-buttons button:hover:enabled{border-color:var(--signal);}
.ac-buttons button:disabled{opacity:.45; cursor:default;}
.ac-readout{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.84rem; line-height:1.9;
}
.ac-readout b{color:var(--signal-ink);}
.ac-readout .delta-pos{color:var(--good); font-weight:bold;}
.ac-readout .delta-neg{color:var(--bad); font-weight:bold;}

.ac-grid{
  display:grid; grid-template-columns:repeat(5, 5.2rem); gap:2px;
  background:var(--line); border:1px solid var(--line); width:max-content;
}
.ac-grid .cell{
  background:var(--tile); padding:.35rem .3rem; position:relative; height:9.2rem;
  display:grid; grid-template-rows:1.4rem 1.2rem 1fr; gap:.2rem; justify-items:center;
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.66rem;
  transition:background .35s;
}
.ac-grid .cell.goal{background:color-mix(in srgb, var(--good) 16%, var(--tile));}
.ac-grid .cell.flash-pos{background:color-mix(in srgb, var(--good) 38%, var(--tile));}
.ac-grid .cell.flash-neg{background:color-mix(in srgb, var(--bad) 34%, var(--tile));}
.ac-grid .cell .idx{position:absolute; top:2px; left:4px; color:var(--text-dim); font-size:.58rem;}
/* агент */
.ac-grid .agent-slot{height:1.4rem; display:flex; align-items:center;}
.ac-grid .agent-dot{
  width:1.1rem; height:1.1rem; border-radius:50%;
  background:#3e7cb1; border:2px solid color-mix(in srgb, #3e7cb1 60%, var(--text));
}
.ac-grid .delta-float{font-size:.72rem; font-weight:bold;}
.ac-grid .delta-float.pos{color:var(--good);}
.ac-grid .delta-float.neg{color:var(--bad);}
/* стрелка политики: ширина = π(вправо) */
.ac-grid .pi-row{width:100%; display:grid; gap:1px; justify-items:center;}
.ac-grid .pi-arrow{
  height:.55rem; background:var(--rl, var(--signal)); border:1px solid var(--line);
  justify-self:start; min-width:2px; position:relative;
}
.ac-grid .pi-arrow::after{
  content:""; position:absolute; right:-6px; top:-3px;
  border-left:6px solid var(--rl, var(--signal));
  border-top:5px solid transparent; border-bottom:5px solid transparent;
}
.ac-grid .pi-txt{color:var(--text);}
/* столбик ценности: растёт вниз, эталон - риска */
.ac-grid .v-wrap{
  width:1.6rem; height:100%; position:relative;
  border-left:1px dashed var(--line);
  justify-self:center;
}
.ac-grid .v-bar{
  position:absolute; top:0; left:.25rem; width:.9rem;
  background:color-mix(in srgb, var(--bad) 55%, var(--tile));
  border:1px solid var(--bad); transition:height .3s;
}
.ac-grid .v-mark{
  position:absolute; left:0; width:1.6rem; border-top:2px solid var(--text);
}
.ac-grid .v-txt{position:absolute; bottom:-1rem; left:-.6rem; width:3rem; text-align:center;
  color:var(--text-dim);}
.ac-grid .cell .rows-bottom{display:grid; grid-template-rows:auto 1fr; gap:.15rem;
  width:100%; justify-items:center; padding-bottom:1rem;}
.ac-legend{
  font-family:Consolas,"SF Mono",ui-monospace,monospace; font-size:.75rem;
  color:var(--text-dim); margin-top:.6rem; max-width:28rem;
}
.ac-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:10rem; overflow-y:auto; white-space:pre-wrap;
}
.ac-log .ep-head{color:var(--signal-ink);}
.ac-log .dpos{color:var(--good);}
.ac-log .dneg{color:var(--bad);}
