@font-face{font-family:"Nunito";src:url(/fonts/nunito.woff2) format("woff2");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(/fonts/nunito-sans.woff2) format("woff2");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Material Symbols Rounded";src:url(/v12/symbols.5e1f210927.woff2) format("woff2");font-weight:400;font-display:block}

/* Estilo: Material 3 plano. La paleta por defecto sale del rojo de marca de ZIRPA (#CA2341);
   las otras paletas las pone el script sobre estas mismas variables. */
:root{
  --bg:#FBF3F3; --surface:#FFFBFB; --container:#F6E9EA; --container-hi:#EFDFE1;
  --outline:#D6BFC2; --outline-soft:#ECDDDF; --ink:#23191B; --ink-2:#534346; --ink-3:#6F605C;
  --primary:#B3203A; --on-primary:#fff; --primary-c:#FFD9DC; --on-primary-c:#410010; --inv-primary:#FFB2B9;
  --tertiary:#7B5800; --tertiary-c:#FFDEA6; --on-tertiary-c:#271900;
  --brand:#CA2341; --brand-2:#F2B23A;
  --fest:#8A5D00; --fest-c:#FFE2AC; --on-fest-c:#2A1A00; --azul:#2A4E9C;
  --good:#1E6B45; --good-c:#D3EEDC; --warn:#8C3B0E; --warn-c:#FFE0CF;
  --water:#B7D3E8; --water-edge:#9CC2DE; --park:#D5E7CC; --fabric:#9D8589;
  --shadow-1:0 1px 2px rgba(60,20,28,.10),0 1px 3px 1px rgba(60,20,28,.06);
  --shadow-2:0 2px 6px 2px rgba(60,20,28,.10),0 1px 2px rgba(60,20,28,.14);
  --scrim:rgba(35,15,20,.42);
  --display:"Nunito","Trebuchet MS",system-ui,sans-serif;
  --body:"Nunito Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  /* Movimiento Material 3: enfatizado, entrar (decelerar), salir (acelerar) y muelle expresivo */
  --ease:cubic-bezier(.2,0,0,1); --ease-d:cubic-bezier(.05,.7,.1,1); --ease-a:cubic-bezier(.3,0,.8,.15);
  --spring:cubic-bezier(.38,1.21,.22,1); --spring-fast:cubic-bezier(.42,1.67,.21,.9);
  /* Formas Material 3: 4 · 8 · 12 · 16 · 28 */
  --r-xs:4px; --r-s:8px; --r-m:12px; --r-l:16px; --r-xl:28px;
  --nav-h:80px; --top-h:64px; --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --k-musica:#3558A8;--kt-musica:#DCE3FA; --k-teatro:#8B3A8F;--kt-teatro:#F6DDF5; --k-humor:#A64D0E;--kt-humor:#FCE3D0;
  --k-cine:#50606F;--kt-cine:#DFE5EB; --k-museo:#0F746A;--kt-museo:#D3EEEA; --k-fiesta:#B0233C;--kt-fiesta:#FADADF;
  --k-mercado:#4A7219;--kt-mercado:#E0EDCD; --k-feria:#8B5C00;--kt-feria:#F8E6C0; --k-circo:#6546B0;--kt-circo:#E6DEFA;
  --k-deporte:#11689E;--kt-deporte:#D4E8F6; --k-ruta:#287445;--kt-ruta:#D5EEDD; --k-libro:#7D5234;--kt-libro:#F2E1D5;
  --k-atril:#6B6516;--kt-atril:#EDEBC6; --k-taller:#AE376D;--kt-taller:#FADCE9; --k-otros:#5F6368;--kt-otros:#E6E7E9;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#151213; --surface:#1D191A; --container:#262122; --container-hi:#302A2B;
  --outline:#5E5355; --outline-soft:#3A3334; --ink:#F3EAEB; --ink-2:#D5C9CA; --ink-3:#A09395;
  --primary:#FFB2B9; --on-primary:#67001B; --primary-c:#6A1828; --on-primary-c:#FFDADD; --inv-primary:#B3203A;
  --tertiary:#F2BF48; --tertiary-c:#5C4200; --on-tertiary-c:#FFDEA6; --brand:#E0455F;
  --fest:#F2BF48; --fest-c:#4E3900; --on-fest-c:#FFE2AC; --azul:#9DB8F2;
  --good:#95D7AE; --good-c:#1F4430; --warn:#FFB68C; --warn-c:#5A2A12;
  --water:#3F5670; --water-edge:#4D6886; --park:#34402F; --fabric:#A39A9B;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 1px 3px 1px rgba(0,0,0,.15);
  --shadow-2:0 2px 6px 2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);
  --scrim:rgba(0,0,0,.6);
  --k-musica:#B1C5FF;--kt-musica:#2E3857; --k-teatro:#F2B0F2;--kt-teatro:#4A284D; --k-humor:#FFB787;--kt-humor:#4F301C;
  --k-cine:#BCC9D6;--kt-cine:#333B44; --k-museo:#7FD6CB;--kt-museo:#1C403C; --k-fiesta:#FFB2BB;--kt-fiesta:#56222C;
  --k-mercado:#B0D784;--kt-mercado:#303F1F; --k-feria:#F5BE52;--kt-feria:#4A3A15; --k-circo:#CDBDFF;--kt-circo:#392D57;
  --k-deporte:#93CDF6;--kt-deporte:#1E394D; --k-ruta:#8FD8A7;--kt-ruta:#1F402C; --k-libro:#EDBE9B;--kt-libro:#473024;
  --k-atril:#D6CE7E;--kt-atril:#3B391B; --k-taller:#FFAFD0;--kt-taller:#512439; --k-otros:#C4C7CC;--kt-otros:#373A3E;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#151213; --surface:#1D191A; --container:#262122; --container-hi:#302A2B;
  --outline:#5E5355; --outline-soft:#3A3334; --ink:#F3EAEB; --ink-2:#D5C9CA; --ink-3:#A09395;
  --primary:#FFB2B9; --on-primary:#67001B; --primary-c:#6A1828; --on-primary-c:#FFDADD; --inv-primary:#B3203A;
  --tertiary:#F2BF48; --tertiary-c:#5C4200; --on-tertiary-c:#FFDEA6; --brand:#E0455F;
  --fest:#F2BF48; --fest-c:#4E3900; --on-fest-c:#FFE2AC; --azul:#9DB8F2;
  --good:#95D7AE; --good-c:#1F4430; --warn:#FFB68C; --warn-c:#5A2A12;
  --water:#3F5670; --water-edge:#4D6886; --park:#34402F; --fabric:#A39A9B;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 1px 3px 1px rgba(0,0,0,.15);
  --shadow-2:0 2px 6px 2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);
  --scrim:rgba(0,0,0,.6);
  --k-musica:#B1C5FF;--kt-musica:#2E3857; --k-teatro:#F2B0F2;--kt-teatro:#4A284D; --k-humor:#FFB787;--kt-humor:#4F301C;
  --k-cine:#BCC9D6;--kt-cine:#333B44; --k-museo:#7FD6CB;--kt-museo:#1C403C; --k-fiesta:#FFB2BB;--kt-fiesta:#56222C;
  --k-mercado:#B0D784;--kt-mercado:#303F1F; --k-feria:#F5BE52;--kt-feria:#4A3A15; --k-circo:#CDBDFF;--kt-circo:#392D57;
  --k-deporte:#93CDF6;--kt-deporte:#1E394D; --k-ruta:#8FD8A7;--kt-ruta:#1F402C; --k-libro:#EDBE9B;--kt-libro:#473024;
  --k-atril:#D6CE7E;--kt-atril:#3B391B; --k-taller:#FFAFD0;--kt-taller:#512439; --k-otros:#C4C7CC;--kt-otros:#373A3E;
  color-scheme:dark}

/* Color por tipo de plan: --g color, --gt fondo suave */
.k-musica{--g:var(--k-musica);--gt:var(--kt-musica)} .k-teatro{--g:var(--k-teatro);--gt:var(--kt-teatro)} .k-humor{--g:var(--k-humor);--gt:var(--kt-humor)}
.k-cine{--g:var(--k-cine);--gt:var(--kt-cine)} .k-museo{--g:var(--k-museo);--gt:var(--kt-museo)} .k-fiesta{--g:var(--k-fiesta);--gt:var(--kt-fiesta)}
.k-mercado{--g:var(--k-mercado);--gt:var(--kt-mercado)} .k-feria{--g:var(--k-feria);--gt:var(--kt-feria)} .k-circo{--g:var(--k-circo);--gt:var(--kt-circo)}
.k-deporte{--g:var(--k-deporte);--gt:var(--kt-deporte)} .k-ruta{--g:var(--k-ruta);--gt:var(--kt-ruta)} .k-libro{--g:var(--k-libro);--gt:var(--kt-libro)}
.k-atril{--g:var(--k-atril);--gt:var(--kt-atril)} .k-taller{--g:var(--k-taller);--gt:var(--kt-taller)} .k-otros{--g:var(--k-otros);--gt:var(--kt-otros)}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}
/* El mapa no se desplaza: sin el hueco de la barra de desplazamiento */
html.v-mapa{scrollbar-gutter:auto}
html.locked{overflow:hidden}
html,body{min-height:100%}
/* overflow-x:clip y no hidden: «hidden» convierte el body en contenedor de scroll y rompe la barra pegada al abrir una ficha */
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit;-webkit-tap-highlight-color:transparent}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
.ms{font-family:"Material Symbols Rounded"!important;font-weight:400!important;font-style:normal;font-size:22px;line-height:1;display:inline-block;width:1em;height:1em;overflow:hidden;flex:none;letter-spacing:normal;text-transform:none;white-space:nowrap;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
hr.div{border:0;height:1px;background:var(--outline-soft);margin:0}
/* Línea fina que acompaña a los títulos de sección */
.cenefa{flex:1;height:1px;background:var(--outline-soft)}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none;min-width:0}
.logo .mark{width:40px;height:40px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.logo .word{display:grid;line-height:1}
.logo b{font:1000 29px/1 var(--display);letter-spacing:-.035em;color:var(--brand);white-space:nowrap}
/* ZIRPA-APP (decisión 2-oct): el rombo de miel, centrado sobre la «ı». El espaciado negativo de la palabra encogía la caja
   de la letra (y el 50 % caía medio píxel a la izquierda): la letra va sin él y lo recupera con el margen */
.logo b .i{position:relative;display:inline-block;letter-spacing:0;margin-right:-.035em}
.logo b .i::after{content:"";position:absolute;left:50%;top:.11em;width:.19em;height:.19em;background:var(--brand-2);border-radius:2px;transform:translateX(-50%) rotate(45deg)}
.logo small{margin-top:3px;font:800 9.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}

/* ---------- Barra superior (todas las pantallas) ---------- */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:4px;height:calc(var(--top-h) + var(--safe-t));padding:var(--safe-t) max(8px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));background:var(--bg);transition:transform .32s var(--ease),background .2s,box-shadow .2s}
.topbar.lifted{background:var(--container);box-shadow:var(--shadow-1)}
.topbar .grow{flex:1;min-width:4px}
.tabs{display:none}
.iconbtn{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-2);transition:background .2s,color .2s;flex:none}
.iconbtn:hover{background:color-mix(in oklab,var(--ink) 8%,transparent)}
.iconbtn:active{background:color-mix(in oklab,var(--ink) 12%,transparent)}
.iconbtn:disabled{opacity:.35;pointer-events:none}
.iconbtn[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.iconbtn.sos{color:var(--brand)}
.searchpill{display:none}
.avatarbtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--primary-c);color:var(--on-primary-c);font:900 15px/1 var(--display);margin-left:4px}
.avatarbtn .ms{font-size:24px}
.avatarbtn[aria-current="page"]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary)}
/* ZIRPA-APP (Jorge 3-oct, captura 16): los cuatro de arriba (buscar, ayuda, tema y cuenta) igual de separados: cuatro
   huecos de 44×44 con 2 px entre ellos (46 px de centro a centro, como la barra de las páginas del servidor). El círculo de
   la cuenta (34 px) va centrado en su hueco, como los iconos en el suyo */
@media (max-width:899px){
  .topbar{gap:2px}
  .topbar .iconbtn{width:44px;height:44px}
  .avatarbtn{position:relative;isolation:isolate;width:44px;height:44px;margin:0;background:none;font-size:13px}
  .avatarbtn::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--primary-c);z-index:-1}
  .avatarbtn[aria-current="page"]{box-shadow:none}
  .avatarbtn[aria-current="page"]::before{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary)}
  .avatarbtn .ms{font-size:20px}
}
/* Pestaña «Pilares» en la barra inferior, con el color de fiestas */
.navbtn.fest .ms{color:var(--fest)}
.navbtn.fest .msf{color:var(--on-fest-c)}
.navbtn.fest .ind{background:var(--fest-c)}
.navbtn .msf .k{fill:var(--primary-c)}
.navbtn.fest .msf .k{fill:var(--fest-c)}
/* En Pilares ya estás: el punto de «llega pronto» se aparta en vez de morder la píldora */
.navbtn .badge.dot{transition:opacity .2s var(--ease),transform .2s var(--ease)}
.navbtn[aria-current="page"] .badge.dot{opacity:0;transform:scale(.4)}
.navbtn.fest .badge{left:34px;background:var(--fest);color:var(--fest-c);white-space:nowrap}
.navbtn .badge.dot{min-width:0;width:10px;height:10px;padding:0;left:auto;right:14px;top:2px;border:2px solid var(--surface)}
.editbar{position:sticky;top:calc(var(--top-h) + var(--safe-t) + var(--band));z-index:35;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 16px;background:var(--azul);color:#fff;font:700 13px/1.3 var(--body)}
.editbar .ms{font-size:20px}
.editbar .txt{flex:1;min-width:120px}
.editbar .n{display:inline-block;margin-left:2px;padding:2px 6px;border-radius:8px;background:#fff;color:var(--azul);font:900 11px/1 var(--body)}
@media (max-width:599px){.editbar{flex-wrap:nowrap}.editbar .long{display:none}.editbar button{flex:none}}
.editbar button{padding:6px 12px;border-radius:14px;background:rgba(255,255,255,.18);font:800 13px/1 var(--body);color:#fff}

/* Apariencia: menú del botón de tema */
.popover{position:fixed;z-index:75;max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain;width:min(320px,calc(100vw - 24px));padding:14px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-2);animation:pop-in .24s var(--ease-d) both;transform-origin:top right}
.popover h4,.group .card h3{margin:2px 4px 8px;font:900 15px/1.2 var(--display)}
.popover .seg3,.card .seg3,.wl-install .seg3{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--outline);border-radius:999px;overflow:hidden;margin-bottom:14px}
.popover .seg3 button,.card .seg3 button,.wl-install .seg3 button{position:relative;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;font:800 13px/1 var(--body);color:var(--ink-2)}
.popover .seg3 button+button,.card .seg3 button+button,.wl-install .seg3 button+button{border-left:1px solid var(--outline)}
.popover .seg3 button .ms,.card .seg3 button .ms,.wl-install .seg3 button .ms{font-size:18px}
.popover .seg3 button[aria-pressed="true"],.card .seg3 button[aria-pressed="true"],.wl-install .seg3 button[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.palettes{display:grid;gap:6px}
.pal{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:48px;padding:6px 10px;border-radius:14px;text-align:left;border:1.5px solid transparent}
.pal:hover{background:var(--container)}
.pal[aria-pressed="true"]{border-color:var(--primary);background:var(--container)}
.pal .sw3{display:flex}
.pal .sw3 i{width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--outline)}
.pal .sw3 i+i{margin-left:-6px}
.pal b{display:block;font:800 14px/1.2 var(--body)}
.pal small{display:block;font-size:12px;color:var(--ink-3)}
.pal>.ms{color:var(--primary);visibility:hidden}
.pal[aria-pressed="true"]>.ms{visibility:visible}

.view{padding:0 16px;max-width:780px;margin:0 auto}
/* ZIRPA-APP (Jorge 3-oct, fallo de la barra de abajo): nada de lo que se mueve en horizontal dentro de la vista (una
   tarjeta que se va, la lista al deslizar el día) ensancha la página; en el iPhone eso movía la barra de abajo */
#views{overflow-x:clip}

/* ---------- Barra de navegación inferior (móvil y tableta) ---------- */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--nav-h) + var(--safe-b));padding:0 4px var(--safe-b);background:var(--container);transition:transform .32s var(--ease)}
.bottomnav ul{list-style:none;margin:0 auto;padding:0;height:100%;display:grid;grid-template-columns:repeat(var(--n,5),1fr);max-width:560px}
.navbtn{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding-bottom:4px;color:var(--ink-2);font:600 12px/16px var(--body);letter-spacing:.03em}
/* ZIRPA-APP (Jorge 3-oct, «como la barra de Google Play»): movimiento de la barra de navegación de Material 3, solo con
   transform y opacity. La píldora (.ind) crece desde el centro; el icono de contorno se funde en el relleno (.msf, la
   misma letra de Material Symbols con FILL 1, scripts/v12-fill-icons.py); el nombre normal se funde en el negrita (dos
   capas en el mismo sitio: el ancho no cambia). Al cambiar de pestaña, la píldora además viaja (navSlide, 2-agenda.js) */
@font-face{font-family:"Material Symbols Rounded Fill";src:url(data:font/woff2;base64,d09GMgABAAAAAAQ4AA4AAAAACCwAAAPjAAL5FwAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYD9TVEFUYgBMEQgKhUyEdQE2AiQDDAsMAAQgBYRyByAMBxvTBlFUUCpBfhw4ZbviOJcnIaO8na4YxC0xV5Oa5PxXzyNUch7+W3u9b2Z2A4AqGrFl2VOhyJJrI0zrAkJXqMgCyW9cAT27/fm87P1CTKftgrWzrqLWIyaVk2tmKZ80WJAoG9tLEqxF8OCY8bJwmCk6pMhbRAJFtA10RB/ZVgbPD/zqxlDtg4R455++JCgpGtZ/RKDTgjEcLlfMIMDnnrTTBGGcoGkAUPL7OFNRsaozciQEWr+vdO0qcTj/8fo7VZlv1lMWNAAB+X1+j3njIaFdwTBHrHIYP/5ghGtfXIZCPOQ6+lGSHqs1nSjLaoNiICFFJ1gLRpfxWJahekZ6DQnyO2zh/Z6TTaBTuyR9bL2o/NbwU9U0tO3nsqMP7Y5ZI6CfJkTT6EOoQCfGgF/EJgAFVIpKVpeswkc8gz3d3DAPi78S453u6+nq6yJrqNc6M4x3PWrwktvtSLCJFuCt1q0hNlVGgt3TbAXekiMWb6YofX++7ZxwVjzNn/l6R7hrvs3fahXPImfhnKcnEnaZd4Aeb88u8xko/GkPk68gIEcfB4k4+qLA4iNEBEjf3F3iuO0BNu8EpiWHIsHZIrwQTgGaoDDedSxFLN4asnQlXbsqlF62zLwkmHT23rJkBRR+eRCxeLG4lHKkHM6II6GwLCntQKjWvn4+6fzTgQPyA8p5N27W8LUFCtmzfp+0FT6c6GO7juJGUbwpbiMenEF/9sSOolx5W4lOIpu49PyBkZHhXjpxaBgNq5lZteOE96yUHHPkS8nNgfCvK4i8LevivsQloX3MGH+VROU/pshzjJm55eTKJOAsaT74mFQFLAI3xjrw4es2nMMnjXddDfOt23V8uD23bd01EqiBM09DDcaV7fHWaSfwRZLOTt4z2fvl5RMF1Rd8LlRj7n/fK7Desi7T8jWzZ/SDnonHbliLxXcf8z3gwWV5WSyW9uMA/wWk/2OPPh/FWnzzfrcnx/MAfH/8Zj/g+5vhBaCOQL7u+B61BIJfUMNr5zG9fQrBuVvWMI5c3wahcpWL/MF6XI9nsigduAUiXljUykt6nfGym9byikPfeJXJkri13abJBO3xlBc644SXjLecl3XHOaIT8/ozurRHyyUsTp92WmoanTApkqTIgMGxWGoGSpgZg1VqEoxRzJDC1GTaOmJQehobadeNZoVJZpLq5GJa0pztavUxkmEZUMzqYqIougaomb9sINUuxSTZMqXKhatUCZf71H4ZJAsmlsnuaBEGG5UNHWCwTOY9Tm9fUJGFMABebdJV3ZU4nbTk++zW6qdEU37zyCxsBhjBMUiRtuRI1YXC5zVPzssx) format("woff2");font-weight:400;font-display:block}
.navbtn .pillw{position:relative;width:64px;height:32px;display:grid;place-items:center;border-radius:16px}
.navbtn .ind{position:absolute;inset:0;border-radius:16px;background:var(--primary-c);transform:scaleX(.2);opacity:0;transition:transform .3s var(--ease-d),opacity .15s linear}
.navbtn .ico{position:relative;z-index:1;display:grid;width:24px;height:24px}
.navbtn .ico>*{grid-area:1/1;transition:opacity .2s var(--ease)}
.navbtn .msf{opacity:0;color:var(--on-primary-c)}
.navbtn span.msf{font-family:"Material Symbols Rounded Fill";font-weight:400;font-style:normal;font-size:24px;line-height:1;width:1em;height:1em;overflow:hidden;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}
.navbtn .ico>.ms{font-size:24px}
.navbtn .ico>svg{width:24px;height:24px}
.navbtn .lbl{display:grid;justify-items:center}
.navbtn .lbl>*{grid-area:1/1;white-space:nowrap;transition:opacity .2s var(--ease)}
.navbtn .lbl>b{font-weight:800;color:var(--ink);opacity:0}
.navbtn[aria-current="page"] .ind{transform:none;opacity:1}
.navbtn[aria-current="page"] .ico>.ms{opacity:0}
.navbtn[aria-current="page"] .msf{opacity:1}
.navbtn[aria-current="page"] .lbl>span{opacity:0}
.navbtn[aria-current="page"] .lbl>b{opacity:1}
.navbtn:active .ico{transform:scale(.9);transition:transform .1s var(--ease)}
.navbtn .ico{transition:transform .25s var(--spring)}
@media (prefers-reduced-motion:reduce){.navbtn .ind,.navbtn .ico,.navbtn .ico>*,.navbtn .lbl>*{transition:none!important}.navbtn:active .ico{transform:none}}
.badge{position:absolute;top:-3px;left:36px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--primary);color:var(--on-primary);font:800 11px/18px var(--body);text-align:center;z-index:1}
.badge:empty:not(.dot){display:none}
/* Al bajar se esconden las barras; al subir un poco vuelven (como en X) */
html.bars-off .topbar{transform:translateY(-100%)}
html.bars-off .bottomnav{transform:translateY(100%)}
html.bars-off .editbar{top:calc(var(--band) + var(--safe-t))}
html.bars-off .daysec>h2{top:calc(var(--band) + var(--safe-t))}

/* ---------- Cinta de días ---------- */
.ribbon{margin:4px 0 12px;padding:10px 10px 10px;border-radius:var(--r-xl);background:var(--container);overflow:hidden;overflow:clip}
.ribbon-head{display:flex;align-items:center;gap:2px;margin-bottom:6px;flex-wrap:wrap}
.ribbon-head h2{margin:0 auto 0 6px;min-width:0;font:900 16px/1.2 var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}
.ribbon-head .iconbtn{width:40px;height:40px}
.ribbon-head .calbtn{background:var(--surface);color:var(--primary);margin-right:4px}
@media (min-width:600px){.ribbon-head .calbtn{display:none}}
@media (max-width:599px){.selinfo .calwk{display:none}}
.rbtns{display:flex;align-items:center;gap:4px;margin-left:auto}
.wk{position:relative;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px 0 7px;border-radius:var(--r-s);border:1px solid var(--outline);font:800 13px/1 var(--body);color:var(--ink-2);transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.wk .ms{font-size:18px}
.wk[aria-pressed="true"]{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.day{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 7px;border-radius:16px;color:var(--ink-2);transition:background .25s,color .25s,transform .25s var(--spring)}
.day:active{transform:scale(.94)}
.day .wd{font:800 11px/1 var(--body);letter-spacing:.06em;text-transform:uppercase}
.day .dn{font:900 21px/1 var(--display);color:var(--ink)}
/* Barras de densidad (de la primera versión): cuántos planes hay ese día */
.day .dots{display:flex;align-items:center;gap:3px;height:6px}
.day .dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.2}
.day .dots i.on{opacity:.85}
/* Fiestas del Pilar: el día va coloreado, sin rayas */
.day.fest{background:var(--fest-c);color:var(--on-fest-c)}
.day.fest .dn{color:var(--on-fest-c)}
.day.fest .dots i{background:var(--fest)}
.day[aria-disabled="true"]{opacity:.35;pointer-events:none}
.day.today .dn{color:var(--primary)}
.day[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.day[aria-pressed="true"] .dn,.day[aria-pressed="true"].today .dn{color:var(--on-primary)}
.day[aria-pressed="true"] .dots i{background:var(--on-primary)}
@media (hover:hover){.day:not([aria-pressed="true"]):hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.selinfo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;padding:6px 2px 0;font:700 13px/1.3 var(--body);color:var(--ink-2)}
.selinfo .grow{flex:1}

/* ---------- Calendario de mes ---------- */
.cal-presets{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 14px}
.cal-head{display:flex;align-items:center;gap:4px;margin-bottom:8px}
.cal-head h3{flex:1;margin:0;font:900 20px/1.2 var(--display);text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .wh{text-align:center;font:800 11px/1 var(--body);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;padding:4px 0 6px}
.cd{position:relative;display:grid;justify-items:center;gap:2px;aspect-ratio:1/1.05;padding:6px 0 4px;border-radius:14px;color:var(--ink);transition:background .15s}
.cd b{font:900 17px/1 var(--display)}
.cd small{font:800 10px/1 var(--body);color:var(--ink-3)}
.cd.fest{background:var(--fest-c);color:var(--on-fest-c)}
.cd.fest small{color:var(--on-fest-c);opacity:.7}
.cd.today b{color:var(--primary)}
.cd.today{box-shadow:inset 0 0 0 1.5px var(--primary)}
.cd[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.cd[aria-pressed="true"] b,.cd[aria-pressed="true"] small{color:var(--on-primary)}
.cd[disabled]{opacity:.28;pointer-events:none}
.cd.blank{visibility:hidden}
@media (hover:hover){.cd:not([aria-pressed="true"]):hover{background:var(--container)}}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 2px 0;font:700 12px/1.3 var(--body);color:var(--ink-3)}
.cal-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--fest-c);box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--fest) 40%,transparent);vertical-align:-3px;margin-right:6px}

/* ---------- Chips (siempre envuelven, nunca se cortan) ---------- */
.quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
/* Móvil y tablet: los filtros rápidos en una sola fila; si hay más, se desliza de lado */
@media (max-width:1023px){
  .quick.one{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px 16px;padding:2px 16px;scroll-padding:0 16px}
  .quick.one::-webkit-scrollbar{display:none}
  /* ZIRPA-APP (Jorge 3-oct): sin rebote hacia los lados; si caben todos, la fila no se mueve (quickFit, 3-views.js) */
  .quick.one{overscroll-behavior-x:none}
  .quick.one.fits{overflow-x:hidden;touch-action:pan-y}
  .quick.one .chip{flex:none;white-space:nowrap}
}
@media (min-width:900px) and (max-width:1023px){.quick.one{margin:0 -32px 18px;padding:2px 32px;scroll-padding:0 32px}}
/* Filtros compactos: chips bajos y de letra más pequeña en la fila deslizable */
@media (max-width:1023px){.quick.one{gap:6px}.quick.one .chip{min-height:32px;padding:4px 12px;gap:6px;font-size:13.5px}.quick.one .chip .ms{font-size:17px}.quick.one .chip small{font-size:11.5px}}
@media (max-width:399px){.quick.one .chip{padding:4px 10px}}
.chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:5px 14px;border-radius:var(--r-s);border:1px solid var(--outline);background:transparent;font:700 14px/1.2 var(--body);color:var(--ink-2);transition:background .2s,border-color .2s,color .2s;text-align:left}
.chip .ms{font-size:18px;margin-left:-4px}
@media (pointer:coarse){.chip{min-height:36px}}
@media (hover:hover){.chip:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.chip[aria-pressed="true"]{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.chip.token{background:var(--gt,var(--container));border-color:transparent;color:var(--ink)}
.chip.token .ms:first-child{color:var(--g)}
.chip.kc{border-color:transparent;background:var(--gt);color:var(--ink)}
.chip.kc .ms{color:var(--g)}
.chip.kc[aria-pressed="true"]{background:var(--g);color:var(--surface)}
.chip.kc[aria-pressed="true"] .ms{color:var(--surface)}
.chip .n{font:800 12px/1 var(--body);padding:3px 7px;border-radius:9px;background:var(--primary);color:var(--on-primary)}
.chip small{font:700 12px/1 var(--body)}
.chip.more{border-style:dashed}

/* ---------- Cabecera del día ---------- */
.dayhead{margin:4px 0 14px}
.dayhead .eyebrow{font:900 12px/1 var(--body);color:var(--primary);text-transform:uppercase;letter-spacing:.14em}
.dayhead :is(h1,.h1){margin:6px 0 0;font:1000 42px/1 var(--display);letter-spacing:-.03em;text-wrap:balance}
.dayhead :is(h1,.h1) span{font-weight:500;color:var(--ink-2)}
.dayhead p{margin:6px 0 0;color:var(--ink-2)}

/* ---------- Franjas ---------- */
.slot{margin:22px 0 8px;display:flex;align-items:center;gap:10px;color:var(--ink-2)}
.slot>.ms{font-size:20px;color:var(--primary)}
.slot :is(h2,h3,h4){margin:0;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;white-space:nowrap}
.slot small{font:800 12px/1 var(--body);color:var(--ink-3);padding:4px 8px;border-radius:8px;background:var(--container)}
.daysec{scroll-margin-top:80px}
.daysec>h2{position:sticky;top:calc(var(--top-h) + var(--safe-t) + var(--band));z-index:5;margin:22px -16px 0;padding:10px 16px;background:var(--bg);font:900 20px/1.1 var(--display);display:flex;align-items:baseline;gap:10px;transition:top .32s var(--ease)}
.daysec>h2 small{font:600 13px/1 var(--body);color:var(--ink-3)}
.daysec .moreday{display:flex;justify-content:center;margin:6px 0 0}

/* ---------- Tarjeta de plan ---------- */
.ev{position:relative;display:grid;grid-template-columns:52px 1fr;gap:0 10px}
html.anim .ev{animation:rise .5s var(--ease-d) both;animation-delay:calc(min(var(--i,0),10) * 28ms)}
.ev-time{position:relative;padding-top:16px;text-align:right}
.ev-time b{display:block;font:900 17px/1 var(--display);font-variant-numeric:tabular-nums}
.ev-time span{display:block;margin-top:4px;font:700 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.ev-time span::before{content:"→ "}
.ev-time em{font:800 11px/1.25 var(--body);font-style:normal;color:var(--ink-3)}
/* Hilo de la agenda: una línea fina y un punto con el color del tipo */
.ev::before{content:"";position:absolute;left:62px;top:0;bottom:0;width:2px;border-radius:1px;background:var(--outline-soft)}
.ev-dot{position:absolute;left:57px;top:19px;width:12px;height:12px;border-radius:50%;background:var(--g);box-shadow:0 0 0 3px var(--bg);transition:transform .3s var(--spring)}
@media (hover:hover){.ev:hover .ev-dot{transform:scale(1.3)}}
.ev-body{position:relative;margin:6px 0 6px 12px;min-width:0}
.ev-card{position:relative;display:block;width:100%;text-align:left;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow .25s,background .2s,transform .2s var(--ease)}
@media (hover:hover){.ev-card:hover{box-shadow:var(--shadow-2)}}
/* En el móvil la tarjeta lleva la raya de su color: los resaltados la conservan */
@media (max-width:599px){@media (hover:hover){.ev-card:hover{box-shadow:var(--shadow-2),inset 4px 0 0 var(--g)}}.ev-card.saved-flash{box-shadow:0 0 0 2px var(--primary),var(--shadow-2),inset 4px 0 0 var(--g)}.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g),var(--shadow-2),inset 4px 0 0 var(--g)}}
.ev-card:active,.ev-card.pressing{transform:scale(.975)}
.ev-card.pressing{transition:transform .4s var(--ease)}
.ev-card.saved-flash{box-shadow:0 0 0 2px var(--primary),var(--shadow-2)}
.ev-card{-webkit-touch-callout:none}
.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g),var(--shadow-2)}
.ev-card .in{display:flex;gap:12px;padding:14px 14px 14px 14px}
.ev-card .txt{display:grid;gap:6px;min-width:0;flex:1}
.ev-card .tmcol{display:none}
.kchip{justify-self:start;display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 6px;border-radius:8px;background:var(--gt);color:var(--g);font:800 12px/1.3 var(--body)}
.kchip .ms{font-size:16px}
.ev-title{font:800 17px/1.25 var(--display);color:var(--ink);text-wrap:pretty;overflow-wrap:break-word;hyphens:auto}
.ev-place{display:flex;gap:4px;align-items:flex-start;font:600 14px/1.35 var(--body);color:var(--ink-2);min-width:0}
.ev-place .ms{font-size:17px;margin-top:1px;color:var(--ink-3)}
.ev-place span:not(.ms){min-width:0;overflow-wrap:anywhere}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags:empty{display:none}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:var(--container);font:700 12px/1.4 var(--body);color:var(--ink-2)}
.tag.free{background:var(--good-c);color:var(--good)}
.tag.live{background:var(--primary-c);color:var(--on-primary-c)}
.tag.live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}
.tag.fest{background:var(--fest-c);color:var(--on-fest-c)}
.tag.edited{background:var(--azul);color:#fff}
.save,.editbtn{position:absolute;right:2px;top:2px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-3);transition:color .2s,background .2s}
.editbtn{top:auto;bottom:4px;right:4px;color:var(--azul);background:color-mix(in oklab,var(--azul) 12%,transparent)}
/* El guardar va arriba a la derecha, a la altura del tipo de plan: siempre a la vista y fácil de quitar */
.ev-card .head{padding-right:34px}
.ev-body:has(.banner)>.save{top:8px;right:8px;width:40px;height:40px;background:var(--surface);box-shadow:var(--shadow-1)}
.ev.leaving{animation:leave .26s var(--ease-a) forwards;pointer-events:none}
@keyframes leave{to{opacity:0;transform:translateX(28px)}}
.save{color:var(--g,var(--primary))}
.save .bm{width:24px;height:24px;display:block}
@media (hover:hover){.save:hover{color:var(--g,var(--primary));background:var(--gt,var(--container))}}
.save[aria-pressed="true"]{color:var(--g,var(--primary))}
.save.pop .bm{animation:pop .45s var(--spring)}

/* Móvil estrecho: la hora va a la izquierda dentro de la tarjeta, grande; el guardar, debajo de la hora */
@media (max-width:599px){
  .ev{grid-template-columns:1fr}
  .ev::before,.ev-dot,.ev-time{display:none}
  .ev-body{margin:5px 0}
  .ev-card{box-shadow:var(--shadow-1),inset 4px 0 0 var(--g)}
  .ev-card .in{gap:12px;padding:14px 14px 14px 16px}
  .ev-card .tmcol{display:flex;flex-direction:column;align-items:flex-start;gap:5px;flex:none;width:56px;padding-right:10px;border-right:1px solid var(--outline-soft);font-variant-numeric:tabular-nums}
  .ev-card .tmcol b{font:900 20px/1 var(--display);letter-spacing:-.02em;color:var(--ink)}
  .ev-card .tmcol small{font:700 12px/1 var(--body);color:var(--ink-3)}
  .ev-card .tmcol em{font:800 13px/1.15 var(--display);font-style:normal;color:var(--ink-2)}
  .ev-body:has(.editbtn) .ev-card .tags{padding-right:46px}
}
.ev-card .head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
}
.ev-card .head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}

/* Imágenes: nunca se recortan. Horizontal arriba a todo el ancho; vertical o cuadrada al lado. */
.banner{position:relative;display:block;background:var(--container)}
.banner img{display:block;width:100%;height:auto}
.thumb{position:relative;flex:none;width:clamp(60px,18vw,78px);align-self:flex-start;border-radius:10px;overflow:hidden;background:var(--container)}
.thumb img{display:block;width:100%;height:auto}

/* ---------- Estantes ---------- */
.shelf{margin:30px 0 8px}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;margin-top:12px}
.opentile{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:14px;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-1);transition:box-shadow .25s}
@media (hover:hover){.opentile:hover{box-shadow:var(--shadow-2)}}
.opentile b{font:800 15px/1.25 var(--display);overflow-wrap:anywhere}
.opentile span:not(.ms){font:500 13px/1.35 var(--body);color:var(--ink-2);overflow-wrap:anywhere}
.opentile .hrs{display:flex;align-items:center;gap:4px;font:800 12px/1.3 var(--body);color:var(--g);font-variant-numeric:tabular-nums}
.opentile .hrs .ms{font-size:15px}
.more{display:flex;justify-content:center;margin-top:12px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 24px;border-radius:999px;font:700 14px/1.2 var(--body);letter-spacing:.01em;border:1px solid var(--outline);background:transparent;color:var(--primary);transition:background .2s,box-shadow .2s;text-decoration:none;text-align:center}
.btn .ms{font-size:20px;margin-left:-6px}
@media (hover:hover){.btn:hover{background:color-mix(in oklab,var(--primary) 8%,transparent)}}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn.tonal{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.btn.text{border-color:transparent;padding:10px 12px}
.btn.small{min-height:32px;padding:4px 14px;font-size:13px}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ---------- Fiestas del Pilar ---------- */
.fiesta{position:relative;overflow:hidden;margin:0 0 18px;border-radius:var(--r-xl);background:var(--fest-c);color:var(--on-fest-c)}
.fiesta .body{display:grid;gap:4px;padding:18px 18px 18px}
.fiesta .eyebrow{font:900 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.fiesta :is(h2,h3){margin:0;font:1000 clamp(22px,5.6vw,28px)/1.08 var(--display);letter-spacing:-.02em;text-wrap:balance}
.fiesta p{margin:2px 0 8px;font-size:14px;opacity:.9}
/* Cuenta atrás al estilo Material 3: números grandes en fichas tonales, emblema con forma de galleta y barra ondulada */
.count{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.count div{display:grid;justify-items:center;gap:4px;min-width:72px;padding:12px 10px 10px;border-radius:20px;background:color-mix(in oklab,var(--surface) 70%,transparent)}
.count b{font:1000 34px/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.count span{font:800 12px/1.2 var(--body);opacity:.85}
.fhead{display:flex;align-items:center;gap:14px}
.fhead>div{display:grid;gap:4px;min-width:0}
.emblem{position:relative;flex:none;width:56px;height:56px;display:grid;place-items:center}
.emblem svg:not(.msvg){position:absolute;inset:0;width:100%;height:100%;fill:var(--fest);animation:spin 24s linear infinite}
.emblem .ms{position:relative;font-size:28px;color:var(--fest-c)}
.emblem svg.msvg{width:28px;height:28px}
@keyframes spin{to{transform:rotate(1turn)}}
.wave{display:grid;gap:6px;margin:0 0 14px}
.wave svg{display:block;width:100%;height:16px;overflow:visible}
.wave .wv{fill:none;stroke:var(--fest);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.wave line{stroke:color-mix(in oklab,var(--fest) 22%,transparent);stroke-width:4.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.wave circle{fill:var(--fest)}
.wave span{font:800 13px/1.3 var(--body)}
.pilar-hero .fhead{gap:12px;margin-bottom:6px}
.cachibtn{margin:0 0 6px;border-color:color-mix(in oklab,var(--on-fest-c) 35%,transparent);color:var(--on-fest-c)}
.cachibtn[aria-pressed="true"]{background:var(--fest);color:var(--fest-c)}
/* Tema cachirulo: el cuadro rojo y negro */
html[data-palette="cachirulo"]{--cachi:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/10px 10px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/10px 10px,#C8102E}
/* Franja de cachirulo: más ancha y fija; si las barras se esconden al bajar, se queda arriba del todo */
:root{--band:0px}
html[data-palette="cachirulo"]{--band:14px}
/* La franja va colgada de la barra de arriba: se mueve con ella (también en el rebote del iPhone/iPad) y, al esconderse la barra, queda arriba del todo */
/* Banda de pañuelo: fila de triángulos con la punta hacia abajo, como el cachirulo anudado */
html[data-palette="cachirulo"] .topbar::after{content:"";position:absolute;left:0;right:0;top:100%;height:calc(var(--band) + 2px);pointer-events:none;
  background:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,#C8102E;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 0H24L12 14Z'/%3E%3C/svg%3E") center bottom/24px 16px round no-repeat,linear-gradient(#000,#000) left top/100% calc(100% - 15px) no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 0H24L12 14Z'/%3E%3C/svg%3E") center bottom/24px 16px round no-repeat,linear-gradient(#000,#000) left top/100% calc(100% - 15px) no-repeat}
html[data-palette="cachirulo"].bars-off .topbar::after{height:calc(var(--band) + 2px + var(--safe-t))}
/* La banda tiene su sitio: el contenido empieza debajo y no queda tapado */
html[data-palette="cachirulo"] #views>.view:not(.mapview){border-top:var(--band) solid transparent}
html.mapfull .topbar::after{display:none}
html[data-palette="cachirulo"] .mapbar{padding-top:calc(12px + var(--band))}
html[data-palette="cachirulo"] .pilar-hero,html[data-palette="cachirulo"] .fiesta{box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--fest) 25%,transparent)}
.pilar-art{display:grid;margin-top:-4px}
.pilar-art svg{display:block;width:100%;height:auto;max-height:132px}
.pilar-art .sil{fill:var(--on-fest-c)}
.pilar-art .band{height:22px;background:var(--cachi,var(--fest))}
.pilar-art .burst line{stroke:var(--fest);stroke-width:2.5;stroke-linecap:round}
.fiesta .btns{display:flex;flex-wrap:wrap;gap:8px}
.fiesta .btn{min-height:42px;padding:8px 18px;color:var(--on-fest-c);border-color:color-mix(in oklab,var(--on-fest-c) 35%,transparent)}
.fiesta .btn.primary{background:var(--fest);border-color:var(--fest);color:var(--fest-c)}
/* Vista de fiestas */
.pilar-hero{position:relative;overflow:hidden;margin:6px 0 18px;border-radius:var(--r-xl);background:var(--fest-c);color:var(--on-fest-c)}
.pilar-hero .body{padding:24px 22px 22px}
.pilar-hero h1{margin:6px 0 4px;font:1000 clamp(34px,8vw,54px)/1 var(--display);letter-spacing:-.03em}
.pilar-hero .lead{margin:6px 0 8px;max-width:46ch;font:600 16px/1.45 var(--body)}
.pilar-hero .stats{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 14px;font:700 14px/1.2 var(--body)}
.pilar-hero .stats b{font:1000 20px/1 var(--display)}
.pdays{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 10px;margin:0 -2px 6px;scrollbar-width:thin;scroll-snap-type:x proximity}
.pday{flex:none;scroll-snap-align:start;display:grid;justify-items:center;gap:2px;min-width:62px;padding:8px 6px;border-radius:16px;background:var(--container);color:var(--ink-2);transition:background .2s}
.pday .wd{font:800 11px/1 var(--body);text-transform:uppercase;letter-spacing:.06em}
.pday b{font:1000 22px/1 var(--display);color:var(--ink)}
.pday small{font:800 11px/1 var(--body);color:var(--ink-3)}
.pday[aria-pressed="true"]{background:var(--fest);color:var(--fest-c)}
.pday[aria-pressed="true"] b,.pday[aria-pressed="true"] small{color:var(--fest-c)}
.must{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px;margin:12px 0 8px}
.mustc{position:relative;display:grid;gap:6px;align-content:start;text-align:left;padding:14px 14px 14px 16px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1),inset 4px 0 0 var(--fest)}
.mustc .when{font:900 13px/1.2 var(--display);color:var(--fest)}
.mustc b{font:900 17px/1.2 var(--display);overflow-wrap:anywhere}
.mustc span{font:600 13px/1.35 var(--body);color:var(--ink-2)}

/* ---------- Vacío ---------- */
.empty{margin:24px 0;padding:28px 20px;text-align:center;border-radius:24px;background:var(--container);color:var(--ink-2)}
.empty>.ms{font-size:40px;color:var(--primary);width:auto;height:auto;margin-bottom:6px}
.empty :is(h2,h3){margin:0 0 6px;font:900 20px/1.2 var(--display);color:var(--ink)}
.empty p{margin:0}
.empty .btns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}
.empty .inl{font-size:18px;vertical-align:-3px;width:auto;height:auto}
.fuentes{margin:36px 0 12px;padding-top:12px;border-top:1px solid var(--outline-soft);color:var(--ink-3);font-size:13px}

/* ---------- Botones flotantes: subir y bajar rápido, añadir ---------- */
.fabs{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(var(--nav-h) + var(--safe-b) + 14px);z-index:38;display:grid;gap:10px;justify-items:end;transition:opacity .25s,transform .32s var(--ease)}
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): baja con transform cuando se esconde la barra, no animando «bottom» */
html.bars-off .fabs{transform:translateY(var(--nav-h))}
.jump{display:grid;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden;transition:opacity .25s,transform .3s var(--ease)}
.jump.off{opacity:0;transform:translateY(12px) scale(.9);pointer-events:none}
.jump button{position:relative;width:48px;height:48px;display:grid;place-items:center;color:var(--ink)}
.jump button:disabled{color:var(--ink-3);opacity:.45}
.jump button+button{border-top:1px solid var(--outline-soft)}
.jump button:active{background:var(--container)}
.jump.idle:not(:focus-within){opacity:0;transform:translateX(8px);pointer-events:none}
@media (max-width:899px){.search{animation:peek .28s var(--ease-d) both}}
@media (max-width:599px){.fabs{right:max(6px,env(safe-area-inset-right,0px))}.jump button{width:44px;height:44px}}
.fab{position:relative;display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 20px 0 16px;border-radius:var(--r-l);background:var(--azul);color:#fff;font:800 15px/1 var(--body);box-shadow:var(--shadow-2);transition:transform .3s var(--spring)}
.fab:active{transform:scale(.96)}
:root[data-theme="dark"] .fab{color:#0B1A33}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fab{color:#0B1A33}}

/* ---------- Mapas ---------- */
.map{position:relative;overflow:hidden;background:var(--container)}
.map.schem{touch-action:none;user-select:none;-webkit-user-select:none}
.map canvas.sc,.map svg.ov{position:absolute;inset:0;width:100%;height:100%}
.map svg.ov{overflow:visible}
.map .ctl{position:absolute;right:12px;top:12px;display:grid;gap:0;z-index:3;border-radius:14px;background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden}
.map .ctl button{width:44px;height:44px;display:grid;place-items:center;color:var(--ink-2)}
.map .ctl button+button{border-top:1px solid var(--outline-soft)}
.map .ctl button[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.map .ctl .t3d{font:1000 14px/1 var(--display);letter-spacing:-.02em}
.map .note{position:absolute;left:12px;bottom:10px;z-index:3;font:600 11px/1.2 var(--body);color:var(--ink-3);background:color-mix(in oklab,var(--surface) 85%,transparent);padding:4px 8px;border-radius:8px}
.mk{cursor:pointer}
.mk .r{transition:transform .3s var(--spring);transform-box:fill-box;transform-origin:center}
.mk:hover .r,.mk.on .r{transform:scale(1.25)}
.mk text{font:800 11px var(--body);fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.mk-label{font:800 12px var(--body);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;fill:var(--ink)}
.district{font:800 10px var(--body);letter-spacing:.14em;text-transform:uppercase;fill:var(--ink-3);text-anchor:middle;paint-order:stroke;stroke:var(--container);stroke-width:3px}
.landmark{font:700 11px var(--body);fill:var(--ink-2);paint-order:stroke;stroke:var(--container);stroke-width:3px}
.pulse{animation:ring 1.4s var(--ease) infinite;transform-box:fill-box;transform-origin:center}
.editing .mk[data-spot]{cursor:grab}
/* Marcadores del mapa real (el transform exterior lo pone MapLibre) */
.pin{width:36px;height:36px;padding:0;border:0;background:none;cursor:pointer}
.pin .pw{position:relative;display:block;width:100%;height:100%;transition:transform .25s var(--spring);transform-origin:50% 130%}
.pin-in{position:absolute;inset:0;display:grid;place-items:center;background:var(--g);border:2.5px solid #fff;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 3px 6px rgba(0,0,0,.28)}
.pin-in .ms{transform:rotate(45deg);font-size:18px;color:#fff}
:root[data-theme="dark"] .pin-in .ms{color:#2A1A1D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pin-in .ms{color:#2A1A1D}}
.pin-n{position:absolute;top:-7px;right:-9px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--ink);color:var(--bg);font:800 11px/19px var(--body);text-align:center}
.pin:hover .pw,.pin.on .pw{transform:scale(1.18)}
.pin.on{z-index:3}
.sqpin{width:26px;height:26px;display:grid;place-items:center;padding:0;border:2px solid var(--g);border-radius:8px;background:var(--surface);color:var(--g);cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.sqpin .ms{font-size:16px}
.editing .sqpin{cursor:grab;border-style:dashed;width:32px;height:32px}
.dotpin{width:13px;height:13px;padding:0;border-radius:50%;border:2px solid var(--surface);background:var(--dc,var(--ink-3));cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.mepin{width:20px;height:20px;border-radius:50%;background:#1A73E8;border:3px solid #fff;box-shadow:0 0 0 6px rgba(26,115,232,.25)}
.mepin.start{background:var(--ink-3);box-shadow:0 0 0 6px color-mix(in oklab,var(--ink-3) 25%,transparent)}
.endpin{width:34px;height:40px;display:grid;place-items:start center}
.endpin span{width:34px;height:34px;display:grid;place-items:center;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--primary);border:2.5px solid var(--surface);box-shadow:0 3px 6px rgba(0,0,0,.28)}
.endpin .ms{transform:rotate(45deg);font-size:18px;color:var(--on-primary)}
.sqpin.dragging{cursor:grabbing;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.map.schem.mini{touch-action:pan-y}
.mk.drag .r{transform:scale(1.4)}
.editing .mk[data-spot]:active{cursor:grabbing}
.s-farmacia{--dc:var(--good)} .s-comer{--dc:var(--k-humor)} .s-beber{--dc:var(--k-teatro)} .s-noche{--dc:var(--k-circo)}
.map.real .maplibregl-ctrl-group{border-radius:14px;background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden}
.map.real .maplibregl-ctrl-group button{width:40px;height:40px}
.map.real .maplibregl-ctrl-group button+button{border-top:1px solid var(--outline-soft)}
.map.real .maplibregl-ctrl-group button[aria-pressed="true"]{background:var(--primary-c)}
.map.real .maplibregl-ctrl-icon{filter:none}
:root[data-theme="dark"] .map.real .maplibregl-ctrl-icon{filter:invert(.9)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .map.real .maplibregl-ctrl-icon{filter:invert(.9)}}
.map.real .maplibregl-ctrl-attrib{font:600 11px/1.3 var(--body)}
.map.real .ctl3d{font:1000 13px/40px var(--display)!important;color:var(--ink)!important;letter-spacing:-.02em}
.map.real .ctl3d[aria-pressed="true"]{color:var(--on-primary-c)!important}

/* Vista de mapa */
.mapview{position:relative;padding:0;max-width:none}
.mapview .note{display:none}
.mapview .map{height:calc(100vh - var(--top-h) - var(--nav-h) - var(--safe-b) - var(--safe-t));height:calc(100dvh - var(--top-h) - var(--nav-h) - var(--safe-b) - var(--safe-t))}
/* Capas del mapa: una sola fila que se desliza; los sitios van juntos en un menú */
.mapbar{position:absolute;left:0;right:0;top:0;z-index:4;display:flex;flex-wrap:nowrap;gap:6px;padding:12px;overflow-x:auto;scrollbar-width:none;pointer-events:none}
.mapbar::-webkit-scrollbar{display:none}
.mapbar>*{pointer-events:auto;flex:none}
.mapbar .chip{min-height:36px;padding:5px 12px;font-size:13px;background:var(--surface);border-color:transparent;box-shadow:var(--shadow-1);white-space:nowrap}
.mapbar .chip .n{padding:2px 6px;font-size:11px}
.mapbar .chip>.ms:last-child:not(:first-child){margin:0 -6px 0 -4px;font-size:18px}
.mapview .map .ctl{top:62px}
.mapview .maplibregl-ctrl-top-right{top:50px}
.menu{padding:8px 0}
.menu h4{margin:6px 16px 8px}
.mrow{position:relative;display:grid;grid-template-columns:36px 1fr 24px;gap:12px;align-items:center;width:100%;min-height:48px;padding:4px 16px;text-align:left;font:700 15px/1.2 var(--body)}
@media (hover:hover){.mrow:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.mrow .mi{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:color-mix(in oklab,var(--dc,var(--primary)) 16%,transparent);color:var(--dc,var(--primary))}
.mrow .mi .ms{font-size:20px}
.mrow .ml small{display:block;margin-top:2px;font:600 12px/1.3 var(--body);color:var(--ink-3)}
.menu{max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain}
.mrow>.ms{color:var(--primary);visibility:hidden}
.mrow[aria-checked="true"]>.ms{visibility:visible}
.s-cultura{--dc:var(--k-museo)} .s-pena{--dc:var(--fest)} .s-clases{--dc:var(--k-taller,var(--azul))} .s-hotel{--dc:var(--azul)}
.mapbar .chip[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.chip.edit,.mapbar .chip.edit{background:var(--azul);color:#fff;border-color:transparent}
.chip.edit[aria-pressed="true"]{box-shadow:0 0 0 3px color-mix(in oklab,var(--azul) 35%,transparent)}
:root[data-theme="dark"] .chip.edit{color:#0B1A33}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.edit{color:#0B1A33}}
.mapday{position:absolute;left:12px;right:12px;bottom:12px;z-index:4;display:grid;gap:8px;pointer-events:none}
.mapday>*{pointer-events:auto}
.mdrow{display:flex;align-items:flex-end;gap:8px;pointer-events:none}
.mdrow>*{pointer-events:auto}
.mdrow .pill{margin-right:auto}
.fsbtn{margin-left:auto;width:48px;height:48px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2)}
@media (hover:hover){.fsbtn:hover{background:var(--container)}}
.fsbtn[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
/* Mapa a pantalla completa */
html.mapfull .topbar{transform:translateY(-100%)}
html.mapfull .bottomnav{transform:translateY(100%)}
html.mapfull .editbar,html.mapfull .fabs{display:none}
html.mapfull .mapview{position:fixed;inset:0;z-index:45;background:var(--bg);animation:fade .25s ease both}
html.mapfull .mapview .map{height:100vh;height:100dvh}
html.mapfull .mapbar{padding-top:calc(12px + var(--safe-t))}
html.mapfull .mapday{bottom:calc(12px + var(--safe-b))}
html.mapfull .map.real~.mapday{bottom:calc(34px + var(--safe-b))}
html.mapfull .toast{bottom:calc(16px + var(--safe-b))}
.map.real~.mapday{bottom:34px}
.mapday .pill{justify-self:start;display:flex;align-items:center;gap:2px;padding:4px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow-2)}
.mapday .pill b{padding:0 8px;font:800 14px/1 var(--display);white-space:nowrap}
.mapday .pill .iconbtn{width:38px;height:38px}
.mapnote{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 6px 10px 12px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-2);font-size:13px;line-height:1.4;color:var(--ink-2)}
.mapnote>.ms{color:var(--primary);margin-top:1px}
.mapnote b{color:var(--ink)}
.mapnote .iconbtn{width:34px;height:34px}
.peek{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-2);padding:14px;max-height:46vh;max-height:46dvh;overflow:auto;overscroll-behavior:contain;animation:peek .4s var(--ease)}
.peek header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.peek header div{flex:1;min-width:0}
.peek h3{margin:0;font:900 17px/1.2 var(--display)}
.peek header p{margin:2px 0 0;color:var(--ink-3);font-size:13px}
.peek .btn{width:100%;margin-top:8px}
/* Dirección con su botón pequeño de navegar al lado */
.addr{display:flex;align-items:center;gap:6px;margin:0 0 6px;font:600 14px/1.35 var(--body);color:var(--ink-2)}
.addr>.ms{font-size:18px;color:var(--ink-3)}
.addr>span:not(.ms){flex:1;min-width:0;overflow-wrap:anywhere}
.navmini{position:relative;flex:none;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px 0 8px;border-radius:16px;background:var(--primary-c);color:var(--on-primary-c);font:800 13px/1 var(--body);transition:background .2s,transform .2s var(--spring)}
.navmini .ms{font-size:18px}
.navmini:active{transform:scale(.94)}
@media (hover:hover){.navmini:hover{background:color-mix(in oklab,var(--primary-c) 80%,var(--primary))}}
.fact .navmini{align-self:center}
.fact.go{grid-template-columns:22px 1fr auto}
.peek .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.peek .row2 .btn{margin-top:8px}
.peekrow{display:grid;grid-template-columns:48px 1fr;gap:10px;width:100%;text-align:left;padding:9px 6px;border-top:1px solid var(--outline-soft);border-radius:10px}
@media (hover:hover){.peekrow:hover{background:var(--container)}}
.peekrow b{font:800 15px/1.2 var(--display);font-variant-numeric:tabular-nums}
.peekrow span:not(.ms){font:700 14px/1.3 var(--body);overflow-wrap:anywhere}
.peekrow small{display:flex;align-items:center;gap:4px;color:var(--g);font-weight:800}
.peekrow small .ms{font-size:15px}
/* Ruta dentro de la app */
.route{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-2);padding:14px;max-height:52vh;max-height:52dvh;overflow:auto;overscroll-behavior:contain;animation:peek .4s var(--ease)}
.route header{display:flex;gap:10px;align-items:flex-start}
.route header div{flex:1;min-width:0}
.route h3{margin:0;font:900 17px/1.2 var(--display);overflow-wrap:anywhere}
.route header p{margin:2px 0 0;font-size:13px;color:var(--ink-3)}
.modes{display:flex;gap:6px;margin:10px 0}
.modes .chip{flex:1;justify-content:center;padding:6px 8px}
.rsum{display:flex;align-items:baseline;gap:10px;margin:4px 2px 8px}
.rsum b{font:1000 30px/1 var(--display);color:var(--primary)}
.rsum span{font:700 14px/1.3 var(--body);color:var(--ink-2)}
.steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--outline-soft)}
.steps li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--outline-soft);font-size:14px}
.steps li .ms{color:var(--primary)}
.steps li small{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.rnote{display:flex;gap:8px;align-items:flex-start;margin:6px 0;padding:10px 12px;border-radius:14px;background:var(--container);font-size:13px;color:var(--ink-2)}
.rnote .ms{font-size:18px;color:var(--primary)}
.ext{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
/* Ruta del día: paradas numeradas y lo que se tarda entre una y otra */
.stops{list-style:none;margin:4px 0 0;padding:0}
.stops .stop{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center}
.stops .stop button{display:grid;gap:2px;min-width:0;padding:8px 6px;border-radius:12px;text-align:left}
@media (hover:hover){.stops .stop button:hover{background:var(--container)}}
.stops .stop b{font:800 15px/1.25 var(--display);overflow-wrap:anywhere}
.stops .stop small{font:600 12px/1.3 var(--body);color:var(--ink-3)}
.sn{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--azul);color:#fff;font:900 14px/1 var(--display)}
.stops .leg{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:2px 0;font:700 13px/1.3 var(--body);color:var(--ink-2)}
.stops .leg .ms{justify-self:center;font-size:18px;color:var(--azul);position:relative;z-index:1;background:var(--surface);padding:2px 0}
.stops .leg em{display:block;font-style:normal;font-weight:800;color:var(--warn)}
.stoppin{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--azul);border:3px solid var(--surface);box-shadow:0 2px 6px rgba(0,0,0,.3);color:#fff;font:900 14px/1 var(--display)}
.stopn{font:900 14px/1 var(--display);fill:#fff}
.daysec>h2 .dayroute{margin-left:auto;align-self:center}
.pill.mine{padding:4px 4px 4px 14px;gap:8px}
.pill.mine>.ms{font-size:20px;color:var(--primary)}
.pagehead .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

/* ---------- Páginas ---------- */
.pagehead{margin:8px 0 16px}
.pagehead .eyebrow{font:900 12px/1 var(--body);color:var(--primary);text-transform:uppercase;letter-spacing:.14em}
.pagehead h1{margin:4px 0 0;font:1000 36px/1.05 var(--display);letter-spacing:-.03em}
.pagehead p{margin:6px 0 0;color:var(--ink-2);max-width:60ch}
.field{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:26px;background:var(--container);margin-bottom:12px;color:var(--ink-2)}
.field input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:16px;padding:12px 0;color:var(--ink)}
.field:focus-within{box-shadow:0 0 0 2px var(--primary)}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}
.place{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow .25s}
html.anim .place{animation:rise .5s var(--ease-d) both;animation-delay:calc(min(var(--i,0),10) * 25ms)}
@media (hover:hover){.place:hover{box-shadow:var(--shadow-2)}}
.place .row{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:14px}
.tile{width:44px;height:44px;display:grid;place-items:center;background:var(--gt);color:var(--g);border-radius:14px}
.place b{display:block;font:800 16px/1.25 var(--display);overflow-wrap:anywhere}
.place .row>span:not(.tile)>span{display:block;margin-top:2px;font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
.place .up{margin-top:8px!important;display:inline-flex!important;align-items:center;gap:5px;font:800 12px/1 var(--body)!important;color:var(--primary)!important}
.place .up::before{content:"";width:7px;height:7px;background:currentColor;border-radius:50%}

/* ---------- Mis planes ---------- */
.next{position:relative;margin:0 0 22px;padding:20px;border-radius:28px;background:var(--primary-c);color:var(--on-primary-c)}
.next .save{top:10px;right:10px;color:var(--on-primary-c)}
.next h2{padding-right:30px}
.next .eyebrow{display:flex;align-items:center;gap:6px;font:800 13px/1 var(--body)}
.next .eyebrow .ms{font-size:18px}
.next h2{margin:10px 0 4px;font:900 24px/1.15 var(--display);text-wrap:balance}
.next p{margin:0 0 14px;opacity:.9}
.next .btn{margin-top:14px}

/* ---------- Cuenta ---------- */
.card{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-1);padding:18px}
.profile{display:grid;gap:14px;margin-bottom:22px}
.profile .who{display:flex;align-items:center;gap:14px}
.avatar{width:56px;height:56px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font:900 22px/1 var(--display)}
.avatar .ms{font-size:30px}
.profile .who div{flex:1;min-width:0}
.profile .who b{display:block;font:900 19px/1.2 var(--display);overflow-wrap:anywhere}
.profile .who small{display:block;color:var(--ink-3);overflow-wrap:anywhere}
.profile .btns{display:flex;flex-wrap:wrap;gap:8px}
.profile .btns .btn{flex:1 1 180px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stats div{padding:10px;border-radius:16px;background:var(--container);text-align:center}
.stats b{display:block;font:900 22px/1 var(--display)}
.stats span{font-size:12px;font-weight:700;color:var(--ink-2)}
.group{margin:0 0 22px}
.group>:is(h2,h3){margin:0 0 4px;font:900 18px/1.2 var(--display)}
.group>p{margin:0 0 10px;color:var(--ink-2);font-size:14px}
.list{background:var(--surface);border-radius:20px;box-shadow:var(--shadow-1);overflow:hidden}
.lrow{display:grid;grid-template-columns:24px 1fr auto;gap:14px;align-items:center;width:100%;min-height:56px;padding:10px 16px;text-align:left;text-decoration:none;color:var(--ink)}
.lrow+.lrow{border-top:1px solid var(--outline-soft)}
@media (hover:hover){.lrow:hover{background:color-mix(in oklab,var(--ink) 4%,transparent)}}
.lrow>.ms:first-child{color:var(--ink-2)}
.lrow b{display:block;font:700 15px/1.3 var(--body)}
.lrow small{display:block;color:var(--ink-3);font-size:13px;line-height:1.35}
.lrow>.ms:last-child{color:var(--ink-3);font-size:20px}
.swbtn{display:grid;place-items:center;width:60px;height:48px;border-radius:24px}
.sw{position:relative;flex:none;width:52px;height:32px;border-radius:16px;background:var(--container-hi);border:2px solid var(--outline);transition:background .2s,border-color .2s}
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): el botón del interruptor se mueve y crece con transform (antes, left/width/height) */
.sw::after{content:"";position:absolute;top:50%;left:24px;width:22px;height:22px;border-radius:50%;background:var(--ink-3);transform:translate(-21px,-50%) scale(.7273);transition:transform .25s var(--ease),background .2s}
[aria-checked="true"] .sw{background:var(--primary);border-color:var(--primary)}
[aria-checked="true"] .sw::after{transform:translate(0,-50%);background:var(--on-primary)}
.select{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 16px;border-radius:16px;border:1px solid var(--outline);background:var(--surface);color:var(--ink-2)}
.select select{flex:1;min-width:0;border:0;background:none;outline:none;font-size:16px;padding:14px 0;color:var(--ink)}
.select:focus-within{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.likes{display:flex;flex-wrap:wrap;gap:8px}
.likes .chip[aria-pressed="true"]{background:var(--gt);color:var(--ink)}
.likes .chip .ms{color:var(--g)}
.protonote{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--container);color:var(--ink-2);font-size:13px}

/* ---------- Hojas ---------- */
.scrim{position:fixed;inset:0;z-index:60;background:var(--scrim);animation:fade .3s ease both}
.sheet{position:fixed;z-index:61;left:0;right:0;bottom:0;max-height:94vh;max-height:94dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:28px 28px 0 0;box-shadow:var(--shadow-2);animation:sheetup .5s var(--ease-d) both;overflow:hidden}
.sheet.noanim,.scrim.noanim{animation:none}
.grab{flex:none;display:grid;place-items:center;height:30px;cursor:grab;touch-action:none}
.grab::before{content:"";width:36px;height:4px;border-radius:2px;background:var(--outline)}
.sheet-scroll{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 20px calc(24px + var(--safe-b))}
.sheet-top{position:sticky;top:0;z-index:4;display:flex;justify-content:flex-end;gap:6px;padding:4px 0 0;margin-bottom:-44px;pointer-events:none}
.sheet-top .iconbtn{pointer-events:auto;background:var(--surface);box-shadow:var(--shadow-1)}
/* Al bajar, la X lleva su franja: el contenido pasa por debajo en vez de chocar con ella */
.sheet.scrolled .sheet-top::before{content:"";position:absolute;inset:-4px -20px -6px;background:var(--surface);box-shadow:0 1px 0 var(--outline-soft);z-index:-1}
.sheet.scrolled .sheet-top .iconbtn{box-shadow:none}
/* ZIRPA-APP (petición de Jorge, 3-oct-2026): fichas con cabecera de color. Sin franja vacía al bajar: la barra solo aparece
   cuando el título grande se ha ido por debajo, con el color de la cabecera y el título en una línea. Misma altura siempre */
.sheet-top .st-title{flex:1;min-width:0;align-self:center;margin:0 10px 0 0;font:800 17px/1.25 var(--display);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;visibility:hidden}
.sheet.has-hero .sheet-top::before{content:"";position:absolute;inset:-4px -20px -6px;background:var(--gt,var(--surface));box-shadow:0 1px 0 var(--outline-soft);z-index:-1;opacity:0;transition:opacity .18s ease}
.sheet.has-hero.scrolled:not(.titled) .sheet-top .iconbtn{box-shadow:var(--shadow-1)}
.sheet.has-hero.titled .sheet-top::before{opacity:1}
.sheet.has-hero.titled .st-title{opacity:1;transform:none;visibility:visible}
/* En el móvil, la zona del asa (arriba de la X) queda siempre tapada: el texto no pasa por debajo del asa */
@media (max-width:899px){
  .sheet.has-hero.scrolled .sheet-top::after{content:"";position:absolute;left:-20px;right:-20px;top:-6px;height:28px;background:var(--surface);z-index:-1;transition:background-color .18s ease}
  .sheet.has-hero.titled .sheet-top::after{background:var(--gt,var(--surface))}
}
@media (prefers-reduced-motion:reduce){.sheet-top .st-title,.sheet.has-hero .sheet-top::before,.sheet.has-hero .sheet-top::after{transition:none}}
/* Arriba del todo, los títulos dejan sitio a la X */
.sheet .hero,.sheet h2.plain,.sheet h2.plain+p{padding-right:52px}
.hero{position:relative;margin:0 -20px 0;padding:18px 72px 18px 20px;background:var(--gt,var(--container))}
.hero .kchip{font-size:13px;padding:4px 10px 4px 7px;background:var(--surface)}
.hero .kchip .ms{font-size:18px}
.hero h2{margin:10px 0 0;font:900 27px/1.12 var(--display);color:var(--ink);text-wrap:balance;overflow-wrap:anywhere;letter-spacing:-.01em}
.hero .cenefa{display:none}
.media{position:relative;margin:0 -20px;display:grid;place-items:center;overflow:hidden;background:var(--container)}
.media .blur{position:absolute;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(26px) saturate(1.1);opacity:.55}
.media .full{position:relative;display:block;max-width:100%;max-height:58vh;max-height:58dvh;width:auto;height:auto;object-fit:contain}
.media+.hero{padding-right:20px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.fact{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 14px;background:var(--container);border-radius:16px;min-width:0}
.fact>.ms{color:var(--primary);font-size:20px;margin-top:1px}
.fact small{display:block;font:800 12px/1.2 var(--body);color:var(--ink-3)}
.fact span:not(.ms){display:block;margin-top:3px;font:700 14px/1.35 var(--body);overflow-wrap:anywhere}
.fact.wide{grid-column:1/-1}
.desc{font-size:16px;line-height:1.6;max-width:62ch;margin:0 0 16px}
.desc a{color:var(--primary);font-weight:700}
.notice{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 14px;margin:0 0 16px;border-radius:16px;background:var(--warn-c);color:var(--warn);font-size:14px}
.notice p{margin:0;color:var(--ink)}
.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 22px}
.actions .btn{min-height:48px;padding:10px 14px}
.actions .btn.wide{grid-column:1/-1}
/* Si queda un botón suelto en la última fila, ocupa todo el ancho */
.actions:not(.n3) .btn:last-child:nth-child(even){grid-column:1/-1}
@media (max-width:599px){.actions.n3 .btn:last-child:nth-child(even){grid-column:1/-1}}
.fact.muted span{color:var(--ink-2);font-weight:600}
.edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 22px;padding:12px;border-radius:18px;background:color-mix(in oklab,var(--azul) 10%,transparent)}
.edit-actions .btn{color:var(--azul);border-color:color-mix(in oklab,var(--azul) 40%,transparent);flex:1 1 140px}
.sub{margin:24px 0 10px;display:flex;align-items:center;gap:10px}
.sub h3{margin:0;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;color:var(--ink-2)}
.minimap{height:220px;border-radius:20px}
.near ul{list-style:none;margin:0;padding:0}
.near li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--outline-soft);font-size:14px}
.near li:last-child{border-bottom:0}
.near li>.ms{color:var(--ink-3)}
.near b{font-weight:700;overflow-wrap:anywhere}
.near small{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.hours{list-style:none;margin:0;padding:0}
.hours li{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--outline-soft);font-variant-numeric:tabular-nums}
.hours li span:first-child{text-transform:capitalize}
.hours li.off{color:var(--ink-3)}
.mini-list{display:grid;gap:8px}
.minirow{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 12px;border-radius:14px;background:var(--container);transition:background .2s}
@media (hover:hover){.minirow:hover{background:var(--container-hi)}}
.minirow b{font:800 14px/1.1 var(--display);text-transform:capitalize}
.minirow span:not(.ms){font:700 14px/1.3 var(--body);overflow-wrap:anywhere}
.sheet h2.plain{margin:6px 60px 2px 0;font:900 26px/1.1 var(--display)}
.sheet-foot{position:sticky;bottom:calc(-24px - var(--safe-b));display:flex;gap:8px;margin:0 -20px calc(-24px - var(--safe-b));padding:12px 20px calc(12px + var(--safe-b));background:linear-gradient(to top,var(--surface) 75%,transparent)}
.sheet-foot .btn{flex:1}
.sheet-foot .btn.text{flex:none;padding:8px 12px}

/* ---------- Búsqueda ---------- */
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): al cerrar, el buscador se va con un fundido (4-ui.js ghostOut, clase .search-out) */
:is(.search,.search-out){position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--bg);animation:fade .2s var(--ease-d) both}
:is(.search,.search-out) .bar{display:flex;align-items:center;gap:6px;margin:calc(8px + var(--safe-t)) 12px 6px;padding:0 4px 0 16px;border-radius:28px;background:var(--container);color:var(--ink-2)}
:is(.search,.search-out) .bar input::-webkit-search-cancel-button{display:none}
:is(.search,.search-out) .bar input{flex:1;min-width:0;border:0;background:none;outline:none;font:600 17px/1.2 var(--body);padding:16px 4px;color:var(--ink)}
:is(.search,.search-out) .res-wrap{overflow:auto;padding:4px 16px 40px;overscroll-behavior:contain}
:is(.search,.search-out) h4{margin:18px 0 6px;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2)}
.res{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:8px;border-radius:16px}
.res:hover,.res.sel{background:var(--container)}
.res b{display:block;font:700 15px/1.3 var(--body);overflow-wrap:anywhere}
.res small{display:block;color:var(--ink-3);font-size:13px;overflow-wrap:anywhere}
.res mark{background:var(--primary-c);color:var(--on-primary-c);border-radius:3px}
.hint{color:var(--ink-3);padding:16px 4px 0;margin:0}
.suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ---------- Afinar ---------- */
.fq{margin:22px 0 10px}
.fq:first-child{margin-top:4px}
.fq :is(h3,h4){margin:0;font:900 17px/1.25 var(--display);color:var(--ink)}
.fq p{margin:3px 0 0;font-size:13px;color:var(--ink-3)}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.cat-opt{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;min-height:48px;padding:6px 10px 6px 6px;border-radius:14px;text-align:left;background:var(--container);border:1.5px solid transparent;transition:background .2s,border-color .2s,opacity .2s;font:700 13px/1.25 var(--body)}
.cat-opt .t{width:32px;height:32px;display:grid;place-items:center;background:var(--gt);color:var(--g);border-radius:10px;transition:background .2s,color .2s}
.cat-opt .t .ms{font-size:19px}
.cat-opt .l{min-width:0;overflow-wrap:anywhere}
.cat-opt small{font:800 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.cat-opt.zero{opacity:.75}
/* Tipos sin planes: plegados con animación de altura (grid 0fr → 1fr) */
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): se abre al momento y lo de dentro entra con opacity y transform (antes se
   animaba grid-template-rows, que recalcula la hoja en cada fotograma) */
.zeros{display:grid;grid-template-rows:0fr;opacity:0}
.zeros.open{grid-template-rows:1fr;opacity:1;margin-top:6px}
.zeros.open>.zin{animation:peek .3s var(--ease-d) both}
.zeros>.zin{min-height:0;overflow:hidden}
.zerobtn{display:flex;align-items:center;gap:6px;margin-top:6px;padding:8px 10px 8px 6px;border-radius:12px;font:700 13px/1 var(--body);color:var(--ink-3)}
.zerobtn:hover{background:var(--container);color:var(--ink-2)}
.zerobtn .ms{font-size:20px;transition:transform .35s var(--ease)}
.zerobtn[aria-expanded="true"] .ms{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.zerobtn .ms{transition:none}.zeros.open>.zin{animation:none}}
.cat-opt[aria-pressed="true"]{opacity:1;border-color:var(--g);background:var(--gt)}
.cat-opt[aria-pressed="true"] .t{background:var(--g);color:var(--surface)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg .chip{min-height:40px}

/* ---------- Formularios (edición y gestión) ---------- */
.form{display:grid;gap:14px;margin-top:14px}
.form .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fl{display:grid;gap:6px;min-width:0}
.fl>span{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.fl>span small{font-weight:600;color:var(--ink-3)}
.fl input,.fl select,.fl textarea{width:100%;min-width:0;min-height:56px;padding:14px 16px;border-radius:var(--r-xs);border:1px solid var(--outline);background:var(--surface);color:var(--ink);font-size:16px;outline:none}
.fl textarea{min-height:96px;resize:vertical;line-height:1.45}
.fl input:focus,.fl select:focus,.fl textarea:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.fl .cnt{justify-self:end;font:700 12px/1 var(--body);color:var(--ink-3)}
.fl.bad input,.fl.bad textarea{border-color:#C0362C}
.upl{display:grid;gap:10px;justify-items:start}
.upl img{max-width:100%;max-height:260px;border-radius:14px;background:var(--container)}
.formnote{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:color-mix(in oklab,var(--azul) 10%,transparent);color:var(--ink-2);font-size:13px;line-height:1.45}
.formnote .ms{color:var(--azul);font-size:20px}

/* ---------- Gestión ---------- */
/* Pestañas de Gestión: cuatro a lo ancho, sin saltos de línea */
.gtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 -16px 16px;border-bottom:1px solid var(--outline-soft)}
.gtab{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 2px 12px;font:700 13px/1.1 var(--body);color:var(--ink-2);white-space:nowrap}
.gtab>span{display:inline-flex;align-items:center;gap:4px}
.gtab .ms{font-size:22px}
.gtab .n{font:800 11px/1 var(--body);padding:2px 6px;border-radius:8px;background:var(--azul);color:#fff}
.gtab[aria-pressed="true"]{color:var(--azul);font-weight:900}
.gtab[aria-pressed="true"]::after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--azul)}
@media (hover:hover){.gtab:hover{background:color-mix(in oklab,var(--ink) 5%,transparent)}}
@media (min-width:600px){.gtabs{margin:0 0 18px}.gtab{flex-direction:row;justify-content:center;gap:8px;padding:14px 4px;font-size:14px}}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:10px;margin-bottom:22px}
.kpi{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:14px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1)}
.kpi b{font:1000 30px/1 var(--display);font-variant-numeric:tabular-nums}
.kpi span{font:700 13px/1.3 var(--body);color:var(--ink-2)}
.kpi small{font:800 12px/1.2 var(--body);color:var(--ink-3)}
.kpi.warn b{color:var(--warn)}
.kpi .bar{height:6px;border-radius:3px;background:var(--container);overflow:hidden}
.kpi .bar i{display:block;height:100%;background:var(--good)}
.qrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--outline-soft)}
.qrow b{display:block;font:800 15px/1.3 var(--body);overflow-wrap:anywhere}
.qrow small{display:block;font-size:13px;color:var(--ink-3);overflow-wrap:anywhere}
.qrow .issues{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.qrow .issues span{padding:1px 7px;border-radius:6px;background:var(--warn-c);color:var(--warn);font:800 11px/1.5 var(--body)}
.rule{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding:14px;border-bottom:1px solid var(--outline-soft)}
.rule b{display:block;font:800 15px/1.35 var(--body)}
.rule .if{font:700 14px/1.45 var(--body);color:var(--ink-2)}
.rule .if code{font:800 13px/1 var(--body);padding:2px 6px;border-radius:6px;background:var(--container);color:var(--ink)}
.rule small{display:block;margin-top:4px;color:var(--ink-3);font-size:12px}
.rule .ctrls{display:flex;gap:4px;align-items:center}
.rule.sys{background:color-mix(in oklab,var(--container) 50%,transparent)}
.preview{margin-top:6px;padding:12px 14px;border-radius:16px;background:var(--container);font-size:13px;color:var(--ink-2)}
.preview b{color:var(--ink)}
.preview ul{margin:6px 0 0;padding-left:18px}
.log{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--outline-soft)}
.log>.ms{color:var(--azul);margin-top:2px}
.log b{display:block;font:800 14px/1.35 var(--body);overflow-wrap:anywhere}
.log small{display:block;color:var(--ink-3);font-size:12px;overflow-wrap:anywhere}
@media (max-width:599px){.log{grid-template-columns:28px 1fr;gap:4px 10px}.log>.btn{grid-column:2;justify-self:start;margin-left:-10px}}

/* ---------- Ayuda ---------- */
.sosbig{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border-radius:20px;background:#B3261E;color:#fff;text-decoration:none;margin:14px 0 10px}
.sosbig strong{font:1000 34px/1 var(--display)}
.sosbig b{display:block;font:900 16px/1.2 var(--display)}
.sosbig small{display:block;opacity:.9}
.sosbig .call{padding:8px 14px;border-radius:16px;background:rgba(255,255,255,.2);font:900 14px/1 var(--body)}
.telgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.telgrid a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-radius:16px;background:var(--container);text-decoration:none}
.telgrid b{display:block;font:1000 20px/1 var(--display)}
.telgrid small{display:block;font:700 12px/1.3 var(--body);color:var(--ink-2)}
.telgrid .ms{color:var(--ink-3)}
.violet{margin-top:18px;padding:16px;border-radius:20px;background:#F1E4FB;color:#2E1146}
:root[data-theme="dark"] .violet{background:#3A2552;color:#F1E4FB}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .violet{background:#3A2552;color:#F1E4FB}}
.violet h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font:900 19px/1.2 var(--display)}
.violet p{margin:0 0 10px;font-size:14px}
.hc{display:grid;gap:8px;padding:12px 0;border-top:1px solid color-mix(in oklab,currentColor 18%,transparent)}
.hc h4{margin:0;font:900 15px/1.2 var(--display)}
.hc p{margin:0;font-size:13px;opacity:.85}
.hc .row{display:flex;flex-wrap:wrap;gap:8px}
.hc a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:16px;background:color-mix(in oklab,currentColor 12%,transparent);font:800 14px/1.2 var(--body);text-decoration:none}
.hc a .ms{font-size:18px}
.howto{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.howto li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;padding:12px;border-radius:16px;background:var(--container)}
.howto li .ms{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--primary-c);color:var(--on-primary-c);font-size:22px}
.howto b{display:block;font:800 15px/1.3 var(--body)}
.howto span{font-size:13px;color:var(--ink-2)}
.helpsrc{margin-top:18px;font-size:12px;color:var(--ink-3);display:grid;gap:4px}

/* ---------- Aviso emergente ---------- */
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px + var(--safe-b));z-index:80;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,calc(100% - 32px));min-height:48px;padding:6px 6px 6px 16px;border-radius:var(--r-xs);font-size:14px;background:var(--ink);color:var(--bg);font-weight:700;box-shadow:var(--shadow-2);transform:translateX(-50%);animation:toast .4s var(--ease) both}
.toast button{flex:none;padding:10px 12px;border-radius:20px;color:var(--inv-primary);font-weight:900}
html.bars-off .toast{bottom:calc(16px + var(--safe-b))}
/* Con el botón flotante («Plan nuevo», «Lugar nuevo») el aviso va por encima, para no taparlo */
html.has-fab .toast{bottom:calc(var(--nav-h) + var(--safe-b) + 88px)}
html.has-fab.bars-off .toast{bottom:calc(var(--safe-b) + 88px)}

/* ---------- Móviles estrechos: que quepa todo arriba sin cortar el logo ---------- */
@media (max-width:419px){
  .topbar{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(4px,env(safe-area-inset-right,0px));gap:2px}
  .logo{gap:8px}
  .logo .mark{width:36px;height:36px}
  .logo b{font-size:27px}
  .logo small{font-size:8.5px;letter-spacing:.12em}
}
@media (max-width:339px){
  .logo small{display:none}
}

/* ---------- Tableta y escritorio ---------- */
@media (min-width:600px){
  .dayhead :is(h1,.h1){font-size:50px}
  .actions.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
  :root{--nav-h:0px;--top-h:72px}
  .bottomnav{display:none}
  .topbar{gap:8px;padding-left:24px;padding-right:20px;border-bottom:1px solid var(--outline-soft)}
  .logo .mark{width:46px;height:46px}
  .logo b{font-size:34px}
  .logo small{font-size:10.5px}
  .tabs{display:flex;gap:2px;margin-left:22px}
  .tab{position:relative;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:22px;font:800 15px/1 var(--body);color:var(--ink-2);transition:background .2s,color .2s;white-space:nowrap}
  .tab .ms{font-size:20px}
  .tab:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}
  .tab[aria-current="page"]{background:var(--primary-c);color:var(--on-primary-c)}
  .tab .badge{position:static;margin-left:2px}
  /* Pilares: sin fondo si no estás en ella (si no, parecen dos pestañas activas); solo el icono de color */
  .tab.fest .ms,.tab.fest .msvg{color:var(--fest)}
  .tab.fest:hover{background:var(--fest-c);color:var(--on-fest-c)}
  .tab.fest[aria-current="page"]{background:var(--fest);color:var(--fest-c)}
  .tab.fest[aria-current="page"] .ms,.tab.fest[aria-current="page"] .msvg{color:inherit}
  .tab.gestion{color:var(--azul)}
  .tab.gestion[aria-current="page"]{background:color-mix(in oklab,var(--azul) 16%,transparent)}
  .searchpill{display:flex;align-items:center;gap:10px;height:44px;width:clamp(180px,22vw,300px);padding:0 10px 0 14px;border-radius:22px;background:var(--surface);border:1.5px solid var(--outline);color:var(--ink-2);font:600 14px/1 var(--body);transition:border-color .2s,box-shadow .2s}
  .searchpill:hover{border-color:var(--ink-3);box-shadow:var(--shadow-1)}
  .searchpill .ms{color:var(--primary)}
  .searchpill kbd{margin-left:auto;font:800 11px/1 var(--body);padding:4px 7px;border-radius:6px;background:var(--surface);color:var(--ink-3)}
  #searchbtn{display:none}
  .view{padding:24px 32px 0}
  .main{padding-bottom:40px}
  .quick{margin-bottom:18px}
  .thumb{width:96px}
  .sheet{left:auto;top:12px;bottom:12px;right:12px;width:min(540px,92vw);max-height:none;border-radius:var(--r-xl);animation:sheetin .5s var(--ease-d) both}
  .grab{display:none}
  .sheet-top{padding-top:16px}
  .sheet-scroll{padding-top:0}
  .hero{padding-top:22px}
  :is(.search,.search-out){inset:10vh auto auto 50%;width:min(640px,92vw);max-height:76vh;transform:translateX(-50%);border-radius:28px;box-shadow:var(--shadow-2);background:var(--surface)}
  .search-scrim{position:fixed;inset:0;z-index:69;background:var(--scrim);animation:fade .2s both}
  .toast{bottom:28px}
  html.has-fab .toast{bottom:92px}
  .mapview .map{height:calc(100vh - var(--top-h));height:calc(100dvh - var(--top-h))}
  .view.mapview{padding:0;max-width:none}
  .mapday{left:auto;right:16px;bottom:16px;width:420px}
  .map.real~.mapday{bottom:40px}
  .mapview .note{display:block}
  .fabs{bottom:24px;right:24px}
  .editbar{top:calc(var(--top-h) + var(--band));padding:8px 24px}
}
@media (min-width:900px) and (max-width:1279px){
  .searchpill{display:none}
  #searchbtn{display:grid}
  .tabs{margin-left:10px}
  .tab{padding:0 12px;gap:6px;font-size:14px}
  .tab:not(.fest) .ms{display:none}
}
@media (min-width:1200px){
  #v-fiestas{max-width:1280px}
  .pilar-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:0 36px;align-items:start}
  .pilar-grid .pilar-hero{margin-top:0}
  #v-gestion{max-width:1100px}
  /* Cuenta en dos columnas: perfil arriba y los apartados repartidos */
  #v-cuenta{max-width:1120px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;align-items:start}
  #v-cuenta>.pagehead,#v-cuenta>.profile,#v-cuenta>.sub,#v-cuenta>.howto{grid-column:1/-1}
  /* Mis planes: el próximo plan fijo a la izquierda y los días a la derecha */
  #v-planes{max-width:1180px}
  .saved-split{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:0 36px;align-items:start}
  .saved-split>aside{position:sticky;top:calc(var(--top-h) + var(--band) + 16px)}
  .saved-split>aside .next{margin-top:0}
}
@media (min-width:900px){#v-lugares{max-width:1280px}}
/* Tableta: las hojas de abajo no se estiran de lado a lado */
@media (min-width:600px) and (max-width:899px){.sheet{max-width:640px;margin:0 auto}}
/* Agenda en columnas: días y filtros a la izquierda, la agenda pegada a ellos y, en pantallas grandes, el mapa a la derecha */
.side{display:none}
@media (min-width:1024px){
  .agenda-split{display:grid;grid-template-columns:288px minmax(0,1fr);gap:0 28px;padding:20px 28px 0;align-items:start}
  .agenda-left{position:sticky;top:calc(var(--top-h) + var(--band) + 16px);max-height:calc(100vh - var(--top-h) - var(--band) - 32px);max-height:calc(100svh - var(--top-h) - var(--band) - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--outline-soft) transparent;padding:0 6px 20px 0;margin-right:-6px}
  .agenda-left .ribbon{margin-top:0}
  .agenda-left .days{gap:2px}
  .agenda-left .day .dn{font-size:19px}
  .agenda-col{min-width:0}
  .agenda-col>.dayhead{margin-top:0}
  .filters.inline{padding:0 2px}
  .filters.inline .fq:first-child{margin-top:16px}
  .filters.inline .fq :is(h3,h4){font-size:16px}
  .filters.inline .cats{grid-template-columns:1fr;gap:4px}
  .filters.inline .cat-opt{min-height:44px}
  .filters.inline .seg .chip{min-height:36px}
}
@media (min-width:1280px){
  /* ZIRPA-APP (Jorge 3-oct, captura 19: «en escritorio quiero que el mapa ocupe más, la mitad mínimo incluso más»):
     el mapa se lleva la mitad de lo que queda a la derecha de los filtros (el 55 % en pantallas de 1600 o más), sin
     dejar la agenda por debajo de 420 px: así a 1280 también llega a la mitad. Con el separador (5-split.js) cada cual
     lo mueve entre el 35 y el 70 %, guardado en --rd-split-user. --rd-cw: el ancho a la derecha de los filtros */
  .agenda-split{--rd-split:.5;--rd-cw:calc(100% - 328px);grid-template-columns:300px minmax(0,1fr) max(320px,min(calc(var(--rd-cw) * var(--rd-split-user,var(--rd-split))),calc(var(--rd-cw) - 448px)));padding-right:0}
  .side{display:block;position:sticky;top:calc(var(--top-h) + var(--band));height:calc(100vh - var(--top-h) - var(--band));height:calc(100svh - var(--top-h) - var(--band));margin-top:-20px;padding:16px 16px 16px 0}
  .side .map{height:100%;border-radius:var(--r-xl)}
  /* ZIRPA-APP: el separador entre agenda y mapa. Ocupa el hueco de 28 px (44 px para el ratón o el dedo) y lleva el
     asa de Material 3: una píldora que se marca al pasar por encima, con el foco del teclado y mientras se arrastra */
  .rd-split{position:absolute;z-index:3;top:16px;bottom:16px;left:-36px;width:44px;display:grid;place-items:center;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:22px;outline:none}
  .rd-split::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background:var(--outline-soft);opacity:0;transition:opacity .2s var(--ease)}
  .rd-split::after{content:"";width:4px;height:40px;border-radius:2px;background:var(--outline);opacity:.55;transition:width .2s var(--ease),height .2s var(--ease),background-color .2s var(--ease),opacity .2s var(--ease)}
  .rd-split:hover::before,.rd-split.on::before,.rd-split:focus-visible::before{opacity:1}
  .rd-split:hover::after{width:6px;height:56px;opacity:1;background:var(--ink-2)}
  .rd-split.on::after{width:6px;height:72px;opacity:1;background:var(--primary)}
  .rd-split:focus-visible::after{width:6px;height:56px;opacity:1;background:var(--primary);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--primary)}
  html.rd-dragging,html.rd-dragging *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}
  html.rd-dragging .agenda-col{pointer-events:none}
}
@media (min-width:1600px){.agenda-split{--rd-split:.55}}

/* En tablet (dedo), la columna izquierda no tiene su propio scroll: en el iPad un scroll dentro de otro se lía
   si se pasa rápido de uno a otro. Los días se quedan fijos arriba y los filtros bajan con la página */
@media (min-width:1024px) and (hover:none) and (pointer:coarse){
  .agenda-split{align-items:stretch}
  .agenda-left{position:relative;top:auto;max-height:none;overflow:visible;padding-right:0}
  .agenda-left .ribbon{position:sticky;top:calc(var(--top-h) + var(--safe-t) + var(--band) + 12px);z-index:6;background:linear-gradient(var(--container),var(--container)),var(--bg);box-shadow:0 -12px 0 var(--bg)}
}

/* ---------- Onda al tocar (Material 3) ---------- */
.rh{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.rpl{position:absolute;border-radius:50%;background:currentColor;opacity:.13;transform:scale(0);animation:rpl .5s var(--ease-d) forwards;transition:opacity .35s linear}
.rpl.out{opacity:0}
.lrow,.tab,.minirow,.res,.cat-opt,.cd,.searchpill,.avatarbtn,.telgrid a,.hc a,.sosbig,.logo,.editbar button,.peekrow,.pday,.mustc{position:relative}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:999px;background:var(--primary);color:var(--on-primary);font-weight:800;text-decoration:none}
.skip:focus{top:calc(8px + var(--safe-t))}
#views:focus{outline:none}

/* ---------- Movimiento ---------- */
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sheetup{from{transform:translateY(100%)}to{transform:none}}
@keyframes sheetdown{to{transform:translateY(100%)}}
@keyframes sheetin{from{transform:translateX(calc(100% + 24px))}to{transform:none}}
@keyframes sheetout{to{transform:translateX(calc(100% + 24px))}}
@keyframes peek{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes pop{40%{transform:scale(1.35)}}
@keyframes pop-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes pulse{50%{opacity:.35}}
@keyframes ring{from{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}
@keyframes toast{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes reveal{from{clip-path:circle(0 at var(--vx,50%) var(--vy,0%))}to{clip-path:circle(150vmax at var(--vx,50%) var(--vy,0%))}}
@keyframes fadeout{to{opacity:0}}
@keyframes fadethrough{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes rpl{to{transform:scale(1)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
html.vt-theme::view-transition-old(root){animation:none}
html.vt-theme::view-transition{pointer-events:none}
html.vt-theme::view-transition-new(root){animation:reveal .55s var(--ease) both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}

/* ---------- MapLibre GL (solo se usa cuando el mapa real puede cargar) ---------- */
.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}
@media (prefers-reduced-motion:reduce){.emblem svg:not(.msvg){animation:none!important}}
.pal[data-p="cachirulo"] .sw3 i:nth-child(2){background:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/6px 6px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/6px 6px,#C8102E}
.modes .chip{white-space:nowrap}

/* ---------- v7: menús de «Cómo llegar» y calendario, pases, «Ver en el mapa» ---------- */
/* Sin doble toque para hacer zum (el pellizco sigue funcionando, que es accesibilidad) */
html{touch-action:manipulation}
svg.msvg{display:inline-block;width:1em;height:1em;flex:none;overflow:visible}
.mrow.go>.ms:last-child{visibility:visible;color:var(--ink-3);font-size:20px}
.mrow.go{text-decoration:none;color:inherit}
.mrow[aria-disabled="true"]{opacity:.55}
.mi.a-zirpa{--dc:var(--primary)}.mi.a-google{--dc:#1A73E8}.mi.a-apple{--dc:#5E5CE6}.mi.a-waze{--dc:#0A8FC2}
:root[data-theme="dark"] .mi.a-google{--dc:#8AB4F8}:root[data-theme="dark"] .mi.a-apple{--dc:#9D9BFF}:root[data-theme="dark"] .mi.a-waze{--dc:#5BC8F0}
.mnote{display:flex;gap:8px;align-items:flex-start;margin:6px 16px 4px;padding-top:10px;border-top:1px solid var(--outline-soft);font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.mnote .ms{font-size:17px;margin-top:1px}
.peekrow b.nh{font:800 11.5px/1.2 var(--body);color:var(--ink-3);padding-top:2px}
.peekrow em.ps{display:flex;align-items:center;gap:4px;margin-top:3px;font:700 12.5px/1.3 var(--body);font-style:normal;color:var(--ink-3)}
.peekrow em.ps .ms{font-size:15px}
.ev-pases{display:flex;gap:4px;align-items:flex-start;font:700 13px/1.35 var(--body);color:var(--ink-2);min-width:0}
.ev-pases .ms{font-size:17px;margin-top:1px;color:var(--g,var(--primary))}
.tag.nextp{background:var(--primary-c);color:var(--on-primary-c)}
.pases{margin-top:14px;padding:12px 14px;border-radius:16px;background:color-mix(in oklab,var(--primary-c) 55%,var(--container))}
.pases p{display:flex;gap:10px;margin:0 0 10px;font:600 14px/1.4 var(--body);color:var(--ink-2)}
.pases p>.ms{color:var(--primary);font-size:20px;margin-top:1px}
.pases b{color:var(--ink)}
.ptimes{display:flex;flex-wrap:wrap;gap:6px}
.ptimes .chip{min-height:34px;padding:4px 12px;font-variant-numeric:tabular-nums}
.factlink{display:block;min-width:0;text-align:left;margin:-6px -8px;padding:6px 8px;border-radius:12px;position:relative;transition:background .2s}
@media (hover:hover){.factlink:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.factlink:active{background:color-mix(in oklab,var(--ink) 10%,transparent)}
.fact .factlink .onmap{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font:800 13px/1 var(--body);color:var(--primary)}
.fact .factlink .onmap .ms{font-size:17px}
.ev-time small.np{display:block;margin-top:4px;font:800 11.5px/1.1 var(--body);color:var(--g,var(--ink-3));white-space:nowrap}

/* ---------- v8: bienvenida de la primera visita ---------- */
.wl-feats{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.wl-feats li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;padding:8px 0}
.wl-feats .mi,.wl-steps .mi{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:var(--primary-c);color:var(--on-primary-c)}
.wl-feats .mi .ms{font-size:22px}
.wl-feats b{display:block;font:800 16px/1.25 var(--body)}
.wl-feats small,.wl-steps small{display:block;margin-top:2px;font:600 13.5px/1.35 var(--body);color:var(--ink-3)}
.wl-feats li.fest .mi{background:var(--fest-c);color:var(--on-fest-c)}
html[data-palette="cachirulo"] .wl-feats li.fest .mi{background:var(--cachi);color:#fff}
.wl-likes .chip{min-height:34px;padding:4px 12px;font-size:13.5px}
.wl-install{border-radius:var(--r-l);background:var(--container);padding:4px 14px}
.wl-install .seg3.two{grid-template-columns:1fr 1fr;margin:6px 0 12px}
.wl-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:st}
.wl-steps li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;font:600 14.5px/1.35 var(--body)}
.wl-steps .mi{background:var(--surface);color:var(--primary)}
.wl-install .hint{display:flex;gap:6px;align-items:flex-start;margin:12px 0 10px;font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.wl-install .hint .ms{font-size:16px;margin-top:1px}
.wl-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;margin:0;font:700 13px/1 var(--body);color:var(--ink-3)}
.wl-legal button{min-height:36px;padding:0 6px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--outline)}
@media (min-width:900px){
  .sheet[data-kind="welcome"]{left:calc(50% - 280px);right:auto;top:5vh;bottom:auto;width:560px;max-height:90vh;max-height:90dvh;animation:pop-in .32s var(--ease-d) both;transform-origin:center}
}
.wl-note{margin:0;text-align:center;font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.wl-note+.wl-legal{margin-top:-10px}
.btn.danger{background:var(--warn);color:var(--surface);border-color:transparent}
.lrow.danger,.lrow.danger>.ms:first-child{color:var(--warn)}

/* Mis planes: aviso de guardados que ya pasaron */
.pastnote{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:10px 12px;border-radius:var(--r-l);background:var(--container);color:var(--ink-2);font:600 14px/1.3 var(--body)}
.pastnote .ms{color:var(--ink-3)}
.pastnote .btn{margin-left:auto}
.mustc.gone{opacity:.8;filter:grayscale(1)}
.landmark,.district,.mk-label{pointer-events:none}
/* Dedos: los botones pequeños tienen una zona de toque de al menos 44 px aunque se vean más pequeños */
@media (pointer:coarse){
  .chip:not(.quick .chip,.mapbar .chip,.cal-presets .chip)::after,.wk::after,.navmini::after,.avatarbtn::after,.mapnote .iconbtn::after,.ribbon-head .iconbtn::after,.topbar .iconbtn::after,.mapday .pill .iconbtn::after,.btn.small::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
  .avatarbtn,.btn.small,.wk{position:relative}
}

/* ---------- v11 ---------- */
/* Pilares: los días que ya pasaron, en gris; lo que ya ha pasado hoy, plegado al final */
.pday.past:not([aria-pressed="true"]){background:transparent;box-shadow:inset 0 0 0 1px var(--outline-soft);opacity:.6}
.pday.past:not([aria-pressed="true"]) b{color:var(--ink-3)}
.pastacts{margin:22px 0 0;border-radius:var(--r-l);background:var(--container)}
.pastacts>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 14px;cursor:pointer;list-style:none;font:800 15px/1.2 var(--body);color:var(--ink-2)}
.pastacts>summary::-webkit-details-marker{display:none}
.pastacts>summary small{font:800 13px/1 var(--body);color:var(--ink-3)}
.pastacts>summary .ms:last-child{margin-left:auto;transition:transform .2s}
.pastacts[open]>summary .ms:last-child{transform:rotate(180deg)}
.pastacts>.ev-card,.pastacts>.ev{opacity:.62;margin-left:8px;margin-right:8px}
.pastacts[open]{padding-bottom:8px}
/* Menos colores por tarjeta: el color del tipo solo en la raya y en el icono; las etiquetas, neutras (salvo «En marcha») */
.ev-card .kchip{background:none;padding:0;color:var(--ink-2)}
.ev-card .kchip .ms{color:var(--g)}
.ev-card .tag.free,.ev-card .tag.fest{background:var(--container);color:var(--ink-2)}
.ev-card .tag.free::before,.ev-card .tag.fest::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--good)}
.ev-card .tag.fest::before{background:var(--fest)}
/* Ficha: Guardar y Cómo llegar siempre a mano, abajo; el resto en «Más» */
.evfoot{margin-top:18px;align-items:center;z-index:5}
.evfoot .btn{min-height:50px;padding:0 10px;white-space:nowrap;font-size:15px;gap:6px}
.evfoot .iconbtn.more{flex:none;width:50px;height:50px;border:1px solid var(--outline);background:var(--surface)}
@media (min-width:600px){.evfoot .btn{flex:0 1 220px}.evfoot .iconbtn.more{margin-left:auto}}
/* Cabecera de la hoja más baja: el asa va encima y la X sube arriba del todo (antes, al bajar, quedaba una franja blanca muy alta) */
@media (max-width:899px){
  .sheet>.grab{position:absolute;top:0;left:50%;width:140px;height:22px;transform:translateX(-50%);z-index:7}
  .sheet-scroll{padding-top:22px}
  .sheet-top{padding-top:6px;top:-22px}
  .sheet.scrolled .sheet-top::before,.sheet.has-hero .sheet-top::before{inset:-6px -20px -6px}
}
/* Emblema del Pilar con el cachirulo: cuadro rojo y negro dentro y rombo blanco, en claro y en oscuro */
html[data-palette="cachirulo"] .emblem svg:not(.msvg) path{fill:url(#cachiq)}
html[data-palette="cachirulo"] .emblem .ms{color:#fff;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55))}
/* Cómo llegar: botones de empezar/terminar, barra pequeña y paso actual */
.navrow{display:flex;gap:8px;margin:0 0 12px}
.navrow .btn{flex:1;min-height:48px}
.steps li.cur{background:var(--primary-c);color:var(--on-primary-c);border-radius:12px;font-weight:800;padding-left:8px;padding-right:8px}
.steps li.done{opacity:.5}
.ext.one{grid-template-columns:1fr}
.routebar{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 10px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow-2);animation:peek .3s var(--ease)}
.routebar .rbi{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--container);color:var(--primary)}
.routebar.nav .rbi{background:var(--primary);color:var(--on-primary)}
.routebar .rbi .ms{font-size:28px}
.routebar .rbt{flex:1;min-width:0;display:grid;gap:2px;text-align:left;padding:2px 4px;min-height:44px;align-content:center}
.routebar .rbt b{font:900 17px/1.15 var(--display);color:var(--ink)}
.routebar .rbt span{font-size:13.5px;line-height:1.3;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.routebar .iconbtn{flex:none}
.mepin.nav{width:22px;height:22px;box-shadow:0 0 0 8px rgba(26,115,232,.22),0 1px 4px rgba(0,0,0,.35)}
/* Franja «Ahora / Próximo» en la agenda de hoy */
.nowstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:0 0 14px}
.nowstrip button{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 14px;border-radius:var(--r-l);background:var(--container);text-align:left;min-width:0}
.nowstrip button>span:last-child{display:grid;min-width:0}
.nowstrip small{font:800 11.5px/1.2 var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.nowstrip b{font:800 15px/1.25 var(--body);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nowstrip .ns-now{background:var(--primary-c)}
.nowstrip .ns-now small,.nowstrip .ns-now b{color:var(--on-primary-c)}
.nowstrip .dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--primary);animation:pulse 1.6s ease-in-out infinite}
.nowstrip .ns-next .ms{color:var(--primary)}
@media (max-width:420px){.nowstrip{grid-template-columns:1fr}}
/* Mapa en el móvil: un solo panel con asa (pequeño / medio / grande) */
.mpgrab{display:none}
@media (max-width:899px){
  .mapday.panel{left:6px;right:6px;gap:0;padding:0 12px 12px;background:var(--surface);border-radius:24px;box-shadow:var(--shadow-2);animation:peek .35s var(--ease)}
  /* Asa de 44 px de alto para el dedo (la raya se ve igual) */
  .mapday.panel .mpgrab{display:grid;place-items:center;height:44px;margin:-10px -12px 0;touch-action:none;cursor:grab}
  .mapday.panel .mpgrab::before{content:"";width:40px;height:4px;border-radius:2px;background:var(--outline)}
  .mapday.panel .mapnote{display:none}
  .mapday.panel .pill,.mapday.panel .fsbtn{box-shadow:none;background:var(--container)}
  .mapday.panel .fsbtn{width:42px;height:42px}
  .mapday.panel .mdrow{align-items:center;padding-bottom:6px;border-bottom:1px solid var(--outline-soft)}
  .mapday.panel #peek{overflow:auto;overscroll-behavior:contain;max-height:var(--ph);transition:max-height .3s var(--ease)}
  .mapday.panel[data-size="min"]{--ph:0px}
  .mapday.panel[data-size="min"] .mdrow{border-bottom:0;padding-bottom:0}
  .mapday.panel[data-size="half"]{--ph:36vh;--ph:36dvh}
  .mapday.panel[data-size="full"]{--ph:52vh;--ph:52dvh}
  /* Con el panel grande, los botones del mapa (3D, zum…) se apartan en vez de quedar medio tapados */
  html.panel-full .mapview .map .ctl,html.panel-full .mapview .maplibregl-ctrl-top-right{opacity:0;pointer-events:none;transition:opacity .2s}
  .mapday.panel .peek,.mapday.panel .route{background:none;box-shadow:none;border-radius:0;padding:10px 0 0;max-height:none;overflow:visible;animation:none}
}
/* Mis planes en escritorio: mapa con la ruta bajo la cuenta atrás */
.savedmapbox{margin-top:16px}
.savedmapbox .map{height:300px;border-radius:var(--r-l);overflow:hidden;box-shadow:inset 0 0 0 1px var(--outline-soft)}
.savedmapbox p{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 2px 0;font-size:13px;color:var(--ink-3)}
.savedmapbox p .ms{font-size:18px;color:var(--primary)}
@media (min-width:1200px){.saved-split>aside{max-height:calc(100vh - var(--top-h) - var(--band) - 32px);overflow:auto;scrollbar-width:thin}}
/* Tableta en vertical: la agenda a la izquierda y el mapa fijo a la derecha */
@media (min-width:768px) and (max-width:1023px){
  #v-agenda{max-width:none}
  .agenda-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"left side" "col side";gap:0 20px;align-items:start}
  .agenda-left{grid-area:left;min-width:0}
  .agenda-col{grid-area:col;min-width:0}
  .side{grid-area:side;display:block;position:sticky;top:calc(var(--top-h) + var(--band) + 12px);height:calc(100svh - var(--top-h) - var(--band) - var(--nav-h) - 24px - var(--safe-b));margin-top:12px}
  .side .map{height:100%;border-radius:var(--r-xl)}
}
@media (max-width:899px){.mapday.panel:has(.route) .mdrow{display:none}.mapday.panel:has(.route) #peek{max-height:calc(var(--ph) + 40px)}}
.routebar .rbt b{font-size:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* ---------- Bienvenida v11: pantalla completa, tres páginas con el dedo ---------- */
.sheet[data-kind="welcome"]{top:0;max-height:none;height:100vh;height:100dvh;border-radius:0}
.sheet[data-kind="welcome"]>.grab{display:none}
.sheet[data-kind="welcome"] .sheet-scroll{flex:1;display:flex;padding:0;overflow:hidden}
.wl{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%}
.wl-skip{position:absolute;z-index:3;top:calc(10px + var(--safe-t));right:12px;min-height:44px;padding:0 16px;border-radius:22px;font:800 15px/1 var(--body);color:var(--ink-2);background:color-mix(in oklab,var(--surface) 70%,transparent)}
.wl-pages{flex:1;min-height:0;width:100%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.wl-pages::-webkit-scrollbar{display:none}
.wl-page{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.wl-in{display:grid;align-content:start;gap:16px;padding:calc(64px + var(--safe-t)) 24px 24px;max-width:520px;width:100%;margin:0 auto}
.wl-page h2{margin:0;font:900 clamp(34px,10vw,46px)/1.02 var(--display);letter-spacing:-.015em;color:var(--ink)}
.wl-lead{margin:0;font:600 17px/1.45 var(--body);color:var(--ink-2)}
.wl-step{font:900 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.wl-p1{background:linear-gradient(180deg,var(--primary-c) 0%,var(--bg) 62%)}
.wl-p1 .wl-in{padding-top:calc(56px + var(--safe-t))}
.wl-brand{display:flex;align-items:center;gap:10px;font:1000 30px/1 var(--display);color:var(--brand);letter-spacing:-.02em}
.wl-brand .mark{width:52px;height:52px}
.wl-p1 h2{font-size:clamp(40px,12vw,56px)}
.wl-p1 .pilar-art{margin-top:auto}
.wl-p1 .pilar-art svg{max-height:120px}
.wl-feats{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:10px}
.wl-feats li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;font:700 15.5px/1.35 var(--body);color:var(--ink)}
.wl-feats .mi,.wl-steps .mi{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:var(--surface);color:var(--primary);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.wl-feats .mi .ms{font-size:22px}
.wl-feats li.fest .mi{background:var(--fest);color:var(--fest-c)}
html[data-palette="cachirulo"] .wl-feats li.fest .mi{background:var(--cachi,#C8102E);color:#fff}
.wl-steps small{display:block;margin-top:2px;font:600 13.5px/1.35 var(--body);color:var(--ink-3)}
.wl-p2 .likes{gap:10px}
.wl-p2 .likes .chip{min-height:48px;padding:6px 16px;font-size:15.5px;border-radius:24px}
.wl-install{border-radius:var(--r-l);background:var(--container);padding:14px}
.wl-install .seg3.two{grid-template-columns:1fr 1fr;margin:0 0 14px}
.wl-note{display:flex;gap:8px;align-items:flex-start;margin:0;font:600 13px/1.45 var(--body);color:var(--ink-3)}
.wl-note .ms{font-size:18px;color:var(--good)}
.wl-p3 .wl-legal{justify-content:flex-start;margin-top:-6px}
.wl-foot{flex:none;display:flex;align-items:center;gap:16px;padding:12px 24px calc(14px + var(--safe-b));border-top:1px solid var(--outline-soft);background:var(--surface)}
.wl-dots{display:flex;gap:0;margin-right:auto}
.wl-dots button{position:relative;width:44px;height:44px;display:grid;place-items:center}
.wl-dots button::before{content:"";width:8px;height:8px;border-radius:4px;background:var(--outline);transition:width .25s var(--ease),background .25s}
.wl-dots button[aria-selected="true"]::before{width:22px;background:var(--primary)}
.wl-foot .btn{min-height:52px;padding:0 22px;font-size:16px}
@media (min-width:900px){
  .sheet[data-kind="welcome"]{top:5vh;height:min(720px,90vh);border-radius:28px}
  .wl-skip{top:12px}
  .wl-in{padding-top:56px}
}
.wl .wl-note{text-align:left}
@media (min-width:900px){.wl-p1 .pilar-art svg{max-height:84px}}

/* ---------- v12 ---------- */
@media (pointer:coarse){
  /* Chips de las filas deslizables y del mapa: 44 px para el dedo, sin cambiar cómo se ven */
  .quick .chip::after,.mapbar .chip::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
  .more .btn,.moreday .btn{min-height:44px}
  .popover .seg3 button,.card .seg3 button,.wl-install .seg3 button{min-height:44px}
  /* «Mayús + clic» solo sirve con teclado */
  .cal-legend .finehint{display:none}
}
/* Editor de reglas en el móvil: cada desplegable en su línea, sin cortar el texto */
@media (max-width:479px){#rform .two{grid-template-columns:minmax(0,1fr)}#rform .two .two{gap:10px!important}}

/* ZIRPA-APP: the app's additions, in v12's own styles. Phone and WhatsApp facts are links (7-zirpa.js zirpaContactHTML) */
a.fact{text-decoration:none;color:var(--ink)}
a.fact span:not(.ms){color:var(--primary)}
/* «Avisar de un error» under the source line of the plan sheet (7-zirpa.js zirpaReportHTML) */
.sheet .btn.zreport{margin:6px 0 0 -12px;min-height:40px;font-size:13px}
.sheet .btn.zreport .ms{font-size:18px}

/* ZIRPA-APP (decisión de Jorge, 2-oct-2026): los dos bloques de «Con peques» */
.audhead{display:flex;align-items:center;gap:10px;margin:22px 0 0;padding:10px 14px;border-radius:var(--r-l);background:var(--primary-c);color:var(--on-primary-c)}
.audhead :is(h2,h3,h4){margin:0;font:800 15px/1.2 var(--body)}
.audhead small{margin-left:auto;font:800 13px/1 var(--body);opacity:.8}
.pastacts.audall>.ev{opacity:1}
.pastacts.audall>.slot{margin:14px 14px 8px}
.pastacts.audall>summary{color:var(--ink)}

/* ZIRPA-APP (petición de Jorge): el texto no se selecciona al tocar o arrastrar; sí en los campos para escribir */
body{-webkit-user-select:none;user-select:none}
input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text}
/* «Continuar con Google» con la «G» oficial (7-zirpa.js zirpaGoogleG): sobre un círculo blanco, el botón sigue el tema */
.zgoogle{display:inline-grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:#fff}
.zgoogle svg{display:block}
/* Mis planes sin cuenta: guardar sin entrar, con la cuenta para no perderlos (7-zirpa.js zirpaSavedNudgeHTML) */
.znudge{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-l);background:var(--container);color:var(--ink-2);font-size:14px}
.znudge p{display:grid;grid-template-columns:22px 1fr;gap:10px;margin:0 0 10px}
.znudge p b{color:var(--ink)}
.znudge .btns{display:flex;flex-wrap:wrap;gap:8px}
/* ZIRPA-APP (Jorge 3-oct): el mapa grande aparcado (5-maps.js mapPark), vivo y del mismo tamaño, pero invisible.
   MapLibre pone visibility:visible a su atribución compacta: sin el !important de abajo, salía encima de Tu cuenta */
#mappark{position:fixed;left:0;top:0;width:100%;visibility:hidden;pointer-events:none;z-index:-1;contain:strict;height:100vh;height:100dvh}
#mappark *{visibility:hidden!important}
/* ZIRPA-APP (Jorge 3-oct, captura 09): Tu barrio en una hoja con radios de Material 3 (3-views.js openBarrio) */
.barrios{display:grid;gap:2px;margin:4px -8px 8px}
.brow{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;min-height:52px;padding:6px 16px;border-radius:16px;text-align:left;font:700 15px/1.3 var(--body);color:var(--ink);overflow:hidden}
.brow:hover{background:var(--container)}
.brow[aria-checked="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.brow[aria-checked="true"] .pz-radio{border-color:var(--primary)}
.brow[aria-checked="true"] .pz-radio::after{transform:scale(1)}
.brow:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
/* ZIRPA-APP (Jorge 3-oct, captura 04): en las hojas con título (Privacidad, Ayuda, Personalización, Tu barrio…) la X ya
   no pisa la tarjeta de debajo ni va pegada al borde: el título ocupa la altura de la X y la X se aparta 4 px más */
.sheet-top:has(+h2.plain){padding-right:4px}
.sheet .sheet-top+h2.plain{display:flex;align-items:center;min-height:48px;margin:2px 60px 8px 0}
/* ZIRPA-APP (rendimiento, 3-oct): «Cargando…» while the rest of the agenda arrives (8-resto.js, restWaitHTML) */
.restwait{display:flex;align-items:center;gap:10px;margin:18px 0;padding:14px 16px;border-radius:16px;background:var(--container);color:var(--ink-2);font-weight:600}
.restwait .ms{color:var(--primary);animation:pulse 1.4s ease-in-out infinite}
.restwait.failed .ms{color:var(--ink-3);animation:none}
.restwait .btn{margin-left:auto}
.hint.restwait{background:none;padding:12px 4px 0;margin:0;font-weight:500;color:var(--ink-3)}
.day .dots.wait i{animation:pulse 1.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.restwait .ms,.day .dots.wait i{animation:none}}

/* ZIRPA-APP: the top-bar Apariencia menu, Tu cuenta › Personalización and the «Personalizado» editor (v12/src/js/5-tema.js).
   Joined after app.css by scripts/build-v12.mjs */
.tema-ed{display:none;gap:12px;margin:8px 0 2px;padding:12px;border-radius:14px;background:var(--container)}
html[data-palette="personal"] .tema-ed{display:grid}
.tema-note{margin:0;font-size:12px;line-height:1.35;color:var(--ink-3)}
.tema-icon{display:flex;gap:8px;align-items:flex-start;margin:12px 4px 0;font-size:12.5px;line-height:1.35;color:var(--ink-3)}
.tema-icon .ms{flex:none;font-size:18px;color:var(--ink-2)}


/* Top-bar menu: title with a close X (44 px), a scrim behind it, and the link to Tu cuenta */
.pop-scrim{position:fixed;inset:0;z-index:74;background:color-mix(in srgb,var(--scrim) 40%,transparent);animation:fade .2s ease both}
.pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px -6px 6px 0}
.pop-head h4{margin:0 4px}
.pop-x{margin-left:auto}
.popover .pop-head+h4{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.popover .seg3+h4{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.pop-more{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;min-height:44px;margin-top:8px;padding:6px 10px;border-radius:14px;text-align:left;font:800 13px/1.25 var(--body);color:var(--primary)}
.pop-more:hover{background:var(--container)}
.pop-more .ms{font-size:20px}

/* Tu cuenta › Personalización */
.card.pz{padding:14px}
/* ZIRPA-APP (Jorge 3-oct, captura 02): la cabecera «Paleta que usas / En el menú» va en su propia fila, separada del título
   y de la lista, en letra normal y con cada nombre sobre su columna (el de la derecha, centrado sobre las casillas) */
.pz-lead{margin:0 0 14px;color:var(--ink-2);line-height:1.45}
.card.pz>.pz-h{margin-top:20px}
.pz-sub{margin:0 4px 14px;font-size:13px;line-height:1.4;color:var(--ink-3)}
.pz-cols{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:end;gap:2px;margin:0 0 6px;padding:0 0 8px 10px;border-bottom:1px solid var(--outline-soft);font:800 12.5px/1.25 var(--body);color:var(--ink-2)}
.pz-cols>span:last-child{text-align:center}
.pz-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:2px}
.pz-row>.pz-chk{justify-self:center}
.pal.pz-pal{grid-template-columns:auto auto 1fr;gap:12px}
/* M3 radio: the palette in use */
.pz-radio{position:relative;width:20px;height:20px;border-radius:50%;border:2px solid var(--ink-2);transition:border-color .15s var(--ease)}
.pz-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--primary);transform:scale(0);transition:transform .15s var(--ease)}
.pal[aria-pressed="true"] .pz-radio{border-color:var(--primary)}
.pal[aria-pressed="true"] .pz-radio::after{transform:scale(1)}
/* M3-style round checkbox: the palette is in the top-bar menu */
.pz-chk{position:relative;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:transparent}
.pz-chk::before{content:"";position:absolute;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink-2);box-sizing:border-box;transition:background .15s var(--ease),border-color .15s var(--ease)}
.pz-chk .ms{position:relative;font-size:18px;font-weight:700;transform:scale(.4);opacity:0;transition:transform .15s var(--ease),opacity .15s}
.pz-chk:hover::after{content:"";position:absolute;inset:4px;border-radius:50%;background:color-mix(in oklab,var(--ink) 8%,transparent)}
.pz-chk[aria-checked="true"]::before{background:var(--primary);border-color:var(--primary)}
.pz-chk[aria-checked="true"] .ms{color:var(--on-primary);transform:none;opacity:1}
.pz-chk:disabled{cursor:not-allowed}
.pz-chk:disabled::before{border-color:var(--outline);opacity:.6}
.pz-chk:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.pz-hint{display:flex;gap:8px;align-items:center;margin:8px 6px 4px;font:700 12.5px/1.3 var(--body);color:var(--ink-3)}
.pz-hint .ms{font-size:18px}
.pz-hint.full{color:var(--on-primary-c);background:var(--primary-c);padding:8px 10px;border-radius:12px;margin:8px 0 4px}

/* «Personalizado» editor: one row per colour, opening its wheel */
.tema-row{display:grid}
.tema-row+.tema-row{border-top:1px solid var(--outline-soft)}
.tema-head{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;min-height:48px;padding:4px 2px;text-align:left;color:var(--ink)}
.tema-head>.ms{color:var(--ink-3);transition:transform .2s var(--ease)}
.tema-head[aria-expanded="true"]>.ms{transform:rotate(180deg)}
.tema-dot{width:26px;height:26px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
.tema-dot.auto{background:linear-gradient(135deg,var(--surface) 50%,var(--primary-c) 50%);box-shadow:inset 0 0 0 1px var(--outline)}
.tema-lbl{font:800 13.5px/1.2 var(--body);color:var(--ink)}
.tema-lbl small{font-weight:600;color:var(--ink-3)}
.tema-hex{font:700 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.tema-body{display:grid;gap:12px;justify-items:center;padding:6px 0 12px}
.tema-body[hidden]{display:none}
/* The wheel: hue around (conic), white towards the centre (saturation), black on top for the brightness */
.tema-wheel{position:relative;width:min(220px,100%);aspect-ratio:1;border-radius:50%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none;
  background:radial-gradient(circle closest-side,#fff,rgba(255,255,255,0) 100%),conic-gradient(#F00,#FF0,#0F0,#0FF,#00F,#F0F,#F00);
  box-shadow:0 0 0 1px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.12)}
.tema-dim{position:absolute;inset:0;border-radius:50%;background:#000;opacity:calc(1 - var(--v,1));pointer-events:none}
.tema-knob{position:absolute;left:calc(50% + var(--x,0%));top:calc(50% + var(--y,0%));width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;display:grid;place-items:center;cursor:grab;outline:none}
.tema-knob::before{content:"";width:28px;height:28px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.35);transition:transform .12s var(--ease)}
.tema-wheel.drag .tema-knob::before{transform:scale(1.18)}
.tema-knob:focus-visible::before{box-shadow:0 0 0 1px rgba(0,0,0,.3),0 0 0 3px var(--surface),0 0 0 5px var(--primary)}
/* Brightness */
.tema-bright{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;width:min(260px,100%);font:800 12.5px/1 var(--body);color:var(--ink-2)}
.tema-bright input{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.tema-bright input::-webkit-slider-runnable-track{height:12px;border-radius:6px;background:linear-gradient(90deg,#000,var(--c,#fff));box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.tema-bright input::-moz-range-track{height:12px;border-radius:6px;background:linear-gradient(90deg,#000,var(--c,#fff))}
.tema-bright input::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 5px rgba(0,0,0,.3)}
.tema-bright input::-moz-range-thumb{width:24px;height:24px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 5px rgba(0,0,0,.3)}
.tema-bright input:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
/* Quick colours under the wheel */
.tema-sws{display:grid;grid-template-columns:repeat(6,minmax(0,36px));gap:8px;justify-content:center;width:100%}
.tema-sw{position:relative;width:100%;aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14);
  display:grid;place-items:center;cursor:pointer;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.tema-sw:active{transform:scale(.92)}
.tema-sw[aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 0 0 2px var(--container),0 0 0 4px var(--primary)}
.tema-sw[aria-pressed="true"]::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.35)}
.tema-sw.auto{background:linear-gradient(135deg,var(--surface) 50%,var(--primary-c) 50%);box-shadow:inset 0 0 0 1px var(--outline)}
.tema-sw.auto[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--outline),0 0 0 2px var(--container),0 0 0 4px var(--primary)}
@media (pointer:coarse){.tema-sw::before{content:"";position:absolute;inset:-4px}}
@media (prefers-reduced-motion:reduce){.tema-sw,.pz-chk::before,.pz-chk .ms,.pz-radio::after,.tema-head>.ms,.tema-knob::before{transition:none}.tema-sw:active{transform:none}.pop-scrim{animation:none}}

/* ZIRPA-APP (Jorge 3-oct): Tu cuenta › Personalización › «Abrir planes» (4-ficha.js), radios como los de las paletas */
.pz-ficha{margin-top:2px}
.card.pz>h3#pz-ficha-h{margin-top:18px}
.pz-ficha .pal>.ms{visibility:visible;color:var(--ink-2);font-size:22px}
.pz-ficha .pal[aria-checked="true"]{border-color:var(--primary);background:var(--container)}
.pz-ficha .pal[aria-checked="true"] .pz-radio{border-color:var(--primary)}
.pz-ficha .pal[aria-checked="true"] .pz-radio::after{transform:scale(1)}
.pz-ficha .pal[aria-checked="true"]>.ms{color:var(--primary)}
.pz-ficha .pal:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}

/* ZIRPA-APP (Jorge 3-oct): prueba «Expandir la tarjeta» (4-ficha.js). La ficha de un plan o lugar (.ct) ocupa toda la
   pantalla en el móvil y es un panel grande centrado desde 840 px. La X (44 px) y la cabecera compacta siguen igual. */
.sheet.ct{top:0;bottom:0;left:0;right:0;max-width:none;margin:0;max-height:none;height:auto;border-radius:0;animation:none;box-shadow:none}
.sheet.ct>.grab{display:none}
.sheet.ct .sheet-scroll{flex:1;padding-top:0}
.sheet.ct .sheet-top{top:0;padding-top:calc(8px + var(--safe-t));margin-bottom:calc(-52px - var(--safe-t))}
.sheet.ct .sheet-top+.hero{padding-top:calc(18px + var(--safe-t))}
.sheet.ct .sheet-top+.media{margin-top:var(--safe-t)}
.sheet.ct.scrolled .sheet-top::before,.sheet.ct.has-hero .sheet-top::before{inset:-8px -20px -6px}
.sheet.ct.has-hero.scrolled .sheet-top::after{content:none}
@media (min-width:840px){
  .sheet.ct{top:24px;bottom:24px;left:0;right:0;margin:0 auto;width:min(760px,calc(100% - 48px));max-width:none;border-radius:28px;box-shadow:var(--shadow-2)}
  .sheet.ct .sheet-top{padding-top:16px;margin-bottom:-60px}
  .sheet.ct .sheet-top+.media{margin-top:0}
  .sheet.ct .hero,.sheet.ct .sheet-top+.hero{padding-top:22px}
}
/* Mientras crece o encoge: los bordes los pone el recorte (clip-path); la sombra de color de fondo rellena lo que queda
   fuera del panel (la tarjeta puede estar fuera de él en la tableta) y el contenido no se corta en el borde del panel */
.sheet.ct.ct-run{overflow:visible;box-shadow:0 0 0 200vmax var(--surface);will-change:clip-path}
.sheet.ct.ct-run .sheet-scroll{transform-origin:0 0;will-change:transform,opacity}
.ct-ghost{position:absolute;z-index:9;margin:0;transform-origin:0 0;pointer-events:none;transition:none;animation:none;will-change:transform,opacity}
.ct-src{visibility:hidden}
