/* What2Do 2.0 · Mapa compacto (2026-10-20)
   Antes: título, filtros, «Mi ubicación», repartidores, «Pregunta al mapa» y una barra de vista con
   el aviso de giro se apilaban encima del mapa, y el pie legal ocupaba media pantalla.
   Ahora: la búsqueda y «Filtros» flotan sobre el mapa; a la derecha, una columna de botones
   redondos de 44 px (Mi ubicación · Capas · Brújula/Norte · Zoom de Leaflet); los filtros viven en
   una hoja inferior (w2-sheet, ds-2.css) con chips por categoría; el conteo es una píldora sobre el
   mapa; el aviso de giro es un toast de una sola vez; repartidores es una tarjeta compacta debajo;
   y el pie es una línea con el texto legal completo dentro de <details>.
   Mismos ids y misma lógica: los <select> siguen siendo la fuente de verdad. */

.w2m-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
html.w2m-lock,html.w2m-lock body{overflow:hidden}

/* ── Encabezado ── */
.hero.w2m-hero{padding:12px 18px;margin:0}
.hero.w2m-hero h1{font-size:clamp(22px,3.2vw,28px);margin:0;line-height:1.15}
.hero.w2m-hero p{margin:3px 0 0;font-size:13.5px;line-height:1.45}

/* ── Escenario del mapa ── */
.w2m-stage{position:relative;isolation:isolate;margin-top:10px;font-family:var(--w2-font)}
.w2m-stage #map{width:100%;height:clamp(420px,calc(100vh - 280px),760px);border-radius:var(--w2-r-lg);box-shadow:var(--w2-shadow-lg);z-index:0}
.w2m-stage .leaflet-control-attribution{font-size:10px;line-height:1.4;border-radius:8px 0 0 0;background:rgba(255,255,255,.82)!important}

/* Barra superior: «Pregunta al mapa» + Filtros */
.w2m-top{position:absolute;z-index:1100;top:10px;left:10px;right:10px;display:flex;gap:8px;align-items:center;pointer-events:none}
.w2m-top>*{pointer-events:auto}
.w2m-ask{flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:46px;padding:0 4px 0 14px;margin:0;border:1px solid var(--w2-line);border-radius:var(--w2-pill);background:#fff;box-shadow:var(--w2-shadow-lg)}
.w2m-ask:focus-within{border-color:var(--w2-brand-aa);box-shadow:0 0 0 3px rgba(5,150,105,.18),var(--w2-shadow-lg)}
.w2m-ask-ic{width:19px;height:19px;flex:none;color:var(--w2-muted)}
.w2m-ask input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0;font:500 16px/1.2 var(--w2-font);color:var(--w2-ink);-webkit-appearance:none;appearance:none}
.w2m-ask input::placeholder{color:var(--w2-muted)}
.w2m-ask input::-webkit-search-cancel-button{display:none}
.w2m-ask-go{flex:none;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:var(--w2-brand-aa);color:#fff;cursor:pointer}
.w2m-ask-go svg{width:18px;height:18px}
.w2m-ask-go:focus-visible,.w2m-filterbtn:focus-visible,.w2m-fabbtn:focus-visible,.w2m-x:focus-visible,.w2m-menu .mapViewBtn:focus-visible,.w2m-legal summary:focus-visible,.mapDriverActions a:focus-visible,.mapAskResult button:focus-visible{outline:3px solid rgba(5,150,105,.45);outline-offset:2px}
.w2m-filterbtn{position:relative;flex:none;display:inline-flex;align-items:center;gap:7px;height:46px;padding:0 15px 0 13px;border:1px solid var(--w2-line);border-radius:var(--w2-pill);background:#fff;color:var(--w2-ink);font:650 14px/1 var(--w2-font);box-shadow:var(--w2-shadow-lg);cursor:pointer}
.w2m-filterbtn svg{width:19px;height:19px;color:var(--w2-brand-aa)}
.w2m-filterbtn.has-filters{border-color:var(--w2-brand-aa);color:var(--w2-brand-ink)}
.w2m-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--w2-pill);background:var(--w2-cta);color:#fff;font:700 11.5px/1 var(--w2-font)}
.w2m-badge[hidden]{display:none}

/* Panel de «Pregunta al mapa» */
.w2m-askpanel{position:absolute;z-index:1150;top:64px;left:10px;right:10px;max-height:calc(100% - 84px);overflow:auto;overscroll-behavior:contain;padding:12px;border:1px solid var(--w2-line);border-radius:var(--w2-r-lg);background:#fff;box-shadow:var(--w2-shadow-lg)}
.w2m-askpanel[hidden]{display:none}
.mapAskHead{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.mapAskHead b{display:block;color:var(--w2-ink);font-size:14px}
.mapAskHead small{display:block;margin-top:2px;color:var(--w2-muted);font-size:12px;line-height:1.4}
.mapAskPrompts{margin-top:10px}
.mapAskPrompts .w2-chip{height:34px;font-size:13px;padding:0 12px}
.mapAskStatus{margin:8px 1px 0;color:var(--w2-body);font-size:12.5px;line-height:1.4}
.mapAskStatus:empty{display:none}
.mapAskResults{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px}
.mapAskResults:empty{display:none}
.mapAskResult{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid var(--w2-line);border-radius:12px;background:#fff}
.mapAskResult b{display:block;font-size:13px;color:var(--w2-ink);line-height:1.25}
.mapAskResult span{display:block;margin-top:2px;color:var(--w2-muted);font-size:11.5px;line-height:1.3}
.mapAskResult button{flex:none;min-height:36px;border:0;border-radius:var(--w2-pill);padding:0 12px;background:var(--w2-brand-tint);color:var(--w2-brand-ink);font:700 12px/1 var(--w2-font);cursor:pointer}
.w2m-x{flex:none;display:grid;place-items:center;width:40px;height:40px;margin:-4px -4px 0 0;border:1px solid var(--w2-line);border-radius:50%;background:#fff;color:var(--w2-ink);cursor:pointer}
.w2m-x svg{width:18px;height:18px}

/* Columna de botones redondos */
.w2m-fab{position:absolute;z-index:1100;top:66px;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.w2m-fabbtn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--w2-line);border-radius:50%;background:#fff;color:var(--w2-ink);box-shadow:var(--w2-shadow-lg);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.w2m-fabbtn svg{width:21px;height:21px}
.w2m-fabbtn:hover{color:var(--w2-brand-aa);border-color:var(--w2-brand)}
.w2m-fabbtn[aria-expanded=true]{background:var(--w2-brand-aa);border-color:var(--w2-brand-aa);color:#fff}
.w2m-fabbtn:disabled{opacity:.45;cursor:not-allowed}
.w2m-compass .mapCompassArrow{display:block;width:26px;height:26px;color:var(--w2-muted);transform-origin:50% 50%;transition:transform .12s linear}
.w2m-compass .mapCompassArrow svg{width:26px;height:26px}
.w2m-compass.is-rotated{border-color:var(--w2-cta)}
.w2m-compass.on{background:var(--w2-brand-tint);border-color:var(--w2-brand-aa)}
.w2m-compass.on .mapCompassArrow{color:var(--w2-brand-ink)}
.w2m-zoom .leaflet-control-zoom{float:none;clear:none;margin:0;display:flex;flex-direction:column;border:1px solid var(--w2-line)!important;border-radius:22px;overflow:hidden;background:#fff;box-shadow:var(--w2-shadow-lg);font:700 22px/1 var(--w2-font)}
.w2m-zoom .leaflet-control-zoom a{display:grid;place-items:center;width:44px!important;height:44px!important;line-height:44px!important;font-size:22px!important;color:var(--w2-ink);background:#fff;border:0;border-radius:0!important;text-decoration:none}
.w2m-zoom .leaflet-control-zoom a+a{border-top:1px solid var(--w2-line)}
.w2m-zoom .leaflet-control-zoom a:hover{color:var(--w2-brand-aa);background:var(--w2-soft)}
.w2m-zoom .leaflet-control-zoom a:focus-visible{outline:3px solid rgba(5,150,105,.45);outline-offset:-3px}
.w2m-zoom .leaflet-control-zoom a.leaflet-disabled{color:#b8bec7;background:#fff}

/* Menú de capas */
.w2m-layers{position:relative}
.w2m-menu{position:absolute;z-index:1200;top:0;right:54px;width:244px;padding:12px;border:1px solid var(--w2-line);border-radius:var(--w2-r);background:#fff;box-shadow:var(--w2-shadow-lg)}
.w2m-menu[hidden]{display:none}
.w2m-menu-h{margin:0 0 7px;font:700 11px/1.2 var(--w2-font);letter-spacing:.06em;text-transform:uppercase;color:var(--w2-muted)}
.w2m-menu-h~.w2m-menu-h{margin-top:12px}
.w2m-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.w2m-menu .mapViewBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:58px;padding:6px 4px;border:1px solid var(--w2-line);border-radius:12px;background:#fff;color:var(--w2-body);font:600 12px/1.1 var(--w2-font);cursor:pointer}
.w2m-menu .mapViewBtn .ic{width:20px;height:20px}
.w2m-menu .mapViewBtn.on,.w2m-menu .mapViewBtn[aria-pressed=true]{border-color:var(--w2-brand-aa);background:var(--w2-brand-tint);color:var(--w2-brand-ink)}
.w2m-menu .mapViewBtn:disabled{opacity:.45;cursor:not-allowed}
.w2m-menu .w2m-menurow{flex-direction:row;width:100%;min-height:42px;margin-top:12px;gap:8px;font-size:13px}
.w2m-opacity{display:flex;align-items:center;gap:10px;min-height:36px;font:600 12.5px/1 var(--w2-font);color:var(--w2-body)}
.w2m-opacity input{flex:1;min-width:0;accent-color:var(--w2-brand-aa)}

/* Píldora de conteo y toast */
.w2m-stage .count.w2m-count{position:absolute;z-index:1100;left:10px;bottom:24px;max-width:calc(100% - 20px);margin:0;padding:6px 12px;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:var(--w2-shadow);color:var(--w2-body);font:600 11.5px/1.35 var(--w2-font);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;pointer-events:none}
.w2m-stage .count.w2m-count:empty{display:none}
.w2m-toast{position:absolute;z-index:1130;left:50%;bottom:76px;transform:translate(-50%,8px);width:max-content;max-width:calc(100% - 40px);padding:9px 14px;border-radius:var(--w2-pill);background:rgba(15,23,42,.9);color:#fff;font:500 12.5px/1.35 var(--w2-font);text-align:center;box-shadow:var(--w2-shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s var(--w2-ease),visibility 0s .2s}
.w2m-toast strong{color:#fff}
.w2m-toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .2s,transform .2s var(--w2-ease)}

/* Ficha del lugar: flota sobre el mapa */
.w2m-stage .mapSheet:not([hidden]){position:absolute;z-index:1120;left:12px;bottom:72px;width:min(400px,calc(100% - 84px));margin:0;box-shadow:var(--w2-shadow-lg);animation:mapSheetUp .22s var(--w2-ease)}

/* Check-in «¿Estás aquí?»: píldora flotante independiente (2026-10-20).
   Antes era un control Leaflet en la esquina superior derecha y su texto «¿Estás…» se encimaba con
   «Filtros» y la columna de botones. Ahora flota abajo a la izquierda, por encima de la píldora de
   conteo, con z-index propio (debajo de la ficha, el toast y la hoja de filtros) y se oculta
   mientras la ficha del lugar está abierta para no taparla. El botón interno (.w2dci-btn) ya trae
   su estilo de píldora desde wwd/checkin.js. */
.w2m-stage .w2m-checkin{position:absolute;z-index:1115;left:10px;bottom:72px;pointer-events:auto}
.w2m-stage .mapSheet:not([hidden])~.w2m-checkin{display:none}

/* ── Canal de repartidores (tarjeta compacta) ── */
.mapDriverChannel{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:8px 8px 8px 10px;border:1px solid var(--w2-line);border-radius:var(--w2-r);background:#fff;box-shadow:var(--w2-shadow);font-family:var(--w2-font)}
.mapDriverChannelIcon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:11px;background:var(--w2-brand-tint);color:var(--w2-brand-ink)}
.mapDriverChannelIcon .ic{width:19px;height:19px}
.mapDriverChannelCopy{min-width:0;flex:1}
.mapDriverChannelCopy b{display:block;font-size:13px;line-height:1.25;color:var(--w2-ink)}
.mapDriverChannelCopy small{display:block;margin-top:1px;color:var(--w2-muted);font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapDriverActions{display:flex;gap:6px;flex:none}
.mapDriverActions a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:var(--w2-pill);border:1px solid var(--w2-line);background:#fff;color:var(--w2-brand-ink);font:650 12px/1 var(--w2-font);text-decoration:none;white-space:nowrap}
.mapDriverActions a:last-child{background:var(--w2-cta);border-color:var(--w2-cta);color:#fff}

/* ── Hoja de filtros ── */
.w2m-backdrop{position:fixed;inset:0;z-index:9995;background:rgba(15,23,42,.38)}
.w2m-backdrop[hidden]{display:none}
.w2-sheet.w2m-filters{z-index:10000;max-height:min(86vh,760px);padding-bottom:0;font-family:var(--w2-font);overscroll-behavior:contain}
.w2m-filters-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.w2m-filters-head h2{margin:0;font:750 18px/1.2 var(--w2-font);color:var(--w2-ink)}
.mapFilterSummary{margin:3px 0 0;color:var(--w2-muted);font-size:12.5px;line-height:1.35}
.w2m-h3{margin:16px 0 8px;font:700 11.5px/1.2 var(--w2-font);letter-spacing:.06em;text-transform:uppercase;color:var(--w2-muted)}
.w2m-catlabel{margin:12px 0 6px;font:650 12.5px/1.2 var(--w2-font);color:var(--w2-body)}
.w2m-catrow{display:flex;flex-wrap:wrap;gap:6px}
.w2m-chip{height:36px;padding:0 12px;font-size:13px}
.w2m-chip[data-group=comer] svg{color:var(--w2-cat-comer)}
.w2m-chip[data-group=compras] svg{color:var(--w2-cat-compras)}
.w2m-chip[data-group=salud] svg{color:var(--w2-cat-salud)}
.w2m-chip[data-group=hospedaje] svg{color:var(--w2-cat-hospedaje)}
.w2m-chip[data-group=turismo] svg{color:var(--w2-cat-turismo)}
.w2m-chip[data-group=servicios] svg{color:var(--w2-cat-servicios)}
.w2m-chip[data-group=movilidad] svg{color:var(--w2-cat-auto)}
.w2m-chip[data-group=comunidad] svg{color:var(--w2-brand-ink)}
.w2m-chip[aria-pressed=true] svg{color:#fff}
.w2m-zone{display:grid;grid-template-columns:1fr;gap:10px}
.w2m-field{display:flex;flex-direction:column;gap:5px;min-width:0;font:600 12.5px/1.2 var(--w2-font);color:var(--w2-body)}
.w2m-field select{width:100%;min-width:0;height:46px;padding:0 38px 0 12px;border:1px solid var(--w2-line);border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23526077' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/18px;color:var(--w2-ink);font:500 16px/1.2 var(--w2-font);-webkit-appearance:none;appearance:none;cursor:pointer}
.w2m-field select:focus-visible{outline:3px solid rgba(5,150,105,.35);outline-offset:1px;border-color:var(--w2-brand-aa)}
.w2m-field select:disabled{background-color:var(--w2-sunk);color:var(--w2-muted);cursor:not-allowed}
.w2m-filters-foot{position:sticky;bottom:0;display:flex;gap:8px;margin:16px calc(-1 * var(--w2-s4)) 0;padding:12px var(--w2-s4) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--w2-line);background:#fff}
.w2m-filters-foot .w2-btn-pri{flex:1}

/* ── Pie compacto ── */
footer.f.w2m-foot{padding:14px 16px;font-size:12.5px}
.w2m-foot-line{margin:0;color:var(--w2-muted)}
.w2m-foot-line b{color:var(--w2-ink)}
.w2m-legal{max-width:920px;margin:4px auto 0}
.w2m-legal summary{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 6px;cursor:pointer;list-style:none;color:var(--w2-brand-aa);font:600 12.5px/1 var(--w2-font);border-radius:8px}
.w2m-legal summary::-webkit-details-marker{display:none}
.w2m-legal summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.w2m-legal[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
.w2m-legal-body{padding:6px 2px 4px;text-align:left}
.w2m-legal-lead{margin:0;font-size:12px;line-height:1.55;color:var(--w2-muted)}

/* ── Escritorio ── */
@media(min-width:721px){
  .w2m-top{right:auto;width:min(560px,calc(100% - 80px))}
  .w2m-askpanel{right:auto;width:min(560px,calc(100% - 80px))}
  .w2m-zone{grid-template-columns:repeat(3,minmax(0,1fr))}
  .w2m-field select{font-size:14.5px}
}

/* ── Teléfono: mapa primero ── */
@media(max-width:720px){
  .hero.w2m-hero{padding:8px 2px 0;background:none;box-shadow:none;border:0}
  .hero.w2m-hero h1{font-size:20px}
  .hero.w2m-hero p{display:none}
  .w2m-stage{margin-top:8px}
  .w2m-stage #map{height:calc(100svh - 196px);min-height:380px}
  .w2m-stage .mapSheet:not([hidden]){position:fixed;left:10px;right:10px;width:auto;bottom:calc(96px + env(safe-area-inset-bottom));z-index:1200;max-height:46vh;overflow:auto;border-radius:22px;box-shadow:0 18px 48px -18px rgba(15,23,42,.45)}
  .mapDriverChannelCopy small{display:none}
}
@media(max-width:400px){
  .w2m-ask{padding-left:16px}
  .w2m-ask-ic{display:none}
}
@media(max-width:380px){
  .w2m-ask{padding-left:14px}
  .w2m-ask-go{width:36px;height:36px}
  .w2m-filterbtn{gap:5px;padding:0 11px 0 10px}
  .mapDriverActions a{padding:0 10px}
}
@keyframes mapSheetUp{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.w2m-stage .mapSheet:not([hidden]){animation:none}.w2m-toast,.w2m-compass .mapCompassArrow{transition:none}}
/* El dock fijo de abajo tapaba la tarjeta «Canal de repartidores» (1280×900): el último bloque debe poder subir por encima del dock. */
html body main{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}
