
/* ADN DURÁN · MAPA TERRITORIAL HOLOGRÁFICO v1.2.0
   Capa visual independiente: no reemplaza styles.css del sitio. */

#adn-duran-territorial-holo{
  --adn-purple:#7d2c91;
  --adn-purple-deep:#1b0825;
  --adn-purple-mid:#4f1664;
  --adn-yellow:#e8f20f;
  --adn-cyan:#6cf7ff;
  --adn-white:#f9f8ff;
  --adn-muted:#b9acc3;
  --adn-panel:rgba(20,7,31,.88);
  position:relative;
  margin:28px auto 34px;
  border:1px solid rgba(232,242,15,.48);
  border-radius:26px;
  overflow:hidden;
  color:var(--adn-white);
  background:
    radial-gradient(circle at 12% 4%, rgba(125,44,145,.34), transparent 28%),
    radial-gradient(circle at 90% 8%, rgba(108,247,255,.14), transparent 26%),
    linear-gradient(145deg,#0d0515 0%,#1a0825 42%,#100519 100%);
  box-shadow:0 24px 70px rgba(26,5,38,.28), inset 0 0 0 1px rgba(255,255,255,.04);
  isolation:isolate;
}

#adn-duran-territorial-holo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.16;
  background-image:
    linear-gradient(rgba(108,247,255,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(108,247,255,.18) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,black,transparent 80%);
}

#adn-duran-territorial-holo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,.018) 0,
    rgba(255,255,255,.018) 1px,
    transparent 1px,
    transparent 5px
  );
  mix-blend-mode:screen;
}

.adn-holo-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end;
  padding:24px 26px 18px;
  border-bottom:1px solid rgba(255,255,255,.09);
}

.adn-holo-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:.75rem;
  letter-spacing:.16em;
  font-weight:800;
  color:var(--adn-yellow);
  text-transform:uppercase;
}

.adn-holo-pulse{
  width:9px;height:9px;border-radius:50%;
  background:var(--adn-cyan);
  box-shadow:0 0 0 0 rgba(108,247,255,.5);
  animation:adnPulse 2.4s infinite;
}

@keyframes adnPulse{
  0%{box-shadow:0 0 0 0 rgba(108,247,255,.45)}
  70%{box-shadow:0 0 0 12px rgba(108,247,255,0)}
  100%{box-shadow:0 0 0 0 rgba(108,247,255,0)}
}

.adn-holo-title{
  margin:7px 0 5px;
  font-size:clamp(1.45rem,2vw,2.2rem);
  line-height:1.08;
  letter-spacing:-.025em;
  color:white;
}

.adn-holo-sub{
  margin:0;
  max-width:900px;
  color:#d6cadd;
  font-size:.94rem;
  line-height:1.55;
}

.adn-holo-status{
  text-align:right;
  min-width:190px;
}

.adn-holo-status strong{
  display:block;
  color:var(--adn-cyan);
  font-size:1.02rem;
}

.adn-holo-status span{
  display:block;
  margin-top:4px;
  color:var(--adn-muted);
  font-size:.78rem;
}

.adn-holo-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  padding:14px 26px 18px;
}

.adn-holo-kpi{
  min-height:78px;
  padding:13px 15px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  backdrop-filter:blur(10px);
}

.adn-holo-kpi .n{
  display:block;
  color:white;
  font-size:1.45rem;
  font-weight:850;
  line-height:1;
}

.adn-holo-kpi .l{
  display:block;
  margin-top:7px;
  color:var(--adn-muted);
  font-size:.74rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.adn-holo-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  padding:0 26px 18px;
}

.adn-holo-search{
  flex:1 1 360px;
  display:grid;
  grid-template-columns:minmax(130px,.65fr) minmax(220px,1.35fr);
  gap:8px;
}

.adn-holo-toolbar input,
.adn-holo-toolbar select,
.adn-holo-toolbar button{
  min-height:42px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  font:inherit;
}

.adn-holo-toolbar input,
.adn-holo-toolbar select{
  width:100%;
  padding:0 12px;
  color:#fff;
  background:rgba(10,3,16,.82);
  outline:none;
}

.adn-holo-toolbar select option{color:#111;background:#fff}

.adn-holo-toolbar input:focus,
.adn-holo-toolbar select:focus{
  border-color:var(--adn-cyan);
  box-shadow:0 0 0 3px rgba(108,247,255,.12);
}

.adn-holo-toolbar button{
  cursor:pointer;
  padding:0 13px;
  color:#fff;
  background:rgba(255,255,255,.055);
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}

.adn-holo-toolbar button:hover{
  transform:translateY(-1px);
  border-color:rgba(232,242,15,.68);
  background:rgba(232,242,15,.08);
}

.adn-holo-toolbar button.is-active{
  color:#121212;
  background:var(--adn-yellow);
  border-color:var(--adn-yellow);
  font-weight:800;
}

.adn-holo-grid{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);
  min-height:640px;
  border-top:1px solid rgba(255,255,255,.08);
}

.adn-holo-map-wrap{
  position:relative;
  min-height:640px;
  overflow:hidden;
  background:
    radial-gradient(circle at center,rgba(125,44,145,.16),transparent 40%),
    #09030f;
}

#adn-holo-map{
  position:absolute;
  inset:0;
  min-height:640px;
}

.adn-holo-map-overlay{
  position:absolute;
  z-index:8;
  left:14px;
  bottom:14px;
  max-width:min(520px,calc(100% - 28px));
  padding:10px 12px;
  border:1px solid rgba(108,247,255,.2);
  border-radius:13px;
  color:#d8eef0;
  background:rgba(5,4,12,.76);
  backdrop-filter:blur(9px);
  font-size:.73rem;
  line-height:1.45;
  pointer-events:none;
}

.adn-holo-map-error{
  position:absolute;
  z-index:12;
  inset:18px;
  display:none;
  place-items:center;
  text-align:center;
  padding:24px;
  border:1px dashed rgba(232,242,15,.45);
  border-radius:18px;
  background:rgba(19,6,29,.88);
  color:#fff;
}

.adn-holo-map-error.is-visible{display:grid}

.adn-holo-panel{
  min-width:0;
  max-height:740px;
  overflow:auto;
  border-left:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg,rgba(23,8,34,.96),rgba(10,3,16,.96));
  scrollbar-width:thin;
}

.adn-holo-panel-inner{padding:20px}

.adn-holo-panel h3{
  margin:0 0 5px;
  color:#fff;
  font-size:1.26rem;
  line-height:1.2;
}

.adn-holo-panel .adn-code{
  color:var(--adn-cyan);
  font-size:.77rem;
  letter-spacing:.08em;
  font-weight:800;
}

.adn-holo-panel .adn-panel-note{
  margin:10px 0 14px;
  color:#d6cadd;
  font-size:.82rem;
  line-height:1.5;
}

.adn-holo-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:11px 0 15px;
}

.adn-holo-tag{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#eee6f3;
  font-size:.68rem;
  font-weight:700;
}

.adn-holo-tag.good{border-color:rgba(108,247,255,.35);color:var(--adn-cyan)}
.adn-holo-tag.warn{border-color:rgba(232,242,15,.35);color:var(--adn-yellow)}

.adn-holo-stat-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:12px 0;
}

.adn-holo-stat{
  padding:10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}

.adn-holo-stat b{
  display:block;
  color:#fff;
  font-size:1.05rem;
}

.adn-holo-stat span{
  color:var(--adn-muted);
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

#adn-holo-chart{
  width:100%;
  height:160px;
  margin:10px 0 14px;
}

.adn-holo-linked{
  margin:12px 0 16px;
  padding:11px;
  border:1px solid rgba(232,242,15,.2);
  border-radius:13px;
  background:rgba(232,242,15,.045);
}

.adn-holo-linked strong{
  display:block;
  margin-bottom:7px;
  color:var(--adn-yellow);
  font-size:.77rem;
}

.adn-holo-linked button{
  margin:3px 4px 3px 0;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  background:rgba(255,255,255,.04);
  cursor:pointer;
  font-size:.73rem;
}

.adn-holo-detail{
  margin:8px 0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  overflow:hidden;
  background:rgba(255,255,255,.025);
}

.adn-holo-detail summary{
  cursor:pointer;
  padding:11px 12px;
  color:#fff;
  font-weight:800;
  font-size:.79rem;
  list-style:none;
}

.adn-holo-detail summary::-webkit-details-marker{display:none}
.adn-holo-detail summary::after{
  content:"+";
  float:right;
  color:var(--adn-yellow);
  font-size:1rem;
}

.adn-holo-detail[open] summary::after{content:"–"}

.adn-holo-fields{padding:0 11px 11px}

.adn-holo-field{
  padding:8px 0;
  border-top:1px solid rgba(255,255,255,.055);
}

.adn-holo-field .k{
  display:block;
  margin-bottom:3px;
  color:#bbaac7;
  font-size:.67rem;
  line-height:1.3;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.adn-holo-field .v{
  display:block;
  color:#f6f1f8;
  font-size:.77rem;
  line-height:1.48;
  overflow-wrap:anywhere;
}

.adn-holo-sources{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:14px 20px 18px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.14);
}

.adn-holo-sources a{
  color:var(--adn-cyan);
  font-size:.72rem;
  text-decoration:none;
  border-bottom:1px dotted rgba(108,247,255,.45);
}

.adn-holo-sources span{
  color:#a99ab3;
  font-size:.72rem;
}

#adn-duran-territorial-holo .maplibregl-ctrl-group{
  background:rgba(15,5,23,.82);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:none;
}

#adn-duran-territorial-holo .maplibregl-ctrl button .maplibregl-ctrl-icon{
  filter:invert(1);
}

#adn-duran-territorial-holo .maplibregl-ctrl-attrib{
  color:#d7d0da;
  background:rgba(8,3,12,.72);
}

#adn-duran-territorial-holo .maplibregl-ctrl-attrib a{color:var(--adn-cyan)}

@media (max-width:980px){
  .adn-holo-head{grid-template-columns:1fr}
  .adn-holo-status{text-align:left}
  .adn-holo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adn-holo-grid{grid-template-columns:1fr}
  .adn-holo-panel{max-height:none;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
  .adn-holo-map-wrap,#adn-holo-map{min-height:520px}
}

@media (max-width:640px){
  #adn-duran-territorial-holo{border-radius:18px;margin:20px -2px 26px}
  .adn-holo-head,.adn-holo-kpis,.adn-holo-toolbar{padding-left:14px;padding-right:14px}
  .adn-holo-kpis{grid-template-columns:1fr 1fr;gap:7px}
  .adn-holo-kpi{min-height:68px;padding:10px}
  .adn-holo-search{grid-template-columns:1fr}
  .adn-holo-toolbar button{flex:1 1 42%}
  .adn-holo-map-wrap,#adn-holo-map{min-height:440px}
  .adn-holo-panel-inner{padding:15px}
  .adn-holo-stat-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .adn-holo-pulse{animation:none}
  .adn-holo-toolbar button{transition:none}
}


/* ADN_DURAN_MAPA_V121_SVG_FALLBACK */
#adn-holo-map.adn-svg-host{
  display:grid;
  place-items:stretch;
  overflow:hidden;
  background:
    linear-gradient(rgba(108,247,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(108,247,255,.035) 1px,transparent 1px),
    radial-gradient(circle at 50% 48%,rgba(125,44,145,.30),transparent 48%),
    #09030f;
  background-size:30px 30px,30px 30px,auto,auto;
}
.adn-svg-stage{
  position:absolute;
  inset:28px 22px 88px;
  display:grid;
  place-items:center;
  perspective:1300px;
  transform-style:preserve-3d;
}
.adn-svg-map{
  width:100%;
  height:100%;
  overflow:visible;
  transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .35s ease;
  filter:drop-shadow(0 0 18px rgba(108,247,255,.16));
}
.adn-svg-stage.is-3d .adn-svg-map{
  transform:rotateX(17deg) rotateZ(-2deg) scale(.94);
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.42)) drop-shadow(0 0 24px rgba(108,247,255,.18));
}
.adn-svg-sector{
  fill:url(#adnHoloFill);
  fill-opacity:calc(.24 + var(--adn-pop,.2) * .58);
  stroke:rgba(205,244,255,.56);
  stroke-width:.72;
  vector-effect:non-scaling-stroke;
  cursor:pointer;
  transition:fill-opacity .15s ease,stroke .15s ease,stroke-width .15s ease,filter .15s ease;
}
.adn-svg-sector:hover,
.adn-svg-sector:focus{
  fill-opacity:.82;
  stroke:#6cf7ff;
  stroke-width:1.8;
  outline:none;
  filter:url(#adnGlow);
}
.adn-svg-sector.is-selected{
  fill:#e8f20f;
  fill-opacity:.78;
  stroke:#fff;
  stroke-width:2.8;
  filter:url(#adnGlow);
}
.adn-holo-map-error.is-warning{
  inset:auto 18px 82px;
  display:block;
  place-items:initial;
  padding:9px 12px;
  text-align:left;
  border-style:solid;
  border-color:rgba(108,247,255,.28);
  background:rgba(10,3,16,.84);
  font-size:.68rem;
  line-height:1.35;
  pointer-events:none;
}
.adn-holo-map-error.is-warning strong{color:#6cf7ff}
@media (max-width:640px){
  .adn-svg-stage{inset:20px 12px 102px}
  .adn-svg-stage.is-3d .adn-svg-map{transform:rotateX(11deg) rotateZ(-1deg) scale(.96)}
  .adn-holo-map-error.is-warning{bottom:92px}
}


/* ADN_DURAN_MAPA_V122_SYNC */
.adn-holo-sync-note{
  margin:10px 0 14px;
  padding:11px 12px;
  border:1px solid rgba(108,247,255,.25);
  border-radius:13px;
  background:linear-gradient(135deg,rgba(108,247,255,.075),rgba(125,44,145,.08));
}
.adn-holo-sync-note strong{
  display:block;
  margin-bottom:5px;
  color:var(--adn-cyan);
  font-size:.76rem;
  letter-spacing:.03em;
}
.adn-holo-sync-note span{
  display:block;
  color:#d9cfdf;
  font-size:.72rem;
  line-height:1.5;
}
.adn-holo-sync-note.is-pending{
  border-color:rgba(232,242,15,.25);
  background:rgba(232,242,15,.045);
}
.adn-holo-sync-note.is-pending strong{color:var(--adn-yellow)}
.adn-holo-linked.adn-holo-sync-box button.is-current{
  color:#111;
  background:var(--adn-yellow);
  border-color:var(--adn-yellow);
  font-weight:800;
}
.adn-svg-anchor-label{
  fill:#6cf7ff;
  font:700 12px/1.2 sans-serif;
  text-anchor:middle;
  paint-order:stroke;
  stroke:#09030f;
  stroke-width:4px;
  stroke-linejoin:round;
  pointer-events:none;
}
.adn-svg-selected-label{
  fill:#e8f20f;
  font:900 18px/1.1 sans-serif;
  paint-order:stroke;
  stroke:#12051d;
  stroke-width:6px;
  stroke-linejoin:round;
  pointer-events:none;
}

/* ==============================================================
   ADN DURÁN · TABLERO CANTONAL v1.4.0
   Alimentado por dashboard_cantonal.json regenerado desde Excel.
   ============================================================== */
#adn-duran-cantonal-dashboard{
  --adn-purple:#7d2c91;
  --adn-purple-deep:#16061f;
  --adn-yellow:#e8f20f;
  --adn-cyan:#6cf7ff;
  --adn-white:#f9f8ff;
  --adn-muted:#b9acc3;
  position:relative;
  margin:28px auto 20px;
  border:1px solid rgba(108,247,255,.30);
  border-radius:26px;
  overflow:hidden;
  color:var(--adn-white);
  background:
    radial-gradient(circle at 2% 0%,rgba(108,247,255,.15),transparent 28%),
    radial-gradient(circle at 95% 8%,rgba(232,242,15,.08),transparent 23%),
    linear-gradient(145deg,#0c0413 0%,#1a0825 48%,#0b0616 100%);
  box-shadow:0 22px 64px rgba(26,5,38,.22),inset 0 0 0 1px rgba(255,255,255,.035);
  isolation:isolate;
}

#adn-duran-cantonal-dashboard::before{
  content:"";
  position:absolute;inset:0;z-index:-1;opacity:.11;
  background-image:linear-gradient(rgba(108,247,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(108,247,255,.22) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(to bottom,black,transparent 82%);
}

.adn-dash-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end;
  padding:24px 26px 18px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.adn-dash-head h2{margin:7px 0 5px;font-size:clamp(1.4rem,2vw,2.15rem);line-height:1.08;color:white;letter-spacing:-.025em}
.adn-dash-head p{margin:0;max-width:880px;color:#d6cadd;font-size:.92rem;line-height:1.52}
.adn-dash-head-status{text-align:right;min-width:220px}
.adn-dash-head-status strong{display:block;color:var(--adn-cyan);font-size:.94rem}
.adn-dash-head-status span{display:block;margin-top:4px;color:var(--adn-muted);font-size:.76rem}

.adn-dash-kpis{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  padding:14px 26px 20px;
}
.adn-dash-kpi{
  min-height:104px;
  padding:14px 14px 12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  box-shadow:inset 0 1px rgba(255,255,255,.035);
}
.adn-dash-kpi>span{display:block;color:var(--adn-muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800}
.adn-dash-kpi>strong{display:block;margin:9px 0 6px;color:white;font-size:clamp(1.05rem,1.5vw,1.45rem);line-height:1.08;overflow-wrap:anywhere}
.adn-dash-kpi>small{display:block;color:#a99bb4;font-size:.67rem;line-height:1.25}
.adn-dash-kpi.is-social>strong{color:var(--adn-yellow)}
.adn-dash-kpi.is-economy>strong{color:var(--adn-cyan)}
.adn-dash-kpi.is-guard{border-color:rgba(232,242,15,.24);background:linear-gradient(180deg,rgba(232,242,15,.06),rgba(255,255,255,.015))}
.adn-dash-kpi.is-guard>strong{color:#f6ff75;font-size:1.02rem}

.adn-dash-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:0;border-top:1px solid rgba(255,255,255,.08)}
.adn-dash-panel{padding:20px 22px 22px;min-width:0}
.adn-dash-macro{border-left:1px solid rgba(255,255,255,.08);background:rgba(7,2,13,.24)}
.adn-dash-panel-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:13px}
.adn-dash-panel-head span{display:block;color:var(--adn-cyan);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;font-weight:850}
.adn-dash-panel-head h3{margin:4px 0 0;font-size:1.14rem;color:white}
.adn-dash-gap-summary{display:grid;grid-template-columns:auto auto;column-gap:8px;row-gap:1px;text-align:right;align-items:baseline}
.adn-dash-gap-summary b{color:var(--adn-yellow);font-size:.88rem}
.adn-dash-gap-summary small{color:var(--adn-muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em}

.adn-dash-legend{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px;color:#c7b9cf;font-size:.66rem}
.adn-dash-legend span{display:inline-flex;align-items:center;gap:5px}.adn-dash-legend i{display:inline-block;width:14px;height:3px;border-radius:99px}
.adn-dash-legend i.lb{background:#7d2c91}.adn-dash-legend i.avance{background:#6cf7ff}.adn-dash-legend i.meta{background:#e8f20f}

.adn-brechas-list{display:grid;gap:7px}
.adn-brecha-row{display:grid;grid-template-columns:minmax(190px,1.18fr) minmax(150px,1fr) 72px;gap:12px;align-items:center;padding:9px 10px;border:1px solid rgba(255,255,255,.065);border-radius:12px;background:rgba(255,255,255,.025)}
.adn-brecha-row:hover{border-color:rgba(108,247,255,.25);background:rgba(108,247,255,.035)}
.adn-brecha-name strong{display:block;color:#f5eff8;font-size:.76rem;line-height:1.2}
.adn-brecha-name span{display:block;margin-top:3px;color:#998aa5;font-size:.61rem}
.adn-brecha-bars{position:relative;height:22px;border-radius:8px;background:rgba(255,255,255,.04);overflow:hidden}
.adn-brecha-bars i{position:absolute;left:0;border-radius:0 99px 99px 0;transition:width .7s ease}
.adn-brecha-bars i.lb{top:4px;height:3px;background:#7d2c91}
.adn-brecha-bars i.avance{top:10px;height:4px;background:#6cf7ff;box-shadow:0 0 8px rgba(108,247,255,.3)}
.adn-brecha-bars i.meta{top:17px;height:2px;background:#e8f20f}
.adn-brecha-gap{text-align:right}.adn-brecha-gap b{display:block;color:white;font-size:.78rem}.adn-brecha-gap span{color:#8f819a;font-size:.57rem;text-transform:uppercase}
.adn-brecha-row.is-high .adn-brecha-gap b{color:#ffb0a2}.adn-brecha-row.is-mid .adn-brecha-gap b{color:#ffe77a}.adn-brecha-row.is-low .adn-brecha-gap b{color:#8fffc8}

.adn-dash-macro-list{display:grid;gap:8px}
.adn-dash-macro-item{padding:11px 12px;border:1px solid rgba(255,255,255,.075);border-radius:13px;background:linear-gradient(90deg,rgba(125,44,145,.11),rgba(108,247,255,.025))}
.adn-dash-macro-item span{display:block;color:#cbbdd2;font-size:.67rem;line-height:1.25}
.adn-dash-macro-item strong{display:block;margin:4px 0 2px;color:var(--adn-cyan);font-size:.92rem}
.adn-dash-macro-item small{display:block;color:#877a90;font-size:.58rem}
.adn-dash-quality{margin-top:14px;padding:13px 14px;border:1px solid rgba(232,242,15,.34);border-radius:14px;background:rgba(232,242,15,.055)}
.adn-dash-quality strong{color:var(--adn-yellow);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em}
.adn-dash-quality p{margin:6px 0 0;color:#d4cad9;font-size:.67rem;line-height:1.45}
.adn-dash-empty{padding:20px;text-align:center;color:#b9acc3;border:1px dashed rgba(255,255,255,.12);border-radius:12px;font-size:.76rem}

.adn-dash-sources{display:flex;flex-wrap:wrap;gap:7px 12px;align-items:center;padding:12px 26px 14px;border-top:1px solid rgba(255,255,255,.08);color:#988ba1;font-size:.66rem}
.adn-dash-sources>span:first-child{color:#d7cadf;font-weight:800}.adn-dash-sources a{color:var(--adn-cyan);text-decoration:none}.adn-dash-sources a:hover{text-decoration:underline}.adn-dash-source-note{margin-left:auto;color:#766b7e}

@media (max-width:1100px){
  .adn-dash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .adn-dash-grid{grid-template-columns:1fr}.adn-dash-macro{border-left:0;border-top:1px solid rgba(255,255,255,.08)}
}
@media (max-width:720px){
  #adn-duran-cantonal-dashboard{border-radius:18px;margin:18px auto}
  .adn-dash-head{grid-template-columns:1fr;padding:20px 16px 15px}.adn-dash-head-status{text-align:left;min-width:0}
  .adn-dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px 16px}
  .adn-dash-panel{padding:17px 14px}.adn-dash-panel-head{align-items:start;flex-direction:column}.adn-dash-gap-summary{text-align:left}
  .adn-brecha-row{grid-template-columns:1fr 66px}.adn-brecha-bars{grid-column:1/-1;grid-row:2}.adn-brecha-gap{grid-column:2;grid-row:1}
  .adn-dash-sources{padding:12px 16px}.adn-dash-source-note{width:100%;margin-left:0}
}


/* ==============================================================
   ADN DURÁN · RIESGO Y RESILIENCIA v1.4.4
   ============================================================== */
#adn-duran-risk-resilience{--risk-red:#ff3b30;--risk-cyan:#6cf7ff;--risk-yellow:#e8f20f;position:relative;margin:18px auto 20px;border:1px solid rgba(255,59,48,.34);border-radius:24px;overflow:hidden;color:#f9f8ff;background:radial-gradient(circle at 95% 0%,rgba(255,59,48,.16),transparent 28%),linear-gradient(145deg,#10050b,#1c0817 55%,#090612);box-shadow:0 18px 50px rgba(33,4,17,.18)}
.adn-risk-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;padding:21px 24px 16px;border-bottom:1px solid rgba(255,255,255,.085)}
.adn-risk-head h2{margin:6px 0 5px;font-size:clamp(1.35rem,2vw,2rem);color:#fff}.adn-risk-head p{margin:0;max-width:850px;color:#d6c9d4;font-size:.86rem;line-height:1.5}
.adn-risk-live{text-align:right;min-width:225px}.adn-risk-live-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#ff3b30;box-shadow:0 0 12px rgba(255,59,48,.8)}.adn-risk-live strong{color:#ffaaa4;font-size:.83rem}.adn-risk-live small{display:block;margin-top:4px;color:#a994a1;font-size:.68rem}
.adn-risk-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:13px 24px 17px}.adn-risk-kpi{padding:13px;border:1px solid rgba(255,255,255,.085);border-radius:15px;background:rgba(255,255,255,.035)}.adn-risk-kpi span{display:block;color:#a994a1;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.adn-risk-kpi strong{display:block;margin:8px 0 5px;color:#fff;font-size:1.16rem}.adn-risk-kpi small{display:block;color:#8f7f8c;font-size:.62rem;line-height:1.25}.adn-risk-kpi.is-alert strong{color:#ff796f}.is-red .adn-risk-kpi.is-alert{border-color:rgba(255,59,48,.36);background:rgba(255,59,48,.065)}.adn-risk-kpi.is-analytic strong{color:#6cf7ff}.adn-risk-kpi.is-analytic{border-color:rgba(108,247,255,.16)}
.adn-risk-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:16px 24px;border-top:1px solid rgba(255,255,255,.07)}.adn-risk-summary h3{margin:0 0 6px;color:#fff;font-size:1rem}.adn-risk-summary p{margin:0;color:#cbbec8;font-size:.76rem;line-height:1.5;max-width:900px}.adn-risk-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.adn-risk-chips span{padding:5px 8px;border:1px solid rgba(108,247,255,.21);border-radius:999px;color:#aefbff;background:rgba(108,247,255,.035);font-size:.61rem;font-weight:750}
.adn-risk-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;max-width:430px}.adn-risk-action{appearance:none;border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:9px 11px;background:rgba(255,255,255,.04);color:#fff;text-decoration:none;font:inherit;font-size:.68rem;font-weight:800;cursor:pointer}.adn-risk-action:hover{border-color:rgba(108,247,255,.45)}.adn-risk-action.is-primary{border-color:rgba(255,59,48,.45);background:rgba(255,59,48,.12);color:#ffd3d0}
.adn-risk-quality{padding:10px 24px 13px;border-top:1px solid rgba(255,255,255,.06);color:#a995a2;font-size:.63rem}.adn-risk-quality strong{color:#e8f20f}
#adn-risk-toggle[aria-pressed="true"]{background:linear-gradient(135deg,rgba(255,59,48,.92),rgba(125,44,145,.94));border-color:rgba(255,255,255,.28);color:white}
.adn-risk-map-legend{position:absolute;z-index:5;left:13px;bottom:92px;display:flex;flex-direction:column;gap:5px;padding:9px 10px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(10,4,16,.88);backdrop-filter:blur(9px);color:#d7cbd6;font-size:.59rem;box-shadow:0 9px 28px rgba(0,0,0,.25)}.adn-risk-map-legend[hidden]{display:none}.adn-risk-map-legend strong{color:#fff;font-size:.63rem;margin-bottom:2px}.adn-risk-map-legend span{display:flex;align-items:center;gap:6px}.adn-risk-map-legend i{display:inline-block;width:12px;height:8px;border-radius:2px}.adn-risk-map-legend i.flood-high{background:#135dff}.adn-risk-map-legend i.flood-mid{background:#25c8ff}.adn-risk-map-legend i.mass-high{background:#ff3b30}.adn-risk-map-legend i.mass-mid{background:#ff9f0a}.adn-risk-map-legend small{display:block;max-width:190px;margin-top:3px;color:#9e909e;font-size:.54rem;line-height:1.25}
.adn-holo-risk-context{margin:12px 0;padding:12px 13px;border:1px solid rgba(255,59,48,.24);border-radius:13px;background:linear-gradient(90deg,rgba(255,59,48,.055),rgba(108,247,255,.025))}.adn-holo-risk-context strong{display:block;color:#ffaaa4;font-size:.73rem;text-transform:uppercase;letter-spacing:.06em}.adn-holo-risk-context span{display:block;margin-top:6px;color:#cdbfca;font-size:.67rem;line-height:1.44}.adn-holo-risk-context a{display:inline-block;margin-top:8px;color:#6cf7ff;font-size:.64rem;text-decoration:none;font-weight:800}.adn-holo-risk-context a:hover{text-decoration:underline}.adn-holo-risk-context.has-match{border-color:rgba(255,59,48,.44)}
.adn-svg-risk-shape{opacity:0;stroke:rgba(255,255,255,.55);stroke-width:.7;transition:opacity .2s}.adn-svg-risk-shape.is-visible{opacity:.40}.adn-svg-risk-shape.flood-high{fill:#135dff}.adn-svg-risk-shape.flood-mid{fill:#25c8ff}.adn-svg-risk-shape.mass-high{fill:#ff3b30}.adn-svg-risk-shape.mass-mid{fill:#ff9f0a}.adn-svg-risk-shape.other{fill:#9a7db3}
@media(max-width:900px){.adn-risk-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.adn-risk-body{grid-template-columns:1fr}.adn-risk-actions{justify-content:flex-start;max-width:none}}
@media(max-width:620px){#adn-duran-risk-resilience{border-radius:17px}.adn-risk-head{grid-template-columns:1fr;padding:18px 14px 14px}.adn-risk-live{text-align:left;min-width:0}.adn-risk-kpis{padding:12px 14px 14px}.adn-risk-body{padding:14px}.adn-risk-quality{padding:10px 14px 12px}.adn-risk-map-legend{bottom:110px;left:8px}}
.adn-holo-risk-context .adn-risk-method{display:block;margin-top:7px;color:#8f8391;font-size:.58rem;line-height:1.35}.adn-holo-risk-context.has-no-match{border-color:rgba(108,247,255,.22)}.adn-holo-risk-context em{font-style:normal;color:#ffd94a}

/* ADN Durán v1.4.8 · Crosswalk Espacial ADN-89 */
.adn-crosswalk-strip{
  display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;
  padding:8px 14px;border-top:1px solid rgba(108,247,255,.16);
  border-bottom:1px solid rgba(108,247,255,.12);
  background:linear-gradient(90deg,rgba(108,247,255,.06),rgba(244,232,60,.035));
  font-size:11px;line-height:1.35;color:#d9ccdf
}
.adn-crosswalk-strip strong{color:#6cf7ff;text-transform:uppercase;letter-spacing:.06em}
.adn-crosswalk-strip .cw-a{color:#7fffb7}
.adn-crosswalk-strip .cw-b{color:#8fc3ff}
.adn-crosswalk-strip .cw-c{color:#ffe57a}
.adn-crosswalk-strip .cw-d{color:#ff9c9c}
.adn-crosswalk-strip small{opacity:.78}
.adn-cw-tag-a{border-color:rgba(127,255,183,.55)!important;color:#7fffb7!important}
.adn-cw-tag-b{border-color:rgba(143,195,255,.55)!important;color:#8fc3ff!important}
.adn-cw-tag-c{border-color:rgba(255,229,122,.55)!important;color:#ffe57a!important}
.adn-cw-tag-d{border-color:rgba(255,156,156,.55)!important;color:#ff9c9c!important}
.adn-svg-detail-label{font-size:9px;font-weight:700;fill:#6cf7ff;paint-order:stroke;stroke:rgba(9,3,15,.95);stroke-width:2px;stroke-linejoin:round}
