:root{--navy:#123044;--blue:#1677ff;--red:#ef4444;--green:#16a36a;--ink:#1f2937;--muted:#6b7280;--line:#e6ebef;--bg:#f4f7f9}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px}
a{color:var(--blue)}
.barra{min-height:72px;padding:0 38px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.marca-logo{width:40px;height:40px;border:2px solid #60d4d0;border-radius:11px;display:grid;place-items:center;font-size:22px;font-weight:700}
.marca strong,.marca small{display:block}.marca small{font-size:12px;color:#b9ccd8;margin-top:2px}
.menu{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.menu a{color:#dbe7ef;text-decoration:none;font-size:14px;padding:6px 2px;border-bottom:2px solid transparent}
.menu a[aria-current=page],.menu a:hover{color:#fff;border-bottom-color:#60d4d0}
.quien{font-size:13px;color:#b9ccd8}
.en-linea{display:inline;margin:0}
.contenido{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:34px}
.pie{text-align:center;color:var(--muted);font-size:12px;padding:18px}
h1{color:var(--navy);font-size:28px;margin:0 0 12px;letter-spacing:-.6px}
h1 small{font-size:16px;color:var(--muted);font-weight:500}
h2{color:var(--navy);font-size:18px;margin:0 0 14px}
.sobretitulo{font-size:12px;color:var(--blue);font-weight:700;letter-spacing:1.3px;margin:0 0 6px}
.tarjeta{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:0 6px 20px rgba(18,48,68,.05);margin-bottom:22px;overflow-x:auto}
.tarjeta-estrecha{max-width:460px;margin:30px auto}
.cabecera-seccion{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}
.formulario{display:flex;flex-direction:column;gap:14px;margin:16px 0}
label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}
label small{font-weight:400}
input,select{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;outline:none}
input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,119,255,.12)}
button,.boton{font:inherit;font-weight:600;cursor:pointer;border:0;border-radius:9px;background:var(--blue);color:#fff;padding:10px 16px;text-decoration:none;display:inline-block}
button:hover,.boton:hover{filter:brightness(.95)}
.boton-secundario{background:#1c4057;padding:7px 13px;font-size:13px}
.boton-peligro{background:var(--red)}
.filtros{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px}
.tabla{width:100%;border-collapse:collapse}
.tabla th{text-align:left;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}
.tabla td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.etiqueta{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:12px;background:#eef2f6;color:#334155;margin:1px 2px 1px 0}
.etiqueta.ok{background:#e8f7ef;color:#16744d}.etiqueta.off{background:#fde8e8;color:#b42318}.etiqueta.aviso-etq{background:#fff4e0;color:#9a5b00}
.aviso{background:#e8f1ff;color:#0b4fb3;padding:11px 14px;border-radius:9px}
.error{background:#fde8e8;color:#b42318;padding:11px 14px;border-radius:9px}
.ayuda{color:var(--muted);font-size:13px}
.vacio{color:var(--muted);text-align:center;padding:30px}
.miga{margin:0 0 10px}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.datos{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0}
.datos dt{color:var(--muted);font-size:13px}.datos dd{margin:0;font-weight:600}
.accion{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.accion:last-child{border-bottom:0}.accion p{margin:0;color:var(--muted);font-size:13px}
.secreto{font-size:22px;background:#f4f7f9;border:1px dashed #9fb3c2;border-radius:10px;padding:16px;text-align:center;user-select:all}
@media (max-width:700px){.barra{padding:12px 18px}.contenido{padding:18px}}

/* Informe operativo por jornada. */
.intro{color:var(--muted);max-width:850px;margin:0 0 22px}
.inf-formulario{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.inf-formulario label{min-width:155px}.inf-formulario button{margin-bottom:1px}
.inf-resumen{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:22px}
.inf-resumen .tarjeta{padding:18px;margin:0;overflow:hidden}
.inf-resumen span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}
.inf-resumen strong{display:block;color:var(--navy);font-size:22px;white-space:nowrap}
.inf-criterio{margin-bottom:22px;line-height:1.5}
.inf-cobertura{margin:-8px 0 22px;background:#fff4e0;color:#805000;line-height:1.45}
.inf-jornadas>h2{margin:0 0 14px}.inf-jornada{padding:0;overflow:hidden}
.inf-jornada-cabecera{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:20px 24px;background:#f8fafb;border-bottom:1px solid var(--line)}
.inf-jornada-identidad h3{margin:0 0 5px;font-size:21px;color:var(--navy)}.inf-jornada-identidad p{margin:0;color:var(--text);font-size:17px}.inf-jornada-identidad small{display:block;margin-top:4px;color:var(--muted)}
.inf-jornada-acciones{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.inf-imprimir-jornada{white-space:nowrap}
.inf-jornada-metricas{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.inf-jornada-metricas>div{display:flex;flex-direction:column;gap:5px;padding:20px 24px;background:#fff}.inf-jornada-metricas span{font-size:11px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted)}.inf-jornada-metricas strong{font-size:23px;color:var(--navy)}.inf-jornada-metricas small{color:var(--muted);font-size:12px}
.inf-direcciones,.inf-cronologia,.inf-clientes-gps,.inf-desvios{border-bottom:1px solid var(--line)}.inf-direcciones summary,.inf-cronologia summary,.inf-clientes-gps summary,.inf-desvios summary,.inf-here summary{display:flex;justify-content:space-between;gap:16px;padding:15px 24px;cursor:pointer;color:var(--navy);background:#fbfcfd}.inf-direcciones summary:hover,.inf-cronologia summary:hover,.inf-clientes-gps summary:hover,.inf-desvios summary:hover,.inf-here summary:hover{background:#f0f7ff}.inf-direcciones summary span,.inf-cronologia summary span,.inf-clientes-gps summary span,.inf-desvios summary span,.inf-here summary span{font-weight:700}.inf-direcciones summary strong,.inf-cronologia summary strong,.inf-clientes-gps summary strong,.inf-desvios summary strong,.inf-here summary strong{font-size:12px;color:var(--blue)}.inf-direcciones-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line)}.inf-direcciones-lista article{display:flex;justify-content:space-between;gap:18px;padding:14px 24px;background:#fff}.inf-direccion-texto{display:flex;flex-direction:column;gap:3px;min-width:0}.inf-direccion-texto>strong{color:var(--navy);font-size:13px}.inf-direccion-texto small{color:var(--muted)}.inf-direccion-rutas{display:flex;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start;gap:5px;flex:0 0 auto}.inf-direccion-rutas span,.inf-direccion-rutas em{border-radius:999px;padding:4px 8px;font-size:10px;font-style:normal;font-weight:700}.inf-direccion-rutas span{background:#eaf2ff;color:#075dc5}.inf-direccion-rutas em{background:#fff2d8;color:#8a5300}
.inf-cronologia-contenido{padding:4px 24px 22px}.inf-cronologia-contenido>p{color:var(--muted);line-height:1.45}.inf-linea-tiempo{list-style:none;margin:18px 0 0;padding:0}.inf-estacion{--estacion:#1e7d62;position:relative;padding:0 0 18px 48px}.inf-estacion::before{content:"";position:absolute;left:17px;top:0;bottom:0;width:4px;border-radius:4px;background:#cdd8e5}.inf-estacion::after{content:"";position:absolute;left:8px;top:12px;width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--estacion);box-shadow:0 0 0 2px var(--estacion)}.inf-estacion.inf-con-tramo::after{top:39px}.inf-estacion:last-child::before{bottom:calc(100% - 28px)}.inf-estacion-deposito{--estacion:#17344d}.inf-estacion-registro{--estacion:#66798b}.inf-estacion-fuera{--estacion:#d16b00}.inf-estacion.inf-calidad-revisar:not(.inf-estacion-fuera){--estacion:#9a5b00}.inf-tramo{min-height:20px;margin:0 0 7px;color:#5e7183;font-size:11px;font-weight:700}.inf-tramo.inf-calidad-revisar{color:#995d00}.inf-estacion>article{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;break-inside:avoid}.inf-estacion>article header{display:flex;justify-content:space-between;gap:14px}.inf-estacion>article header strong{color:var(--navy)}.inf-estacion>article header span{font-weight:800;color:var(--navy);white-space:nowrap}.inf-estacion>article>p{margin:4px 0;color:var(--muted)}.inf-estacion-datos{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:7px}.inf-estacion-datos b{color:var(--navy)}.inf-estacion-datos span{border-radius:999px;padding:3px 8px;background:#eef1f4;color:#52677a;font-size:10px;font-weight:700}.inf-estacion-fuera .inf-estacion-datos span,.inf-calidad-revisar .inf-estacion-datos span{background:#fff2d8;color:#8a5300}.inf-estacion-datos .inf-repeticion{background:#eaf2ff;color:#075dc5}.inf-contraste-papel{display:none}
.inf-clientes-contenido{padding:4px 24px 20px}.inf-clientes-contenido>p{color:var(--muted);line-height:1.45}.inf-clientes-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:10px;margin-top:12px}.inf-cliente-gps{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fff}.inf-cliente-gps header{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.inf-cliente-gps header>div{display:flex;flex-direction:column;gap:2px;min-width:0}.inf-cliente-gps header strong{color:var(--navy);font-size:13px}.inf-cliente-gps header small{color:var(--muted)}.inf-cliente-gps .inf-estado-gps{font-size:10px;font-weight:700;border-radius:999px;padding:4px 8px;height:max-content;white-space:nowrap;background:#eef1f4;color:#516173}.inf-cliente-gps .inf-estado-gps.estimada{background:#e8f7ef;color:#16744d}.inf-cliente-gps .inf-estado-gps.revisar{background:#fff2d8;color:#8a5300}.inf-cliente-gps dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.inf-cliente-gps dl div{background:#f6f8fa;border-radius:7px;padding:8px}.inf-cliente-gps dt{font-size:10px;color:var(--muted)}.inf-cliente-gps dd{margin:2px 0 0;color:var(--navy);font-weight:700;font-size:13px}.inf-cliente-rutas{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.inf-cliente-rutas span{background:#eaf2ff;color:#075dc5;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}
.inf-episodios{display:flex;flex-direction:column;gap:4px;margin-top:9px;padding:8px 10px;border-left:3px solid #94a8bc;background:#f8fafb;color:var(--navy);font-size:11px}.inf-episodios strong{font-size:10px;text-transform:uppercase;letter-spacing:.35px;color:var(--muted)}
.inf-desvios-contenido{padding:4px 24px 20px}.inf-desvios-contenido>p{color:var(--muted);line-height:1.45}.inf-desvios-aviso{padding:10px 12px;border-radius:8px;background:#fff4e0;color:#805000}.inf-desvios-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}.inf-desvio{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fff}.inf-desvio>strong{display:block;color:var(--navy);margin-bottom:6px}.inf-desvio dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:12px}.inf-desvio dt{color:var(--muted)}.inf-desvio dd{margin:0;color:var(--navy);font-weight:600}.inf-desvio .inf-revisar{color:#995d00}
.inf-here-rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;padding:0 24px 22px}.inf-here-rejilla article{border:1px solid var(--line);border-radius:10px;padding:14px}.inf-here-rejilla article>strong{color:var(--navy)}.inf-here-rejilla dl{margin:12px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.inf-here-rejilla dl div{background:#f6f8fa;border-radius:7px;padding:8px}.inf-here-rejilla dt{font-size:10px;color:var(--muted)}.inf-here-rejilla dd{margin:2px 0 0;font-weight:700;color:var(--navy);font-size:13px}
.inf-cerrada{background:#e8f7ef;color:#16744d}.inf-provisional{background:#fff4e0;color:#9a5b00}
.inf-sin-datos{color:var(--muted);font-style:italic}.inf-notas li{margin:8px 0;line-height:1.45}
@media (max-width:1050px){.inf-resumen{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media (max-width:1050px){.inf-jornada-metricas{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.inf-jornada-metricas{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.inf-resumen{grid-template-columns:1fr}.inf-formulario label,.inf-formulario button{width:100%}.inf-jornada-cabecera,.inf-jornada-metricas{grid-template-columns:1fr}.inf-jornada-cabecera>.etiqueta{justify-self:start}.inf-jornada-metricas>div{padding:16px 20px}.inf-direcciones summary,.inf-cronologia summary,.inf-clientes-gps summary,.inf-desvios summary,.inf-here summary{align-items:flex-start}.inf-direcciones-lista,.inf-clientes-lista,.inf-desvios-lista{grid-template-columns:1fr}.inf-direcciones-lista article{flex-direction:column;padding:13px 18px}.inf-direccion-rutas{justify-content:flex-start}.inf-here-rejilla{grid-template-columns:1fr;padding:0 16px 18px}.inf-cronologia-contenido{padding-left:16px;padding-right:16px}.inf-estacion{padding-left:42px}.inf-estacion>article header{flex-direction:column;gap:3px}.inf-estacion>article header span{white-space:normal}}
@media (max-width:700px){.inf-jornada-acciones{justify-content:flex-start}.inf-imprimir-jornada{width:100%}}
@media print{
  @page{size:A4;margin:10mm}
  body.inf-imprimir{background:#fff;font-size:10pt}
  body.inf-imprimir .barra,body.inf-imprimir .pie,body.inf-imprimir main>*{display:none!important}
  body.inf-imprimir main{display:block;max-width:none;padding:0;margin:0}
  body.inf-imprimir main>.inf-jornadas{display:block!important}
  body.inf-imprimir .inf-jornadas>h2,body.inf-imprimir .inf-jornada{display:none!important}
  body.inf-imprimir .inf-jornada.inf-objetivo-impresion{display:block!important;border:0;box-shadow:none}
  body.inf-imprimir .inf-jornada-acciones,body.inf-imprimir .inf-direcciones,body.inf-imprimir .inf-clientes-gps,body.inf-imprimir .inf-desvios,body.inf-imprimir .inf-here{display:none!important}
  body.inf-imprimir .inf-jornada-cabecera{padding:0 0 8mm;background:#fff}
  body.inf-imprimir .inf-jornada-metricas{grid-template-columns:repeat(5,1fr)}
  body.inf-imprimir .inf-jornada-metricas>div{padding:4mm 3mm}
  body.inf-imprimir .inf-cronologia{display:block!important;border:0}
  body.inf-imprimir .inf-cronologia summary{padding:5mm 0 2mm;border-bottom:1px solid #ccd5df}
  body.inf-imprimir .inf-cronologia-contenido{padding:0}
  body.inf-imprimir .inf-linea-tiempo{margin-top:4mm}
  body.inf-imprimir .inf-estacion{padding-bottom:4mm}
  body.inf-imprimir .inf-estacion>article{padding:3mm}
  body.inf-imprimir .inf-contraste-papel{display:block;margin-top:3mm;padding-top:2mm;border-top:1px dashed #aab4bf;color:#5e6770;font-size:8pt}
}
