/* Requerimiento (FPOG-LO/S-021.01): estado del flujo, trazabilidad dentro del documento y «Ver» con una sola medida de letra.
   Capa propia: solo diseño, no cambia ningún dato. Regla de contraste: fondo claro => letra oscura; fondo oscuro => letra clara. */

/* Pasos del flujo: Pendiente · Enviado · Aprobado · En proceso · Atendido */
.rf-pasos { display: flex; align-items: stretch; gap: 6px; flex-wrap: wrap; margin: 2px 0 8px; }
.rf-paso { flex: 1 1 110px; min-width: 100px; text-align: center; padding: 6px 8px; border-radius: 6px; border: 1px solid #c3d0df;
  background: #eef2f7; color: #3a4a5e; font-weight: 700; line-height: 1.25; }
.rf-paso small { display: block; font-weight: 600; opacity: .9; }
.rf-paso.rf-hecho { background: #d3edd9; border-color: #8fc79d; color: #10451c; }
.rf-paso.rf-actual { background: #0a1e50; border-color: #0a1e50; color: #ffffff; }
.rf-paso.rf-alerta { background: #fde3cc; border-color: #e3a56d; color: #6b2e00; }
.rf-paso.rf-mal { background: #f6d4d4; border-color: #d99; color: #701010; }
.rf-detalle { color: #2c3b4e; margin: 2px 0 8px; }
.rf-acciones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rf-acciones button[disabled] { opacity: .55; cursor: not-allowed; }
.rf-nota { color: #4a6788; }

/* Trazabilidad dentro del documento */
.rf-traza table { width: 100%; border-collapse: collapse; margin-bottom: 8px; }
.rf-traza th, .rf-traza td { border: 1px solid #c3d0df; padding: 4px 6px; vertical-align: top; }
.rf-traza th { background: #e8eef6; color: #0a1e50; text-align: center; }
.rf-traza h4 { margin: 8px 0 4px; color: #0a1e50; }

/* «Ver»: toda la letra de la misma medida (12 px). Las firmas conservan su cajetín estándar. */
#modal-sstreq-detalle .cfg-body :is(div, span, td, th, legend, strong, label, p, button, small, b):not(.sig-firmas, .sig-firmas *) {
  font-size: 12px !important; line-height: 1.4; }
#modal-sstreq-detalle .cfg-body :is(th, legend, strong, b) { font-weight: 700; }
#modal-sstreq-detalle .cfg-body legend { text-transform: uppercase; letter-spacing: .3px; }
#modal-sstreq-detalle .cfg-body table th { text-transform: uppercase; }
#modal-sstreq-detalle #sstreq-detalle-info :is(div, span) { font-size: 12px !important; }

/* Imágenes de muestra en el detalle; si una no carga se ve «Imagen no disponible» (fondo claro => letra oscura). */
.sstreq-img-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.sstreq-img-celda { width: 130px; text-align: center; }
.sstreq-img-celda img { max-width: 100%; max-height: 110px; object-fit: contain; border: 1px solid #ccd; border-radius: 4px; cursor: zoom-in; background: #fff; }
.sstreq-img-desc { font-size: 10px; color: #1c2430; word-break: break-word; }
.sstreq-img-nodisp { width: 130px; min-height: 80px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  padding: 8px 6px; border: 1px dashed #b3463d; border-radius: 4px; background: #fff4f2; color: #6b1f1a; text-align: center; font-size: 11px; }
.sstreq-img-nodisp small { font-size: 9.5px; color: #6b1f1a; word-break: break-word; }
.sstreq-img-nodisp__ico { font-size: 18px; }
.sstreq-img-error { padding: 8px 10px; border: 1px solid #e3a56d; border-radius: 6px; background: #fde3cc; color: #6b2e00; }
