/* Módulo OTIF independiente */
.otifc-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.otifc-kpis .kpi.otifc-sin-asignacion{border-left-color:#de0716;background:#fff5f5;}
.otifc-kpis .kpi.otifc-sin-asignacion .num{color:#bc0613;}
.otifc-resumen-indicadores{margin:-8px 0 18px;padding:12px 16px;border:1px solid #dce4ef;border-radius:10px;background:#f8fafc;color:#52647e;font-size:12px;line-height:1.5;}
.otifc-resumen-indicadores p{margin:0;}.otifc-resumen-indicadores p+p{margin-top:5px;}
.otifc-kpis .kpi.bien{border-left-color:#159365;}
.otifc-kpis .kpi.bien .num{color:#087552;}
.otifc-tabla{min-width:1500px!important;}
.otifc-tabla th,.otifc-tabla td{padding-left:8px;padding-right:8px;}
.otifc-tabla .otifc-cita-fecha{display:block;white-space:nowrap;}
.otifc-tabla .otifc-conexion{display:inline-block;width:9px;height:9px;margin-right:4px;border:1px solid #ffffff;border-radius:50%;vertical-align:middle;box-shadow:0 0 0 1px #d8dde7;}
.otifc-tabla .otifc-conexion.conectado{background:#159365;}
.otifc-tabla .otifc-conexion.desconectado{background:#de0716;}
.otifc-tabla .otifc-conexion.sin-verificar{background:#7a8697;}
.otifc-tabla th{text-align:center;vertical-align:middle;white-space:nowrap;}
.otifc-tabla td:nth-child(4),.otifc-tabla td:nth-child(5),.otifc-tabla td:nth-child(6),.otifc-tabla td:nth-child(7),.otifc-tabla td:nth-child(8),.otifc-tabla td:nth-child(9),.otifc-tabla td:nth-child(10),.otifc-tabla td:nth-child(11),.otifc-tabla td:nth-child(12),.otifc-tabla td:nth-child(13){text-align:center;}
.otifc-tabla th:nth-child(5),.otifc-tabla th:nth-child(6),.otifc-tabla th:nth-child(7),.otifc-tabla th:nth-child(8),.otifc-tabla th:nth-child(9),
.otifc-tabla td:nth-child(5),.otifc-tabla td:nth-child(6),.otifc-tabla td:nth-child(7),.otifc-tabla td:nth-child(8),.otifc-tabla td:nth-child(9){width:184px;min-width:184px;max-width:184px;vertical-align:top;}
.otifc-tabla .otifc-semaforo.compacto{display:flex;width:184px;min-width:184px;height:70px;box-sizing:border-box;padding:8px 9px;gap:7px;align-items:center;justify-content:flex-start;overflow:hidden;text-align:left;}
.otifc-tabla .otifc-semaforo.compacto .luces{padding:3px 4px;gap:3px;}
.otifc-tabla .otifc-semaforo.compacto .luces i{width:7px;height:7px;}
.otifc-tabla .otifc-semaforo.compacto>div:last-child{min-width:0;overflow:hidden;}
.otifc-tabla .otifc-semaforo.compacto b{display:block;min-width:0;font-size:10px;line-height:1.2;white-space:normal;overflow-wrap:anywhere;}
.otifc-tabla .otifc-semaforo.compacto small{display:block;min-width:0;font-size:8.5px;line-height:1.2;white-space:normal;overflow-wrap:anywhere;}
.otifc-tabla .otifc-parada-activa{display:flex;flex-direction:column;gap:2px;width:184px;box-sizing:border-box;margin-top:5px;padding:6px 8px;border:1px solid #78d2a5;border-radius:8px;background:#dff7eb;text-align:left;}.otifc-tabla .otifc-parada-activa b{font-size:9px;line-height:1.2;color:#087552;}.otifc-tabla .otifc-parada-activa small{font-size:9px;line-height:1.2;color:#315c4a;}

.otifc-candidatos{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;padding:18px;}
.otifc-candidato{border:1px solid #dbe3ef;border-radius:14px;padding:18px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.05);}
.otifc-candidato-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:var(--azul);font-weight:700;}
.otifc-candidato h3{font-size:16px;color:#14213d;margin-bottom:5px;}
.otifc-candidato>p{color:var(--tinta-2);font-size:12.5px;min-height:36px;line-height:1.45;}
.otifc-candidato dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0;}
.otifc-candidato dl div{background:#f7f9fc;border-radius:9px;padding:9px 10px;min-width:0;}
.otifc-candidato dt{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#718096;font-weight:700;}
.otifc-candidato dd{font-size:12px;color:#24324a;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.otifc-form{display:flex;flex-direction:column;gap:18px;}
.otifc-semaforos-iniciales{margin-bottom:18px;padding:16px;}
.otifc-semaforos-cabecera{margin-bottom:13px;}
.otifc-semaforos-cabecera h3{font-family:'Archivo',sans-serif;color:var(--azul);font-size:12px;text-transform:uppercase;letter-spacing:.12em;}
.otifc-semaforos-cabecera p{font-size:11.5px;color:#7b899d;margin-top:4px;}
.otifc-semaforos-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.otifc-semaforo-inicial{display:flex;flex-direction:column;gap:7px;min-width:0;}
.otifc-semaforo-inicial>span{font-family:'Archivo',sans-serif;color:var(--azul);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;}
.otifc-semaforo-inicial .otifc-semaforo{min-width:0;width:100%;height:100%;box-sizing:border-box;}
.otifc-seccion{scroll-margin-top:18px;}
.otifc-aviso-bloqueo{display:flex;gap:10px;align-items:center;margin-bottom:14px;padding:12px 16px;border:1px solid #e8c978;border-left:4px solid #c58a00;border-radius:12px;background:#fff8e5;color:#6d5200;}
.otifc-aviso-bloqueo b{font-family:'Archivo',sans-serif;white-space:nowrap;}
.otifc-aviso-bloqueo span{font-size:13px;}
.otifc-calculado{min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #c9d6e8;border-radius:10px;background:#f4f7fb;color:#172554;font-weight:700;}
.otifc-calculado small{padding:4px 7px;border-radius:999px;background:#dce8f7;color:#52647e;font-size:9px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.otifc-rail{margin-bottom:18px;overflow:visible;position:sticky;top:8px;z-index:5;}
.otifc-rail .otifc-estado{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid #edf1f6;font-size:11.5px;color:#728096;}
.otifc-rail nav{display:grid;grid-template-columns:repeat(6,1fr);gap:0;padding:9px;}
.otifc-rail nav a{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 8px;border-radius:9px;color:#6b7890;font-size:11.5px;font-weight:600;text-decoration:none;}
.otifc-rail nav a:hover{background:#f1f5fb;color:var(--azul);}
.otifc-rail nav a span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e8edf6;color:#75829a;font-family:'IBM Plex Mono',monospace;font-size:10px;}
.otifc-rail nav a.listo{color:#0a7452;}
.otifc-rail nav a.listo span{background:#d9f7e9;color:#087552;}

.otifc-grid{display:grid;gap:15px;align-items:start;}
.otifc-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr));}
.otifc-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr));}
.otifc-grid .ancho2{grid-column:span 2;}
.otifc-grid .ancho-todo{grid-column:1/-1;}
.otifc-grid textarea.inp{width:100%;resize:vertical;min-height:82px;}
.otifc-grid input.inp,.otifc-grid select.inp{width:100%;}
.otifc-bloqueado{min-height:42px;border:1px solid #d7deea;border-radius:9px;background:#f4f6fa;color:#344258;padding:10px 35px 10px 12px;position:relative;font-size:13px;line-height:1.45;}
.otifc-bloqueado span{position:absolute;right:11px;top:10px;opacity:.45;font-size:13px;}

.otifc-semaforo-carga-resumen{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 17px;margin-bottom:18px;border:1px solid #dce4ef;border-radius:12px;background:#f8fafc;}
.otifc-semaforo-carga-resumen>div:first-child>span{font-family:'Archivo',sans-serif;color:var(--azul);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;}
.otifc-semaforo-carga-resumen>div:first-child p{font-size:11.5px;color:#7b899d;margin-top:4px;}
.otifc-semaforo{display:flex;align-items:center;gap:11px;min-width:230px;padding:9px 12px;border:1px solid #dce4ef;border-radius:11px;background:#fff;}
.otifc-semaforo .luces{display:flex;gap:5px;padding:5px 7px;border-radius:999px;background:#202a3a;flex:none;}
.otifc-semaforo .luces i{width:12px;height:12px;border-radius:50%;background:#5d6674;box-shadow:inset 0 1px 2px rgba(0,0,0,.4);}
.otifc-semaforo.sem-rojo .luces .roja{background:#ef3340;box-shadow:0 0 8px rgba(239,51,64,.7);}
.otifc-semaforo.sem-amarillo .luces .amarilla{background:#f5b700;box-shadow:0 0 8px rgba(245,183,0,.7);}
.otifc-semaforo.sem-verde .luces .verde{background:#10a36f;box-shadow:0 0 8px rgba(16,163,111,.7);}
.otifc-semaforo.sem-pendiente .luces i,.otifc-semaforo.sem-sin_cita .luces i{background:#9aa6b7;}
.otifc-semaforo>div:last-child{display:flex;flex-direction:column;gap:2px;min-width:0;}
.otifc-semaforo b{font-size:12px;color:#26354d;}
.otifc-semaforo small{font-size:10.5px;color:#7c899c;line-height:1.25;}
.otifc-semaforo.sem-verde{border-color:#9adfc4;background:#effbf6;}
.otifc-semaforo.sem-amarillo{border-color:#f3d178;background:#fff9e8;}
.otifc-semaforo.sem-rojo{border-color:#f4a8ae;background:#fff2f3;}
.otifc-semaforo.compacto{min-width:185px;padding:7px 9px;gap:8px;}
.otifc-semaforo.compacto .luces{padding:4px 6px;}
.otifc-semaforo.compacto .luces i{width:9px;height:9px;}
.otifc-semaforo.compacto b{font-size:11px;}
.otifc-semaforo.compacto small{font-size:9.5px;}
.otifc-tiempo-transito{min-width:210px;padding:10px 14px;border:1px solid #cbd6e7;border-radius:11px;background:#fff;display:flex;flex-direction:column;align-items:flex-end;}
.otifc-tiempo-transito b{font-family:'Archivo',sans-serif;font-size:21px;color:var(--azul);}
.otifc-tiempo-transito small{font-size:10.5px;color:#7c899c;}
.otifc-paradas{margin-top:18px;border:1px solid #dce4ef;border-radius:12px;background:#fbfcfe;overflow:hidden;}
.otifc-paradas.hora24-contenedor-desplegado{overflow:visible;position:relative;z-index:95;}
.otifc-paradas-lista{display:grid;gap:9px;padding:12px 15px;}
.otifc-parada{display:grid;grid-template-columns:minmax(0,1fr) auto 120px;gap:14px;align-items:center;padding:11px 13px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;}
.otifc-parada.activa{border-color:#f0c75e;background:#fff9e8;}
.otifc-parada>div{display:flex;flex-direction:column;gap:3px;min-width:0;}
.otifc-parada b{font-size:12.5px;color:#1d2b45;}
.otifc-parada span,.otifc-parada small{font-size:10.5px;color:#7c899c;}
.otifc-parada strong{font-family:'IBM Plex Mono',monospace;color:var(--azul);font-size:12px;}
.otifc-parada a{font-size:11px;color:var(--azul);font-weight:700;text-align:right;}

.otifc-evidencias{margin-top:18px;border:1px solid #dce4ef;border-radius:12px;background:#fbfcfe;overflow:hidden;}
.otifc-evidencias-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid #e8edf5;}
.otifc-evidencias-head h4,.otifc-check h4{font-family:'Archivo',sans-serif;color:var(--azul);font-size:11px;text-transform:uppercase;letter-spacing:.12em;}
.otifc-evidencias-head p{font-size:11.5px;color:#8190a5;margin-top:3px;}
.otifc-evidencias-head>span{font-size:11px;color:#718096;background:#edf1f7;padding:5px 9px;border-radius:999px;}
.otifc-subir{display:grid;grid-template-columns:170px minmax(220px,1fr) minmax(180px,1fr) auto;gap:9px;padding:12px 15px;border-bottom:1px solid #e8edf5;background:#fff;}
.otifc-archivos{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px;padding:12px 15px;}
.otifc-archivo{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;}
.otifc-archivo .mini{width:56px;height:48px;border-radius:7px;background:#e9eef7;overflow:hidden;display:grid;place-items:center;font-size:10px;font-weight:800;color:#65738a;}
.otifc-archivo .mini img{width:100%;height:100%;object-fit:cover;}
.otifc-archivo .mini.pdf{background:#fee2e2;color:#991b1b;}
.otifc-archivo .datos{min-width:0;display:flex;flex-direction:column;gap:2px;}
.otifc-archivo .datos b{font-size:12.5px;color:#1d2b45;}
.otifc-archivo .datos span{font-size:11.5px;color:#5f6f86;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.otifc-archivo .datos small{font-size:10.5px;color:#94a3b8;}
.otifc-archivo .acciones{align-items:center;}
.otifc-sin-archivos{grid-column:1/-1;padding:10px;color:#8a98ad;font-size:12px;text-align:center;}

.otifc-resultado{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.otifc-resultado>div{border:1px solid #dce4ef;border-radius:12px;padding:15px;background:#f9fbfd;display:flex;flex-direction:column;align-items:flex-start;gap:7px;}
.otifc-resultado>div>span:first-child{font-family:'Archivo',sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#66758c;font-weight:700;}
.otifc-resultado>div small{color:#8593a7;font-size:11px;}
.otifc-resultado .principal{background:#eef2ff;border-color:#cdd6f4;}
.otifc-causas{border-top:1px solid #edf1f6;padding-top:18px;}
.otifc-grid.cierre{grid-template-columns:1fr 1fr;}
.otifc-check{border:1px solid #dce4ef;border-radius:12px;padding:15px;background:#fbfcfe;}
.otifc-check ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;}
.otifc-check li{display:flex;align-items:center;gap:8px;padding:8px 9px;background:#fff1f2;color:#9f1723;border-radius:8px;font-size:11.5px;}
.otifc-check li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#fecdd3;font-weight:800;}
.otifc-check li.ok{background:#eafaf2;color:#087552;}
.otifc-check li.ok span{background:#bdf0d5;}
.otifc-cerrado{margin-top:12px;padding:10px 12px;border-radius:9px;background:#eafaf2;color:#087552;font-size:12px;font-weight:600;}
.otifc-puntaje{display:block;margin:8px 0 4px;font-size:1.45rem;color:#142033;}
.otifc-historial{margin-top:24px;padding-top:20px;border-top:1px solid #dce4ef;}
.otifc-historial h4{margin:0 0 12px;}
.otifc-transito-grid{align-items:stretch;}
.otifc-transito-grid .campo,.otifc-transito-grid .calculado{min-height:92px;}

@media(max-width:1200px){
  .otifc-grid.g4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .otifc-semaforos-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .otifc-subir{grid-template-columns:1fr 1fr;}
  .otifc-rail nav{grid-template-columns:repeat(3,1fr);}
  .otifc-resultado{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:760px){
  .otifc-kpis,.otifc-grid.g4,.otifc-grid.g3,.otifc-grid.cierre,.otifc-resultado,.otifc-semaforos-grid{grid-template-columns:1fr;}
  .otifc-grid .ancho2{grid-column:auto;}
  .otifc-subir{grid-template-columns:1fr;}
  .otifc-rail{position:static;}
  .otifc-rail nav{grid-template-columns:1fr 1fr;}
  .otifc-check ul{grid-template-columns:1fr;}
  .otifc-semaforo-carga-resumen{align-items:flex-start;flex-direction:column;}
  .otifc-semaforo{width:100%;min-width:0;}
  .otifc-parada{grid-template-columns:1fr auto;}
  .otifc-parada a,.otifc-parada small{grid-column:1/-1;text-align:left;}
}

.otifc-parada-captura{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr auto;gap:8px;padding:12px 15px;border-top:1px solid #e2e8f0;background:#f6f8fc;align-items:center;}
.otifc-alerta{display:flex;align-items:center;gap:12px;margin:14px 0;padding:13px 16px;border:1px solid #cbd6e7;border-radius:12px;background:#f7f9fd;color:#1d2b45;cursor:pointer;box-shadow:0 2px 7px rgba(20,32,51,.05)}
.otifc-alertas-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.otifc-alertas-grid .otifc-alerta{margin:14px 0}.otifc-alertas-grid .otifc-alerta:nth-child(1){grid-column:1;grid-row:1}.otifc-alertas-grid .otifc-alerta:nth-child(2){grid-column:1;grid-row:2}.otifc-alertas-grid .otifc-alerta:nth-child(3){grid-column:2;grid-row:1}.otifc-alertas-grid .otifc-alerta:nth-child(4){grid-column:2;grid-row:2}
.otifc-alerta.urgente{border-color:#f59e0b;background:#fff7df;animation:otif-alerta-parpadea 1.4s ease-in-out infinite}
.otifc-alerta.critica{border-color:#ef4444;background:#fee2e2;color:#7f1d1d;animation:otif-alerta-roja 1s ease-in-out infinite}.otifc-alerta.critica .otifc-alerta-icon{background:#dc2626}.otifc-alerta.critica small{color:#991b1b}
.otifc-alerta-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f59e0b;color:#fff;font-weight:800;font-size:20px;box-shadow:0 2px 5px rgba(180,110,0,.35)}
.otifc-alerta b{display:block;font-size:13px}.otifc-alerta small{display:block;color:#697990;font-size:11px;margin-top:2px}.otifc-alerta-flecha{margin-left:auto;font-size:24px;color:#203a83}.otifc-alerta-fila{display:flex;gap:4px;margin-bottom:4px}.btn-alerta-atendida{font-size:9px!important;padding:3px 6px!important;background:#fff7df!important;border-color:#e6ad2f!important;color:#765100!important}
@keyframes otif-alerta-parpadea{0%,100%{box-shadow:0 0 0 rgba(245,158,11,0)}50%{box-shadow:0 0 0 5px rgba(245,158,11,.2)}}
@keyframes otif-alerta-roja{0%,100%{box-shadow:0 0 0 rgba(220,38,38,0)}50%{box-shadow:0 0 0 6px rgba(220,38,38,.28)}}
.layouts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.layout-card{padding:16px}.layout-card .t-head{align-items:flex-start}.layout-import{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #e6ebf3;color:#718096;font-size:11px}.layout-import .btn{cursor:pointer}@media(max-width:900px){.layouts-grid,.otifc-alertas-grid{grid-template-columns:1fr}}
@media(max-width:900px){.otifc-parada-captura{grid-template-columns:1fr 1fr;}.otifc-parada-captura button{grid-column:1/-1;}}

/* Consulta de expedientes finalizados, independiente de la captura operativa. */
.consulta-recorrido {margin-bottom:20px}
.consulta-horarios {display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:18px}
.consulta-horarios>div {display:grid;gap:5px;border:1px solid #ded8ec;border-radius:9px;padding:12px;background:#f8f6fc}
.consulta-horarios span {font-size:11px;color:#675778;text-transform:uppercase}
.consulta-horarios b {font-size:14px}
.consulta-mapa {margin:0 18px 18px;padding:16px;background:#f3f5fa;border-radius:12px}
.consulta-mapa.mapa-cargado {height:340px;padding:0}
.consulta-mapa p {max-width:80ch;line-height:1.6;margin-bottom:16px}
.consulta-eventos {padding:0 18px 18px}
.consulta-eventos summary {cursor:pointer;font-weight:700;padding:12px 0;color:#4e239d}
.consulta-eventos td {vertical-align:top;overflow-wrap:anywhere}
.consulta-eventos small {display:block;margin-top:4px}
