diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php
index 495a909..369798e 100644
--- a/ver_formulario_enviado.php
+++ b/ver_formulario_enviado.php
@@ -302,6 +302,9 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) {
}
// Ordenar por tiempo antes de agrupar para garantizar orden cronológico
usort($_mpSecs, fn($a, $b) => $a['min'] <=> $b['min']);
+ // Mapa sep_id → minuto para re-ordenar secciones en el render
+ $_mpSepOrder = [];
+ foreach ($_mpSecs as $_s) { $_mpSepOrder[$_s['sep_id']] = $_s['min']; }
$_mpGroups = [];
foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; }
$_mpGroupsFull = $_mpGroups;
@@ -892,6 +895,26 @@ function _addExamWizardHtml(string $cid): string {
$_firmaGlobalPacienteUsada = false; // la firma global solo va al primer campo firma
if ($compact): ?>
false, 'min' => null, 'campos' => []];
+ foreach ($esquema as $__c) {
+ if (($__c['tipo'] ?? '') === 'separador') {
+ if (!empty($__cur['campos'])) $__secs[] = $__cur;
+ $__it = isset($_mpSepOrder[$__c['id'] ?? '']);
+ $__cur = ['is_toma' => $__it, 'min' => $__it ? $_mpSepOrder[$__c['id']] : null, 'campos' => [$__c]];
+ } else {
+ $__cur['campos'][] = $__c;
+ }
+ }
+ if (!empty($__cur['campos'])) $__secs[] = $__cur;
+ $__tomaIdxs = []; $__tomaList = [];
+ foreach ($__secs as $i => $s) { if ($s['is_toma']) { $__tomaIdxs[] = $i; $__tomaList[] = $s; } }
+ usort($__tomaList, fn($a, $b) => $a['min'] <=> $b['min']);
+ foreach ($__tomaIdxs as $j => $i) { $__secs[$i] = $__tomaList[$j]; }
+ $esquema = array_merge(...array_column($__secs, 'campos'));
+ }
+
$_saltarSeccion = false;
$_mpSkipSec = false; // toma excluida por _tomas_config; siempre ocultar sin importar modoEditar
foreach ($esquema as $campo):