/* © 2026 AS Sistemas · Alberto Salafia */
:root{--azul:#1B3D79;--azul-deep:#142D5C;--azul-dark:#0E1F40;--azul-medio:#2A5499;--azul-claro:#4A6BA8;--verde:#02A552;--verde-medio:#43B37B;--verde-suave:#5FCC8A;--verde-pale:#B8E8CE;--verde-wash:#E0F5EA;--verde-fondo:#F0FAF4;--celeste:#3F97BC;--celeste-claro:#6BB3D0;--celeste-fondo:#E8F3F9;--celeste-wash:#D2EAF4;--dorado:#EFB326;--dorado-claro:#F5C860;--dorado-fondo:#FFF8E5;--violeta:#775489;--texto:#1A2533;--texto-2:#4A5A6B;--texto-3:#7D8A97;--borde:#E2E5E9;--fondo:#F3F5F7;--blanco:#FFFFFF;--shadow-sm:0 1px 2px rgba(14, 31, 64, 0.06),0 1px 3px rgba(14, 31, 64, 0.04);--shadow-md:0 4px 12px rgba(14, 31, 64, 0.08),0 2px 4px rgba(14, 31, 64, 0.04);--shadow-lg:0 12px 32px rgba(14, 31, 64, 0.12),0 4px 8px rgba(14, 31, 64, 0.06);--panel-w:360px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--texto);background:var(--fondo);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:0 0;color:inherit;padding:0}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:var(--panel-w) 1fr;grid-template-rows:1fr auto;grid-template-areas:"panel map" "emerg emerg";height:100vh;width:100%;overflow:hidden}.panel{grid-area:panel;background:var(--blanco);border-right:1px solid var(--borde);display:flex;flex-direction:column;min-height:0;position:relative;z-index:1000;box-shadow:0 0 32px rgba(14,31,64,.05)}.map-wrap{grid-area:map}.panel-header{padding:14px 18px 12px;border-bottom:1px solid var(--borde);background:linear-gradient(180deg,#fff 0,#fafbfc 100%);flex-shrink:0}.panel-scroll{flex:1 1 0;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--borde) transparent;display:flex;flex-direction:column}.panel-scroll::-webkit-scrollbar{width:6px}.panel-scroll::-webkit-scrollbar-thumb{background:var(--borde);border-radius:6px}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:42px;height:42px;flex-shrink:0;background:var(--blanco);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.brand-logo img{width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-title{font-size:16px;font-weight:700;color:var(--azul);letter-spacing:-.01em;line-height:1.15}.brand-subtitle{font-size:10.5px;font-weight:600;color:var(--texto-3);letter-spacing:.08em;text-transform:uppercase}.search-wrap{padding:10px 18px 8px;position:relative}.search-input{width:100%;height:36px;padding:0 14px 0 36px;border-radius:9px;border:1px solid var(--borde);background:var(--fondo);font-size:12.5px;color:var(--texto);font-family:inherit;outline:0;transition:.18s}.search-input::placeholder{color:var(--texto-3)}.search-input:focus{background:var(--blanco);border-color:var(--celeste);box-shadow:0 0 0 3px rgba(63,151,188,.12)}.search-icon{position:absolute;left:32px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--texto-3);pointer-events:none}.section-title{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 6px;font-size:10px;font-weight:700;color:var(--texto-3);letter-spacing:.12em;text-transform:uppercase}.section-title .count{background:var(--fondo);color:var(--texto-2);font-weight:600;font-size:9.5px;padding:2px 7px;border-radius:999px;letter-spacing:.04em}.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:0 12px 4px}.cat-btn{--c:var(--azul);position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;background:0 0;padding:6px 2px 7px;border-radius:10px;transition:background .18s}.cat-btn .dot{position:relative;width:38px;height:38px;border-radius:50%;background:color-mix(in oklab,var(--c) 8%,#fff);border:1.5px solid color-mix(in oklab,var(--c) 22%,#fff);display:flex;align-items:center;justify-content:center;color:var(--c);transition:.22s cubic-bezier(.4,0,.2,1)}.cat-btn .dot svg{width:17px;height:17px;stroke-width:1.8}.cat-btn .label{font-size:9.5px;font-weight:600;color:var(--texto-2);text-align:center;line-height:1.15;letter-spacing:-.005em;max-width:100%;transition:color .18s}.cat-btn:hover .dot{background:color-mix(in oklab,var(--c) 14%,#fff);border-color:color-mix(in oklab,var(--c) 40%,#fff);box-shadow:0 0 0 4px color-mix(in oklab,var(--c) 10%,transparent),0 4px 12px color-mix(in oklab,var(--c) 22%,transparent);transform:translateY(-1px)}.cat-btn:hover .label{color:var(--c)}.cat-btn.active .dot{background:var(--c);border-color:var(--c);color:#fff;box-shadow:0 0 0 4px color-mix(in oklab,var(--c) 18%,transparent),0 6px 16px color-mix(in oklab,var(--c) 35%,transparent)}.cat-btn.active .dot::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--c);opacity:0;animation:1.8s cubic-bezier(.4,0,.2,1) infinite pulse}.cat-btn.active .label{color:var(--c);font-weight:700}@keyframes pulse{0%{transform:scale(.95);opacity:.7}100%,70%{transform:scale(1.35);opacity:0}}.action-row{display:flex;gap:6px;padding:8px 18px 4px}.action-btn{flex:1;height:30px;padding:0 10px;border-radius:7px;background:var(--blanco);border:1px solid var(--borde);font-size:11px;font-weight:600;color:var(--texto-2);display:flex;align-items:center;justify-content:center;gap:5px;transition:.16s}.action-btn:hover{border-color:var(--celeste);color:var(--azul);background:var(--celeste-fondo)}.action-btn svg{width:11px;height:11px}.services-list{display:flex;flex-direction:column;gap:4px;padding:0 12px 4px}.service-toggle{--c:var(--verde);display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:10px;background:var(--blanco);border:1px solid var(--borde);cursor:pointer;text-align:left;transition:.18s;font-family:inherit}.service-toggle:hover{border-color:color-mix(in oklab,var(--c) 40%,#fff);background:color-mix(in oklab,var(--c) 5%,#fff)}.service-toggle .svc-icon{width:32px;height:32px;border-radius:9px;background:color-mix(in oklab,var(--c) 10%,#fff);color:var(--c);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.18s}.service-toggle .svc-icon svg{width:16px;height:16px}.service-toggle .svc-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.service-toggle .svc-name{font-size:12px;font-weight:600;color:var(--texto);line-height:1.2;letter-spacing:-.005em}.service-toggle .svc-meta{font-size:10px;font-weight:500;color:var(--texto-3);letter-spacing:.02em}.service-toggle .svc-switch{width:30px;height:18px;background:var(--borde);border-radius:999px;position:relative;flex-shrink:0;transition:background .2s}.service-toggle .svc-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(14,31,64,.2);transition:transform .22s cubic-bezier(.4,0,.2,1)}.service-toggle.active{border-color:var(--c);background:color-mix(in oklab,var(--c) 6%,#fff);box-shadow:0 0 0 3px color-mix(in oklab,var(--c) 10%,transparent)}.service-toggle.active .svc-icon{background:var(--c);color:#fff;box-shadow:0 2px 6px color-mix(in oklab,var(--c) 35%,transparent)}.service-toggle.active .svc-switch{background:var(--c)}.service-toggle.active .svc-knob{transform:translateX(12px)}.service-toggle.active .svc-meta{color:var(--c);font-weight:600}.section-toggle{width:100%;border:none;background:0 0;cursor:pointer;text-align:left;font-family:inherit;transition:background .16s}.section-toggle:hover{background:var(--fondo)}.section-toggle-label{display:inline-flex;align-items:center;gap:6px}.section-toggle .chev{width:11px;height:11px;color:var(--texto-3);transition:transform .22s cubic-bezier(.4,0,.2,1)}.section-toggle[aria-expanded=true] .chev{transform:rotate(90deg);color:var(--azul)}.list-scroll{flex:0 0 auto;padding:0 10px 12px;max-height:360px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--borde) transparent;transition:max-height .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .22s}.list-scroll::-webkit-scrollbar{width:6px}.list-scroll::-webkit-scrollbar-thumb{background:var(--borde);border-radius:6px}.list-scroll.collapsed{max-height:0;padding-top:0;padding-bottom:0;opacity:0;overflow:hidden;pointer-events:none}.list-item{--c:var(--azul);display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;cursor:pointer;transition:background .14s;text-align:left;width:100%;border:none;background:0 0;font-family:inherit}.list-item:hover{background:var(--fondo)}.list-item.active{background:color-mix(in oklab,var(--c) 8%,#fff)}.list-item .marker-mini{position:relative;width:26px;height:26px;border-radius:50%;background:var(--c);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 2px 6px color-mix(in oklab,var(--c) 35%,transparent)}.list-item .marker-mini svg{width:13px;height:13px;stroke-width:2}.list-item.active .marker-mini::before{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--c);animation:1.8s cubic-bezier(.4,0,.2,1) infinite pulse}.list-item-text{flex:1;min-width:0}.list-item-name{font-size:12.5px;font-weight:600;color:var(--texto);letter-spacing:-.005em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-cat{font-size:10.5px;font-weight:500;color:var(--texto-3);margin-top:1px}.list-empty{padding:20px 22px;text-align:center;font-size:12px;color:var(--texto-3)}.emerg{grid-area:emerg;flex-shrink:0;background:linear-gradient(115deg,#0b3a2a 0,#0e3050 38%,#142d5c 70%,#0e1f40 100%);padding:12px 16px 14px;color:#fff;position:relative;overflow:hidden;border-top:1px solid rgba(14,31,64,.4)}.emerg::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 0 100%,rgba(2,165,82,.32),transparent 55%),radial-gradient(90% 70% at 100% 0,rgba(63,151,188,.22),transparent 55%);pointer-events:none;z-index:0}.emerg::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0,rgba(2,165,82,.6) 25%,rgba(63,151,188,.6) 75%,transparent 100%);z-index:1}.emerg-header{position:relative;z-index:2;display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:9px}.emerg-header svg{width:13px;height:13px;color:var(--verde-suave)}.emerg-header .dot-live{width:5px;height:5px;border-radius:50%;background:var(--verde-suave);margin-left:auto;box-shadow:0 0 6px rgba(95,204,138,.9);animation:2s ease-in-out infinite livePulse}@keyframes livePulse{0%,100%{box-shadow:0 0 6px rgba(95,204,138,.9)}50%{box-shadow:0 0 10px rgba(95,204,138,.4)}}.emerg-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(6,1fr);background:linear-gradient(180deg,rgba(255,255,255,.045) 0,rgba(255,255,255,.02) 100%);border:1px solid rgba(255,255,255,.09);border-radius:12px;backdrop-filter:blur(6px);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.2)}.emerg-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 2px 8px;text-decoration:none;color:#fff;position:relative;transition:background .22s;cursor:pointer;min-width:0}.emerg-item+.emerg-item::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:linear-gradient(180deg,transparent 0,rgba(255,255,255,.12) 50%,transparent 100%)}.emerg-item:hover{background:linear-gradient(180deg,rgba(95,204,138,.1) 0,rgba(107,179,208,.06) 100%)}.emerg-item:hover .emerg-num{filter:brightness(1.15)}.emerg-num{font-size:17px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1;background:linear-gradient(180deg,#7fd8a1 0,#82c3da 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;transition:filter .18s;text-shadow:0 0 14px rgba(95,204,138,.18)}.emerg-name{font-size:8px;font-weight:600;color:rgba(255,255,255,.62);letter-spacing:.04em;text-transform:uppercase;margin-top:5px;text-align:center;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-wrap{position:relative;min-width:0}#map{position:absolute;inset:0;background:#dde5eb}.map-overlay{position:absolute;top:14px;right:14px;z-index:600;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.map-badge{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid var(--borde);border-radius:10px;padding:8px 12px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:9px;font-size:12px;color:var(--texto-2);font-weight:500}.map-badge strong{color:var(--azul);font-weight:700}.map-badge .pip{width:7px;height:7px;border-radius:50%;background:var(--verde);box-shadow:0 0 0 3px rgba(2,165,82,.18);animation:2s ease-in-out infinite livePulse}.map-reset{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid var(--borde);border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--azul);display:flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm);transition:.16s}.map-reset:hover{border-color:var(--celeste);box-shadow:var(--shadow-md);transform:translateY(-1px)}.map-reset svg{width:12px;height:12px}.reco-overlay{position:absolute;left:14px;top:14px;z-index:600;max-width:280px}.reco-overlay[hidden]{display:none}.reco-card{background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid var(--borde);border-radius:12px;padding:12px 14px 11px;box-shadow:var(--shadow-md)}.reco-header{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--azul);letter-spacing:.04em;margin-bottom:9px}.reco-dot{width:8px;height:8px;border-radius:50%;background:var(--verde);box-shadow:0 0 0 3px rgba(2,165,82,.18);animation:2s ease-in-out infinite livePulse}.reco-title{color:var(--texto)}.reco-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:9px}.reco-day-btn{height:28px;border-radius:7px;background:var(--fondo);border:1px solid transparent;font-size:10.5px;font-weight:700;color:var(--texto-2);letter-spacing:.02em;transition:.15s;cursor:pointer;font-family:inherit}.reco-day-btn:hover{background:var(--celeste-fondo);color:var(--azul)}.reco-day-btn.active{background:var(--azul);color:#fff;border-color:var(--azul);box-shadow:0 2px 6px rgba(27,61,121,.3)}.reco-day-btn.all{background:linear-gradient(135deg,var(--verde) 0,var(--celeste) 100%);color:#fff;font-weight:800}.reco-day-btn.all:hover{filter:brightness(1.1)}.reco-legend{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding-top:9px;border-top:1px dashed var(--borde)}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:500;color:var(--texto-2);letter-spacing:.01em}.lg-swatch{width:16px;height:8px;border-radius:2px;display:inline-block}.lg-zone{background:rgba(2,165,82,.22);border:1px solid var(--verde)}.lg-route{background:0 0;border-top:3px dashed var(--verde);height:4px;border-radius:0}.lg-street{background:linear-gradient(90deg,var(--dorado) 0,var(--dorado-claro) 100%);height:4px}.reco-popup{font-family:inherit;padding:4px 2px}.reco-popup .rp-cat{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--verde);margin-bottom:3px}.reco-popup .rp-cat--calle{color:#b57e00}.reco-popup .rp-name{font-size:14px;font-weight:700;color:var(--texto);letter-spacing:-.01em;margin-bottom:8px;line-height:1.25}.reco-popup .rp-row{display:flex;gap:6px;font-size:12px;color:var(--texto-2);padding:3px 0}.reco-popup .rp-row strong{color:var(--texto);font-weight:600}.reco-popup .rp-row .rp-label{color:var(--texto-3);font-weight:500;flex-shrink:0;min-width:56px}.reco-popup .rp-days{display:inline-flex;gap:3px;flex-wrap:wrap}.reco-popup .rp-day-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:color-mix(in oklab,var(--c,var(--verde)) 15%,#fff);color:var(--c,var(--verde));letter-spacing:.04em}@keyframes routeDash{to{stroke-dashoffset:-28}}.leaflet-overlay-pane path.reco-route{animation:1.4s linear infinite routeDash}#transporte-toggle{--c:#775489}@keyframes busDash{to{stroke-dashoffset:-40}}.leaflet-overlay-pane path.bus-route{animation:1.5s linear infinite busDash}@media (prefers-reduced-motion:reduce){.leaflet-overlay-pane path.bus-route{animation:none}}.bus-stop-icon{background:0 0!important;border:none!important}.bus-stop{position:relative;width:22px;height:22px;filter:drop-shadow(0 1px 3px rgba(14, 31, 64, .3))}.bus-stop svg{width:22px;height:22px;display:block}.bus-stop-n{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:11px;font-weight:700;color:#fff;line-height:1;pointer-events:none;font-variant-numeric:tabular-nums}.bus-popup .rp-cat{color:#775489}.reco-street-badge-icon{background:0 0!important;border:none!important}.reco-street-badge{display:inline-block;background:rgba(255,248,229,.95);color:#8a5f00;font-family:inherit;font-size:9.5px;font-weight:700;letter-spacing:.02em;padding:2px 6px;border-radius:5px;border:1px solid rgba(239,179,38,.9);box-shadow:0 1px 3px rgba(14,31,64,.18);white-space:nowrap;transform:translateY(-2px);font-variant-numeric:tabular-nums}.pin-divicon{background:0 0!important;border:none!important}.pin-wrap{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer}.pin-wrap::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,color-mix(in oklab,var(--c) 28%,transparent) 0,transparent 65%);opacity:.55;transition:opacity .22s,transform .22s}.pin{position:relative;width:22px;height:22px;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 2px 6px rgba(14,31,64,.22),0 0 0 1px color-mix(in oklab,var(--c) 35%,transparent);display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s;z-index:2}.pin svg{width:11px;height:11px;stroke-width:2.4}.pin-wrap:hover::before{opacity:.9;transform:scale(1.1)}.pin-wrap:hover .pin{transform:scale(1.12);box-shadow:0 4px 10px rgba(14,31,64,.3),0 0 0 1.5px color-mix(in oklab,var(--c) 60%,transparent)}.pin-wrap.active::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;border-radius:50%;border:2px solid var(--c);transform:translate(-50%,-50%);pointer-events:none;animation:1.9s cubic-bezier(.4,0,.2,1) infinite pinPulse}.pin-wrap.active .pin{transform:scale(1.18);box-shadow:0 4px 14px rgba(14,31,64,.32),0 0 0 2px color-mix(in oklab,var(--c) 70%,transparent),0 0 18px color-mix(in oklab,var(--c) 50%,transparent)}.pin-wrap.active::before{opacity:1;transform:scale(1.2)}@keyframes pinPulse{0%{width:22px;height:22px;opacity:.7;border-width:2.5px}100%{width:56px;height:56px;opacity:0;border-width:1px}}.leaflet-popup-content-wrapper{border-radius:14px!important;padding:0!important;box-shadow:0 16px 40px rgba(14,31,64,.18),0 4px 12px rgba(14,31,64,.1)!important;border:1px solid var(--borde)!important;overflow:hidden}.leaflet-popup-content{margin:0!important;width:280px!important;font-family:inherit!important}.leaflet-popup-tip{box-shadow:0 4px 8px rgba(14,31,64,.1)!important}.popup{display:flex;flex-direction:column}.popup-head{--c:var(--azul);padding:14px 16px 12px;background:linear-gradient(135deg,var(--c) 0,color-mix(in oklab,var(--c) 80%,#000) 100%);color:#fff;position:relative;overflow:hidden}.popup-head::after{content:"";position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08)}.popup-cat{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.85);padding:3px 8px;background:rgba(255,255,255,.14);border-radius:999px;margin-bottom:8px;position:relative;z-index:1}.popup-cat svg{width:11px;height:11px;stroke-width:2.2}.popup-name{font-size:16px;font-weight:700;line-height:1.25;letter-spacing:-.01em;position:relative;z-index:1}.popup-body{padding:12px 16px 14px;background:#fff}.popup-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;font-size:12.5px;color:var(--texto-2);border-bottom:1px dashed var(--borde);line-height:1.35}.popup-row:last-of-type{border-bottom:none}.popup-row .ic{width:16px;height:16px;color:var(--texto-3);margin-top:1px;flex-shrink:0}.popup-row .ic svg{width:16px;height:16px;stroke-width:1.8}.popup-row strong{color:var(--texto);font-weight:600}.popup-tel{color:var(--azul);font-weight:600;text-decoration:none}.popup-tel:hover{text-decoration:underline}.popup-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--borde)}.popup-btn{flex:1;height:36px;border-radius:9px;font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;transition:.16s;border:1px solid transparent;letter-spacing:-.005em}.popup-btn svg{width:14px;height:14px;stroke-width:2}.popup-btn.primary{background:var(--verde);color:#fff;box-shadow:0 2px 6px rgba(2,165,82,.3)}.popup-btn.primary:hover{background:color-mix(in oklab,var(--verde) 88%,#000);transform:translateY(-1px);box-shadow:0 4px 12px rgba(2,165,82,.4)}.popup-btn.ghost{background:var(--celeste-fondo);color:var(--azul);border-color:var(--celeste-wash)}.popup-btn.ghost:hover{background:var(--celeste-wash);border-color:var(--celeste-claro)}.popup-btn.disabled{background:var(--fondo);color:var(--texto-3);pointer-events:none;box-shadow:none}.leaflet-control-attribution{background:rgba(255,255,255,.85)!important;font-size:10px!important;color:var(--texto-3)!important;border-radius:6px 0 0!important;padding:2px 6px!important}.leaflet-control-zoom{border:none!important;box-shadow:var(--shadow-md)!important;border-radius:10px!important;overflow:hidden;margin:14px!important}.leaflet-control-zoom a{background:rgba(255,255,255,.96)!important;color:var(--azul)!important;border:none!important;font-weight:600!important;width:32px!important;height:32px!important;line-height:32px!important}.leaflet-control-zoom a:hover{background:var(--celeste-fondo)!important;color:var(--azul-deep)!important}@media (max-width:880px){.app{grid-template-columns:1fr;grid-template-rows:55vh auto auto;grid-template-areas:"map" "panel" "emerg";height:auto;min-height:100vh;overflow:visible}.map{min-height:55vh}.panel{max-height:none;border-right:none;border-top:1px solid var(--borde)}}.style-switcher{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid var(--borde);border-radius:10px;padding:4px;box-shadow:var(--shadow-sm);display:inline-flex;gap:2px}.style-switch-btn{padding:7px 10px;font-size:11.5px;font-weight:600;color:var(--texto-3);border-radius:7px;display:flex;align-items:center;gap:6px;transition:.14s}.style-switch-btn:hover{color:var(--azul);background:var(--celeste-fondo)}.style-switch-btn.active{background:var(--azul);color:#fff;box-shadow:0 1px 3px rgba(27,61,121,.3)}.style-switch-btn .sw-ic{width:14px;height:14px;display:flex;align-items:center;justify-content:center}.style-switch-btn .sw-ic .swatch{width:10px;height:10px;border-radius:50%;background:currentColor}.style-switch-btn .sw-ic .swatch-sm{width:6px;height:6px;border-radius:50%;background:currentColor}.pin-wrap.style-dot{width:22px;height:22px}.pin-wrap.style-dot::before{display:none}.pin-wrap.style-dot .pin{width:14px;height:14px;border:2.5px solid #fff;box-shadow:0 2px 4px rgba(14,31,64,.28)}.pin-wrap.style-dot .pin svg{display:none}.pin-wrap.style-dot:hover .pin{transform:scale(1.25);box-shadow:0 3px 8px rgba(14,31,64,.35),0 0 0 4px color-mix(in oklab,var(--c) 18%,transparent)}.pin-wrap.style-dot.active .pin{transform:scale(1.25);box-shadow:0 3px 10px rgba(14,31,64,.35),0 0 0 5px color-mix(in oklab,var(--c) 22%,transparent)}.pin-wrap.style-pin{width:24px;height:32px}.pin-wrap.style-pin::before{display:none}.pin-wrap.style-pin .pin{width:24px;height:32px;background:0 0;border:none;box-shadow:none;filter:drop-shadow(0 3px 4px rgba(14, 31, 64, .25));border-radius:0}.pin-wrap.style-pin .pin svg{width:24px;height:32px;stroke-width:0}.pin-wrap.style-pin .pin .pin-icon{position:absolute;top:5px;left:50%;transform:translateX(-50%);width:12px;height:12px;color:#fff;display:flex;align-items:center;justify-content:center}.pin-wrap.style-pin .pin .pin-icon svg{width:12px;height:12px;stroke-width:2.4}.pin-wrap.style-pin:hover .pin{transform:translateY(-2px) scale(1.05)}.pin-wrap.style-pin.active .pin{transform:translateY(-2px) scale(1.1)}.pin-wrap.style-pin.active::after{top:70%;width:22px;height:22px}.cat-municipalidad{--c:#1B3D79}.cat-dependencias{--c:#4A6BA8}.cat-salud{--c:#02A552}.cat-seguridad{--c:#EFB326}.cat-educacion{--c:#775489}.cat-cultura{--c:#3F97BC}.cat-espacios{--c:#43B37B}.cat-servicios{--c:#4A5A6B}.cat-turismo{--c:#C97898}