:root{color-scheme:light;--fondo:#ffffff;--lienzo:#f6f7f9;--texto:#0f172a;--texto-2:#475569;--tenue:#64748b;--borde:#e5e7eb;--borde-suave:#f1f3f6;--acento:#4f46e5;--acento-suave:#eef0ff;--sobre-acento:#ffffff;--sube:#15803d;--sube-fondo:#ecfdf3;--baja:#b42318;--baja-fondo:#fef3f2;--peligro:#b42318;--aviso-fondo:#fffbeb;--aviso-borde:#fcd34d;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--gris-serie:#94a3b8;--sombra:0 1px 2px rgba(15,23,42,.04),0 4px 16px rgba(15,23,42,.04);--radio:14px}*{box-sizing:border-box}body,html{margin:0;background:var(--lienzo);color:var(--texto);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}h1,h2,h3,p{margin:0}a{color:var(--acento)}button{font:inherit;color:inherit}code{font-size:.9em;background:var(--borde-suave);padding:1px 5px;border-radius:5px}.tenue{color:var(--tenue)}.pequeno{font-size:.8rem}.bloque{display:block}.error{color:var(--peligro)}.vacio{color:var(--tenue);font-size:13px;padding:8px 0}button.enlace{background:none;border:none;padding:0;color:var(--acento);cursor:pointer}.entrada{max-width:24rem;margin:0 auto;padding:calc(4rem + env(safe-area-inset-top)) 1rem 2rem}.marca-grande{display:flex;gap:.75rem;align-items:center;margin-bottom:2rem}.marca-grande h1{font-size:1.5rem;letter-spacing:.08em}.formulario{gap:1rem;margin-bottom:1rem}.formulario,.formulario label{display:flex;flex-direction:column}.formulario label{gap:.3rem;font-size:.85rem;color:var(--texto-2)}.formulario input{font:inherit;font-size:16px;min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--borde);border-radius:10px;background:#fff;color:var(--texto)}.formulario input:focus{outline:2px solid var(--acento);outline-offset:-1px}.boton{font-weight:600;min-height:2.75rem;border:none;border-radius:10px;background:var(--texto);color:#fff;cursor:pointer}.boton:disabled{opacity:.6;cursor:default}.aviso{padding:.75rem 1rem;border:1px solid var(--aviso-borde);background:var(--aviso-fondo);border-radius:10px;font-size:13px}.aviso-error{border-color:#fda29b;background:var(--baja-fondo);color:var(--baja)}.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;min-height:100dvh}.lateral{position:-webkit-sticky;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;background:#fff;border-right:1px solid var(--borde);padding:calc(18px + env(safe-area-inset-top)) 12px 12px max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:16px}.lateral-marca{display:flex;align-items:center;gap:10px;padding:0 8px}.lateral-marca b{letter-spacing:.14em;font-size:15px;display:block}.lateral-marca small{display:block;color:var(--tenue);font-size:11px}.pest-grupo,.pestanas{display:flex;flex-direction:column;gap:2px}.pest-grupo{margin-top:12px}.pest-seccion{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--tenue);padding:0 10px 4px}.pest{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:6px 10px;border:none;border-radius:10px;background:none;color:var(--texto-2);font-size:13.5px;text-align:left;cursor:pointer}.pest:hover{background:var(--lienzo)}.pest:focus-visible{outline:2px solid var(--acento);outline-offset:-2px}.pest-n{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pest-v{font-size:12px;color:var(--tenue);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pest.activa{background:var(--acento-suave);color:var(--texto);font-weight:600;box-shadow:inset 3px 0 0 var(--acento)}.pest.activa .pest-v{color:var(--acento)}.lateral-pie{margin-top:auto;padding:10px 8px 0;border-top:1px solid var(--borde);font-size:12px;color:var(--tenue);display:flex;justify-content:space-between;gap:8px}.lateral-pie span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logo{border-radius:9px;object-fit:cover;background:#fff;border:1px solid var(--borde);flex:none;display:inline-block}.logo-letras,.logo-todos{display:inline-grid;place-items:center;font-weight:700}.logo-letras{background:var(--acento-suave);color:var(--acento)}.logo-todos{width:28px;height:28px;background:var(--texto);color:#fff;border-color:var(--texto);font-size:14px}.logo-grande{width:56px;height:56px;font-size:24px}.cabeza .logo,.logo-grande{border-radius:14px}.principal{min-width:0;flex-direction:column;padding:22px max(28px,env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) 28px}.cabeza,.principal{display:flex;gap:16px}.cabeza{align-items:center;flex-wrap:wrap}.cabeza-texto{min-width:0}.cabeza h1{font-size:22px;letter-spacing:-.01em}.cabeza-meta{color:var(--tenue);font-size:13px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:2px}.cabeza-meta a{text-decoration:none}.controles{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.seg{display:inline-flex;background:#fff;border:1px solid var(--borde);border-radius:10px;padding:3px}.seg button{border:none;background:none;padding:6px 12px;border-radius:7px;font-size:13px;color:var(--texto-2);cursor:pointer;min-height:32px}.seg button:hover{color:var(--texto)}.seg button.on{background:var(--texto);color:#fff;font-weight:600}.boton-sec{border:1px solid var(--borde);background:#fff;border-radius:10px;padding:7px 12px;font-size:13px;color:var(--texto-2);cursor:pointer;min-height:38px}.boton-sec:hover{border-color:#cbd5e1;color:var(--texto)}.en-vivo{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--sube);font-weight:600}.en-vivo:before{content:"";width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #dcfce7;animation:latido 2s ease-in-out infinite}.quieto{display:inline-flex;align-items:center;gap:6px}.quieto:before{content:"";width:8px;height:8px;border-radius:50%;background:#cbd5e1}@keyframes latido{50%{box-shadow:0 0 0 6px #dcfce700}}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px}.kpi{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:14px 16px 10px;box-shadow:var(--sombra);display:flex;flex-direction:column;gap:5px;min-width:0}.kpi-t{font-size:12.5px;color:var(--tenue)}.kpi-v{font-size:26px;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-p{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:20px}.kpi-p small{color:var(--tenue);font-size:11.5px}.chispa{width:100%;height:30px;display:block;margin-top:2px}.delta{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:999px;white-space:nowrap}.delta.sube{color:var(--sube);background:var(--sube-fondo)}.delta.baja{color:var(--baja);background:var(--baja-fondo)}.fila{display:grid;grid-gap:16px;gap:16px}.f-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.f-1-1{grid-template-columns:repeat(2,minmax(0,1fr))}.f-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:16px 18px;box-shadow:var(--sombra);min-width:0}.tarjeta-c{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;gap:12px}.tarjeta-c h2{font-size:14.5px}.tarjeta-c p{font-size:12px;color:var(--tenue);margin-top:1px}.subtitulo{font-size:14px;margin:20px 0 8px}.ley{display:flex;gap:14px;font-size:12px;color:var(--texto-2);flex-wrap:wrap}.ley span{display:inline-flex;align-items:center;gap:6px}.globo i,.ley i{width:10px;height:10px;border-radius:3px;display:inline-block}.grafica{position:relative}.svg{width:100%;height:auto;display:block;overflow:visible;touch-action:pan-y}.guia{stroke:#eef0f3;stroke-width:1;vector-effect:non-scaling-stroke}.eje{fill:var(--tenue);font-size:11px}.cruz{stroke:#94a3b8;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.globo{position:absolute;top:6px;z-index:2;pointer-events:none;background:#fff;border:1px solid var(--borde);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.12);padding:8px 12px;font-size:12px;display:grid;grid-gap:3px;gap:3px;min-width:150px}.globo span{display:flex;align-items:center;gap:6px;color:var(--texto-2)}.globo b{margin-left:auto;padding-left:12px;color:var(--texto);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hbs{grid-gap:2px;gap:2px}.hb,.hbs{display:grid}.hb{grid-template-columns:minmax(90px,40%) 1fr 56px;grid-gap:10px;gap:10px;padding:5px 0;font-size:13px}.hb,.hb-n{align-items:center}.hb-n{color:var(--texto-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:6px}.hb-pista{height:8px;background:var(--borde-suave);border-radius:4px;overflow:hidden}.hb-pista span{display:block;height:100%;border-radius:4px}.hb-v{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.apilada{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px;margin:4px 0 12px}.embudo{display:grid;grid-gap:12px;gap:12px}.paso{display:grid;grid-template-columns:1fr auto;grid-gap:4px;gap:4px;font-size:13px;color:var(--texto-2)}.paso small{color:var(--tenue)}.paso b{color:var(--texto);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.paso-b{grid-column:1/-1;height:22px;border-radius:7px;background:var(--borde-suave);overflow:hidden}.paso-b span{display:block;height:100%;border-radius:7px}.calor{display:grid;grid-template-columns:34px repeat(24,minmax(0,1fr));grid-gap:3px;gap:3px;align-items:center}.calor-h{font-size:10px}.calor-d,.calor-h{color:var(--tenue)}.calor-d{font-size:11px}.celda{aspect-ratio:1;border-radius:3px;background:rgba(42,120,214,var(--a))}.calor-pie{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:12px;color:var(--texto-2);flex-wrap:wrap}.calor-ley{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--tenue)}.calor-ley i{width:14px;height:10px;border-radius:2px;background:rgba(42,120,214,var(--a))}.tabla-scroll{overflow-x:auto}.tabla{width:100%;border-collapse:collapse;font-size:13px}.tabla th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--tenue);padding:0 8px 8px;border-bottom:1px solid var(--borde);white-space:nowrap}.tabla td{padding:9px 8px;border-bottom:1px solid var(--borde-suave);vertical-align:middle}.tabla tr:last-child td{border-bottom:none}.tabla small{font-size:11.5px}.num{text-align:right!important;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ruta{word-break:break-all}.ruta a{color:var(--texto);text-decoration:none}.ruta a:hover{color:var(--acento);text-decoration:underline}.fila-click{cursor:pointer}.fila-click:focus-visible td,.fila-click:hover td{background:var(--lienzo)}.fila-click:focus-visible{outline:none}.fila-actual td{background:var(--acento-suave);font-weight:600}.celda-sitio{display:flex;align-items:center;gap:10px}.celda-sitio small{display:block;color:var(--tenue)}.chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.t-visita{background:#f1f5f9;color:#475569}.t-whatsapp{background:#e7f8f0;color:#0f7a53}.t-formulario{background:#eaf2fc;color:#1d5fae}.t-llamada{background:#fdf0ea;color:#b4481c}.t-correo{background:#fdf6e3;color:#8a5d00}.actividad{list-style:none;margin:0;padding:0}.actividad li{display:grid;grid-template-columns:100px 110px minmax(0,1fr) 140px 100px;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--borde-suave);font-size:13px}.actividad li:has(.act-sitio){grid-template-columns:100px 110px 190px minmax(0,1fr) 140px 100px}.actividad li:last-child{border-bottom:none}.act-sitio{display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.seg-chico button{padding:4px 10px;min-height:28px;font-size:12px}.ver-mas{display:block;width:100%;margin-top:8px;padding:9px;border:1px dashed var(--borde);border-radius:10px;background:none;color:var(--texto-2);font-size:13px;cursor:pointer}.ver-mas:hover{border-color:#cbd5e1;color:var(--texto)}.esqueleto{display:flex;flex-direction:column;gap:16px}.esq{background:linear-gradient(90deg,#eef0f3,#f6f7f9 50%,#eef0f3);background-size:200% 100%;border-radius:var(--radio);animation:brillo 1.4s linear infinite}.esq-cabeza{height:56px;width:40%}.esq-kpi{height:120px}.esq-grande{height:320px}@keyframes brillo{to{background-position:-200% 0}}@media (max-width:1280px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.f-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.app{grid-template-columns:minmax(0,1fr)}.lateral{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:auto;overflow:visible;border-right:none;border-bottom:1px solid var(--borde);padding:calc(10px + env(safe-area-inset-top)) 0 0;gap:8px}.lateral-marca{padding:0 16px}.lateral-pie{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;border:none;padding:0;margin:0}.lateral-pie span{display:none}.pestanas{flex-direction:row;overflow-x:auto;gap:6px;padding:0 16px 10px;scrollbar-width:none;overscroll-behavior-x:contain}.pestanas::-webkit-scrollbar{display:none}.pest-grupo{flex-direction:row;gap:6px;margin:0}.pest-seccion,.pest-v{display:none}.pest{width:auto;flex:none;min-height:44px;border:1px solid var(--borde);padding:6px 12px 6px 6px}.pest-n{max-width:160px}.pest.activa{box-shadow:none;border-color:var(--acento)}.principal{padding:16px 16px calc(32px + env(safe-area-inset-bottom));gap:12px}.cabeza{gap:12px}.cabeza h1{font-size:19px}.controles{margin-left:0;width:100%}.seg{width:100%;overflow-x:auto}.seg button{flex:1 1;min-height:40px;white-space:nowrap}.boton-sec{display:none}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:12px 12px 8px}.kpi-v{font-size:22px}.f-1-1,.f-2-1,.f-3{grid-template-columns:minmax(0,1fr)}.tarjeta{padding:14px}.tarjeta-c{flex-wrap:wrap}.actividad li,.actividad li:has(.act-sitio){grid-template-columns:auto 1fr;row-gap:2px}.actividad li>:nth-child(n+3){grid-column:1/-1;font-size:12px}.actividad li .ruta{color:var(--texto)}.tabla-sitios td:nth-child(3),.tabla-sitios td:nth-child(5),.tabla-sitios td:nth-child(7),.tabla-sitios th:nth-child(3),.tabla-sitios th:nth-child(5),.tabla-sitios th:nth-child(7){display:none}.globo{min-width:130px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}