/* =============================================================================
   read-only.css — Modo SOLO LECTURA (servidor espejo / rol viewer)
   F2R Engineering

   Se activa con la clase `body.read-only` (la pone plc_api.js cuando el rol es
   viewer). La protección REAL de escritura está en el cliente (WriteDevice/
   WriteRaw) y en el servidor (autoridad). Esto es la capa visual: atenúa y
   desactiva los controles y muestra un distintivo de solo-lectura.
   Usa tokens del design system (variables.css) — sin hex directos.
   ============================================================================= */

/* Controles de escritura atenuados e inertes. Los botones de comando de
   faceplate ([data-dev-cmd]) y los .btn-cmd ya se desactivan por JS; aquí
   reforzamos visualmente y cubrimos los que se pinten dinámicamente. */
body.read-only [data-dev-cmd],
body.read-only .btn-cmd,
body.read-only button[disabled][data-dev-cmd] {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
  filter: grayscale(0.4);
}

/* Distintivo fijo de SOLO LECTURA. */
.read-only-badge {
  position: fixed;
  bottom: var(--space-3, 12px);
  right: var(--space-3, 12px);
  z-index: 9999;
  display: none;                 /* visible sólo en body.read-only */
  align-items: center;
  gap: var(--space-2, 8px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
  background: var(--surface-overlay, rgba(20, 20, 20, 0.92));
  color: var(--text-primary, #fff);
  border: 1px solid var(--border-strong, #555);
  border-left: 4px solid var(--color-info-strong, var(--accent, #3b82f6));
  border-radius: var(--radius-md, 8px);
  box-shadow: var(--shadow-lg, 0 6px 20px rgba(0, 0, 0, 0.35));
  font-size: var(--fs-sm, 13px);
  font-weight: var(--fw-medium, 600);
  pointer-events: none;          /* no estorba al ratón */
  user-select: none;
}
body.read-only .read-only-badge { display: inline-flex; }

.read-only-badge .ro-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--color-success-strong, #22c55e); /* planta online */
  flex: 0 0 auto;
}
.read-only-badge.ro-offline { border-left-color: var(--color-danger-strong, #ef4444); }
.read-only-badge.ro-offline .ro-dot { background: var(--color-danger-strong, #ef4444); }
.read-only-badge.ro-stale   { border-left-color: var(--color-warning-strong, #f59e0b); }
.read-only-badge.ro-stale   .ro-dot { background: var(--color-warning-strong, #f59e0b); }

.read-only-badge .ro-main { letter-spacing: 0.04em; }
.read-only-badge .ro-sub  { font-size: var(--fs-xs, 11px); color: var(--text-secondary, #bbb); font-weight: var(--fw-normal, 400); }

/* ── Modo MONITOR ────────────────────────────────────────────────────────────
   En solo-lectura los mandos se OCULTAN del todo, no se atenúan: el espejo es
   una vista de vigilancia y un botón gris "START" sigue leyéndose como un
   mando. Se conserva todo lo informativo: modo actual (#prod-detail-mode),
   LEDs, contadores de paso, OEE, contadores y el histórico de alarmas. */

/* Panel "Control de modo" (botones manual/auto/audit/maintenance). */
body.read-only .prod-mode-panel { display: none; }

/* Barra de secuencias: fuera los mandos (ABORT ALL, CONTINUO/PASO A PASO,
   NEXT, ENVIAR A HOME, START/STOP). Quedan LEDs y displays de paso. */
body.read-only #prod-seq-bar .btn-cmd { display: none; }
/* El grupo CUSTOM sólo contiene botones de mando → fuera entero. */
body.read-only #prod-seq-custom-group { display: none !important; }

/* Hotspots de ACCIÓN del 3D (hold-to-set) y su fila en la leyenda. Los de
   device se quedan: abren el faceplate informativo. */
body.read-only .prod-hotspot.is-action { display: none; }
body.read-only .prod-legend [data-legend-toggle="actions"] { display: none; }

/* Faceplate informativo: sin puerta al control manual (ni la variante
   habilitada ni la bloqueada — ambas viven en el slot). */
body.read-only [data-fp-manual-slot] { display: none; }

/* Recetas: el panel queda como indicador del modelo en producción (pill),
   pero sin CTA "GESTIONAR RECETAS" ni click que abra el popup. */
body.read-only .prod-recipes-btn { pointer-events: none; }
body.read-only .prod-recipes-btn-cta { display: none; }

/* Parámetros de estación: panel de gestión pura → fuera. */
body.read-only .prod-station-params-panel { display: none; }

/* Popup de contadores: se ve, pero sin la sección de reset. */
body.read-only .cnt-card-reset { display: none; }

/* Alarmas: histórico sí, hold-to-reset no. */
body.read-only .prod-alarms-reset { display: none; }
