:root{
  --bg0:#050806; --bg1:#0a140e;
  --cyan:#0FA56D; --mag:#ff45d0; --amber:#d9b15a; --green:#1FE08F; --violet:#9b7bff;
  --text:#eaf3ec; --muted:#7e948a; --line:rgba(15,165,109,.18);
  --glass:rgba(7,13,10,.9); --glass-2:rgba(5,10,8,.95);
  --sede-activa:#1FE08F;  /* color del anillo de la SEDE activa (configurable desde ⚙️) */
  --glow-cyan:0 0 10px rgba(15,165,109,.55);
}
*{box-sizing:border-box}
[hidden]{display:none!important}  /* el atributo hidden debe ganar sobre display:flex/block (lab, leyenda, sugerencias) */
/* scrollbars estilizados (no los del sistema) */
*{scrollbar-width:thin;scrollbar-color:rgba(150,170,210,.32) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(150,170,210,.3);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(150,170,210,.52);background-clip:padding-box}
*::-webkit-scrollbar-corner{background:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg0)}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}
#app{position:relative;flex:1 1 auto;min-height:0}

/* ---------- MAPA (Leaflet) ---------- */
#map{position:absolute;inset:0;z-index:0;background:#050806}
.leaflet-container{background:#050806;font:inherit;outline:none}
.leaflet-container a{color:#8aa99b}
/* glow holográfico sobre los polígonos */
.leaflet-overlay-pane{filter:drop-shadow(0 0 2px rgba(15,165,109,.5))}
/* borde brillante de la provincia (azul eléctrico) */
.leaflet-provincia-pane{filter:drop-shadow(0 0 4px #0FA56D) drop-shadow(0 0 11px rgba(15,165,109,.6));
  animation:provpulse 3.6s ease-in-out infinite}
@keyframes provpulse{0%,100%{opacity:.8}50%{opacity:1}}
/* líneas de cantón: blancas y suaves */
.leaflet-cantones-pane{filter:drop-shadow(0 0 2px rgba(255,255,255,.4))}
/* capa de selección: glow blanco propio, estable */
.leaflet-seleccion-pane{filter:drop-shadow(0 0 5px rgba(255,255,255,.55)) drop-shadow(0 0 11px rgba(140,239,192,.4))}
.parr{cursor:pointer;transition:fill-opacity .15s}
/* quitar el recuadro de foco que el navegador dibuja al clicar un polígono */
.leaflet-interactive:focus,.leaflet-interactive:focus-visible,.leaflet-container svg path:focus{outline:none}
.leaflet-container:focus,.leaflet-container *:focus{outline:none}
/* atribución y controles oscuros */
.leaflet-control-attribution{background:rgba(7,13,10,.72)!important;color:#7e948a!important;
  backdrop-filter:blur(6px);font-size:10px;border-top-left-radius:8px}
.leaflet-control-attribution a{color:#8aa99b!important}
.leaflet-bar{border:none;box-shadow:none}
.leaflet-bar a{background:var(--glass);backdrop-filter:blur(10px);color:#a7e9cb;border:1px solid var(--line)!important;
  width:36px;height:36px;line-height:36px;font-size:1.1rem}
.leaflet-bar a:hover{background:var(--glass-2);color:#fff;border-color:rgba(15,165,109,.5)!important}
.leaflet-bar a:first-child{border-top-left-radius:10px;border-top-right-radius:10px}
.leaflet-bar a:last-child{border-bottom-left-radius:10px;border-bottom-right-radius:10px}
.leaflet-control-zoom{margin-right:16px!important;margin-bottom:30px!important}
/* tooltip de hover */
.leaflet-tooltip.maptip{background:rgba(7,14,11,.88);border:1px solid rgba(15,165,109,.45);
  color:#eafff7;font-weight:600;font-size:.8rem;border-radius:8px;box-shadow:0 0 16px rgba(15,165,109,.3);
  padding:5px 10px}
.leaflet-tooltip.maptip::before{display:none}
.leaflet-tooltip.maptip .tt-sub{display:block;font-weight:500;color:#8aa99b;font-size:.7rem}
/* etiqueta permanente de la parroquia seleccionada (centrada) */
.leaflet-tooltip.sellabel{background:none;border:none;box-shadow:none;padding:0;color:#fff;
  font-weight:800;font-size:1rem;letter-spacing:.4px;white-space:nowrap;
  text-shadow:0 0 3px rgba(0,0,0,.95),0 1px 4px rgba(0,0,0,.85),0 0 12px rgba(15,165,109,.6)}
.leaflet-tooltip.sellabel::before{display:none}
/* rótulo del nombre de cada cantón (estilo región, mayúsculas espaciadas) */
.leaflet-tooltip.cantonlabel{background:none;border:none;box-shadow:none;padding:0;
  color:rgba(226,238,255,.82);font-weight:700;font-size:.64rem;letter-spacing:1.3px;text-transform:uppercase;white-space:nowrap;
  text-shadow:0 0 4px rgba(0,0,0,.95),0 1px 3px rgba(0,0,0,.9),0 0 9px rgba(15,165,109,.35);
  transition:opacity .2s}
.leaflet-tooltip.cantonlabel::before{display:none}

/* ---------- TOPBAR ---------- */
#topbar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:14px 18px;background:linear-gradient(180deg,rgba(5,7,15,.85) 0%,rgba(5,7,15,0) 100%);pointer-events:none}
#topbar .brand{display:flex;align-items:center;gap:11px;pointer-events:auto}
#topbar .brand img{filter:drop-shadow(0 0 8px rgba(15,165,109,.6))}
#topbar h1{margin:0;font-size:1.12rem;font-weight:700;letter-spacing:.3px;
  background:linear-gradient(90deg,#fff,#8CEFC0 60%,#ff9be8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#topbar p{margin:1px 0 0;font-size:.74rem;color:var(--muted)}
.scope{pointer-events:auto;font-size:.68rem;font-weight:700;letter-spacing:1.4px;color:#a7e9cb;
  border:1px solid rgba(15,165,109,.35);border-radius:999px;padding:6px 12px;background:rgba(15,165,109,.07)}

/* ---------- conmutador de base ---------- */
.basectl{position:absolute;top:18px;right:66px;z-index:32;display:flex;gap:3px;padding:3px;
  background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 30px -12px rgba(0,0,0,.7)}
.basectl button{font:inherit;font-size:.78rem;font-weight:600;color:#93ada0;cursor:pointer;border:none;background:transparent;
  padding:6px 12px;border-radius:8px;transition:all .14s}
.basectl button:hover{color:#e6fff5}
.basectl button.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);box-shadow:0 0 12px rgba(15,165,109,.45)}

/* ---------- barra de herramientas + panel de configuración ---------- */
.tools{position:absolute;top:62px;right:16px;z-index:30;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.tool-btn{font:inherit;font-size:.78rem;font-weight:600;color:#a7e9cb;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);padding:7px 12px;border-radius:10px;box-shadow:0 10px 30px -12px rgba(0,0,0,.7);transition:all .14s}
.tool-btn:hover{color:#fff;border-color:rgba(15,165,109,.5)}
.tool-btn.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent}
.cfg-toggle{position:absolute;top:14px;right:18px;z-index:32;width:40px;height:40px;border-radius:11px;font-size:1.1rem;cursor:pointer;
  border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);color:#a7e9cb;box-shadow:0 10px 30px -12px rgba(0,0,0,.7);transition:all .14s;
  display:flex;align-items:center;justify-content:center}
.cfg-toggle:hover{color:#fff;border-color:rgba(15,165,109,.5)}
.cfg-toggle.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent}
.cfg{position:absolute;top:116px;right:16px;z-index:31;width:268px;max-height:calc(100% - 140px);overflow-y:auto;
  display:flex;flex-direction:column;gap:14px;padding:14px;background:var(--glass-2);backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px -18px rgba(0,0,0,.8)}
.cfg-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:.92rem;color:#eafaf2}
.cfg-block{display:flex;flex-direction:column;gap:8px}
.cfg-label{font-size:.66rem;letter-spacing:1px;text-transform:uppercase;color:#7d968a}
.cfg .opacity-row .cfg-label{flex-direction:row;display:flex;justify-content:space-between;align-items:baseline}
.cfg-hint{color:#5f7268;text-transform:none;letter-spacing:.3px}
.cfg-btns{display:flex;flex-wrap:wrap;gap:5px}
.cfg-btns button{font:inherit;font-size:.74rem;font-weight:600;color:#93ada0;cursor:pointer;border:1.5px solid var(--line);background:rgba(6,13,10,.5);padding:6px 10px;border-radius:9px;transition:all .12s}
.cfg-btns button:hover{border-color:rgba(15,165,109,.5);color:#e6fff5}
.cfg-btns button.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent;box-shadow:0 0 10px rgba(15,165,109,.4)}

/* ---------- HUD ---------- */
#hud{position:absolute;z-index:25;top:14px;left:16px;width:372px;max-height:calc(100% - 36px);
  display:flex;flex-direction:column;gap:13px;padding:16px;background:var(--glass);
  backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px -20px rgba(0,0,0,.7);overflow:visible}
.hud-grip{display:none}
.hud-section{display:flex;flex-direction:column}
.autocomplete{position:relative}
#parroquia{width:100%;font-size:1rem;color:var(--text);padding:13px 15px;background:rgba(6,13,10,.7);
  border:1.5px solid var(--line);border-radius:12px;outline:none;transition:border-color .15s,box-shadow .15s}
#parroquia::placeholder{color:#697d72}
#parroquia:focus{border-color:rgba(15,165,109,.6);box-shadow:0 0 0 4px rgba(15,165,109,.12)}
.suggest{list-style:none;margin:6px 0 0;padding:6px;position:absolute;left:0;right:0;top:100%;z-index:40;
  background:var(--glass-2);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 18px 40px -16px rgba(0,0,0,.8);max-height:260px;overflow-y:auto}
.suggest li{padding:9px 11px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:center}
.suggest li:hover,.suggest li.active{background:rgba(15,165,109,.14)}
.suggest .s-name b{color:var(--cyan)}
.suggest .s-tag{font-size:.7rem;color:var(--muted);text-transform:capitalize}
.suggest .s-empty{padding:10px;color:var(--muted);cursor:default}

.hud-label{font-size:.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#9bb4a7;margin-bottom:8px}
.hud-label-hint{color:#5f7268;font-weight:600;letter-spacing:.3px;text-transform:none}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;color:#93ada0;border:1.5px solid var(--line);
  background:rgba(6,13,10,.55);padding:6px 12px;border-radius:999px;transition:all .14s}
.chip:hover{border-color:rgba(15,165,109,.5);color:#e6fff5}
.chip[aria-selected="true"]{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent;box-shadow:0 0 14px rgba(15,165,109,.5)}

.opacity-row .hud-label{margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.opacity-val{color:#1FE08F;font-weight:700;letter-spacing:.4px;text-transform:none}
.opacity-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:3px;
  background:linear-gradient(90deg,#12241b,#0FA56D);outline:none}
.opacity-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;
  background:#eafff7;box-shadow:0 0 8px rgba(15,165,109,.8);cursor:pointer}
.opacity-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:#eafff7;box-shadow:0 0 8px rgba(15,165,109,.8);cursor:pointer}

.legend{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:rgba(6,13,10,.5);border:1px solid var(--line);max-height:148px;overflow-y:auto}
.legend .lg-title{font-size:.66rem;letter-spacing:1px;text-transform:uppercase;color:#7d968a;margin-bottom:2px}
.legend .lg-row{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#cdded3}
.legend .sw{width:13px;height:13px;border-radius:4px;flex:none;box-shadow:0 0 8px currentColor}
.legend .lg-row.ct{justify-content:space-between}
.legend .lg-ct{color:#dbeae1}
.legend .lg-n{color:#1FE08F;font-weight:700;font-variant-numeric:tabular-nums}

/* ---------- PANEL ---------- */
.panel{display:flex;flex-direction:column;min-height:54px;overflow:hidden}
/* el cuerpo es lo ÚNICO que scrollea; el encabezado queda fijo arriba, fuera de este overflow */
.panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:10px;padding-right:2px}
.panel:empty{display:none;min-height:0}  /* sin selección: no mostrar el bloque vacío, solo el buscador */
.panel-empty{text-align:center;color:var(--muted);padding:22px 10px}
.panel-empty .pe-ic{font-size:1.6rem;opacity:.6;margin-bottom:6px}
/* encabezado FIJO arriba del panel, FUERA del scroll → fondo transparente = mismo glass gris del panel (David v=50) */
.sel-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.sel-head .sh-left{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}
.sel-head h2{margin:0;font-size:1.12rem;font-weight:700;color:#eafaf2}
.sel-head .sh-meta{font-size:.72rem;color:var(--muted)}
.sh-close{flex:none;width:27px;height:27px;border-radius:50%;border:1px solid var(--line);background:rgba(6,13,10,.6);
  color:#9bb0a4;cursor:pointer;font-size:.8rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .14s}
.sh-close:hover{background:rgba(255,80,120,.16);border-color:rgba(255,90,120,.5);color:#ff9bb0;transform:scale(1.06)}
.sel-sum{font-size:.82rem;color:#cdded3}
.mat-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(8,13,28,.55)}
.mat-card .mc-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:rgba(15,165,109,.06);border-bottom:1px solid var(--line)}
.mat-card .mc-head .dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}
.mat-card .mc-head h3{margin:0;font-size:.9rem;font-weight:700;color:#dcfaeb}
.mat-card .mc-head .n{margin-left:auto;font-size:.7rem;color:var(--muted)}
.unit{padding:11px 12px}.unit+.unit{border-top:1px dashed var(--line)}
.unit .u-name{font-weight:600;font-size:.9rem;color:#eefaf3;margin:0 0 7px;display:flex;align-items:center;gap:6px}
.badges{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.badge{font-size:.66rem;font-weight:700;padding:2px 8px;border-radius:6px;letter-spacing:.2px;border:1px solid transparent}
.badge.lvl{background:rgba(15,165,109,.12);color:#8CEFC0;border-color:rgba(15,165,109,.3)}
.badge.tribunal{background:rgba(155,123,255,.14);color:#c5b4ff;border-color:rgba(155,123,255,.35)}
.badge.flagrancia{background:rgba(255,138,61,.14);color:#ffc08a;border-color:rgba(255,138,61,.35)}
.badge.sede{background:rgba(86,255,166,.1);color:#8df3c0;border-color:rgba(86,255,166,.3)}
.u-meta{font-size:.74rem;color:var(--muted);display:grid;gap:3px}
.u-meta .src b{color:#c7d6cd;font-weight:600}
.conf{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.conf .cd{width:7px;height:7px;border-radius:50%;flex:none}
.conf.alta{color:var(--green)}.conf.alta .cd{background:var(--green);box-shadow:0 0 7px var(--green)}
.conf.media{color:var(--amber)}.conf.media .cd{background:var(--amber);box-shadow:0 0 7px var(--amber)}
.conf.baja{color:#ff7a5c}.conf.baja .cd{background:#ff7a5c;box-shadow:0 0 7px #ff7a5c}
.hueco{padding:11px 12px;color:var(--muted);font-size:.78rem;display:flex;gap:8px}.hueco .ic{color:var(--amber)}
.nodata{padding:14px 12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.82rem;text-align:center}

/* P2: parroquia → materia → órgano competente + sede */
.pmat-q{font-size:.82rem;color:#cdded3;flex:none}
.pmat-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.pmat-chip{font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;color:#93ada0;border:1.5px solid var(--line);background:rgba(6,13,10,.55);padding:6px 12px;border-radius:999px;transition:all .14s}
.pmat-chip:hover{border-color:rgba(15,165,109,.5);color:#e6fff5}
.pmat-chip.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent;box-shadow:0 0 14px rgba(15,165,109,.5)}
.pmat-hint{color:var(--muted);font-size:.78rem;text-align:center;padding:16px 8px;border:1px dashed var(--line);border-radius:12px}
.pmat-row{display:flex;align-items:center;gap:10px;margin:2px 0 12px}
.pmat-dd{position:relative;flex:1;min-width:0}
.pmat-dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;font:inherit;font-size:.9rem;color:var(--text);cursor:pointer;padding:12px 14px;background:rgba(6,13,10,.7);border:1.5px solid var(--line);border-radius:12px;transition:all .14s}
.pmat-dd-btn>span{line-height:1.3;text-align:left}
.pmat-dd-btn:hover{border-color:rgba(15,165,109,.45);color:#fff}
.pmat-dd-btn.open{border-color:rgba(15,165,109,.6)}
.pmat-dd-btn i{font-style:normal;color:var(--muted);transition:transform .15s;flex:none}
.pmat-dd-btn.open i{transform:rotate(180deg)}
.pmat-dd-list{list-style:none;margin:0;padding:6px;position:fixed;z-index:9999;max-height:46vh;overflow-y:auto;
  background:var(--glass-2);backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 44px -14px rgba(0,0,0,.85)}
.pmat-dd-list li{padding:9px 11px;border-radius:8px;cursor:pointer;font-size:.84rem;color:#cdded3}
.pmat-dd-list li:hover{background:rgba(15,165,109,.16);color:#fff}
.pmat-todos{display:block;width:100%;font:inherit;font-size:.82rem;font-weight:600;color:#8CEFC0;cursor:pointer;text-align:center;
  border:1px solid rgba(15,165,109,.3);background:rgba(15,165,109,.07);padding:9px 12px;border-radius:11px;margin:0 0 12px;transition:all .14s}
.pmat-todos:hover{background:rgba(15,165,109,.14);border-color:rgba(15,165,109,.5);color:#e6fff5}
.res-hint{font-size:.74rem;color:var(--muted);margin-bottom:9px}
/* lista de órganos de una parroquia: mismo formato que la sede, agrupado por sede (David v=41) */
.lst-grupo{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.lst-sede{align-self:flex-start;display:inline-flex;align-items:center;gap:3px;font:inherit;border:none;background:none;padding:1px 2px 1px 0;cursor:pointer;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ffe2a6;margin:2px 0 1px;transition:color .14s}
.lst-sede:hover{color:#fff3d6;text-decoration:underline}
.lst-sede-go{font-size:1rem;line-height:1;opacity:.65;text-decoration:none;display:inline-block;transform:translateY(-1px)}
.res-card{display:block;width:100%;text-align:left;font:inherit;border:1px solid var(--line);border-radius:12px;background:rgba(8,13,28,.55);padding:12px;margin-bottom:8px;cursor:pointer;transition:all .14s}
.res-card:hover{border-color:rgba(255,210,74,.5);background:rgba(255,210,74,.05)}
.res-card.on{border-color:rgba(255,210,74,.7);background:rgba(255,210,74,.08);box-shadow:0 0 14px rgba(255,200,60,.22)}
.res-org{font-size:.82rem;font-weight:700;color:#eefaf3;margin-bottom:6px;line-height:1.32;text-transform:uppercase;letter-spacing:.2px}
.res-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}
.res-sede{font-size:.84rem;color:#ffe2a6;font-weight:600;margin-bottom:8px}
.res-sede b{color:#eaf3ec}
.res-ir{color:#8CEFC0;text-decoration:none;border-bottom:1px dashed rgba(159,233,255,.45)}
.res-ir:hover{color:#e6fff5}
.res-mats{font-size:.76rem;color:var(--muted);margin-bottom:3px}
.res-src{font-size:.74rem;color:#6e837a}

/* ficha de detalle de un órgano */
.od-back{font:inherit;font-size:.84rem;font-weight:600;color:var(--cyan);cursor:pointer;border:none;background:none;padding:0}
.od-back:hover{filter:brightness(1.2)}
.od-card{display:flex;flex-direction:column}
.od-org{font-size:.95rem;font-weight:700;color:#eefaf3;margin:6px 0 9px;line-height:1.32;text-transform:uppercase;letter-spacing:.2px}
.od-org-row{display:flex;align-items:flex-start;gap:8px;margin:6px 0 9px}
.od-org-row .od-org{margin:0;flex:1;min-width:0}
.od-copy{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;margin-top:1px;
  color:#8CEFC0;border:1px solid rgba(15,165,109,.3);background:rgba(15,165,109,.08);cursor:pointer;font-size:.82rem;line-height:1;transition:all .14s}
.od-copy:hover{background:rgba(15,165,109,.16);border-color:rgba(15,165,109,.55);color:#e6fff5}
.od-copy.ok{color:#8df3c0;border-color:rgba(86,255,166,.5);background:rgba(86,255,166,.14)}
.od-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.od-row{display:grid;grid-template-columns:80px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:.84rem}
.od-lbl{color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.6px;padding-top:3px}
.od-val{color:#dbeae1;line-height:1.4}
.od-link{color:var(--cyan);text-decoration:none;border-bottom:1px dashed currentColor}
.od-terr-n{color:#ffe2a6;font-weight:600;margin-bottom:5px}
.od-terr-grupo{margin-top:9px}
.od-terr-grupo:first-of-type{margin-top:2px}
.od-terr-canton{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#9fb0d6;margin-bottom:1px}
.od-terr-cn{color:#6c7aa0;font-weight:600;margin-left:3px}
.od-terr-list{list-style:disc;margin:4px 0 0;padding-left:16px;columns:2;font-size:.8rem;color:#cdded3}
.od-terr-list li{margin-bottom:2px}
.od-terr-cant{margin:14px 0 0;color:#ffd9a0}
.od-terr-regla{margin:14px 0 0;color:#dbeae1;line-height:1.4}
.od-terr-resumen{margin:14px 0 0;padding-left:9px;border-left:2px solid rgba(159,176,214,.35);color:#cdded3;line-height:1.45;font-size:.82rem}
.od-terr-resumen b{color:#ffe2a6;font-weight:600}
.od-nota{margin-top:11px;font-size:.76rem;color:#8a96b8;border-top:1px solid var(--line);padding-top:10px;font-style:italic}
.od-mat-list{list-style:disc;margin:4px 0 0;padding-left:16px;font-size:.8rem;color:#cdded3}
.od-mat-list li{margin-bottom:3px}
.od-sede-link{color:#ffe2a6;font-weight:600;text-decoration:none;border-bottom:1px dashed rgba(255,226,166,.45);cursor:pointer}
.od-sede-link:hover{color:#fff2cf}
.loc-ic{flex:none;vertical-align:-2px;margin-right:4px}
.sh-actions{flex:none;display:flex;align-items:center;gap:7px}
.maps-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;flex:none;
  color:#8CEFC0;border:1px solid rgba(15,165,109,.3);background:rgba(15,165,109,.09);text-decoration:none;transition:all .14s}
.maps-icon:hover{background:rgba(15,165,109,.18);border-color:rgba(15,165,109,.6);color:#e6fff5;transform:translateY(-1px)}
.maps-icon .loc-ic{margin:0}
.hud-foot{margin:0;font-size:.68rem;line-height:1.45;color:#6e837a;border-top:1px solid var(--line);padding-top:10px}
.data-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:.78rem;font-weight:600;color:#8CEFC0;text-decoration:none;
  border:1px solid rgba(15,165,109,.3);background:rgba(15,165,109,.07);padding:7px 12px;border-radius:10px;transition:all .14s}
.data-link:hover{background:rgba(15,165,109,.14);border-color:rgba(15,165,109,.55);color:#e6fff5}

.loading{position:absolute;inset:0;z-index:5;pointer-events:none}

/* ---------- La pantalla de carga comun de la suite (21-sep-2026) ----------
   La misma pieza y los mismos colores en todos los productos: papel #F4F4F5, blason en tinta
   #15201B y aro esmeralda #067A50. Nacio en Praetor. Si cambia, cambia en todas. */
.bastione-carga{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;background:#F4F4F5}
.bastione-carga .blason{display:block;height:56px;opacity:.9;--bastione-logo-tinta:#15201B}
.bastione-carga .blason>svg{display:block;height:100%;width:auto}
.bastione-carga .aro{height:24px;width:24px;border-radius:9999px;border:3px solid #067A50;
  border-top-color:transparent;animation:bastione-girar .8s linear infinite}
@keyframes bastione-girar{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.bastione-carga .aro{animation-duration:2.4s}}


/* ---------- Laboratorio de estilo de selección ---------- */
.lab-toggle{position:absolute;left:16px;bottom:96px;z-index:30;font:inherit;font-size:.78rem;font-weight:600;
  color:#a7e9cb;cursor:pointer;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);
  padding:8px 12px;border-radius:11px;box-shadow:0 10px 30px -12px rgba(0,0,0,.7);transition:all .14s}
.lab-toggle:hover{color:#fff;border-color:rgba(15,165,109,.5)}
.lab-toggle.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent}
.lab{position:absolute;right:16px;top:116px;z-index:31;width:300px;max-height:calc(100% - 140px);overflow-y:auto;
  display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--glass-2);backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px -18px rgba(0,0,0,.8)}
.lab-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:.92rem;color:#eafaf2}
.lab-x{width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:rgba(6,13,10,.6);color:#9bb0a4;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center}
.lab-x:hover{background:rgba(255,80,120,.16);border-color:rgba(255,90,120,.5);color:#ff9bb0}
.lab-label{font-size:.66rem;letter-spacing:1px;text-transform:uppercase;color:#7d968a;margin-bottom:7px}
.lab-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.lab-preset{font:inherit;font-size:.72rem;font-weight:600;color:#93ada0;cursor:pointer;border:1.5px solid var(--line);
  background:rgba(6,13,10,.55);padding:7px 6px;border-radius:9px;transition:all .12s}
.lab-preset:hover{border-color:rgba(15,165,109,.5);color:#e6fff5}
.lab-preset.on{color:#04140d;background:linear-gradient(90deg,var(--cyan),#1FE08F);border-color:transparent}
.lab-controls{display:flex;flex-direction:column;gap:9px}
.lab-row{display:flex;align-items:center;gap:9px;font-size:.8rem;color:#cdded3}
.lab-row>span{flex:1;min-width:0}
.lab-row input[type=range]{flex:1.2;-webkit-appearance:none;appearance:none;height:5px;border-radius:3px;background:linear-gradient(90deg,#12241b,#0FA56D);outline:none}
.lab-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:#eafff7;box-shadow:0 0 8px rgba(15,165,109,.8);cursor:pointer}
.lab-row input[type=range]::-moz-range-thumb{width:15px;height:15px;border:none;border-radius:50%;background:#eafff7;cursor:pointer}
.lab-row input[type=color]{width:42px;height:26px;padding:0;border:1px solid var(--line);border-radius:7px;background:none;cursor:pointer}
.lab-row b{min-width:34px;text-align:right;color:#1FE08F;font-variant-numeric:tabular-nums}
.lab-check{cursor:pointer}.lab-check input{width:16px;height:16px;accent-color:var(--cyan)}.lab-check span{flex:none}
.lab-foot{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.lab-foot code{font-size:.68rem;color:#9bb4a7;word-break:break-word;line-height:1.4}
.lab-copy{font:inherit;font-size:.78rem;font-weight:600;color:#a7e9cb;cursor:pointer;border:1px solid var(--line);background:rgba(6,13,10,.55);padding:7px;border-radius:9px;transition:all .14s}
.lab-copy:hover{border-color:rgba(15,165,109,.5);color:#fff}
.lab-hint{margin:0;font-size:.72rem;color:var(--amber)}

/* ---------- SEDES (directorio: lucecita + órganos) ---------- */
.leaflet-div-icon.sede-icon,.sede-icon{background:transparent;border:none;display:flex;align-items:center;justify-content:center;overflow:visible;cursor:pointer}
/* 1 · Pin con balanza */
.sede-pin{position:relative;width:20px;height:20px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:linear-gradient(135deg,#ffe89a,#ffd24a 55%,#ff9f1c);box-shadow:0 0 6px rgba(255,180,40,.9);
  display:flex;align-items:center;justify-content:center;animation:sedeglow 1.5s ease-in-out infinite}
.sede-pin-i{transform:rotate(45deg);font-size:10px;line-height:1}
/* 2 · Edificio en chip */
.sede-edif{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff2c0,#ffce4a 60%,#ff9f1c);
  display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 0 7px rgba(255,180,40,.85);animation:sedeglow 1.6s ease-in-out infinite}
/* 3 · Anillo que late */
.sede-ring{width:13px;height:13px;border-radius:50%;border:2.5px solid #ffd24a;background:rgba(255,210,74,.12);
  box-shadow:0 0 6px #ffd24a,0 0 12px rgba(255,170,40,.6);animation:sedeblink 1.2s ease-in-out infinite}
/* 4 · Diamante */
.sede-diamond{width:11px;height:11px;background:linear-gradient(135deg,#fff2c0,#ffd24a,#ff9f1c);transform:rotate(45deg);
  box-shadow:0 0 7px #ffd24a,0 0 14px rgba(255,170,40,.8);animation:sedeblink 1.2s ease-in-out infinite}
/* SEDE ACTIVA (estás viendo su ficha o un órgano suyo) → cambia a CIAN para distinguirla del dorado del territorio y de otras sedes */
.sede-icon.activa .sede-ring{border-color:var(--sede-activa);background:color-mix(in srgb,var(--sede-activa) 16%,transparent);box-shadow:0 0 8px var(--sede-activa),0 0 16px color-mix(in srgb,var(--sede-activa) 55%,transparent)}
.sede-icon.activa .sede-pin{background:var(--sede-activa);box-shadow:0 0 9px color-mix(in srgb,var(--sede-activa) 90%,transparent)}
.sede-icon.activa .sede-edif{background:var(--sede-activa);box-shadow:0 0 10px color-mix(in srgb,var(--sede-activa) 85%,transparent)}
.sede-icon.activa .sede-diamond{background:var(--sede-activa);box-shadow:0 0 10px var(--sede-activa),0 0 18px color-mix(in srgb,var(--sede-activa) 70%,transparent)}
@keyframes sedeblink{0%,100%{opacity:1}50%{opacity:.38}}
@keyframes sedeglow{0%,100%{box-shadow:0 0 5px rgba(255,180,40,.7)}50%{box-shadow:0 0 13px rgba(255,215,100,1)}}

/* conmutador de estilo de marcador (para elegir) */
.sedectl{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:9px;padding:7px 12px;
  background:var(--glass-2);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px -12px rgba(0,0,0,.75)}
.sedectl-lbl{font-size:.6rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#9bb4a7;white-space:nowrap}
.sedectl-btns{display:flex;gap:4px}
.sedectl button{font:inherit;font-size:.72rem;font-weight:600;color:#93ada0;cursor:pointer;border:1px solid var(--line);
  background:rgba(6,13,10,.4);padding:5px 9px;border-radius:8px;transition:all .14s}
.sedectl button:hover{color:#fff;border-color:rgba(255,210,74,.5)}
.sedectl button.on{color:#1a1206;background:linear-gradient(90deg,#ffd24a,#ffb83d);border-color:transparent;box-shadow:0 0 10px rgba(255,200,60,.5)}
.sede-orgs{display:flex;flex-direction:column;gap:8px}
.org-card{display:block;width:100%;text-align:left;font:inherit;cursor:pointer;border:1.5px solid var(--line);
  background:rgba(8,13,28,.55);border-radius:12px;padding:10px 12px;transition:all .14s}
.org-card:hover{border-color:rgba(255,210,74,.45);background:rgba(22,19,10,.5)}
.org-card.on{border-color:#ffd24a;background:rgba(255,210,74,.1);box-shadow:0 0 14px rgba(255,200,60,.25)}
.org-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.org-name{font-size:.78rem;font-weight:600;color:#eefaf3;line-height:1.3;text-transform:uppercase;letter-spacing:.2px}
.org-badge{flex:none;font-size:.61rem;font-weight:700;padding:2px 7px;border-radius:6px;letter-spacing:.2px;white-space:nowrap}
.org-badge.val{background:rgba(86,255,166,.14);color:#8df3c0;border:1px solid rgba(86,255,166,.35)}
.org-badge.ver{background:rgba(15,165,109,.12);color:#8CEFC0;border:1px solid rgba(15,165,109,.3)}
.org-badge.pend{background:rgba(255,184,61,.12);color:#ffc88a;border:1px solid rgba(255,184,61,.3)}
.org-meta{display:flex;flex-direction:column;gap:2px;font-size:.73rem;color:var(--muted)}
.org-terr{color:#ffe0a3}
.sede-close{flex:none;width:27px;height:27px;border-radius:50%;border:1px solid var(--line);background:rgba(6,13,10,.6);
  color:#9bb0a4;cursor:pointer;font-size:.8rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .14s}
.sede-close:hover{background:rgba(255,80,120,.16);border-color:rgba(255,90,120,.5);color:#ff9bb0}

/* ---------- RESPONSIVE ---------- */
@media (max-width:720px){
  #topbar h1{font-size:1rem}
  #hud{top:auto;left:0;right:0;bottom:0;width:auto;max-height:60vh;border-radius:20px 20px 0 0;padding-top:8px}
  .hud-grip{display:block;width:42px;height:5px;border-radius:3px;background:rgba(140,170,230,.4);margin:2px auto 6px}
  .scope{display:none}
  .basectl{top:auto;bottom:62vh}
  .leaflet-control-zoom{margin-bottom:62vh!important}
}

/* El fondo oscuro de Esri es un gris medio, más claro que el negro que servía CARTO
   hasta el 8-sep-2026. Se atenúa para que case con la paleta oscura del sitio.
   Va SOLO sobre el fondo: la capa de rótulos no lleva esta clase, porque oscurecerla
   dejaría los nombres de parroquia ilegibles. */
.fondo-atenuado { filter: brightness(.55) saturate(.75); }
