/* laser-comandos.css — o RÓTULO do pedido nascendo naquele ponto da cena.
 *
 * Fatiado do <style> interno do laser.js em 2026-08-08 (T9). A folha vem COM
 * o dono (laser-comandos.js), não como "estilos do laser": um arquivo de CSS
 * partilhado por três donos é o mesmo defeito semântico que o T9 desfez, com
 * outra roupa. Mesmo movimento que o T3 fez no proto-gamepad.
 *
 * O rótulo é ANCORADO AO MUNDO: left/top são a projeção de um ponto 3D,
 * recalculada por quadro pelo dono. A CAMADA (hud-zones) dá só a profundidade,
 * via layerZ() — era z-index 440, fora da escala do produto.
 */
.laser-placeholder-label {
  /* ANCORADO AO MUNDO 3D, como o .laser-hud — segue o ponto do comando.
     Profundidade da camada (HUD); era 440, fora da escala. */
  position: fixed; pointer-events: none;
  background: rgba(24,20,14,0.9);
  color: #ffcf85;
  border: 1px solid rgba(255,154,58,0.55);
  padding: 4px 8px; border-radius: 6px;
  font: 11px/1.3 ui-monospace, Menlo, Consolas, monospace;
  max-width: 42ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  box-shadow: 0 4px 14px rgba(0,0,0,0.4);
  transition: background 200ms, color 200ms, border-color 200ms;
}
.laser-placeholder-label .lp-spinner {
  display: inline-block; margin-right: 4px;
  animation: lpSpin 1.2s linear infinite;
}
.laser-placeholder-label[data-status="done"] {
  background: rgba(14,28,18,0.9); color: #a2e0a8; border-color: rgba(120,220,140,0.6);
}
.laser-placeholder-label[data-status="done"] .lp-spinner { animation: none; }
.laser-placeholder-label[data-status="error"] {
  background: rgba(28,14,14,0.92); color: #ffb3b3; border-color: rgba(255,90,90,0.7);
}
.laser-placeholder-label[data-status="error"] .lp-spinner { animation: none; }
.laser-placeholder-label[data-status="cancelled"] {
  background: rgba(20,20,24,0.85); color: #7c8291; border-color: rgba(100,100,110,0.5);
}
.laser-placeholder-label[data-status="cancelled"] .lp-spinner { animation: none; }
.laser-placeholder-label[data-status="conflict"] {
  background: rgba(28,24,14,0.92); color: #ffd97a; border-color: rgba(255,200,60,0.7);
}
.laser-placeholder-label .lp-cmd { color: #fff; }
/* piscadinha a cada linha nova de progresso (founder 2026-07-22: "ver que
   está vivo") — glow curto retriggerado em _setPlaceholderProgress. */
.laser-placeholder-label.lp-tick { animation: lpTick 350ms ease-out; }
@keyframes lpTick {
  0%   { box-shadow: 0 0 0 0 rgba(255,154,58,0.85); }
  100% { box-shadow: 0 0 0 12px rgba(255,154,58,0); }
}
/* o giro do spinner do rótulo — nome próprio: cada folha traz a sua, sem
   depender de uma keyframe global que outro dono declara. */
@keyframes lpSpin {
  to { transform: rotate(360deg); }
}
