/* PIS Movilidad: mapa a pantalla completa, overlay adaptativo.
   Ingeniero Juan Pablo Llinás Ramírez — Puro Ingenio Samario. */
html:has(body.mapa-pantalla){height:100%;overflow:hidden}
body.mapa-pantalla{height:100%;height:100dvh;width:100%;overflow:hidden;margin:0;background:#e5eef3}
.mapa-pantalla *{box-sizing:border-box}
#mapa-vial{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:0;background:#dfe9ed;overflow:hidden}
.mapa-pantalla .leaflet-container{font:inherit}
.mapa-pantalla .leaflet-top.leaflet-left{top:140px}
.mapa-pantalla .leaflet-control-zoom{margin-left:14px;margin-top:6px;border-radius:12px;overflow:hidden;box-shadow:0 3px 18px #0e3e5e22}
.mapa-pantalla .leaflet-control-attribution{font-size:10px}
.mapa-cabecera{position:fixed;z-index:1100;top:10px;left:12px;right:12px;min-height:55px;padding:7px 13px;border-radius:15px;background:#ffffffef;box-shadow:0 7px 28px #14395629;display:flex;align-items:center;gap:12px;backdrop-filter:blur(14px);border:1px solid #e5eff6}
.mapa-logo{display:flex;align-items:center;flex:none}
.mapa-logo img{width:110px;height:auto;max-height:39px}
.mapa-cabecera-titulo{min-width:0;display:grid;gap:0}
.mapa-cabecera-titulo strong{font-weight:850;font-size:15px;color:#0c3856;letter-spacing:-.3px;white-space:nowrap}
.mapa-cabecera-titulo small{font-size:10px;color:#67849a;white-space:nowrap}
.mapa-enlaces{margin-left:auto;display:flex;align-items:center;gap:15px}
.mapa-enlaces a{color:#204b67;font-size:11px;font-weight:750;text-decoration:none;white-space:nowrap}
.mapa-enlaces .mapa-enlace-acceso{background:#0d3e60;color:#fff;padding:8px 12px;border-radius:9px}
.mapa-menu-compacto{display:none}
.mapa-menu-compacto summary{cursor:pointer;list-style:none;background:#0b3c5f;color:white;padding:8px 12px;border-radius:9px;font-size:11px;font-weight:800}
.mapa-menu-compacto summary::-webkit-details-marker{display:none}
.mapa-menu-compacto nav{position:absolute;top:calc(100% + 8px);right:0;display:grid;gap:1px;min-width:175px;background:#fff;border:1px solid #d9e7f1;border-radius:12px;padding:6px;box-shadow:0 9px 28px #12435a33}
.mapa-menu-compacto nav a{padding:10px;border-radius:7px;color:#174b68;text-decoration:none;font-size:12px;font-weight:750}
.mapa-menu-compacto nav a:hover{background:#ebf6fb}
.mapa-barra-flotante{position:fixed;z-index:1000;top:77px;left:12px;display:flex;align-items:center;gap:8px;padding:8px;background:#fffef5f3;background:#ffffffee;border-radius:14px;box-shadow:0 6px 25px #113d5926;backdrop-filter:blur(12px);border:1px solid #deebf2;max-width:calc(100vw - 24px)}
.mapa-icon-action{width:auto!important;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#f0f8fc;color:#154a69;border:1px solid #d7e8f1;border-radius:10px;font-size:12px;font-weight:800;padding:9px 11px;min-height:39px;cursor:pointer;white-space:nowrap}
.mapa-icon-action svg{width:17px;height:17px}
.mapa-icon-action:hover,.mapa-icon-action:focus-visible{background:#dff2fd;outline-color:#007db5}
.mapa-gps{background:#0a73aa;border-color:#0a73aa;color:#fff}
.mapa-gps:hover{background:#0b6392}
.mapa-radio-control{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:850;color:#2d5670}
.mapa-radio-linea{display:flex;align-items:center;gap:2px;border:1px solid #d0e2ec;border-radius:9px;background:#fff;padding:0 8px}
.mapa-radio-linea input{width:66px;height:37px;padding:3px;border:0;outline-offset:0;background:transparent;font-size:13px;font-weight:800;color:#153d59;min-width:0}
.mapa-radio-linea em{font-size:10px;font-style:normal;color:#59778b}
.mapa-filtros-desplegable{position:relative}
.mapa-filtros-desplegable>summary{cursor:pointer;list-style:none;border:1px solid #d7e8f1;border-radius:9px;min-height:39px;display:grid;place-items:center;background:#f5fafc;padding:8px 11px;font-size:11px;font-weight:800;color:#1b5777}
.mapa-filtros-desplegable>summary::-webkit-details-marker{display:none}
.mapa-filtros-desplegable fieldset{position:absolute;top:calc(100% + 10px);right:0;min-width:190px;background:#fff;border:1px solid #d9e7f1;border-radius:11px;box-shadow:0 10px 25px #123e6429;padding:13px;display:grid;gap:9px}
.mapa-filtros-desplegable fieldset legend{font-size:10px;color:#54768c;font-weight:750;padding:0 3px}
.mapa-filtros-desplegable label{display:flex;gap:8px;align-items:center;font-size:12px;color:#234c66}
.mapa-filtros-desplegable input{accent-color:#0579b4}
.mapa-geolocalizacion{position:fixed;top:132px;left:14px;z-index:850;max-width:min(395px,calc(100vw - 28px));padding:7px 12px;font-size:11px;line-height:1.35;color:#315a72;border-radius:9px;background:#fffffff0;box-shadow:0 4px 18px #23425520;pointer-events:none}
.mapa-acciones-rapidas{position:fixed;z-index:950;top:81px;right:12px;width:min(292px,calc(100vw - 24px));padding:13px;background:#fffffff0;border:1px solid #dbe8ef;border-radius:15px;box-shadow:0 7px 26px #113b5830;backdrop-filter:blur(13px)}
.mapa-acciones-titulo{display:flex;flex-direction:column;gap:0;margin-bottom:9px}
.mapa-acciones-titulo strong{font-size:13px;font-weight:900;color:#103a58}
.mapa-acciones-titulo small{font-size:10px;color:#648298}
.mapa-acciones-botones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.mapa-reporte-boton{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;padding:9px 4px;background:#f4f9fc;border:1px solid #cde2ef;border-radius:11px;min-height:81px;color:#1d5476;font-size:10px;line-height:1.2;font-weight:850;cursor:pointer;text-align:center}
.mapa-reporte-boton svg{width:25px;height:25px}
.mapa-reporte-boton[data-categoria="RETEN_POLICIAL"]{background:#fff8ee;border-color:#f2d8b5;color:#ad6413}
.mapa-reporte-boton[data-categoria="BLOQUEO_VIAL"]{background:#fff5f2;border-color:#f0cfc8;color:#c34936}
.mapa-reporte-boton[data-categoria="SEGURIDAD"]{background:#edf9ff;border-color:#c7e4f3;color:#0d6a9e}
.mapa-reporte-boton:hover,.mapa-reporte-boton:focus-visible{outline:2px solid currentColor;outline-offset:1px}
.mapa-reporte-boton:disabled{opacity:.6;cursor:wait}
.mapa-acciones-ayuda{font-size:10px;line-height:1.45;color:#64839a;margin:9px 0 0}
.mapa-moderacion{font-size:10px;font-weight:750;display:inline-block;margin-top:6px}
.mapa-reportes-flotantes{position:fixed;z-index:910;left:14px;bottom:36px;width:min(340px,calc(100vw - 28px));background:#ffffffed;box-shadow:0 7px 29px #0d3b5930;border:1px solid #deebf2;border-radius:14px;overflow:hidden;backdrop-filter:blur(12px)}
.mapa-reportes-titulo{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;padding:13px 15px;background:#fff;color:#123e5a;font-size:12px;font-weight:850;cursor:pointer}
.mapa-reportes-titulo strong{display:inline-block;border-radius:99px;background:#0e76aa;color:#fff;font-size:11px;padding:3px 7px;margin-left:7px}
#mapa-chevron{font-size:16px;font-weight:800}
#mapa-panel-reportes{padding:0 12px 12px}
#mapa-panel-reportes[hidden]{display:none}
#mapa-estado{margin:0 0 7px;font-size:11px;color:#52738a}
.mapa-lista{overflow:auto;max-height:min(36vh,285px);display:grid;gap:7px}
.mapa-vacio{margin:0;padding:10px;font-size:11px;color:#55778e;border-radius:7px;background:#eff6f9}
.mapa-incidente{display:block;width:100%;text-align:left;background:#fff;border:1px solid #dce9ef;border-left:4px solid var(--incidente-color,#087eaa);border-radius:9px;padding:9px;cursor:pointer}
.mapa-incidente:hover,.mapa-incidente:focus-visible{background:#edf8fd;outline:1px solid #0b8bbe}
.mapa-incidente-cabecera{display:flex;align-items:center;justify-content:space-between;gap:6px}
.mapa-incidente-cabecera strong{font-size:11px;color:#1a435f}
.mapa-incidente-cabecera span{font-size:10px;color:#2176a5;font-weight:800}
.mapa-incidente-desc{font-size:11px;display:block;color:#526e80;margin:4px 0}
.mapa-incidente small{font-size:10px;color:#7c90a0}
.mapa-popup{display:grid;gap:4px}.mapa-popup strong{font-size:12px}.mapa-popup p{margin:0;font-size:11px}.mapa-popup small{font-size:10px;color:#5b7c8d}
.mapa-mensaje{position:fixed;z-index:1200;bottom:95px;left:50%;transform:translateX(-50%);background:#0a3c5ce8;color:#fff;padding:12px 15px;border-radius:12px;box-shadow:0 5px 23px #163e5a70;font-size:12px;line-height:1.4;max-width:calc(100vw - 30px);min-width:220px;text-align:center}
.mapa-mensaje[hidden]{display:none}
.mapa-info-minima{position:fixed;z-index:810;bottom:16px;left:14px;background:#ffffffc7;padding:4px 8px;border-radius:6px;font-size:9px;color:#547185;max-width:calc(100vw - 200px)}
.mapa-info-minima a{color:#185d82}
.pis-marcador-incidente{background:transparent;border:0}
.pis-marcador-incidente span{position:absolute;top:1px;left:2px;width:24px;height:24px;background:#fa7928;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px #05233759}
.pis-marcador-incidente span::after{content:'';position:absolute;top:6px;left:6px;width:6px;height:6px;background:#fff;border-radius:50%}
@media(max-width:860px){
 .mapa-cabecera-titulo small{display:none}
 .mapa-enlaces{display:none}
 .mapa-menu-compacto{display:block;margin-left:auto}
 .mapa-acciones-rapidas{width:248px}
 .mapa-acciones-botones{gap:5px}
 .mapa-reporte-boton{font-size:9px;padding:8px 3px}
}
@media(max-width:600px){
 .mapa-cabecera{top:7px;left:7px;right:7px;min-height:49px;padding:6px 9px;gap:7px;border-radius:11px}
 .mapa-logo img{width:80px;max-height:32px}
 .mapa-cabecera-titulo strong{font-size:12px;white-space:normal;line-height:1.15}
 .mapa-menu-compacto summary{font-size:10px;padding:8px}
 .mapa-barra-flotante{top:64px;left:7px;right:7px;max-width:none;gap:6px;padding:6px;border-radius:11px;justify-content:space-between}
 .mapa-icon-action{padding:7px 8px;min-height:36px;font-size:10px}
 .mapa-icon-action svg{width:16px;height:16px}
 .mapa-gps span,.mapa-actualizar-texto{display:none}
 .mapa-radio-control{gap:4px;font-size:10px}
 .mapa-radio-linea input{height:34px;width:58px;font-size:12px}
 .mapa-filtros-desplegable>summary{min-height:36px;padding:7px;font-size:10px}
 .mapa-geolocalizacion{top:113px;left:8px;font-size:10px;padding:6px 9px;max-width:calc(100vw - 16px)}
 .mapa-pantalla .leaflet-top.leaflet-left{top:148px}
 .mapa-pantalla .leaflet-control-zoom{margin-left:8px}
 .mapa-acciones-rapidas{top:auto;left:7px;right:7px;bottom:45px;width:auto;padding:8px 10px 10px;border-radius:12px}
 .mapa-acciones-titulo{flex-direction:row;gap:7px;align-items:center;margin-bottom:5px}
 .mapa-acciones-titulo strong{font-size:11px;white-space:nowrap}
 .mapa-acciones-titulo small{font-size:9px}
 .mapa-acciones-botones{gap:6px}
 .mapa-reporte-boton{flex-direction:row;min-height:43px;font-size:10px;gap:5px;padding:7px 4px}
 .mapa-reporte-boton svg{width:20px;height:20px;flex-shrink:0}
 .mapa-acciones-ayuda,.mapa-moderacion{display:none}
 .mapa-reportes-flotantes{left:7px;right:7px;bottom:167px;width:auto;border-radius:11px}
 .mapa-reportes-titulo{padding:9px 11px;font-size:11px}
 .mapa-lista{max-height:25vh}
 .mapa-mensaje{bottom:218px;font-size:11px}
 .mapa-info-minima{left:7px;bottom:11px;font-size:8px;max-width:calc(100vw - 110px)}
 .mapa-pantalla .leaflet-control-attribution{font-size:8px}
}
@media(max-width:350px){
 .mapa-cabecera-titulo{display:none}
 .mapa-acciones-titulo small{display:none}
 .mapa-reporte-boton span{font-size:9px}
}


/* Acceso y alta en modal: ninguna navegación ni recarga de la vista Leaflet. */
.mapa-auth-overlay{
  position:fixed;inset:0;z-index:3100;
  background:rgba(4,29,46,.58);
  display:flex;align-items:center;justify-content:center;
  padding:15px;backdrop-filter:blur(3px);
}
.mapa-auth-overlay[hidden],
.mapa-auth-paso[hidden],
#mapa-auth-codigo-verificar[hidden],
#mapa-auth-codigo-enviar[hidden]{display:none!important}
.mapa-auth-dialog{
  width:min(100%,475px);max-height:min(90dvh,720px);overflow:auto;
  color:#183d58;background:#fff;border-radius:17px;
  box-shadow:0 24px 70px rgba(3,24,41,.35);
  border:1px solid #dce9f2;padding:23px;
  overscroll-behavior:contain;outline:none;
}
.mapa-auth-cabecera{display:flex;justify-content:space-between;align-items:start;gap:12px}
.mapa-auth-etiqueta{color:#0b82b2;font-weight:850;letter-spacing:1.5px;font-size:10px}
.mapa-auth-cabecera h2{color:#123e5a;font-size:clamp(19px,3vw,24px);margin:4px 0 7px}
.mapa-auth-cabecera p{margin:0 0 14px;color:#607f92;font-size:12px;line-height:1.55}
.mapa-auth-cerrar{
  width:35px;height:35px;flex:none;border:1px solid #dce8f0;
  border-radius:10px;display:grid;place-items:center;
  font-size:26px;line-height:1;background:#f3f8fb;color:#234e65;
  cursor:pointer;padding:0
}
.mapa-auth-cerrar:hover{background:#e3f2fa}
.mapa-auth-paso{display:grid;gap:11px}
.mapa-auth-paso>p{font-size:12px;line-height:1.6;color:#58798f;margin:0 0 4px}
.mapa-auth-opcion{
  display:grid;gap:4px;text-align:left;width:100%;
  border:1px solid #cddfe9;border-radius:12px;
  background:#f8fbfe;padding:15px;cursor:pointer;
}
.mapa-auth-opcion:hover,.mapa-auth-opcion:focus-visible{background:#edf8fd;border-color:#0b82b4;outline-offset:1px}
.mapa-auth-opcion strong{color:#164b6a;font-size:13px}
.mapa-auth-opcion small{color:#638096;font-size:11px;line-height:1.5}
.mapa-auth-campo{display:grid;gap:6px;font-weight:760;font-size:12px;color:#284e68}
.mapa-auth-campo input{
  width:100%;min-width:0;min-height:44px;padding:11px 12px;
  border-radius:9px;border:1px solid #cbdde8;
  background:#fafdff;color:#183950;font:inherit;font-weight:500;
}
.mapa-auth-campo input:focus-visible{outline:2px solid #1b8fc5;outline-offset:1px}
.mapa-auth-consentimiento{
  display:flex;gap:10px;align-items:flex-start;
  line-height:1.5;font-size:11px;color:#527187;
}
.mapa-auth-consentimiento input{flex:none;margin-top:2px;accent-color:#057db0}
.mapa-auth-consentimiento a{color:#006d9e;font-weight:700}
.mapa-auth-principal{
  width:100%;min-height:45px;padding:11px 14px;
  border:none;border-radius:10px;background:#027cac;color:white;
  font-size:13px;font-weight:850;cursor:pointer;
}
.mapa-auth-principal:hover{background:#086a95}
.mapa-auth-principal:disabled{opacity:.6;cursor:progress}
.mapa-auth-volver,.mapa-auth-alternativa{
  width:100%;border:0;background:transparent;color:#0a6f9e;
  font-size:12px;font-weight:750;cursor:pointer;padding:7px;
}
.mapa-auth-volver{color:#627e90}
.mapa-auth-estado{font-size:12px;line-height:1.5;margin:7px 0 0;color:#176d90;min-height:1em}
.mapa-auth-estado[data-error="1"]{color:#ad342d}
#mapa-auth-codigo-verificar{display:grid;gap:10px}
@media(max-width:600px){
  .mapa-auth-overlay{padding:10px;align-items:center}
  .mapa-auth-dialog{padding:17px;border-radius:14px;max-height:calc(100dvh - 22px)}
  .mapa-auth-cabecera h2{font-size:19px}
  .mapa-auth-cabecera p{font-size:11px}
  .mapa-auth-opcion{padding:12px}
}


/* Pines coloreados e identificables a simple vista; mismos símbolos del botón. */
.pis-icono-reporte {
  border:0!important;background:transparent!important;
  width:44px;height:52px;overflow:visible!important;
}
.pis-icono-reporte-gota {
  position:absolute;top:4px;left:3px;
  display:grid;place-items:center;
  width:38px;height:38px;
  color:#fff;background:var(--pis-pin-color,#1685b5);
  border:3px solid #fff;border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:0 3px 10px rgba(7,37,57,.42);
}
.pis-icono-reporte svg {
  width:24px;height:24px;transform:rotate(45deg);
  stroke:#fff;stroke-width:2.2;
}
.pis-icono-reporte--nuevo .pis-icono-reporte-gota {
  box-shadow:0 0 0 5px rgba(255,255,255,.75),0 5px 15px rgba(8,38,59,.42);
}
.mapa-pantalla .leaflet-marker-icon:focus-visible {
  outline:3px solid #fff;outline-offset:3px;border-radius:50%;
}
@media (prefers-reduced-motion: no-preference) {
  .pis-icono-reporte--nuevo::after {
    content:'';position:absolute;top:0;left:0;
    width:45px;height:45px;border:2px solid var(--pis-pin-color,#0a80b5);
    border-radius:50%;opacity:.75;animation:pis-reporte-latido 2s ease-out 3;
    pointer-events:none;
  }
  @keyframes pis-reporte-latido{
    0%{transform:scale(.65);opacity:.85}
    100%{transform:scale(1.45);opacity:0}
  }
}


/* Selector de categorías y tipos: compacto para pantalla completa móvil. */
.mapa-acciones-botones{grid-template-columns:repeat(4,minmax(0,1fr))}
.mapa-reporte-boton[data-tipo-id]{
  background:color-mix(in srgb,var(--color-reporte,#1685b5) 9%,white);
  border-color:color-mix(in srgb,var(--color-reporte,#1685b5) 26%,white);
  color:var(--color-reporte,#1685b5);
}
.mapa-boton-icono{display:grid;place-items:center;width:27px;height:27px}
.mapa-boton-icono svg{width:25px;height:25px}
.mapa-boton-mas{background:#edf5fa!important;color:#27617e!important;border-color:#bed6e4!important}
.mapa-filtros-desplegable fieldset{
  max-height:min(62vh,480px);overflow-y:auto;overscroll-behavior:contain;
  width:min(305px,85vw);
}
.mapa-filtro-punto{width:10px;height:10px;border-radius:50%;flex:none}
.mapa-tipos-overlay{position:fixed;inset:0;z-index:3200;display:flex;
  align-items:center;justify-content:center;background:rgba(4,30,48,.58);
  padding:12px;backdrop-filter:blur(3px);
}
.mapa-tipos-overlay[hidden]{display:none!important}
.mapa-tipos-panel{
  display:flex;flex-direction:column;gap:12px;
  width:min(100%,660px);max-height:min(92dvh,780px);
  padding:20px;background:#fff;border-radius:18px;color:#1b4764;
  box-shadow:0 22px 65px rgba(3,24,41,.32);overflow:hidden;outline:none;
}
.mapa-tipos-cabecera{display:flex;align-items:start;justify-content:space-between;gap:12px}
.mapa-tipos-cabecera h2{margin:3px 0 6px;font-size:21px}
.mapa-tipos-cabecera p{font-size:12px;line-height:1.4;color:#607f92;margin:0}
.mapa-tipos-busqueda{display:grid;gap:6px;font-size:12px;font-weight:800}
.mapa-tipos-busqueda input{
  width:100%;min-height:44px;border:1px solid #cadfe9;border-radius:10px;
  padding:10px 12px;color:#123c5b;font-size:14px;background:#f8fcff;
}
.mapa-tipos-categorias{display:flex;gap:7px;overflow-x:auto;padding-bottom:5px;
  flex:none;scrollbar-width:thin;
}
.mapa-tipos-chip{white-space:nowrap;border:1px solid #d4e4ec;border-radius:18px;
  font-size:11px;min-height:34px;padding:6px 11px;background:#f3f8fc;
  color:#285a73;cursor:pointer;font-weight:750;
}
.mapa-tipos-chip[aria-pressed="true"]{background:#0c749f;border-color:#0c749f;color:#fff}
.mapa-tipos-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;overflow-y:auto;overscroll-behavior:contain;min-height:0;
  align-content:start;padding:2px 3px 4px;
}
.mapa-tipos-contador{grid-column:1/-1;font-size:11px;color:#638097;margin:0}
.mapa-tipos-tarjeta{display:flex;gap:10px;align-items:center;min-height:66px;text-align:left;
  background:#f8fbfe;border:1px solid #d8e6ee;border-radius:11px;
  padding:9px 11px;cursor:pointer;min-width:0;color:#194965;
}
.mapa-tipos-tarjeta:hover:not(:disabled),.mapa-tipos-tarjeta:focus-visible{
  border-color:var(--tipo-color,#1780ad);background:#f1f9fd;outline-offset:2px;
}
.mapa-tipos-simbolo{width:36px;height:36px;display:grid;place-items:center;
  flex:none;background:color-mix(in srgb,var(--tipo-color,#1685b5) 10%,white);
  border-radius:9px;color:var(--tipo-color,#1685b5);
}
.mapa-tipos-simbolo svg{width:25px;height:25px}
.mapa-tipos-texto{min-width:0;display:grid;gap:4px;flex:1}
.mapa-tipos-texto strong{font-size:12px;line-height:1.25}
.mapa-tipos-texto small{font-size:10px;color:#668297;line-height:1.25}
.mapa-tipos-accion{font-size:10px;font-weight:800;color:var(--tipo-color,#1685b5);flex:none}
.mapa-tipos-tarjeta--informativa{opacity:.58;cursor:default}
.mapa-tipos-nota{font-size:10px;line-height:1.4;color:#657e91;margin:0}
@media(max-width:600px){
  .mapa-tipos-panel{padding:13px;max-height:calc(100dvh - 16px);border-radius:14px;gap:9px}
  .mapa-tipos-cabecera h2{font-size:18px}
  .mapa-tipos-lista{grid-template-columns:1fr;gap:7px}
  .mapa-tipos-tarjeta{min-height:54px;padding:8px}
  .mapa-tipos-simbolo{width:32px;height:32px}
  .mapa-tipos-simbolo svg{width:23px;height:23px}
  .mapa-reporte-boton{font-size:9px;padding:7px 2px;min-height:73px}
}


/* Controles compactos de consulta global, historial y notificaciones. */
.mapa-radio-control select {
  font:inherit;max-width:145px;min-height:31px;
  border:1px solid #cbdbe8;border-radius:8px;
  background:rgba(255,255,255,.96);color:#173d56;padding:3px 5px;
}
#mapa-sonido[aria-pressed="false"] .pis-ondas-sonido{opacity:.15}
#mapa-sonido[aria-pressed="false"]{opacity:.62}
.mapa-cargar-mas{
  display:block;margin:9px auto 2px;width:calc(100% - 16px);
  border:1px solid #1879a6;color:#12638b;border-radius:9px;
  background:#f0f8fe;padding:9px;font-weight:750;cursor:pointer;
}
.mapa-cargar-mas[hidden]{display:none!important}
.pis-icono-reporte--historico{opacity:.68;filter:saturate(.55)}
.mapa-incidente--historico{opacity:.76}
.mapa-incidente--historico small{font-style:italic}
@media(max-width:600px){
  .mapa-radio-control select{max-width:125px;font-size:11px}
  #mapa-sonido-label{font-size:10px}
}


/* Fichas de movilidad positiva, sin ocultar el mapa ni perder la ubicación. */
.mapa-boton-positivo{--color-reporte:#16a34a}
.mapa-lugar-ubicacion{
  padding:12px;border:1px solid #cde4d5;background:#f1fbf5;border-radius:11px;
  display:grid;gap:8px;color:#1c6340;font-size:12px
}
.mapa-lugar-ubicacion-botones{
  display:grid;grid-template-columns:1fr 1fr;gap:8px
}
.mapa-lugar-ubicacion-botones button{
  border:1px solid #a6dac0;background:#fff;color:#126d42;
  border-radius:8px;min-height:40px;padding:8px 5px
}
.mapa-lugar-ubicacion-botones button:hover{background:#e5f8ed}
.mapa-lugar-advertencia{
  border-left:3px solid #19945d;padding:6px 0 6px 9px;
  font-size:11px;line-height:1.5;color:#436d58;margin:0
}
#mapa-lugar-dialog{max-width:510px}
#mapa-lugar-form{max-height:calc(82dvh - 100px);overflow-y:auto}
#mapa-lugar-form .mapa-auth-campo textarea{
  width:100%;min-height:65px;max-height:125px;resize:vertical;
  padding:10px 12px;border:1px solid #cbdde8;
  border-radius:9px;background:#fafdff;color:#183950;font:inherit;font-weight:500
}
#mapa-lugar-form .mapa-auth-campo textarea:focus-visible{
  outline:2px solid #1b8fc5;outline-offset:1px
}
@media(max-width:600px) {
  .mapa-lugar-ubicacion-botones{gap:5px}
  #mapa-lugar-form{max-height:calc(100dvh - 125px)}
  .mapa-boton-positivo{font-size:9px}
}

/* Destacar el reporte útil rápido sobre los demás accesos compactos. */
.mapa-boton-positivo{order:-1;border:2px solid #16a34a;font-weight:800}
.mapa-popup-problemas{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 0}
.mapa-popup-problemas button{border:1px solid #b8cbd8;border-radius:7px;background:#f3f8fc;color:#14445e;font:inherit;font-size:11px;padding:7px 8px;cursor:pointer}
.mapa-popup-problemas button:hover,.mapa-popup-problemas button:focus-visible{background:#e1f1fc}
.mapa-popup-advertencia{font-weight:700;color:#975a0e}

/* Ayuda contextual sobre Leaflet: compacta, sin salir ni recargar el mapa.
 * Autor: Ingeniero Juan Pablo Llinás Ramírez – Puro Ingenio Samario. */
.mapa-ayuda-contextual{position:fixed;right:12px;bottom:36px;z-index:1250;color:#143c58;font-size:12px}
.mapa-ayuda-contextual>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:7px;min-width:86px;min-height:42px;background:#0a547b;color:#fff;border:1px solid #bee4f6;border-radius:12px;box-shadow:0 5px 22px #103b5952;padding:10px 14px;cursor:pointer;font-weight:800;user-select:none}
.mapa-ayuda-contextual>summary::-webkit-details-marker{display:none}
.mapa-ayuda-contextual>summary:hover,.mapa-ayuda-contextual>summary:focus-visible{background:#0b6e9e}
.mapa-ayuda-contextual>summary:focus-visible{outline:3px solid #fcaf69;outline-offset:3px}
.mapa-ayuda-contextual[open]>summary{background:#0d3c5c}
.mapa-ayuda-panel{position:absolute;right:0;bottom:calc(100% + 9px);width:min(355px,calc(100vw - 18px));max-height:min(62dvh,540px);overflow:auto;overscroll-behavior:contain;background:#fff;border:1px solid #cee2ee;border-radius:15px;box-shadow:0 12px 45px #0b32435b;padding:15px;display:grid;gap:9px}
.mapa-ayuda-panel header{border-bottom:1px solid #e2eef3;padding:0 0 10px}
.mapa-ayuda-panel header strong{font-size:16px;color:#123f5e}
.mapa-ayuda-panel header p{margin:6px 0 0;font-size:11px;line-height:1.55;color:#648299}
.mapa-ayuda-tema{border:1px solid #d9e9f0;border-radius:9px;background:#f9fcfe;overflow:hidden}
.mapa-ayuda-tema>summary{cursor:pointer;padding:12px 10px;color:#19516b;font-size:12px;font-weight:800;line-height:1.4}
.mapa-ayuda-tema>summary:hover,.mapa-ayuda-tema>summary:focus-visible{background:#ecf7fc}
.mapa-ayuda-tema[open]>summary{background:#ecf6fb}
.mapa-ayuda-tema p{font-size:12px;line-height:1.6;color:#4e7084;margin:0;padding:8px 11px}
.mapa-ayuda-tema a{display:inline-block;color:#0678aa;font-size:11px;font-weight:800;margin:5px 11px 12px}
.mapa-ayuda-todas{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-radius:9px;background:#e8f5fc;color:#056e9a;text-decoration:none;font-size:12px;font-weight:800}
.mapa-ayuda-todas:hover,.mapa-ayuda-todas:focus-visible{background:#d8eefb}
.mapa-ayuda-externa{color:#70899b;font-size:10px;line-height:1.5;margin:0}
@media(max-width:600px){.mapa-ayuda-contextual{right:8px;bottom:237px}.mapa-ayuda-contextual>summary{min-height:40px;min-width:78px;padding:8px 11px}.mapa-ayuda-panel{width:min(350px,calc(100vw - 16px));max-height:38dvh;padding:12px;gap:6px}.mapa-ayuda-tema>summary{padding:10px}.mapa-ayuda-tema p{font-size:11px}.mapa-ayuda-panel header strong{font-size:14px}}
@media(max-height:480px){.mapa-ayuda-panel{max-height:42dvh}}


/* Seguimiento y simulador privado: paneles compactos sobre el mismo Leaflet.
 * Autor: Ingeniero Juan Pablo Llinás Ramírez – Puro Ingenio Samario. */
.mapa-modo-seguir{background:#eaf6f0;color:#13754d;border-color:#b8d8c7}
.mapa-modo-seguir--activo{background:#136d48;color:#fff;border-color:#136d48}
.mapa-modo-seguir--activo:hover{background:#0b6040;color:#fff}
.mapa-seguimiento-panel,.mapa-simulador-panel{position:fixed;z-index:1030;background:#fffc;border:1px solid #d7e7ee;border-radius:14px;box-shadow:0 9px 28px #11395148;backdrop-filter:blur(14px);color:#143f5a;font-size:12px}
.mapa-seguimiento-panel[hidden],.mapa-simulador-panel[hidden]{display:none!important}
.mapa-seguimiento-panel{right:12px;bottom:105px;width:min(330px,calc(100vw - 24px));padding:13px;max-height:50dvh;overflow:auto}
.mapa-seguimiento-panel header{display:flex;gap:10px;justify-content:space-between;align-items:start}
.mapa-seguimiento-panel header div{display:grid;gap:3px}
.mapa-seguimiento-panel header strong{font-size:14px}
.mapa-seguimiento-panel header small{font-size:10px;line-height:1.35;color:#66859a}
.mapa-seguimiento-panel button,.mapa-simulador-panel button{border:1px solid #bdd6e4;border-radius:8px;background:#f1f8fc;color:#115b7f;padding:7px 10px;font-size:11px;font-weight:800;min-height:32px;cursor:pointer}
.mapa-seguimiento-panel button:hover,.mapa-simulador-panel button:hover{background:#d8effa}
.mapa-seguimiento-panel button:focus-visible,.mapa-simulador-panel button:focus-visible{outline:2px solid #f47a28;outline-offset:2px}
.mapa-seguimiento-info{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;margin-top:6px;font-size:10px;color:#527589}
.mapa-seguimiento-alertas{display:grid;gap:6px}
.mapa-alerta-cercana{padding:10px;border-radius:9px;background:#fff4ee;border:1px solid #f1c9b7;border-left:4px solid #df642d}
.mapa-alerta-cercana--positiva{background:#effaf5;border-color:#c9e9d8;border-left-color:#138b5b}
.mapa-alerta-cercana-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:9px;color:#163f55}
.mapa-alerta-cercana-cab strong{font-size:12px;line-height:1.35}
.mapa-alerta-cercana-cab span{font-size:12px;font-weight:900;white-space:nowrap}
.mapa-alerta-cercana small{display:block;margin-top:5px;color:#5c7688;font-size:10px;line-height:1.45}
.mapa-seguimiento-sin-alerta{margin:0;font-size:11px;color:#52758e;background:#eff7fa;border-radius:8px;padding:9px}
.mapa-seguimiento-aviso{font-size:10px;line-height:1.5;color:#647f91;margin:8px 0 0}
.pis-marcador-seguimiento{filter:drop-shadow(0 2px 6px #1c33465b)}
.mapa-simulador-panel{left:12px;bottom:92px;width:min(360px,calc(100vw - 24px));max-height:min(55dvh,560px);overflow:hidden}
.mapa-simulador-panel>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;background:#543789;color:#fff;padding:12px 14px;font-size:12px;font-weight:900}
.mapa-simulador-panel>summary::-webkit-details-marker{display:none}
.mapa-simulador-panel>summary:focus-visible{outline:3px solid #ffa56c;outline-offset:-3px}
.mapa-simulador-contenido{overflow-y:auto;max-height:calc(55dvh - 43px);padding:12px;display:grid;gap:9px}
.mapa-simulador-desc{margin:0;font-size:11px;color:#55758a;line-height:1.55}
.mapa-simulador-campos{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mapa-simulador-campos label{display:grid;gap:4px;font-weight:800;font-size:10px;color:#47687d}
.mapa-simulador-campos label:first-child{grid-column:1/-1}
.mapa-simulador-campos select{background:#fff;border:1px solid #bfd5e2;color:#204760;border-radius:8px;min-height:33px;font-size:11px;padding:6px;width:100%;min-width:0}
.mapa-simulador-controles{display:flex;flex-wrap:wrap;gap:6px}
#mapa-demo-reproducir{background:#14794f;border-color:#14794f;color:#fff}
#mapa-demo-dibujar[aria-pressed="true"]{background:#6c359b;color:#fff}
#mapa-demo-estado{font-size:11px;color:#67499d;line-height:1.45;margin:2px 0}
.mapa-demo-log-titulo{font-size:11px;color:#294d6a}
.mapa-demo-bitacora{margin:0;padding-left:19px;max-height:110px;overflow-y:auto;color:#4c6a81;font-size:10px;line-height:1.6}
.mapa-demo-popup p{font-size:11px;color:#6e5a93}
@media(max-width:1120px){.mapa-modo-seguir span{display:none}}
@media(max-width:600px){
 .mapa-seguimiento-panel{top:155px;bottom:auto;left:7px;right:7px;width:auto;max-height:32dvh;padding:9px}
 .mapa-seguimiento-panel header strong{font-size:12px}
 .mapa-seguimiento-aviso{font-size:9px}
 .mapa-simulador-panel{left:7px;bottom:240px;width:calc(100vw - 14px);max-height:27dvh}
 .mapa-simulador-contenido{max-height:calc(27dvh - 43px);padding:9px}
 .mapa-modo-seguir{min-width:36px}
 .mapa-seguimiento-alertas{gap:4px}
 .mapa-alerta-cercana{padding:7px}
}
@media(max-height:520px){
 .mapa-seguimiento-panel{max-height:29dvh;overflow-y:auto}
 .mapa-simulador-panel{max-height:30dvh}
 .mapa-simulador-contenido{max-height:calc(30dvh - 43px)}
}
@media(prefers-reduced-motion:reduce){.pis-marcador-seguimiento{filter:none}}

/* El simulador usa la MISMA barra de reportes públicos. La publicación
   sintética está aislada en memoria; no habilitar escritura MySQL en demo. */
.mapa-pantalla[data-demo-habilitado="1"] .mapa-acciones-rapidas{
  display:block;
  border:2px solid #8b5bb5;
}
.mapa-pantalla[data-demo-habilitado="1"] .mapa-acciones-titulo small{
  color:#764a97;
}

/* Radio dinámico sobre el vehículo; la capa estática no se superpone en seguimiento. */
.mapa-simulador-desc{line-height:1.65}
#mapa-demo-recalcular{background:#faf5ff;border-color:#d7c5ee;color:#5c318e}

/* Entrada visible para comercio local, sin ampliar el formulario ciudadano. */
.mapa-boton-comercio{order:-1;border:2px solid #B45309;font-weight:750}

/* Formularios colaborativos encima del mapa, compactos y sin navegación. */
.mapa-ficha-dialog{max-height:min(90vh,820px);overflow-y:auto}
.mapa-ficha-form{display:grid;gap:10px;padding:12px 16px}
.mapa-ficha-form label{display:grid;gap:4px;font-size:13px;font-weight:650}
.mapa-ficha-form input,.mapa-ficha-form textarea{width:100%;min-width:0;box-sizing:border-box;padding:9px;border:1px solid #a7b8c6;border-radius:8px;font:inherit}
.mapa-ficha-coordenadas{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.mapa-popup-acciones{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.mapa-popup-acciones button,.mapa-mis-puntos-lista button{cursor:pointer;border-radius:7px;border:1px solid #98b6cc;padding:8px;background:#f2f8fb;color:#10415c;font:inherit;font-size:12px}
.mapa-popup-acciones button:focus-visible,.mapa-mis-puntos-lista button:focus-visible{outline:2px solid #0c79b9}
.mapa-mis-puntos-lista{padding:12px 16px;display:grid;gap:8px;max-height:65vh;overflow-y:auto}
.mapa-mis-puntos-fila{border-bottom:1px solid #d4e0e9;padding:8px 0;display:grid;gap:6px}
@media(max-width:430px){.mapa-ficha-coordenadas{grid-template-columns:1fr 1fr}}
