/* dash-vistas.css (5 nov 2026, Luis): vistas New search y Searches del dashboard (dash-vistas.js).
   Ocupan TODO el area de contenido, de la barra lateral al borde derecho y al de abajo de la ventana, sin margenes.
   z-index 1445: encima del CRM y de la caja de la barra lateral (.vcaja 1440), debajo del menu (1450) y de su boton
   flotante en movil (1620). */
.dv{position:fixed;top:0;right:0;bottom:0;left:var(--vside-ocupa,0px);z-index:1445;background:#fff;color:#111113;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:left .2s ease}
.dv[hidden],.dv-vista[hidden]{display:none !important}
.dv *{box-sizing:border-box}
@media (max-width:1023px){.dv{left:0}}
.dv-vista{position:absolute;inset:0}
.dv-h1{margin:0;font-size:22px;line-height:1.2;font-weight:650;letter-spacing:-.02em;color:#111113 !important}
.dv p{margin:0}

/* ── New search: dos cajas con el mismo margen alrededor y entre ellas. Arriba el titulo y la barra de la portada TAL CUAL
   (lpv-barra.css, en una fila); debajo el mapa con todo el alto que queda. Sin scroll de pagina. ── */
.dv{--dv-m:12px}
.dv-nueva{display:flex;flex-direction:column;gap:var(--dv-m);padding:var(--dv-m);background:#f2f2f5}
.dv-caja{background:#fff;border-radius:18px;box-shadow:0 0 0 1px rgba(17,17,20,.08),0 1px 2px rgba(17,17,20,.04),0 12px 32px -24px rgba(17,17,20,.25)}
.dv-cab{position:relative;z-index:3;flex:none;padding:20px 14px 22px;text-align:center}
.dv-cab .dv-h1{font-size:22px}
/* el contenedor de la barra: sin el margen de 40 px que trae para la portada */
.dv-cab .lpv-busca-w{margin:16px auto 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:16px;line-height:normal;color:#111114;text-align:left}
.dv-cab .lpv-busca-w input{line-height:normal}
.dv-cab .lpv-error:empty{display:none}
.dv-mapa{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow:hidden;background:#eef0f3}
.dv-lienzo{position:absolute;inset:0}
.dv-mapa .mapboxgl-canvas{filter:saturate(.75)}
.dv-sinmapa{position:absolute;inset:0;display:grid;place-items:center;color:#5f5f66;font-size:14px}

/* la busqueda en marcha, sobre el mapa (abajo a la izquierda) */
.dv-vivo{position:absolute;z-index:5;left:16px;bottom:16px;width:min(420px,calc(100% - 32px));max-height:calc(100% - 32px);display:flex;flex-direction:column;
  padding:14px 16px 12px;border-radius:18px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);
  box-shadow:0 0 0 1px rgba(17,17,20,.08),0 24px 60px -24px rgba(17,17,20,.4)}
.dv-vivo[hidden]{display:none}
.dv-vivo-cab,.dv-reg-cab{display:flex;align-items:center;gap:8px;min-width:0}
.dv-vivo-cab b,.dv-reg-cab b{flex:1;min-width:0;font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv .pt{width:8px;height:8px;flex:none;border-radius:50%;background:#a1a1a6}
.dv-vivo.on .pt,.dv-reg.on .pt{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.2);animation:dv-late 1.4s ease-in-out infinite}
.dv-vivo.mal .pt{background:#dc2626}
@keyframes dv-late{50%{box-shadow:0 0 0 6px rgba(22,163,74,.05)}}
.dv-bar{height:6px;border-radius:6px;background:#ececf0;margin:12px 0 6px;overflow:hidden}
.dv-bar i{display:block;height:100%;width:0;background:#111113;border-radius:6px;transition:width .5s ease}
.dv-n{font-size:12.5px;color:#55555c;font-variant-numeric:tabular-nums;margin-bottom:8px !important}
.dv-log{list-style:none;margin:0;padding:8px 10px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px rgba(17,17,20,.07);overflow:auto;
  min-height:72px;max-height:190px;flex:1 1 auto;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;color:#3a3a40}
.dv-log li{display:flex;gap:8px;white-space:nowrap;overflow:hidden;animation:dv-linea .25s ease-out}
@keyframes dv-linea{from{opacity:0;transform:translateY(3px)}}
.dv-log time{color:#a1a1a6;flex:none}
.dv-log span{overflow:hidden;text-overflow:ellipsis}
.dv-log li.ok span{color:#15803d}
.dv-log li.no span{color:#8a8a92}
.dv-log li.info span{color:#4f46e5}
.dv-log li.mal span{color:#dc2626}
.dv-log li.fin span{color:#111113;font-weight:600}
.dv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 14px;border:0;border-radius:999px;background:#f0f0f3;
  color:#111113 !important;font:inherit;font-size:13.5px;font-weight:500;text-decoration:none !important;white-space:nowrap;cursor:pointer;transition:background .15s}
.dv-btn:hover{background:#e6e6ea}
.dv-btn:disabled,.dv-btn.cargando{opacity:.55;cursor:default}
.dv-btn-neg{background:#111113;color:#fff !important}
.dv-btn-neg:hover{background:#000}
.dv-btn[hidden]{display:none}
.dv-vivo-cab .dv-btn{min-height:30px;padding:0 12px;font-size:13px}
.dv-x{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:none;color:#55555c;cursor:pointer}
.dv-x:hover{background:#f0f0f3;color:#111113}
.dv-x svg{width:14px;height:14px}
.dv-x[hidden]{display:none}
.dv-link{align-self:flex-start;margin-top:8px;padding:2px 0;border:0;background:none;font:inherit;font-size:12.5px;font-weight:500;color:#45454c;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dv-link:hover{color:#111113}
.dv-aviso-dib{position:absolute;z-index:6;left:50%;top:16px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;
  border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(17,17,20,.08),0 12px 30px -12px rgba(17,17,20,.35);font-size:13px;white-space:nowrap}
.dv-aviso-dib[hidden]{display:none}
.dv-aviso-dib button{border:0;border-radius:999px;background:#f0f0f3;color:#111113;font:inherit;font-size:13px;padding:6px 12px;cursor:pointer}
.dv-aviso-dib button:hover{background:#e6e6ea}

/* ── Searches ── */
.dv-busq{overflow-y:auto;overscroll-behavior:contain;padding:var(--dv-m);background:#f2f2f5}
.dv-busq-in{min-height:100%;padding:24px 28px 32px;background:#fff;border-radius:18px;box-shadow:0 0 0 1px rgba(17,17,20,.08),0 1px 2px rgba(17,17,20,.04),0 12px 32px -24px rgba(17,17,20,.25)}
.dv-busq-cab{display:flex;align-items:center;gap:12px;justify-content:space-between}
.dv-num{font-weight:500;color:#8a8a92;font-size:16px;margin-left:4px}
.dv-nota{margin-top:6px !important;font-size:13px;color:#6b6b72}
.dv-lista{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid rgba(17,17,20,.08)}
.dv-lista[hidden]{display:none}
.dv-fila{display:grid;grid-template-columns:20px minmax(0,1.4fr) minmax(0,1.3fr) 96px 104px;align-items:center;gap:14px;min-height:58px;padding:8px 10px;
  border-bottom:1px solid rgba(17,17,20,.08);cursor:pointer;transition:background .15s}
.dv-fila:hover{background:rgba(17,17,20,.025)}
.dv-fila.sel{background:rgba(17,17,20,.04)}
.dv-fila .ic{display:grid;place-items:center;width:20px;height:20px;color:#8a8a92}
.dv-fila .ic svg{width:16px;height:16px}
.dv-fila.on .ic{color:#16a34a}
.dv-fila.on .ic svg{animation:dv-gira 1.1s linear infinite}
@keyframes dv-gira{to{transform:rotate(360deg)}}
.dv-fila.ok .ic{color:#111113}
.dv-fila.err .ic{color:#dc2626}
.dv-fila .qu{min-width:0;display:flex;flex-direction:column;gap:1px}
.dv-fila .qu b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-fila .qu span{color:#55555c;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-fila .es{min-width:0;display:flex;align-items:center;gap:12px;color:#45454c;font-variant-numeric:tabular-nums}
.dv-fila .barra{flex:1;max-width:150px;min-width:60px;height:5px;border-radius:5px;background:#ececf0;overflow:hidden}
.dv-fila .barra i{display:block;height:100%;background:#111113;border-radius:5px;transition:width .4s ease}
.dv-fila .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-fila .r{white-space:nowrap;color:#8a8a92;font-size:12.5px}
.dv-fila.err .n{color:#b91c1c}
.dv-fila .fe{color:#6b6b72;font-size:13px;white-space:nowrap}
.dv-fila .ac{display:flex;justify-content:flex-end}
.dv-vacio{margin-top:18px}
.dv-vacio[hidden]{display:none}
.dv-vacio-t{font-size:14px;color:#45454c;margin-bottom:6px !important}
.dv-ej{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:56px;padding:8px 10px;border:0;
  border-top:1px solid rgba(17,17,20,.08);background:none;font:inherit;color:#111113;text-align:left;cursor:pointer;transition:background .15s}
.dv-ej:last-child{border-bottom:1px solid rgba(17,17,20,.08)}
.dv-ej:hover{background:rgba(17,17,20,.03)}
.dv-ej .ic{display:grid;place-items:center;color:#8a8a92}
.dv-ej .ic svg{width:16px;height:16px}
.dv-ej .tx{min-width:0;display:flex;align-items:baseline;gap:8px}
.dv-ej .tx b{font-weight:600}
.dv-ej .tx span{color:#55555c}
.dv-ej .go{font-size:13.5px;font-weight:500;color:#45454c}
.dv-ej:hover .go{color:#111113}
.dv-reg{margin-top:24px;padding:16px 18px 14px;border-radius:18px;background:#fafafb;box-shadow:inset 0 0 0 1px rgba(17,17,20,.07)}
.dv-reg[hidden]{display:none}
.dv-reg-e{font-size:12.5px;color:#6b6b72;white-space:nowrap}
.dv-reg.on .dv-reg-e{color:#15803d;font-weight:600}
.dv-log-g{max-height:min(360px,40vh)}

/* movil y tablet: el boton del menu (fijo arriba a la izquierda) no tapa el titulo; las dos cajas apiladas y el mapa con
   el alto que queda (la barra se apila sola por debajo de 860 px, lpv-barra.css) */
@media (max-width:1023px){
  .dv-cab .dv-h1{padding:0 40px;min-height:36px;display:flex;align-items:center;justify-content:center}
  .dv-busq-cab{padding-left:48px}
}
@media (max-width:760px){
  .dv{--dv-m:8px}
  .dv-cab{padding:10px 12px 12px}
  .dv-cab .dv-h1{font-size:17px}
  .dv-cab .lpv-busca-w{margin-top:8px}
  .dv-mapa{min-height:160px}
  .dv-vivo{left:8px;right:8px;bottom:8px;width:auto;padding:10px 12px}
  .dv-log{max-height:90px;min-height:50px}
  .dv-busq-in{padding:12px 12px 24px}
  .dv-busq-cab .dv-h1{font-size:19px}
  .dv-fila{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"ic qu ac" ". es es";row-gap:4px;padding:10px 4px}
  .dv-fila .ic{grid-area:ic}.dv-fila .qu{grid-area:qu}.dv-fila .es{grid-area:es;flex-wrap:wrap;row-gap:2px}.dv-fila .ac{grid-area:ac}.dv-fila .fe{display:none}
  .dv-ej .tx{flex-direction:column;gap:1px}
  .dv-aviso-dib{white-space:normal;max-width:calc(100% - 24px)}
}
@media (prefers-reduced-motion:reduce){.dv .pt,.dv-log li,.dv-fila.on .ic svg{animation:none !important}}
/* el dashboard pinta textos y botones con reglas globales (body.light-ui span, button...): en la barra y en las vistas
   se fijan los colores con mas especificidad */
html body .dv .lpv-ficha,html body .dv .lpv-ficha *{color:#fff !important}
html body .dv .lpv-sb-ir,html body .dv .lpv-sb-ir *{color:#fff !important}
html body .dv .lpv-fp.con,html body .dv .lpv-fp.con span{color:#fff !important}
html body .dv .lpv-mas{color:#1d1d1f !important}
html body .dv .lpv-sb-ir svg,html body .dv .lpv-sb-ir svg path{stroke:#fff !important;fill:none !important}
/* (los colores de la portada: el dashboard fuerza #1a1a2e en botones y textos) */
html body .dv .lpv-tok{color:#111114 !important}
html body .dv .lpv-pais{color:#000 !important}
html body .dv .lpv-tope-b,html body .dv .lpv-fp:not(.con),html body .dv .lpv-fp:not(.con) span,
html body .dv .lpv-sug button,html body .dv .lpv-fo,html body .dv .lpv-paises-l button,html body .dv .lpv-tope-l button{color:#1d1d1f !important}
html body .dv a.dv-btn,html body .dv a.dv-btn *{color:#111113 !important}
html body .dv a.dv-btn-neg,html body .dv a.dv-btn-neg *{color:#fff !important}
/* (5 nov 2026, Luis) New search sin titulo: la caja solo con la barra, mismo aire arriba y abajo */
.dv-cab{padding:14px !important}
.dv-cab .lpv-busca-w{margin:0 auto !important}
@media (max-width:600px){.dv-cab{padding:10px !important}}
/* (5 nov 2026, Luis) sobre el mapa los desplegables de la barra no transparentan (se veia el mar azul a traves) */
html body .dv-cab .lpv-sb .lpv-sug,html body .dv-cab .lpv-sb .lpv-paises,html body .dv-cab .lpv-sb .lpv-tope-l,html body .dv-cab .lpv-sb .lpv-fm{
  background:rgba(255,255,255,.98) !important;-webkit-backdrop-filter:blur(12px) !important;backdrop-filter:blur(12px) !important;
  box-shadow:0 0 0 1px rgba(17,17,20,.07),0 24px 60px -20px rgba(17,17,20,.35) !important}

/* (5 nov 2026, Luis) New search: el mapa ocupa toda la caja y la busqueda flota encima en un panel de cristal con el
   borde de degradado de marca. La barra no crece (primera ficha y "+N") y lo elegido va en un resumen debajo */
.dv-nueva{position:relative;display:block !important}
.dv-nueva > .dv-mapa{position:absolute !important;inset:var(--dv-m)}
.dv-nueva > .dv-cab{position:absolute !important;z-index:5;top:calc(var(--dv-m) + 18px);left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 2 * var(--dv-m) - 36px);
  padding:12px !important;border-radius:28px;background:rgba(255,255,255,.62) !important;-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 24px 60px -24px rgba(17,17,20,.45),0 6px 16px -10px rgba(17,17,20,.2) !important}
.dv-nueva > .dv-cab::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:linear-gradient(20deg,#a99fd6 0%,#93aed0 50%,#8fbfae 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
/* campos de ancho fijo: la primera ficha y "+N" */
html body .dv-cab .lpv-tok{max-width:230px !important}
html body .dv-cab .lpv-tok .lpv-ficha ~ .lpv-ficha{display:none !important}
html body .dv-cab .lpv-tok-in{overflow:hidden !important;-webkit-mask-image:none !important;mask-image:none !important}
.dv-masn{flex:none;display:inline-flex;align-items:center;height:26px;padding:0 9px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(17,17,20,.12);font-size:13px;font-weight:600;color:#1d1d1f;margin-right:4px}
/* resumen de la busqueda */
.dv-resumen{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;max-width:100%;margin:10px 6px 2px;font-size:13.5px;color:#45454c;text-align:center}
.dv-resumen[hidden]{display:none}
.dv-rf{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 4px 0 10px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(17,17,20,.1);font-weight:600;color:#111113}
.dv-rf button{width:18px;height:18px;border:0;border-radius:50%;background:rgba(17,17,20,.07);display:grid;place-items:center;cursor:pointer;padding:0}
.dv-rf button:hover{background:rgba(17,17,20,.15)}
.dv-rf svg{width:11px;height:11px;fill:none;stroke:#1d1d1f;stroke-width:2.4;stroke-linecap:round}
.dv-rt{color:#8a8a92}
.dv-rx{color:#45454c}
@media (max-width:900px){
  .dv-nueva > .dv-cab{top:calc(var(--dv-m) + 8px);width:calc(100% - 2 * var(--dv-m) - 16px);max-width:none;border-radius:22px;padding:8px !important}
  html body .dv-cab .lpv-tok{max-width:none !important}
}
/* (5 nov 2026, Luis) arreglos del panel: la vista ocupa toda la caja (si no, el mapa medía 0), la primera ficha se ve desde
   el principio (sin el desplazamiento al final de la portada) y un solo borde de degradado (el del panel) */
.dv-nueva{position:absolute !important;inset:0}
html body .dv-cab .lpv-tok-in{overflow:clip !important}
html body .dv-cab .lpv-sb{border-color:transparent !important;background:transparent !important;box-shadow:none !important;padding:0 !important}
html body .dv-cab .lpv-sb::before,html body .dv-cab .lpv-sb::after{display:none !important}
html body .dv-cab .lpv-tok,html body .dv-cab .lpv-tope-b,html body .dv-cab .lpv-fp{background:rgba(255,255,255,.75) !important}
html body .dv-cab .lpv-fp.con{background:#1d1d1f !important}
.dv-nueva > .dv-cab{background:rgba(255,255,255,.78) !important}   /* un punto mas opaco: se lee mejor sobre el mapa */

/* (5 nov 2026, Luis) en el campo no van fichas negras (lo elegido se ve abajo): solo el texto "Restaurant +2". Y los
   filtros con algo elegido no se ponen negros: fondo blanco con filo oscuro; el unico negro es Search */
html body .dv-cab .lpv-tok .lpv-ficha{display:none !important}
.dv-masn{flex:0 1 auto;min-width:0;height:auto;padding:0;margin-right:6px;border-radius:0;background:none !important;box-shadow:none !important;font-size:15px;font-weight:500;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body .dv-cab .lpv-fp.con{background:#fff !important;color:#1d1d1f !important;box-shadow:inset 0 0 0 1.5px rgba(17,17,20,.55) !important}
html body .dv-cab .lpv-fp.con .ic,html body .dv-cab .lpv-fp.con .ch{color:#1d1d1f !important;stroke:#55555c !important}
html body .dv-cab .lpv-fp.con .ic svg{stroke:#1d1d1f !important}
html body .dv-cab .lpv-fp.con .ic svg .bdg{stroke:#fff !important}
html body .dv-cab .lpv-fp.con .ic svg .bdg-s{stroke:#fff !important}
html body .dv-cab .lpv-fp.con .ic svg circle[fill]{fill:#1d1d1f !important}
/* el resumen va FUERA del panel, justo debajo, sin contaminarlo */
.dv-nueva > .dv-cab{padding-bottom:12px !important}
.dv-resumen{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);width:max-content;max-width:min(100vw - 300px, 1100px);margin:0 !important;
  padding:8px 12px;border-radius:16px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 0 1px rgba(17,17,20,.07),0 10px 24px -14px rgba(17,17,20,.35)}
@media (max-width:900px){.dv-resumen{max-width:calc(100vw - 40px)}}
html body .dv-cab .lpv-fp.con span,html body .dv-cab .lpv-fp.con > span{color:#1d1d1f !important;-webkit-text-fill-color:#1d1d1f}
@media (max-width:1023px){.dv-nueva > .dv-cab{top:calc(var(--dv-m) + 52px) !important}}   /* en movil, por debajo del boton del menu */
/* (5 nov 2026, Luis) el panel un poco mas abajo dentro del mapa */
@media (min-width:1024px){.dv-nueva > .dv-cab{top:calc(var(--dv-m) + 40px) !important}}
/* (5 nov 2026, Luis) los desplegables salen 12 px por debajo del panel de cristal (no pegados a su borde) y, mientras hay
   uno abierto, el resumen se esconde para no mezclarse con el */
html body .dv-cab .lpv-sb .lpv-sug,html body .dv-cab .lpv-sb .lpv-paises,html body .dv-cab .lpv-sb .lpv-tope-l,html body .dv-cab .lpv-sb .lpv-fm{top:calc(100% + 26px) !important}
.dv-cab:has(.lpv-sug:not([hidden]),.lpv-paises:not([hidden]),.lpv-tope-l:not([hidden]),.lpv-fm) .dv-resumen{opacity:0;pointer-events:none}
.dv-resumen{transition:opacity .15s ease}
@media (max-width:900px){html body .dv-cab .lpv-sb .lpv-sug,html body .dv-cab .lpv-sb .lpv-paises,html body .dv-cab .lpv-sb .lpv-tope-l,html body .dv-cab .lpv-sb .lpv-fm{top:calc(100% + 16px) !important}}
/* (5 nov 2026, Luis) los campos de tipo y lugar con ancho FIJO: al elegir algo ya no se encogen ni cambia el panel */
@media (min-width:901px){
  html body .dv-cab .lpv-tok[data-k="cat"],html body .dv-cab .lpv-tok[data-k="lug"]{flex:0 0 206px !important;width:206px !important;min-width:206px !important;max-width:206px !important}
}
html body .dv-cab .lpv-tok .lpv-tok-in{flex:1 1 auto !important;min-width:0 !important}
html body .dv-cab .lpv-tok .lpv-tok-in input{flex:1 1 auto !important;width:100% !important;min-width:0 !important}

/* (5 nov 2026, Luis) el aviso de dibujar un area va abajo, no detras del panel de busqueda */
.dv-aviso-dib{top:auto !important;bottom:24px !important;z-index:7 !important}
@media (max-width:900px){.dv-aviso-dib{bottom:64px !important}}
/* (5 nov 2026, Luis) todas las pastillas de ancho fijo: el panel no se mueve al elegir (100 -> 5,000, Contact info -> Email) */
@media (min-width:901px){
  html body .dv-cab .lpv-tope,html body .dv-cab .lpv-tope-b{width:104px !important;min-width:104px !important;justify-content:space-between}
  html body .dv-cab .lpv-fp:not(.solo){width:172px !important;justify-content:space-between}
  html body .dv-cab .lpv-fp:not(.solo) > span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:left}
  html body .dv-cab .lpv-fp.solo{width:72px !important;justify-content:center}
}

/* (5 nov 2026, Luis) pasos de compactacion de la barra (dash-vistas.js, ajustaBarra) */
@media (min-width:901px){
  html body .dv-cab.dv-c1 .lpv-fp:not(.solo){width:72px !important;justify-content:center}
  html body .dv-cab.dv-c1 .lpv-fp:not(.solo) > span{display:none !important}
  html body .dv-cab.dv-c2 .lpv-tok[data-k="cat"],html body .dv-cab.dv-c2 .lpv-tok[data-k="lug"]{flex-basis:172px !important;width:172px !important;min-width:172px !important;max-width:172px !important}
  html body .dv-cab.dv-c2 .lpv-tope,html body .dv-cab.dv-c2 .lpv-tope-b{width:92px !important;min-width:92px !important}
  html body .dv-cab.dv-c3 .lpv-sb-ir{padding:0 18px !important}
  html body .dv-cab.dv-c3 .lpv-sb-ir > span{display:none !important}
}
/* el aviso ("Add at least one business type.") debajo del panel, como el resumen, sin ensancharlo */
html body .dv-cab .lpv-error{position:absolute !important;left:50%;top:calc(100% + 10px);transform:translateX(-50%);margin:0 !important;width:max-content;max-width:calc(100% - 20px);
  padding:8px 14px;border-radius:14px;background:#fff;color:#b42318 !important;font-size:13.5px;font-weight:500;box-shadow:0 0 0 1px rgba(180,35,24,.18),0 10px 24px -14px rgba(17,17,20,.35);z-index:6}
html body .dv-cab .lpv-error:empty{display:none !important}
.dv-cab:has(.lpv-error:not(:empty)) .dv-resumen{opacity:0;pointer-events:none}
.dv-cab .lpv-busca-w{position:static !important}

/* (5 nov 2026, Luis) Searches en una pantalla: arriba el mapa con la busqueda flotando (lo que quede, ~62 %) y debajo la
   caja de jobs a lo ancho (38 %): a la izquierda la lista (en marcha, en cola, hechas) y a la derecha el registro del
   elegido; cada lado con su propio scroll. La tarjeta que flotaba sobre el mapa ya no hace falta */
.dv-nueva{position:absolute !important;inset:0;display:flex !important;flex-direction:column;gap:var(--dv-m);padding:var(--dv-m)}
.dv-nueva > .dv-mapa{position:relative !important;inset:auto !important;flex:1 1 62%;min-height:220px}
.dv-nueva > .dv-cab{top:calc(var(--dv-m) + 16px) !important}
.dv-vivo{display:none !important}
.dv-jobs{flex:0 0 38%;min-height:200px;display:flex;overflow:hidden}
.dv-jobs .dv-busq-in{flex:1;min-width:0;min-height:0 !important;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:16px;
  padding:14px 16px 12px !important;background:none !important;box-shadow:none !important;border-radius:0 !important}
.dv-jobs .dv-busq-cab{grid-column:1;grid-row:1;padding:0 !important}
.dv-jobs .dv-busq-cab .dv-h1{font-size:16px !important}
.dv-jobs .dv-nota{grid-column:1;grid-row:2;margin:2px 0 8px !important;font-size:12.5px}
.dv-jobs .dv-lista,.dv-jobs .dv-vacio{grid-column:1;grid-row:3;margin:0 !important;overflow-y:auto;overscroll-behavior:contain;min-height:0}
.dv-jobs .dv-fila{grid-template-columns:18px minmax(0,1.2fr) minmax(0,1.3fr) 54px 86px;min-height:48px;padding:6px 8px;gap:10px}
.dv-jobs .dv-reg{grid-column:2;grid-row:1 / span 3;margin:0 !important;display:flex;flex-direction:column;min-height:0;padding:12px 14px 10px}
.dv-jobs .dv-reg[hidden]{display:none}
.dv-jobs .dv-reg .dv-log{flex:1 1 auto;min-height:0;max-height:none !important;overflow-y:auto}
.dv-fila.cola .ic{color:#8a8a92}
@media (max-width:900px){
  .dv-nueva > .dv-mapa{flex:1 1 55%}
  .dv-jobs{flex:0 0 45%}
  .dv-jobs .dv-busq-in{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr) minmax(0,1fr)}
  .dv-jobs .dv-reg{grid-column:1;grid-row:4;margin-top:8px !important}
  .dv-jobs .dv-nota{display:none}
}

/* (5 nov 2026) filas de jobs: la columna del progreso con sitio (no se corta "12 / 100 leads"); el registro no se sale */
.dv-jobs .dv-fila{grid-template-columns:18px minmax(0,1fr) minmax(0,1.7fr) 40px auto !important}
.dv-jobs .dv-fila .es{display:flex;align-items:center;gap:8px;min-width:0}
.dv-jobs .dv-fila .es .barra{flex:0 0 64px}
.dv-jobs .dv-fila .es .n{white-space:nowrap}
.dv-jobs .dv-fila .es .r{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dv-jobs .dv-reg{min-width:0;overflow:hidden}
.dv-jobs .dv-reg .dv-log li{min-width:0}
@media (max-width:900px){.dv-jobs .dv-fila{grid-template-columns:18px minmax(0,1fr) auto !important}.dv-jobs .dv-busq-in{grid-template-columns:minmax(0,1fr) !important}}
@media (max-width:1439px){.dv-jobs .dv-fila .es .r{display:none}}   /* sin hueco, el "checked" va solo en el registro */

/* (5 nov 2026) sin partirse en dos filas solo desde 1101 px: por debajo los filtros van en la fila plegable de la barra
   (boton de ajustes) y esa fila necesita poder bajar */
@media (min-width:1101px){html body .dv-cab .lpv-sb{flex-wrap:nowrap !important}}

/* (5 nov 2026, Luis) la caja de busquedas (jobs) con el borde de degradado de marca, como el panel de busqueda */
.dv-jobs{position:relative;isolation:isolate}
.dv-jobs::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:2;
  background:linear-gradient(20deg,#a99fd6 0%,#93aed0 50%,#8fbfae 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}

/* (5 nov 2026, Luis) movil y tablet: barra compacta arriba, la busqueda en una hoja que sube desde abajo, y la pagina con
   scroll (mapa grande y luego las busquedas, sin cajas con scroll dentro) */
.dv-compacta,.dv-velo,.dv-hoja-cab{display:none}
@media (max-width:900px){
  .dv-nueva{display:block !important;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .dv-nueva > .dv-mapa{position:relative !important;height:max(340px,72dvh);margin-bottom:var(--dv-m)}
  .dv-jobs{display:block;overflow:visible}
  .dv-jobs .dv-busq-in{display:block !important}
  .dv-jobs .dv-lista,.dv-jobs .dv-vacio{overflow:visible !important}
  .dv-jobs .dv-reg{margin-top:12px !important}
  .dv-jobs .dv-reg .dv-log{max-height:260px !important}
  /* barra compacta, a la derecha del boton del menu */
  .dv-compacta{display:flex;align-items:center;gap:10px;position:absolute;z-index:6;top:calc(var(--dv-m) - 2px);left:52px;right:calc(var(--dv-m) + 6px);height:40px;padding:0 14px;
    border:1.5px solid transparent;border-radius:999px;font:inherit;font-size:14.5px;font-weight:500;color:#6b6b72;text-align:left;cursor:pointer;
    background:linear-gradient(rgba(255,255,255,.92),rgba(255,255,255,.92)) padding-box,linear-gradient(20deg,#a99fd6 0%,#93aed0 50%,#8fbfae 100%) border-box;
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 22px -12px rgba(17,17,20,.4)}
  .dv-compacta.con{color:#111113}
  .dv-compacta svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  .dv-compacta span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* el panel no se ve hasta que se abre la hoja */
  .dv-nueva > .dv-cab{display:none !important}
  .dv-nueva.dv-hoja-on > .dv-cab{display:block !important;position:fixed !important;z-index:1610;left:0;right:0;bottom:0;top:max(56px,10dvh) !important;transform:none !important;
    width:auto !important;max-width:none !important;margin:0 !important;padding:0 16px 96px !important;border-radius:22px 22px 0 0 !important;overflow-y:auto;overscroll-behavior:contain;
    background:#fff !important;-webkit-backdrop-filter:none;backdrop-filter:none;animation:dv-sube .28s cubic-bezier(.22,1,.36,1)}
  .dv-nueva.dv-hoja-on > .dv-cab::before{border-radius:22px 22px 0 0}
  @keyframes dv-sube{from{transform:translateY(40px);opacity:.4}}
  .dv-velo{display:block;position:fixed;inset:0;z-index:1605;background:rgba(17,17,20,.32);animation:dv-velo .2s ease}
  .dv-velo[hidden]{display:none}
  @keyframes dv-velo{from{opacity:0}}
  .dv-hoja-on .dv-hoja-cab{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:3;margin:0 -16px 10px;padding:16px 16px 10px;background:#fff}
  .dv-hoja-cab b{font-size:17px;font-weight:650}
  /* la barra dentro de la hoja: todo apilado, filtros a la vista y sin boton de ajustes */
  html body .dv-hoja-on .dv-cab .lpv-busca-w{max-width:none !important;width:100% !important}
  html body .dv-hoja-on .dv-cab .lpv-sb{display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:10px !important;width:100% !important;border-radius:0 !important}
  html body .dv-hoja-on .dv-cab .lpv-sb-campos{display:flex !important;flex-direction:column !important;gap:10px !important;width:100%}
  html body .dv-hoja-on .dv-cab .lpv-tok,html body .dv-hoja-on .dv-cab .lpv-tope,html body .dv-hoja-on .dv-cab .lpv-tope-b{width:100% !important;max-width:none !important;min-width:0 !important;height:52px !important;background:#f5f5f7 !important}
  html body .dv-hoja-on .dv-cab .lpv-aj-b{display:none !important}
  html body .dv-hoja-on .dv-cab .lpv-aj{display:block !important;grid-template-rows:1fr !important}
  html body .dv-hoja-on .dv-cab .lpv-aj-in{opacity:1 !important;display:flex !important;flex-wrap:wrap !important;gap:8px !important;padding:0 !important;overflow:visible !important}
  html body .dv-hoja-on .dv-cab .lpv-fp-w{flex:1 1 30%;position:relative !important}
  html body .dv-hoja-on .dv-cab .lpv-fp{width:100% !important;height:48px !important;justify-content:center;background:#f5f5f7 !important}
  html body .dv-hoja-on .dv-cab .lpv-fp.con{background:#fff !important}
  html body .dv-hoja-on .dv-cab .lpv-fm{left:0 !important;right:auto !important;min-width:min(300px,calc(100vw - 32px)) !important}
  html body .dv-hoja-on .dv-cab .lpv-fp-w:last-child .lpv-fm{left:auto !important;right:0 !important}
  html body .dv-hoja-on .dv-cab .lpv-sb-ir{position:fixed !important;z-index:1620;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:auto !important;height:54px !important;
    margin:0 !important;justify-content:center;font-size:16px !important;box-shadow:0 12px 30px -10px rgba(17,17,20,.45)}
  html body .dv-hoja-on .dv-cab .lpv-sb-ir > span{display:inline !important}
  .dv-hoja-on .dv-resumen{position:static !important;transform:none !important;width:auto !important;max-width:none !important;margin:14px 0 0 !important;justify-content:flex-start;box-shadow:none !important;background:none !important;padding:0 !important;opacity:1 !important;pointer-events:auto !important}
  html body .dv-hoja-on .dv-cab .lpv-error{position:static !important;transform:none !important;margin:10px 0 0 !important;width:auto !important}
}
/* (5 nov 2026) arreglos de la hoja movil: nada crea "bloque contenedor" (Search queda fijo abajo de verdad), campos altos,
   tres filtros iguales en una fila y sus desplegables a todo el ancho de la hoja, por encima del resumen */
@media (max-width:900px){
  .dv-nueva.dv-hoja-on > .dv-cab{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;filter:none !important;will-change:auto !important;contain:none !important}
  html body .dv-hoja-on .dv-cab .lpv-sb,html body .dv-hoja-on .dv-cab .lpv-busca-w{will-change:auto !important;transform:none !important;filter:none !important;contain:none !important}
  html body .dv-hoja-on .dv-cab .lpv-sb .lpv-sb-campos .lpv-tok{height:52px !important;min-height:52px !important;padding:0 14px 0 18px !important;display:flex !important;align-items:center}
  html body .dv-hoja-on .dv-cab .lpv-aj-in{position:relative !important;flex-wrap:nowrap !important}
  html body .dv-hoja-on .dv-cab .lpv-fp-w{flex:1 1 0 !important;min-width:0;position:static !important}
  html body .dv-hoja-on .dv-cab .lpv-fp{padding:0 10px !important;gap:6px}
  html body .dv-hoja-on .dv-cab .lpv-fp > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html body .dv-hoja-on .dv-cab .lpv-fm{left:0 !important;right:0 !important;min-width:0 !important;width:auto !important;z-index:80 !important;max-height:52dvh}
  .dv-hoja-on .dv-resumen{position:relative !important;z-index:1}
}
@media (max-width:900px){
  /* en la hoja, el resumen va arriba (justo bajo el titulo): asi se ve siempre lo que se va a buscar */
  .dv-nueva.dv-hoja-on > .dv-cab{display:flex !important;flex-direction:column}
  .dv-hoja-on .dv-hoja-cab{order:0}
  .dv-hoja-on .dv-resumen{order:1;margin:0 0 14px !important}
  .dv-hoja-on .dv-cab .lpv-busca-w{order:2;min-height:0 !important}
}
/* (5 nov 2026, Luis) movil: SIN hoja. El boton redondo del menu a la izquierda y a su lado la barra de busqueda normal
   (tipo, lugar, numero, ajustes con los filtros y Search), flotando sobre el mapa. La pagina sigue con scroll */
@media (max-width:900px){
  .dv-compacta,.dv-velo,.dv-hoja-cab{display:none !important}
  .dv-nueva > .dv-cab,.dv-nueva.dv-hoja-on > .dv-cab{display:block !important;position:absolute !important;z-index:6;top:calc(var(--dv-m) + 6px) !important;left:52px !important;right:calc(var(--dv-m) + 6px) !important;
    bottom:auto !important;transform:none !important;width:auto !important;max-width:none !important;margin:0 !important;padding:8px !important;border-radius:20px !important;overflow:visible !important;
    background:rgba(255,255,255,.86) !important;-webkit-backdrop-filter:blur(18px) saturate(1.5) !important;backdrop-filter:blur(18px) saturate(1.5) !important;animation:none !important}
  .dv-nueva > .dv-cab::before{border-radius:20px !important}
  html body .dv-cab .lpv-sb-ir{flex:1 1 auto !important;justify-content:center}
  html body .dv-cab .lpv-sb .lpv-sb-campos .lpv-tok{height:46px !important;min-height:46px !important}
  .dv-nueva .dv-resumen{position:absolute !important;left:0 !important;right:0 !important;transform:none !important;width:auto !important;max-width:none !important;top:calc(100% + 8px) !important;justify-content:flex-start;margin:0 !important}
  .dv-nueva > .dv-mapa{height:max(420px,78dvh) !important}
}

/* (5 nov 2026, Luis) movil: el boton del menu dentro del panel, a la izquierda de Business type; el flotante no se ve aqui */
.dv-menu{display:none}
@media (max-width:900px){
  body.vdash-nueva #vside-dash-flot{display:none !important}
  .dv-nueva > .dv-cab,.dv-nueva.dv-hoja-on > .dv-cab{left:calc(var(--dv-m) + 6px) !important}
  .dv-menu{display:grid;place-items:center;position:absolute;z-index:3;top:8px;left:8px;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:#f2f2f5;color:#16161c;cursor:pointer}
  .dv-menu:active{transform:scale(.95)}
  .dv-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  html body .dv-cab .lpv-sb .lpv-sb-campos .lpv-tok[data-k="cat"]{margin-left:54px !important;width:calc(100% - 54px) !important}
}
/* (5 nov 2026, Luis) el boton del menu mas visible: blanco, con el borde de degradado de marca, sombra y el icono mas marcado */
@media (max-width:900px){
  .dv-menu{border:2px solid transparent !important;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(20deg,#8b7fd0 0%,#6f95cc 50%,#5fa98f 100%) border-box !important;
    box-shadow:0 6px 16px -8px rgba(17,17,20,.45) !important;color:#111113 !important}
  .dv-menu svg{width:22px !important;height:22px !important;stroke-width:2.4 !important}
}

/* (5 nov 2026, Luis) en Searches, al hacer zoom en el mapa asomaba y parpadeaba el dashboard de detras: el CRM y el mapa
   grande seguian vivos debajo (cientos de marcadores con capa propia de GPU) y, con la memoria grafica justa durante el zoom,
   Chrome dejaba de pintar trozos de la capa de Searches. Fuera de la vista CRM no se pinta nada de lo de debajo. */
body.vdash-otra #map,
body.vdash-otra #leads-panel,
body.vdash-otra .vcaja,
body.vdash-otra #lead-detail-sidebar{visibility:hidden !important}
body.vdash-otra #map *,body.vdash-otra #leads-panel *{visibility:hidden !important}
/* (6 nov 2026, Luis) aviso de dibujo siempre visible y discreto; mas marcado mientras se dibuja */
.dv-aviso-dib{gap:8px !important;padding:7px 14px !important;font-size:12.5px;color:#48484a;background:rgba(255,255,255,.9) !important}
.dv-aviso-dib > svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.dv-aviso-dib.en-marcha{color:#111113;padding:6px 6px 6px 14px !important}
.dv-aviso-dib button[hidden]{display:none}
/* (6 nov 2026, Luis) pastilla del mapa: boton "Draw search area"; al dibujar, instrucciones y Cancel */
html body .dv-aviso-dib{padding:4px !important;gap:6px !important}
html body .dv-aviso-dib.en-marcha{padding:4px 4px 4px 14px !important}
.dv-dib-b{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 11px !important;border:0;border-radius:999px;background:#111113 !important;color:#fff !important;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .15s}
.dv-dib-b:hover{background:#2a2a2e !important}
.dv-dib-b:active{transform:scale(.96)}
.dv-dib-b svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.dv-dib-b svg circle{fill:#111113}
.dv-dib-t{font-size:12.5px;color:#1d1d1f}
.dv-aviso-dib [hidden]{display:none !important}
html body .dv-aviso-dib .dv-dib-b,html body .dv-aviso-dib .dv-dib-b span{color:#fff !important}
html body .dv-aviso-dib .dv-dib-b svg{stroke:#fff}
/* (6 nov 2026, Luis) pastilla blanca y, dentro, el boton "Draw search area" (gris suave, no negro) con el icono del lazo */
html body .dv-aviso-dib{background:#fff !important;padding:6px !important;border-radius:999px;box-shadow:0 0 0 1px rgba(17,17,20,.06),0 10px 28px -10px rgba(17,17,20,.35) !important}
html body .dv-aviso-dib.en-marcha{padding:6px 6px 6px 16px !important}
html body .dv-aviso-dib .dv-dib-b{background:#f2f2f5 !important;color:#1d1d1f !important;font-weight:600;height:36px;padding:0 16px 0 12px !important}
html body .dv-aviso-dib .dv-dib-b span{color:#1d1d1f !important}
html body .dv-aviso-dib .dv-dib-b:hover{background:#e8e8ec !important}
html body .dv-aviso-dib .dv-dib-b svg{width:18px;height:18px;stroke:#1d1d1f;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html body .dv-aviso-dib .dv-dib-b svg circle{fill:none}
/* (6 nov 2026, Luis) el gris del indice venia del mapa del dashboard (oculto en Searches por el parpadeo): el mismo gris de fondo */
html body.vdash-otra{background:#f2f2f5 !important}
/* (6 nov 2026, Luis) pastilla del mapa con sus estados: fichas de las areas, Add area, Edit / Delete, Cancel / Done */
html body .dv-aviso-dib{display:flex;align-items:center;flex-wrap:nowrap;max-width:calc(100% - 32px);white-space:nowrap}
html body .dv-aviso-dib .dv-dib-t{font-size:13px;color:#1d1d1f;padding:0 4px 0 2px;overflow:hidden;text-overflow:ellipsis}
html body .dv-aviso-dib .dv-dib-t b{font-weight:600}
html body .dv-aviso-dib .dv-dib-tit{font-weight:600;color:#6b6b72;font-size:12.5px}
html body .dv-aviso-dib.con-areas{padding:6px 6px 6px 16px !important}
html body .dv-aviso-dib button{font:inherit}
html body .dv-aviso-dib .dv-dib-x,html body .dv-aviso-dib .dv-dib-ok{height:34px;padding:0 14px;border:0;border-radius:999px;background:#f2f2f5;color:#1d1d1f;font-size:13px;font-weight:600;cursor:pointer}
html body .dv-aviso-dib .dv-dib-x:hover{background:#e8e8ec}
html body .dv-aviso-dib .dv-dib-ok{background:#111113;color:#fff}
html body .dv-aviso-dib .dv-dib-ok:hover{background:#2a2a2e}
html body .dv-aviso-dib .dv-dib-del{color:#c62828}
html body .dv-aviso-dib .dv-dib-cerrar{width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:#8e8e93;display:grid;place-items:center;cursor:pointer}
html body .dv-aviso-dib .dv-dib-cerrar:hover{background:#f2f2f5;color:#1d1d1f}
html body .dv-aviso-dib .dv-dib-cerrar svg,html body .dv-aviso-dib .dv-dib-fx svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
html body .dv-aviso-dib .dv-dib-ficha{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 5px 0 12px;border-radius:999px;background:#fff;
  box-shadow:inset 0 0 0 1px rgba(17,17,20,.12);font-size:13px;color:#1d1d1f;cursor:pointer}
html body .dv-aviso-dib .dv-dib-ficha:hover{box-shadow:inset 0 0 0 1.5px #1d1d1f}
html body .dv-aviso-dib .dv-dib-ficha b{font-weight:600}
html body .dv-aviso-dib .dv-dib-ficha > span{color:#6b6b72}
html body .dv-aviso-dib .dv-dib-ficha > span b{color:#1d1d1f}
html body .dv-aviso-dib .dv-dib-fx{width:22px;height:22px;padding:0;border:0;border-radius:50%;background:rgba(17,17,20,.07);color:#6b6b72;display:grid;place-items:center;cursor:pointer}
html body .dv-aviso-dib .dv-dib-fx:hover{background:rgba(17,17,20,.14);color:#1d1d1f}
html body .dv-aviso-dib .dv-dib-fx svg{width:11px;height:11px}
html body .dv-aviso-dib .dv-dib-b svg{flex:none}
/* (6 nov 2026, Luis) pastilla de inicio alargada: enunciado + boton */
html body .dv-aviso-dib.inicio{padding:6px 6px 6px 18px !important;gap:16px !important}
html body .dv-aviso-dib .dv-dib-intro{display:flex;flex-direction:column;gap:1px;line-height:1.25;padding:0}
html body .dv-aviso-dib .dv-dib-intro b{font-size:13px;font-weight:600;color:#1d1d1f}
html body .dv-aviso-dib .dv-dib-intro span{font-size:12px;color:#6b6b72}
@media (max-width:700px){ html body .dv-aviso-dib .dv-dib-intro span{display:none} }
/* (6 nov 2026, Luis) New Search: la caja de debajo del mapa es SOLO el log en vivo (una fila por negocio) */
html body .dv-live{flex-direction:column;padding:12px 14px 0;gap:8px}
.dv-live-cab{display:flex;align-items:center;gap:10px;min-width:0}
.dv-live-cab .pt{width:8px;height:8px;border-radius:50%;background:#c4c4cc;flex:none}
.dv-live.on .dv-live-cab .pt{background:#22c28a;box-shadow:0 0 0 4px rgba(34,194,138,.18);animation:dvLat 1.4s ease-in-out infinite}
.dv-live.mal .dv-live-cab .pt{background:#e5383b}
@keyframes dvLat{50%{box-shadow:0 0 0 7px rgba(34,194,138,.06)}}
.dv-live-tt{display:flex;flex-direction:column;min-width:0;flex:1}
.dv-live-t{font-size:14px;font-weight:600;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-live-s{font-size:12px;color:#6b6b72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-live-n{font-size:12.5px;color:#48484a;white-space:nowrap;font-variant-numeric:tabular-nums}
.dv-live .dv-bar{flex:none;height:3px;margin:0}
.dv-live-tabla{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;margin:0 -14px;position:relative}
.dv-live-tabla table{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:auto}
.dv-live-tabla thead th{position:sticky;top:0;z-index:1;background:#fafafb;text-align:left;font-weight:600;font-size:11.5px;color:#6b6b72;padding:7px 10px;border-bottom:1px solid rgba(17,17,20,.08);white-space:nowrap}
.dv-live-tabla thead th:first-child,.dv-live-tabla td:first-child{padding-left:14px}
.dv-live-tabla td{padding:7px 10px;border-bottom:1px solid rgba(17,17,20,.05);color:#1d1d1f;vertical-align:top;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.dv-live-tabla tr.ok{animation:dvEntra .45s ease-out}
@keyframes dvEntra{from{background:rgba(79,151,234,.12)}to{background:transparent}}
.dv-live-tabla td.nom{white-space:normal;min-width:180px;max-width:300px}
.dv-live-tabla td.nom b{font-weight:600;display:block}
.dv-live-tabla td.nom small{display:block;color:#8e8e93;font-size:11.5px}
.dv-live-tabla td.nom q{display:block;margin-top:3px;color:#b4232a;font-size:11.5px;font-style:italic}
.dv-live-tabla td a{color:#2563eb;text-decoration:none}
.dv-live-tabla td a:hover{text-decoration:underline}
.dv-live-tabla .nada{color:#c4c4cc}
.dv-live-tabla .est{color:#f5b301}
.dv-live-tabla td small{color:#8e8e93}
.dv-live-tabla td.wa .si{color:#16a34a;font-weight:700}
.dv-live-tabla td.redes span{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:6px;background:#f2f2f5;font-size:11px;color:#48484a}
.dv-live-tabla tr.no td{color:#a1a1a6}
.dv-live-tabla tr.no td.nom b{font-weight:500}
.dv-live-tabla tr.no td.motivo{font-size:11.5px}
.dv-live-tabla tr.bloq td{opacity:.6}
.dv-live-vacio{margin:0;padding:28px 14px;text-align:center;color:#8e8e93;font-size:13px}
.dv-live-vacio[hidden]{display:none}
/* Searches (historial): pagina propia */
html body .dv-busq .dv-busq-in{max-width:1100px;margin:0 auto}
html body .dv-live-open,html body .dv-live-open:hover{color:#fff !important;text-decoration:none}
/* (6 nov 2026, Luis) Open in Dashboard apagado mientras busca; Search en gris mientras hay una busqueda en marcha */
html body .dv-live-open.apagado{background:#e8e8ec !important;color:#a1a1a6 !important;pointer-events:none;cursor:default}
/* (6 nov 2026, Luis) columna de coincide / no coincide, y la caja de logs un 20 % mas alta */
.dv-live-tabla th.mk,.dv-live-tabla td.mk{width:26px;padding-right:0 !important;text-align:center}
.dv-live-tabla td.mk .v{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#111113;color:#fff;font-size:11px;font-weight:700}
.dv-live-tabla td.mk .x{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#fde8e8;color:#c62828;font-size:10px;font-weight:700}
.dv-live-tabla tr.no{animation:dvEntraNo .45s ease-out}
@keyframes dvEntraNo{from{background:rgba(229,56,59,.06)}to{background:transparent}}
.dv-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html body .dv-nueva .dv-jobs{flex:0 0 46% !important}
@media (max-width:1100px){html body .dv-nueva .dv-jobs{flex:0 0 52% !important}}
html body.light-ui a.dv-btn.dv-live-open:not(.x),html body a.dv-btn.dv-live-open:not(.x) *{color:#fff !important}
html body.light-ui a.dv-btn.dv-live-open.apagado:not(.x),html body a.dv-btn.dv-live-open.apagado:not(.x) *{color:#a1a1a6 !important}
/* la caja de logs ~20 % mas alta: mapa 54 % / logs 46 % */
html body .dv-nueva > .dv-mapa{flex:1 1 54% !important}
html body .dv-nueva > .dv-jobs{flex:1 1 46% !important;min-height:240px}
html body .dv-live-tabla td.redes span.nada{background:none;padding:0;margin:0;color:#c4c4cc}

/* (6 nov 2026, Luis) Live log como terminal: verde sobre blanco, monoespaciada, sin tablas */
.dv-live .dv-term{background:#fff;padding:10px 14px 12px;font:12px/1.6 ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  color:#0f7a35;white-space:pre-wrap;word-break:break-word;letter-spacing:0;scroll-behavior:auto}
.dv-term .l{min-height:1.6em}
.dv-term .l.cmd{color:#0a5c27;font-weight:600;margin-top:6px}
.dv-term .l.dim{color:#7aa98a}
.dv-term .l.ok{color:#0a9a40;font-weight:600}
.dv-term .l.lead{color:#064d20;font-weight:700;margin-top:4px}
.dv-term .l.warn{color:#a16207}
.dv-term .l.err{color:#d92d20;font-weight:600}
.dv-term-p{color:#0a5c27;font-weight:600;margin-top:4px}
.dv-term-p .pr{color:#0a5c27}
.dv-term-cur{display:inline-block;width:7px;height:13px;vertical-align:-2px;background:#0f7a35}   /* fijo: si parpadea parece que esta pensando */
.dv-term ::selection{background:#c9f2d6}

/* (6 nov 2026, Luis) Sin caja de logs: solo el mapa, a toda la altura. Sobre el mapa, la tarjeta pequena de la busqueda
   (progreso, Stop y Open in Dashboard), sin lineas de registro */
html body .dv-nueva > .dv-jobs,html body .dv-nueva .dv-live{display:none !important}
html body .dv-nueva > .dv-mapa{flex:1 1 100% !important}
html body .dv-vivo{display:flex !important}
html body .dv-vivo[hidden]{display:none !important}
.dv-vivo .dv-log,.dv-vivo .dv-vivo-todas{display:none !important}
/* (6 nov 2026, Luis) "Draw area" arriba del mapa, centrado; la tarjeta de la busqueda se queda abajo a la izquierda */
html body .dv-aviso-dib{top:16px !important;bottom:auto !important}

/* (6 nov 2026, Luis) Credits: la pagina de pricing en un marco que llena la caja del contenido */
.dv-cred{background:#fff}
.dv-cred-f{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff;color-scheme:light}
html body .dv-nueva[hidden],html body .dv-nueva.db-on[hidden],html body .dv-busq[hidden]{display:none !important}
/* (6 nov 2026, Luis) Credits con la misma caja que el CRM (.vcaja): a 16 px de arriba y 8 del menu, esquina de arriba a la
   izquierda redondeada, borde fino y el gris alrededor */
@media (min-width:1024px){
  body.vdash-creditos .dv{background:#f2f2f5}
  body.vdash-creditos .dv-cred{top:16px;left:8px;right:-1px;bottom:-1px;border:1px solid rgba(22,22,28,.08);border-radius:16px 0 0 0;overflow:hidden;background:#fff}
}
/* (9 nov 2026, Luis) "Open in Dashboard" de la tarjeta del mapa: pastilla negra con texto blanco (el estilo de enlaces
   del dashboard lo pintaba en azul) */
html body.light-ui a.dv-btn.dv-vivo-open,html body a.dv-btn.dv-vivo-open,html body a.dv-btn.dv-vivo-open *,
html body a.dv-btn.dv-vivo-open:hover{background:#111113 !important;color:#fff !important;text-decoration:none !important;font-weight:600}
html body a.dv-btn.dv-vivo-open:hover{background:#000 !important}
html body a.dv-btn.dv-vivo-open.apagado,html body a.dv-btn.dv-vivo-open.apagado *{background:#e8e8ec !important;color:#a1a1a6 !important}
html body a.dv-btn.dv-vivo-open:not(.apagado),html body a.dv-btn.dv-vivo-open:not(.apagado) *,html body.light-ui a.dv-btn.dv-vivo-open:not(.apagado),
html body.light-ui a.dv-btn.dv-vivo-open:not(.apagado) *{-webkit-text-fill-color:#fff !important}
