/* V1.15. Overlays are outside the inverted grid, with no hit targets or layout shift. */
#gameBoard > .ai-move-overlay { position:absolute;inset:0;z-index:13;pointer-events:none;overflow:hidden;border-radius:inherit; }
.ai-moving-checker { position:absolute;display:block;border-radius:50%;background:radial-gradient(circle at 30% 25%,#4b5262,#151c27 60%,#040609);box-shadow:0 9px 18px #0009,inset 0 0 0 3px #ffffff22; }
.ai-source-ring,.ai-target-ring { position:absolute;transform:translate(-50%,-50%);border:2px solid #b59aff;border-radius:50%;box-shadow:0 0 16px #a584ffb0; }
.ai-source-ring { border-style:dashed;opacity:.7; }
.ai-target-ring { background:radial-gradient(circle,transparent 45%,#ba9cff28); }
.ai-route { position:absolute;inset:0;width:100%;height:100%;overflow:visible; }
.ai-route path { fill:none;stroke:#c7afff;stroke-width:2;stroke-dasharray:5 7;opacity:.65; }
.ai-move-caption { position:absolute;bottom:12px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);padding:9px 16px;border:1px solid #b194ef66;border-radius:12px;background:#100f21ee;color:#f7f0ff;font-size:12px;line-height:1.4;font-weight:750;text-align:center;box-shadow:0 4px 18px #0007; }
.ai-move-overlay[data-phase="landed"] .ai-target-ring { border-color:#eee4ff;box-shadow:0 0 20px #bea1ff; }
@media (max-width:720px),(max-height:520px) { .ai-move-caption { bottom:6px;padding:6px 10px;font-size:10px; } }
