
:root{
  /* --- Paleta institucional original (sin cambios) --- */
  --verde-900:#153826;
  --verde-800:#1f4d38;
  --verde-700:#2f6d4f;
  --verde-600:#3f8863;
  --verde-100:#e6f0ea;
  --tierra-600:#b9762f;
  --tierra-500:#d1913f;
  --tierra-100:#f6e9d8;
  --oro:#d1a13a;
  --crema:#f8f5ef;
  --blanco:#ffffff;
  --texto:#233229;
  --texto-suave:#5b6b62;
  --borde:#dfe6df;
  --rojo:#a83232;
  --sombra: 0 6px 20px rgba(21,56,38,0.10);
  --radio: 14px;

  /* --- Extensiones para el dashboard ejecutivo --- */
  --verde-050:#f2f8f4;
  --sem-verde:#2e8b57;
  --sem-verde-bg:#e4f4e8;
  --sem-ambar:#c78a12;
  --sem-ambar-bg:#fdf3dc;
  --sem-rojo:#a83232;
  --sem-rojo-bg:#fdeaea;
  --sem-gris:#8a958e;
  --sem-gris-bg:#eef1ee;
  --sombra-sm: 0 2px 8px rgba(21,56,38,.06);
  --sombra-md: 0 8px 24px rgba(21,56,38,.10);
  --sombra-lg: 0 16px 44px rgba(21,56,38,.16);
  --radio-sm: 10px;
  --radio-lg: 20px;
  --trans: .22s cubic-bezier(.4,0,.2,1);
  font-size: 16px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  background:var(--crema);
  color:var(--texto);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
svg{display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 20px;}
h1,h2,h3,h4{font-family: Georgia, 'Times New Roman', serif; color:var(--verde-900); margin-top:0;}
h2.section-title{font-size:1.9rem;margin-bottom:6px;letter-spacing:-.01em;}
p.section-sub{color:var(--texto-suave);margin-top:0;margin-bottom:28px;max-width:760px;}

/* Accesibilidad: foco visible institucional */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid var(--oro);outline-offset:2px;border-radius:6px;
}
.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--oro);color:#3a2c05;
  padding:10px 18px;border-radius:0 0 10px 0;font-weight:700;z-index:999;
}
.skip-link:focus{left:0;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  border:none;border-radius:999px;padding:11px 22px;
  font-size:.95rem;font-weight:600;cursor:pointer;
  text-decoration:none;
  transition:transform var(--trans), box-shadow var(--trans), background var(--trans), color var(--trans);
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sombra-md);}
.btn:active{transform:translateY(0);}
.btn svg{width:17px;height:17px;flex-shrink:0;}
.btn-primary{background:var(--verde-700);color:#fff;}
.btn-primary:hover{background:var(--verde-800);}
.btn-gold{background:var(--oro);color:#3a2c05;}
.btn-gold:hover{background:#e0b04a;}
.btn-outline{background:transparent;border:1.5px solid var(--verde-700);color:var(--verde-800);}
.btn-outline:hover{background:var(--verde-100);}
.btn-danger{background:#fff;border:1.5px solid var(--rojo);color:var(--rojo);}
.btn-danger:hover{background:#fdecec;}
.btn-sm{padding:7px 14px;font-size:.82rem;}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;}
.badge-municipal{background:var(--verde-100);color:var(--verde-800);}
.badge-departamental{background:var(--tierra-100);color:var(--tierra-600);}

/* Etiqueta de sección (eyebrow) */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tierra-600);margin-bottom:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--oro);border-radius:2px;}

/* ---------- HEADER / NAV ---------- */
header.site-header{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg,var(--verde-900),var(--verde-800));
  color:#fff;box-shadow:0 3px 14px rgba(0,0,0,.15);
}
.topbar{
  background:var(--verde-900);border-bottom:1px solid rgba(255,255,255,.10);
  font-size:.73rem;letter-spacing:.04em;color:#bcd4c4;
}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 20px;}
.topbar strong{color:#ffe9b8;font-weight:700;}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;max-width:1180px;margin:0 auto;flex-wrap:wrap;gap:10px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-badge{
  width:46px;height:46px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--oro), var(--tierra-600));
  display:flex;align-items:center;justify-content:center;
  font-family:Georgia,serif;font-weight:700;color:#3a2c05;font-size:1.1rem;
  border:2px solid rgba(255,255,255,.6);
  flex-shrink:0;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.brand-text .t1{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tierra-100);opacity:.85;}
.brand-text .t2{font-family:Georgia,serif;font-size:1.15rem;font-weight:700;line-height:1.1;}
nav.main-nav{display:flex;gap:4px;flex-wrap:wrap;}
nav.main-nav a{
  color:#f1f5f1;text-decoration:none;font-size:.88rem;font-weight:600;
  padding:9px 13px;border-radius:999px;transition:background var(--trans), color var(--trans);
  position:relative;
}
nav.main-nav a:hover, nav.main-nav a.active{background:rgba(255,255,255,.14);}
nav.main-nav a.active::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:2px;
  width:16px;height:2px;background:var(--oro);border-radius:2px;
}
nav.main-nav a.admin-link{border:1.5px solid var(--oro);color:#ffe9b8;}

section{padding:56px 0;}
section.alt{background:var(--blanco);}

/* ---------- BANNER INSTITUCIONAL + PORTADA EJECUTIVA ---------- */
.banner-inst{
  background:linear-gradient(90deg,var(--verde-900),var(--verde-700) 55%,var(--tierra-600));
  color:#fff;
}
.banner-inst .container{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:10px 20px;
}
.banner-inst .bi-left{display:flex;align-items:center;gap:12px;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;}
.banner-inst .bi-seal{
  width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);
}
.banner-inst .bi-seal svg{width:17px;height:17px;}
.banner-inst .bi-right{display:flex;gap:16px;flex-wrap:wrap;font-size:.76rem;color:#f2e3c8;}
.banner-inst .bi-right span{display:inline-flex;align-items:center;gap:6px;}
.banner-inst .bi-right svg{width:14px;height:14px;opacity:.9;}

.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 15% 20%, rgba(209,161,58,.35), transparent 40%),
    linear-gradient(120deg,var(--verde-900) 0%, var(--verde-700) 60%, var(--verde-600) 100%);
  color:#fff;padding:64px 0 58px;
}
.hero::after{
  /* Silueta de cordillera: refuerza la identidad andina sin usar imágenes externas */
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;pointer-events:none;
  background:
    linear-gradient(to top, rgba(21,56,38,.34), transparent),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'><path d='M0,120 L0,74 L110,38 L215,80 L330,26 L455,86 L560,50 L690,94 L800,44 L920,82 L1040,36 L1130,72 L1200,50 L1200,120 Z' fill='rgba(255,255,255,0.07)'/><path d='M0,120 L0,96 L140,66 L280,100 L420,60 L560,104 L700,72 L840,106 L980,68 L1120,98 L1200,78 L1200,120 Z' fill='rgba(255,255,255,0.05)'/></svg>") bottom/100% 120px no-repeat;
}
.hero .container{position:relative;z-index:1;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;}
.hero-kicker{
  display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:6px 14px;
  font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffe9b8;
  margin-bottom:18px;
}
.hero-kicker svg{width:14px;height:14px;}
.hero h1{color:#fff;font-size:2.5rem;line-height:1.16;margin-bottom:14px;letter-spacing:-.015em;}
.hero p{color:#e6f0ea;font-size:1.05rem;max-width:580px;}
.welcome-note{
  margin-top:20px;background:rgba(255,255,255,.10);border-left:4px solid var(--oro);
  border-radius:0 12px 12px 0;padding:14px 18px;font-size:.93rem;color:#eef6f0;max-width:580px;
}
.welcome-note strong{color:#ffe9b8;}
.hero-actions{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-art{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radio);padding:22px;backdrop-filter:blur(2px);
}
.hero-art h3{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.mini-stat{background:rgba(255,255,255,.08);border-radius:10px;padding:14px;transition:background var(--trans), transform var(--trans);}
.mini-stat:hover{background:rgba(255,255,255,.16);transform:translateY(-2px);}
.mini-stat .num{font-family:Georgia,serif;font-size:1.6rem;font-weight:700;color:var(--oro);}
.mini-stat .lbl{font-size:.76rem;color:#dfeee5;}

/* ---------- CARDS GRID ---------- */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:22px;}
.card{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);}
.card h3{font-size:1.02rem;margin-bottom:6px;}
.card p{color:var(--texto-suave);font-size:.9rem;}
.card-icon{
  width:42px;height:42px;border-radius:12px;background:var(--verde-100);color:var(--verde-800);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.card-icon svg{width:22px;height:22px;}
.card-icon.tierra{background:var(--tierra-100);color:var(--tierra-600);}
.card-icon.oro{background:#fbf1d8;color:#9a7413;}

/* ---------- PANEL KPI ---------- */
.kpi-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:16px;margin-top:8px;
}
.kpi-card{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  padding:18px;box-shadow:var(--sombra-sm);position:relative;overflow:hidden;
  transition:transform var(--trans), box-shadow var(--trans), border-color var(--trans);
  display:flex;flex-direction:column;gap:10px;min-height:158px;
}
.kpi-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--verde-600);
  transition:width var(--trans);
}
.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--sombra-md);border-color:#cbdccf;}
.kpi-card:hover::before{width:6px;}
.kpi-card.sem-verde::before{background:var(--sem-verde);}
.kpi-card.sem-ambar::before{background:var(--sem-ambar);}
.kpi-card.sem-rojo::before{background:var(--sem-rojo);}
.kpi-card.sem-gris::before{background:var(--sem-gris);}
.kpi-card.is-meta::before{background:var(--oro);}
.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.kpi-icon{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--verde-100);color:var(--verde-800);
}
.kpi-icon svg{width:21px;height:21px;}
.kpi-icon.tierra{background:var(--tierra-100);color:var(--tierra-600);}
.kpi-icon.oro{background:#fbf1d8;color:#9a7413;}
.kpi-label{
  font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:var(--texto-suave);line-height:1.35;
}
.kpi-value{font-family:Georgia,serif;font-size:2.15rem;font-weight:700;color:var(--verde-900);line-height:1;}
.kpi-value.sm{font-size:1.35rem;}
.kpi-unit{font-size:.78rem;color:var(--texto-suave);margin-left:2px;}
.kpi-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;flex-wrap:wrap;}
.kpi-delta{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.75rem;font-weight:800;padding:3px 9px;border-radius:999px;
}
.kpi-delta svg{width:12px;height:12px;}
.kpi-delta.up{background:var(--sem-verde-bg);color:#1f7a3d;}
.kpi-delta.down{background:var(--sem-rojo-bg);color:var(--rojo);}
.kpi-delta.flat{background:var(--sem-gris-bg);color:#6b7a70;}
.kpi-delta.na{background:#f1f1f1;color:#888;}
.kpi-period{font-size:.7rem;color:var(--texto-suave);}
.kpi-spark{height:34px;width:100%;}

/* ---------- SEMÁFORO DE TENDENCIAS ---------- */
.semaforo-wrap{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  box-shadow:var(--sombra-sm);overflow:hidden;
}
.sem-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:16px 20px;border-bottom:1px solid var(--borde);background:var(--verde-050);
}
.sem-head h3{margin:0;font-size:1.05rem;}
.sem-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.76rem;color:var(--texto-suave);}
.sem-legend span{display:inline-flex;align-items:center;gap:6px;}
.dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px rgba(0,0,0,.04);}
.dot.verde{background:var(--sem-verde);}
.dot.ambar{background:var(--sem-ambar);}
.dot.rojo{background:var(--sem-rojo);}
.dot.gris{background:var(--sem-gris);}
.sem-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.sem-row{
  display:flex;align-items:center;gap:14px;padding:14px 20px;
  border-bottom:1px solid var(--borde);
  transition:background var(--trans);
}
.sem-row:hover{background:var(--verde-050);}
.sem-light{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.sem-light.verde{background:var(--sem-verde-bg);}
.sem-light.ambar{background:var(--sem-ambar-bg);}
.sem-light.rojo{background:var(--sem-rojo-bg);}
.sem-light.gris{background:var(--sem-gris-bg);}
.sem-light .dot{width:14px;height:14px;box-shadow:none;}
.sem-info{flex:1;min-width:0;}
.sem-info .nm{font-size:.9rem;font-weight:700;color:var(--verde-900);line-height:1.3;}
.sem-info .st{font-size:.78rem;color:var(--texto-suave);}
.sem-val{text-align:right;flex-shrink:0;}
.sem-val .v{font-family:Georgia,serif;font-size:1.15rem;font-weight:700;color:var(--verde-800);}
.sem-val .u{font-size:.68rem;color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;}

/* ---------- PANELES DE GRÁFICOS (dashboard uniforme) ---------- */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;}
.dash-grid.two{grid-template-columns:repeat(auto-fit,minmax(430px,1fr));}
.panel{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  box-shadow:var(--sombra-sm);display:flex;flex-direction:column;overflow:hidden;
  transition:box-shadow var(--trans), transform var(--trans);
}
.panel:hover{box-shadow:var(--sombra-md);}
.panel-head{
  padding:16px 20px 12px;border-bottom:1px solid var(--borde);
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
}
.panel-head h3{margin:0;font-size:1rem;line-height:1.3;}
.panel-head .ph-sub{font-size:.76rem;color:var(--texto-suave);margin-top:3px;}
.panel-head .ph-ic{
  width:34px;height:34px;border-radius:10px;background:var(--verde-100);color:var(--verde-800);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.panel-head .ph-ic svg{width:18px;height:18px;}
.panel-body{padding:16px 20px 18px;flex:1;display:flex;flex-direction:column;}
.chart-slot{width:100%;height:250px;}
.chart-slot svg{width:100%;height:100%;}
.chart-slot.auto{height:auto;min-height:250px;}
.chart-slot.auto svg{height:auto;}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:.78rem;color:var(--texto-suave);}
.chart-legend span{display:inline-flex;align-items:center;gap:6px;}
.lg-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0;}
.panel-foot{
  padding:11px 20px;border-top:1px solid var(--borde);background:var(--verde-050);
  font-size:.74rem;color:var(--texto-suave);
}

/* ---------- CALIDAD DE LA INFORMACIÓN ---------- */
.quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.q-tile{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  padding:18px;box-shadow:var(--sombra-sm);text-align:left;
  transition:transform var(--trans), box-shadow var(--trans);
}
.q-tile:hover{transform:translateY(-3px);box-shadow:var(--sombra-md);}
.q-tile .q-ic{
  width:36px;height:36px;border-radius:10px;background:var(--tierra-100);color:var(--tierra-600);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.q-tile .q-ic svg{width:19px;height:19px;}
.q-tile .q-lbl{font-size:.73rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--texto-suave);}
.q-tile .q-val{font-family:Georgia,serif;font-size:1.85rem;font-weight:700;color:var(--verde-900);line-height:1.1;margin-top:4px;}
.q-tile .q-val.sm{font-size:1.1rem;}
.q-tile .q-hint{font-size:.75rem;color:var(--texto-suave);margin-top:6px;}
.progress{height:9px;border-radius:999px;background:var(--verde-100);overflow:hidden;margin-top:12px;}
.progress > i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--verde-600),var(--verde-700));transition:width .9s cubic-bezier(.4,0,.2,1);}
.progress.oro > i{background:linear-gradient(90deg,var(--oro),var(--tierra-500));}
.val-chip{
  display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;
  font-size:.78rem;font-weight:800;background:var(--sem-verde-bg);color:#1f7a3d;margin-top:8px;
}
.val-chip svg{width:14px;height:14px;}
.val-chip.parcial{background:var(--sem-ambar-bg);color:#8a5f0a;}

/* ---------- LÍNEA DE TIEMPO ---------- */
.timeline{position:relative;margin-top:26px;padding-left:6px;}
.timeline::before{
  content:"";position:absolute;left:19px;top:6px;bottom:6px;width:3px;
  background:linear-gradient(180deg,var(--oro),var(--verde-600),var(--verde-100));border-radius:3px;
}
.tl-item{position:relative;padding:0 0 26px 58px;}
.tl-item:last-child{padding-bottom:4px;}
.tl-node{
  position:absolute;left:6px;top:2px;width:30px;height:30px;border-radius:50%;
  background:#fff;border:3px solid var(--verde-600);
  display:flex;align-items:center;justify-content:center;
  font-size:.62rem;font-weight:800;color:var(--verde-800);z-index:1;
  transition:transform var(--trans), box-shadow var(--trans);
}
.tl-item:hover .tl-node{transform:scale(1.12);box-shadow:0 0 0 6px rgba(63,136,99,.14);}
.tl-node.oro{border-color:var(--oro);color:#8a5f0a;}
.tl-node.tierra{border-color:var(--tierra-500);color:var(--tierra-600);}
.tl-card{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  padding:15px 18px;box-shadow:var(--sombra-sm);transition:transform var(--trans), box-shadow var(--trans);
}
.tl-item:hover .tl-card{transform:translateX(4px);box-shadow:var(--sombra-md);}
.tl-year{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--tierra-600);}
.tl-card h4{margin:3px 0 5px;font-size:1rem;}
.tl-card p{margin:0;font-size:.86rem;color:var(--texto-suave);}
.tl-tag{
  display:inline-block;margin-top:9px;font-size:.68rem;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--verde-100);color:var(--verde-800);
}
.tl-tag.obs{background:#fbf1d8;color:#8a5f0a;}

/* ---------- INFOGRAFÍA FLUJO DE DATOS ---------- */
.flow{display:flex;align-items:stretch;gap:0;flex-wrap:nowrap;overflow-x:auto;padding:6px 2px 12px;}
.flow-step{
  flex:1 1 0;min-width:186px;background:#fff;border:1px solid var(--borde);
  border-radius:var(--radio);padding:18px 16px;box-shadow:var(--sombra-sm);
  text-align:center;position:relative;transition:transform var(--trans), box-shadow var(--trans), border-color var(--trans);
}
.flow-step:hover{transform:translateY(-5px);box-shadow:var(--sombra-md);border-color:#cbdccf;}
.flow-num{
  position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  width:24px;height:24px;border-radius:50%;background:var(--verde-800);color:#fff;
  font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
}
.flow-ic{
  width:48px;height:48px;border-radius:14px;margin:8px auto 12px;
  background:var(--verde-100);color:var(--verde-800);
  display:flex;align-items:center;justify-content:center;
}
.flow-ic svg{width:25px;height:25px;}
.flow-step:nth-child(4n+3) .flow-ic{background:var(--tierra-100);color:var(--tierra-600);}
.flow-step h4{font-size:.92rem;margin:0 0 5px;}
.flow-step p{font-size:.79rem;color:var(--texto-suave);margin:0;}
.flow-arrow{
  flex:0 0 34px;display:flex;align-items:center;justify-content:center;color:var(--verde-600);
}
.flow-arrow svg{width:22px;height:22px;}
.flow-note{
  margin-top:18px;background:var(--verde-100);border-radius:var(--radio-sm);
  padding:14px 18px;font-size:.85rem;color:var(--verde-900);
}

/* ---------- GALERÍA + IMAGEN DESTACADA ---------- */
.featured{
  display:grid;grid-template-columns:1.25fr .95fr;gap:0;background:#fff;
  border:1px solid var(--borde);border-radius:var(--radio-lg);overflow:hidden;box-shadow:var(--sombra-md);
}
.featured-media{position:relative;min-height:340px;background:var(--verde-100);}
.featured-media img, .featured-media svg{width:100%;height:100%;object-fit:cover;display:block;}
.featured-tag{
  position:absolute;top:16px;left:16px;background:rgba(21,56,38,.86);color:#ffe9b8;
  font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  padding:6px 13px;border-radius:999px;backdrop-filter:blur(3px);
}
.featured-body{padding:30px 32px;display:flex;flex-direction:column;justify-content:center;}
.featured-body h3{font-size:1.5rem;margin-bottom:8px;}
.featured-body p{color:var(--texto-suave);font-size:.93rem;}
.featured-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.meta-pill{
  display:inline-flex;align-items:center;gap:7px;background:var(--verde-050);border:1px solid var(--borde);
  border-radius:999px;padding:6px 13px;font-size:.78rem;color:var(--verde-800);font-weight:600;
}
.meta-pill svg{width:14px;height:14px;color:var(--tierra-600);}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:18px;margin-top:22px;}
.gal-card{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden;
  box-shadow:var(--sombra-sm);cursor:pointer;text-align:left;padding:0;font:inherit;
  transition:transform var(--trans), box-shadow var(--trans);display:flex;flex-direction:column;
}
.gal-card:hover{transform:translateY(-5px);box-shadow:var(--sombra-lg);}
.gal-media{position:relative;aspect-ratio:4/3;background:var(--verde-100);overflow:hidden;}
.gal-media img, .gal-media svg{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1);}
.gal-card:hover .gal-media img, .gal-card:hover .gal-media svg{transform:scale(1.06);}
.gal-media .ph-flag{
  position:absolute;bottom:9px;right:9px;background:rgba(21,56,38,.8);color:#ffe9b8;
  font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 9px;border-radius:999px;
}
.gal-body{padding:14px 16px 16px;flex:1;}
.gal-body .gt{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--tierra-600);}
.gal-body h4{margin:4px 0 5px;font-size:.98rem;line-height:1.3;}
.gal-body p{margin:0;font-size:.82rem;color:var(--texto-suave);}

.lightbox{
  position:fixed;inset:0;background:rgba(12,20,15,.88);z-index:400;
  display:none;align-items:center;justify-content:center;padding:24px;
}
.lightbox.open{display:flex;}
.lb-inner{max-width:940px;width:100%;background:#fff;border-radius:var(--radio-lg);overflow:hidden;position:relative;box-shadow:var(--sombra-lg);}
.lb-media{background:var(--verde-100);max-height:62vh;overflow:hidden;}
.lb-media img, .lb-media svg{width:100%;height:100%;max-height:62vh;object-fit:cover;}
.lb-body{padding:20px 26px 24px;}
.lb-body h3{margin:0 0 6px;font-size:1.25rem;}
.lb-body p{margin:0;color:var(--texto-suave);font-size:.9rem;}
.lb-close{
  position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.92);border:none;cursor:pointer;font-size:1.15rem;color:var(--verde-900);
  display:flex;align-items:center;justify-content:center;transition:background var(--trans);
}
.lb-close:hover{background:#fff;}

/* ---------- FILTERS ---------- */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.filter-btn{
  background:#fff;border:1.5px solid var(--borde);color:var(--texto-suave);
  padding:8px 16px;border-radius:999px;font-size:.85rem;cursor:pointer;font-weight:600;
  transition:background var(--trans), color var(--trans), border-color var(--trans), transform var(--trans);
}
.filter-btn:hover{border-color:var(--verde-600);color:var(--verde-800);transform:translateY(-1px);}
.filter-btn.active{background:var(--verde-700);color:#fff;border-color:var(--verde-700);}
.search-box{
  margin:18px 0 6px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;
}
.search-box input[type="text"]{
  flex:1;min-width:220px;padding:11px 16px 11px 42px;border-radius:999px;border:1.5px solid var(--borde);font-size:.92rem;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6b62' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>") 14px center/17px no-repeat;
  transition:border-color var(--trans), box-shadow var(--trans);
}
.search-box input[type="text"]:focus{border-color:var(--verde-600);box-shadow:0 0 0 4px rgba(63,136,99,.12);outline:none;}
.search-wrap{position:relative;flex:1;min-width:220px;display:flex;}

/* ---------- INDICATOR CARD ---------- */
.ind-card{
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  padding:18px 18px 16px;box-shadow:var(--sombra);cursor:pointer;
  transition:box-shadow var(--trans), transform var(--trans), border-color var(--trans);
  display:flex;flex-direction:column;gap:10px;text-align:left;font:inherit;width:100%;
}
.ind-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(21,56,38,.16);border-color:#cbdccf;}
.ind-card .ind-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.ind-card h3{font-size:1rem;line-height:1.3;margin:0;}
.ind-card .cat{font-size:.72rem;color:var(--tierra-600);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.ind-card .trend-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.ind-card .val-now{font-family:Georgia,serif;font-size:1.7rem;font-weight:700;color:var(--verde-800);}
.ind-card .val-unit{font-size:.78rem;color:var(--texto-suave);}
.ind-card .ind-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  border-top:1px dashed var(--borde);padding-top:9px;font-size:.72rem;color:var(--texto-suave);
}
.ind-card .ind-foot .more{display:inline-flex;align-items:center;gap:5px;color:var(--verde-700);font-weight:700;}
.ind-card .ind-foot svg{width:13px;height:13px;}
.trend-chip{font-size:.76rem;font-weight:700;padding:2px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;}
.trend-chip svg{width:11px;height:11px;}
.trend-up{background:#e4f4e8;color:#1f7a3d;}
.trend-down{background:#fdeaea;color:#a83232;}
.trend-flat{background:#eef1ee;color:#6b7a70;}
.trend-na{background:#f1f1f1;color:#888;}
.spark{width:100%;height:44px;}

/* ---------- MODAL ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(21,30,26,.55);backdrop-filter:blur(2px);
  display:none;align-items:center;justify-content:center;padding:20px;z-index:200;
}
.modal-overlay.open{display:flex;}
.modal{
  background:#fff;border-radius:16px;max-width:680px;width:100%;
  max-height:88vh;overflow-y:auto;padding:28px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.35);
  animation:modalIn .28s cubic-bezier(.4,0,.2,1);
}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.modal-close{
  position:absolute;top:16px;right:16px;background:var(--crema);border:none;
  border-radius:50%;width:34px;height:34px;font-size:1.1rem;cursor:pointer;color:var(--texto-suave);
  transition:background var(--trans), color var(--trans);
}
.modal-close:hover{background:var(--verde-100);color:var(--verde-900);}
.modal h2{font-size:1.3rem;margin-bottom:2px;}
.modal .modal-cat{color:var(--tierra-600);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px;}
.modal table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9rem;}
.modal table th, .modal table td{padding:8px 10px;border-bottom:1px solid var(--borde);text-align:left;}
.modal table th{background:var(--verde-050);color:var(--verde-900);}
.modal .chart-big{width:100%;height:200px;margin-top:6px;}
.modal-sem{display:inline-flex;align-items:center;gap:8px;background:var(--verde-050);border:1px solid var(--borde);border-radius:999px;padding:6px 13px;font-size:.8rem;font-weight:700;color:var(--verde-800);margin-bottom:4px;}
.note-box{background:var(--verde-100);border-radius:10px;padding:14px 16px;font-size:.85rem;color:var(--verde-900);margin-top:14px;}
.source-box{background:var(--tierra-100);border-radius:10px;padding:14px 16px;font-size:.83rem;color:#5b4322;margin-top:10px;}

/* ---------- MAP / CONTACT ---------- */
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:start;}
.map-frame{width:100%;height:380px;border:0;border-radius:var(--radio);box-shadow:var(--sombra);}
.info-list{list-style:none;margin:0;padding:0;}
.info-list li{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed var(--borde);}
.info-list .ic{
  width:34px;height:34px;border-radius:50%;background:var(--verde-100);color:var(--verde-800);
  display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;
}
.info-list .ic svg{width:17px;height:17px;}

/* ---------- FOOTER ---------- */
footer{background:var(--verde-900);color:#cfe0d5;padding:36px 0 24px;font-size:.85rem;}
footer a{color:#ffe9b8;text-decoration:none;transition:opacity var(--trans);}
footer a:hover{opacity:.75;}
footer .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px;margin-bottom:24px;}
footer h4{color:#fff;font-size:.9rem;margin-bottom:10px;}
.disclaimer{border-top:1px solid rgba(255,255,255,.15);padding-top:16px;color:#a9c2b0;font-size:.78rem;}

/* ---------- ADMIN ---------- */
.login-wrap{max-width:420px;margin:0 auto;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:34px;box-shadow:var(--sombra);}
.login-wrap h2{text-align:center;}
.login-seal{
  width:56px;height:56px;border-radius:16px;margin:0 auto 16px;
  background:var(--verde-100);color:var(--verde-800);display:flex;align-items:center;justify-content:center;
}
.login-seal svg{width:28px;height:28px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:.82rem;font-weight:700;color:var(--verde-900);margin-bottom:6px;}
.field input{width:100%;padding:11px 14px;border-radius:8px;border:1.5px solid var(--borde);font-size:.95rem;transition:border-color var(--trans), box-shadow var(--trans);}
.field input:focus{border-color:var(--verde-600);box-shadow:0 0 0 4px rgba(63,136,99,.12);outline:none;}
.field small{color:var(--texto-suave);}
.login-error{background:#fdeaea;color:#a83232;padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:14px;display:none;}
.security-note{margin-top:20px;background:var(--tierra-100);border-radius:10px;padding:12px 14px;font-size:.78rem;color:#5b4322;}

.admin-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px;}
.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:2px solid var(--borde);margin-bottom:22px;}
.admin-tab{
  background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;
  padding:10px 16px;font-size:.9rem;font-weight:700;color:var(--texto-suave);cursor:pointer;
  transition:color var(--trans), border-color var(--trans);
}
.admin-tab:hover{color:var(--verde-800);}
.admin-tab.active{color:var(--verde-900);border-bottom-color:var(--oro);}
.admin-table-wrap{overflow-x:auto;background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);border:1px solid var(--borde);}
table.admin-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:920px;}
table.admin-table th{background:var(--verde-100);color:var(--verde-900);text-align:left;padding:10px;position:sticky;top:0;z-index:2;}
table.admin-table td{padding:8px 10px;border-bottom:1px solid var(--borde);vertical-align:top;}
table.admin-table tbody tr:hover{background:var(--verde-050);}
table.admin-table input, table.admin-table textarea{
  width:100%;padding:6px 8px;border-radius:6px;border:1px solid var(--borde);font-size:.82rem;font-family:inherit;
}
table.admin-table textarea{resize:vertical;min-height:44px;}
.img-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.img-admin-row{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:16px;box-shadow:var(--sombra-sm);}
.img-admin-row .iar-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.img-admin-row .iar-thumb{width:64px;height:48px;border-radius:8px;overflow:hidden;background:var(--verde-100);flex-shrink:0;}
.img-admin-row .iar-thumb img, .img-admin-row .iar-thumb svg{width:100%;height:100%;object-fit:cover;}
.img-admin-row .iar-head strong{font-size:.88rem;color:var(--verde-900);}
.img-admin-row .iar-head span{display:block;font-size:.72rem;color:var(--texto-suave);}
.img-admin-row label{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--texto-suave);margin:8px 0 4px;}
.img-admin-row input, .img-admin-row textarea{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--borde);font-size:.83rem;font-family:inherit;}
.img-admin-row textarea{resize:vertical;min-height:52px;}
.save-flash{
  position:fixed;bottom:24px;right:24px;background:var(--verde-800);color:#fff;
  padding:12px 20px;border-radius:10px;box-shadow:var(--sombra);font-size:.88rem;
  opacity:0;transform:translateY(10px);transition:all .25s;pointer-events:none;z-index:500;
}
.save-flash.show{opacity:1;transform:translateY(0);}
.import-input{display:none;}

/* ---------- PRINT REPORT VIEW ---------- */
#reportView{display:none;background:#fff;}
#reportView .rpt-header{border-bottom:3px solid var(--verde-800);padding-bottom:14px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:flex-end;}
#reportView table{width:100%;border-collapse:collapse;font-size:.82rem;}
#reportView th, #reportView td{border:1px solid #999;padding:6px 8px;text-align:left;}
#reportView th{background:#eee;}
#reportView .rpt-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
#reportView .rpt-kpi{border:1px solid #999;padding:8px 10px;}
#reportView .rpt-kpi .rk-l{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:#444;}
#reportView .rpt-kpi .rk-v{font-family:Georgia,serif;font-size:1.2rem;font-weight:700;color:#153826;}
.report-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px;}

@media print{
  header.site-header, footer, .no-print{display:none !important;}
  body{background:#fff;}
  section{display:none !important;padding:0;}
  #reportView{display:block !important;}
}

@media (max-width: 1024px){
  .featured{grid-template-columns:1fr;}
  .featured-media{min-height:260px;}
}
@media (max-width: 880px){
  .hero .container{grid-template-columns:1fr;}
  .hero h1{font-size:2rem;}
  .two-col{grid-template-columns:1fr;}
  footer .foot-grid{grid-template-columns:1fr;}
  nav.main-nav{width:100%;justify-content:flex-start;}
  .flow{flex-wrap:wrap;overflow:visible;}
  .flow-step{flex:1 1 100%;}
  .flow-arrow{flex:1 1 100%;transform:rotate(90deg);height:34px;}
  #reportView .rpt-kpis{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 560px){
  section{padding:40px 0;}
  h2.section-title{font-size:1.5rem;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
  .kpi-value{font-size:1.7rem;}
  .kpi-card{min-height:auto;}
  .chart-slot{height:220px;}
  .featured-body{padding:22px 20px;}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
  html{scroll-behavior:auto;}
}


.hero{background:
  radial-gradient(circle at 15% 20%, rgba(209,161,58,.30), transparent 42%),
  linear-gradient(120deg, rgba(21,56,38,.93) 0%, rgba(31,77,56,.74) 46%, rgba(47,109,79,.50) 100%),
  url("assets/imagen-01.webp") center 32%/cover no-repeat;}
.hero h1{text-shadow:0 2px 18px rgba(9,26,17,.45);}
footer{background:
  linear-gradient(rgba(16,44,29,.90), rgba(16,44,29,.955)),
  url("assets/imagen-02.webp") center/cover no-repeat;
  background-color:var(--verde-900);}

/* Observatorio 1.0 · presentation layer, original data and identity retained */
:root{--crema:#f4f6f4;--radio:12px;--sombra:0 1px 4px #15382608;--texto-suave:#4d6055}
body{overflow-wrap:anywhere}h1,h2,h3,h4,.kpi-value,.q-val{font-family:'Segoe UI',Arial,sans-serif}h2.section-title{font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:-.04em}h3{letter-spacing:-.02em}section{padding:48px 0;scroll-margin-top:180px}.container{max-width:1240px}.nav-wrap{max-width:1240px;gap:18px}.brand{flex:1}nav.main-nav{width:100%;padding-top:8px;border-top:1px solid #ffffff25;gap:2px}nav.main-nav a{font-size:.79rem;padding:9px 10px;border-radius:6px;min-height:40px}nav.main-nav a.admin-link{margin-left:auto}.menu-toggle{display:none;min-height:44px;border:1px solid #ffffff70;background:transparent;color:white;border-radius:8px;padding:8px 14px;font:inherit}.hero{padding:36px 0;background:var(--verde-900)}.hero::after{display:none}.hero .container{display:block}.hero h1{max-width:780px;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}.hero p{max-width:none;font-size:1.1rem;margin-bottom:10px}.hero-kicker{margin-bottom:12px}.hero-actions{margin-top:20px}.btn:hover,.card:hover,.panel:hover,.kpi-card:hover,.gal-card:hover,.q-tile:hover{transform:none}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi-card{min-height:190px;gap:12px;border:1px solid var(--borde);box-shadow:none}.kpi-card::before{background:var(--verde-700)!important;width:3px}.kpi-value{font-size:2rem;letter-spacing:-.035em;margin-top:8px}.kpi-unit{font-family:inherit;font-size:.75rem;display:block;margin-top:6px;letter-spacing:0}.kpi-source{font-size:.72rem;color:var(--texto-suave);line-height:1.45}.kpi-card.is-meta{grid-column:1/-1;min-height:0;flex-direction:row;align-items:center;justify-content:space-between;background:var(--verde-050);flex-wrap:wrap}.kpi-card.is-meta .kpi-value{font-size:1rem}.kpi-delta.up,.kpi-delta.down,.trend-up,.trend-down{background:#eaf0f4;color:#24445e}.sem-light{background:#edf1f4!important;font-size:1.2rem;color:#24445e}.sem-info .st{font-size:.78rem}.dot.verde,.dot.rojo,.dot.ambar{background:#476679}.sem-list{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:24px 0}.quick-grid a{display:flex;flex-direction:column;gap:10px;background:white;padding:18px 14px;border:1px solid var(--borde);border-radius:10px;text-decoration:none}.quick-grid a:hover{border-color:var(--verde-700)}.quick-grid span{font-size:.75rem;color:var(--texto-suave)}.quick-grid strong{font-size:.9rem}.insight{padding:24px;background:var(--verde-050);border:1px solid var(--borde);border-radius:12px}.insight p{margin:8px 0;font-size:.95rem}.insight a{font-size:.85rem;font-weight:600}.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.topic-card{display:flex;flex-direction:column;gap:12px;background:white;border:1px solid var(--borde);border-radius:12px;padding:20px}.topic-card h3{font-size:1rem;line-height:1.4;margin:0}.topic-card .topic-value{font-size:1.8rem;font-weight:700;color:var(--verde-900)}.topic-card p{font-size:.8rem;margin:0;color:var(--texto-suave)}.topic-card .btn{align-self:flex-start;margin-top:auto}.panel{margin:20px 0;min-width:0}.dash-grid.two{grid-template-columns:minmax(0,1fr)}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{margin-top:24px;background:var(--verde-900)}.mini-stat .num{font-family:inherit}.hero-art h3{color:white}.featured{margin-top:24px}.featured-body{padding:24px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gal-media{aspect-ratio:4/3}.source-details{border:1px solid var(--borde);background:white;border-radius:10px;margin:10px 0;padding:16px}.source-details summary{cursor:pointer;font-weight:600;min-height:30px}.source-details p{font-size:.85rem;color:var(--texto-suave)}.source-details table{width:100%;border-collapse:collapse}.source-details td,.source-details th{padding:8px;text-align:left;border-bottom:1px solid var(--borde)}.flow{flex-wrap:wrap;overflow:visible;gap:12px}.flow-step{flex:1 1 260px}.flow-arrow{display:none}.modal{max-height:90vh;overflow-y:auto}.modal-current{padding:18px;background:var(--verde-050);margin-bottom:16px;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.modal-current strong{font-size:1.5rem}.modal-current span{font-size:.8rem}.welcome-note{color:var(--texto);background:var(--verde-050);max-width:none}.welcome-note strong{color:var(--verde-900)}[hidden]{display:none!important}#administracion{border-top:4px solid var(--verde-800)}.lb-media img{object-fit:contain}.sem-row,.ind-card{cursor:pointer}.btn-sm,.filter-btn{min-height:44px}iframe{max-width:100%}.quality-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.chart-slot{height:auto;min-height:230px}.chart-slot svg{height:auto}svg{max-width:100%}.source-box,.note-box{overflow-wrap:anywhere}
@media(max-width:1000px){.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}nav.main-nav a.admin-link{margin-left:0}section{scroll-margin-top:210px}}
@media(max-width:720px){header.site-header{position:sticky}.topbar{display:none}.nav-wrap{padding:12px 16px;gap:10px}.brand-text .t2{font-size:1rem}.brand-text .t1{font-size:.6rem}.brand-badge{width:36px;height:36px}.menu-toggle{display:block}nav.main-nav{display:none;max-height:65vh;overflow-y:auto;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}nav.main-nav.is-open{display:grid}nav.main-nav a{min-height:44px;display:flex;align-items:center}.hero{padding:28px 0}.hero h1{font-size:2rem}.hero p{font-size:1rem}.banner-inst .bi-left{font-size:.7rem}.banner-inst .bi-right{font-size:.7rem}.container{padding:0 16px}.kpi-grid,.topic-grid,.gallery-grid,.sem-list,.two-col{grid-template-columns:minmax(0,1fr)}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card{min-height:165px}.kpi-top{gap:6px}.grid-cards{grid-template-columns:minmax(0,1fr)}.sem-row{padding:14px 12px;gap:10px}.sem-val{max-width:100px}.featured{grid-template-columns:minmax(0,1fr)}.featured-media{min-height:220px}.panel-body{padding:12px}.quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.q-tile{padding:14px}.modal-overlay,.lightbox{padding:12px}.modal{padding:22px 16px}.lb-body{padding:16px}.flow-step{min-width:0}.btn{padding:10px 16px}section{padding:36px 0;scroll-margin-top:80px}.chart-slot{min-height:160px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.menu-toggle,.quick-grid{display:none!important}section{padding:20px 0}#administracion{display:none!important}}

/* Transparent interactive layer above the unmodified source PDF pages. */
.tour-map{margin:28px 0;border:1px solid var(--borde);border-radius:14px;background:#fff;overflow:hidden}.tour-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--borde);background:var(--verde-050)}.tour-map-controls,.tour-map-pages{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tour-map-toolbar button{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #c6d6cd;border-radius:8px;background:#fff;color:var(--verde-900);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.tour-map-toolbar button[aria-pressed="true"]{background:var(--verde-900);color:white;border-color:var(--verde-900)}.tour-map-viewport{width:100%;overflow:auto;max-height:78vh;overscroll-behavior:contain;background:#eaf0eb}.tour-map-stage{position:relative;width:100%;min-width:0;line-height:0;background:white}.tour-map-stage>img{width:100%;height:auto;max-width:none;display:block;user-select:none}.map-hotspot{position:absolute;display:block;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:12px;padding:0!important;cursor:pointer;touch-action:manipulation;line-height:1}.map-hotspot:hover{outline:2px solid #d1a13a;outline-offset:1px;background:#d1a13a20!important}.map-hotspot:focus-visible{outline:3px solid #153826!important;outline-offset:2px;background:#d1a13a33!important}.map-hotspot.show-target{outline:2px dashed #2f6d4f;background:#2f6d4f0c!important}.tour-map-stage+*{line-height:1.55}.tour-map-hint{margin:0;padding:12px 16px;font-size:.8rem;color:var(--texto-suave);border-top:1px solid var(--borde)}.map-directory{padding:18px;border-top:1px solid var(--borde)}.map-directory summary{cursor:pointer;font-weight:700;color:var(--verde-900);min-height:36px}.map-search-row{margin:12px 0}.map-search-row input{width:100%;padding:12px;border:1px solid var(--borde);border-radius:8px;font:inherit}.map-directory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.map-directory-list button{background:var(--verde-050);border:1px solid var(--borde);border-radius:8px;text-align:left;padding:12px;font:inherit;font-size:.85rem;color:var(--verde-900);min-height:44px;cursor:pointer}.map-directory-list button:hover{border-color:var(--verde-700)}#tourMapDialog{width:min(680px,calc(100% - 24px));max-height:90vh;border:none;border-radius:16px;padding:0;box-shadow:0 24px 70px #0005;color:var(--texto);background:white;overflow:auto}#tourMapDialog::backdrop{background:#0c201bbb;backdrop-filter:blur(3px)}.map-dialog-bar{position:sticky;top:0;z-index:2;background:white;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--borde);gap:12px}.map-dialog-bar span{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--texto-suave)}.map-dialog-close{width:44px;height:44px;border:1px solid var(--borde);border-radius:50%;background:white;color:var(--verde-900);font-size:1.2rem;cursor:pointer}.map-dialog-photo{width:100%;height:230px;object-fit:cover}.map-dialog-content{padding:24px}.map-dialog-content h2{font-size:1.6rem;margin-bottom:14px}.map-dialog-content p{margin:12px 0}.map-dialog-content ul{padding-left:22px}.map-dialog-content li{margin:8px 0}.map-source{font-size:.75rem;color:var(--texto-suave);border-top:1px solid var(--borde);padding-top:14px;margin-top:20px}.map-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.map-context summary{font-weight:600;cursor:pointer;padding:12px 0}.map-context{margin:22px 0}#mapZoomLabel{min-width:46px;font-size:.8rem;text-align:center}.tour-map:fullscreen{width:100%;height:100%;border:0;border-radius:0;overflow:auto}.tour-map:fullscreen .tour-map-viewport{max-height:calc(100vh - 140px)}
@media(max-width:720px){.tour-map-toolbar{padding:12px}.tour-map-controls{gap:6px}.tour-map-toolbar button{padding:8px 10px;font-size:.78rem}.tour-map-viewport{max-height:65vh}.map-directory-list{grid-template-columns:repeat(2,minmax(0,1fr))}.map-dialog-content{padding:20px}.map-dialog-photo{height:190px}.map-hotspot{border-radius:5px}#tourMapDialog{max-height:88vh}.tour-map-hint{font-size:.75rem}}
@media print{.tour-map-viewport{max-height:none;overflow:visible}.tour-map-stage{width:100%!important}.map-hotspot,.tour-map-toolbar,.map-directory,.tour-map-hint,#tourMapDialog{display:none!important}.tour-map-stage[hidden]{display:block!important}}


:root{--verde-900:#123b39;--verde-800:#1d514b;--verde-700:#2d6a5c;--verde-050:#f1f6f4;--borde:#dce6e0;--radio:12px;--radio-lg:18px;--sombra-sm:0 3px 16px #153a2b06;--sombra-md:0 8px 30px #153a2b09}html{scroll-behavior:smooth}body{background:#fff;font-family:'Segoe UI',Arial,sans-serif}.container,.nav-wrap{max-width:1400px}section{padding:62px 0;scroll-margin-top:150px}section.alt{background:#f4f7f5}header.site-header{background:#123b39;box-shadow:none}.topbar{background:#0e302f}.nav-wrap{padding-top:16px;padding-bottom:12px}.main-nav{overflow-x:auto;flex-wrap:nowrap!important}.main-nav a{white-space:nowrap}.brand-text .t2{font-size:1.2rem}.banner-inst{background:#edf3ef}.hero{background:#123b39;padding:44px 0 50px}.hero>.container{display:grid;grid-template-columns:1.2fr 1fr;gap:45px;align-items:center}.hero h1{font-size:clamp(2rem,4vw,3.7rem);line-height:1.08;max-width:650px}.hero p{font-size:1.1rem;max-width:590px;color:#c8dcd5}.hero-actions .btn-outline{border-color:#bfd4cd;color:white}.single-hero-photo{position:relative;margin:0;border-radius:15px;overflow:hidden;height:320px}.single-hero-photo img{width:100%;height:100%;object-fit:cover}.single-hero-photo figcaption{position:absolute;bottom:0;width:100%;padding:30px 20px 14px;background:linear-gradient(transparent,#102c28d9);color:white;font-size:.78rem}.section-title{font-size:clamp(1.8rem,3vw,2.5rem)!important}.eyebrow{letter-spacing:.16em}.section-sub{max-width:960px;line-height:1.7}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.kpi-card{min-height:176px;border-radius:12px;background:white}.kpi-value{font-size:2.3rem}.kpi-card.is-meta{border:0;padding:12px 0;background:transparent}.quick-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.quick-grid a{border-radius:8px;background:#fff}.flow-note{border-radius:8px;font-size:.86rem;padding:18px 22px}.tour-map{border-radius:16px;box-shadow:0 12px 35px #133c2e0b}.tour-map-viewport{max-height:85vh}.tour-map-toolbar{background:#edf4f0}.map-directory-list{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gal-card{box-shadow:none;border:1px solid var(--borde)}.gal-body{padding:18px}.gal-body h3{font-size:1rem}.featured{border:1px solid var(--borde);box-shadow:none}.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topic-card{box-shadow:none}.panel{box-shadow:none;border:1px solid var(--borde)}.dash-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.source-details{padding:20px}.single-dataset{margin-top:38px}.single-table-scroll{overflow:auto;border:1px solid var(--borde);border-radius:12px}.single-dataset table{width:100%;border-collapse:collapse;font-size:.8rem;background:white}.single-dataset th{padding:16px;text-align:left;background:#173f3b;color:white;white-space:nowrap}.single-dataset td{padding:16px;border-bottom:1px solid var(--borde);vertical-align:top;min-width:70px}.single-dataset td:first-child{min-width:240px}.single-dataset td:last-child{min-width:270px;max-width:390px;font-size:.75rem;color:#627369}.single-dataset td small{display:block;color:#6a7b71}.single-dataset tbody tr:nth-child(even){background:#f6f8f7}#mapa .section-sub{max-width:1000px}#galeria{background:white}#contacto{background:#edf3ef}footer{background:#123b39}@media(max-width:1000px){.kpi-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid.two{grid-template-columns:1fr}.hero>.container{gap:25px}.single-hero-photo{height:280px}.map-directory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){section{padding:36px 0;scroll-margin-top:90px}.hero>.container{grid-template-columns:1fr}.hero{padding:28px 0}.single-hero-photo{height:220px}.main-nav.is-open{display:grid;flex-wrap:wrap!important}.main-nav{white-space:normal}.kpi-grid,.topic-grid,.gallery-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-directory-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:2.4rem}}@media print{body>section{display:block!important;padding:20px 0!important}.hero>.container{display:block}.single-hero-photo{height:180px}.single-table-scroll{overflow:visible}.single-dataset table{font-size:8pt}.single-dataset td{min-width:0!important;padding:5px}.kpi-grid{grid-template-columns:repeat(3,1fr)}#administracion{display:none!important}.source-details{break-inside:avoid}}

.live-dashboard{background:linear-gradient(140deg,#edf4f2,#f4f7fa);padding:50px 0}.live-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.live-head h2{margin-bottom:10px}.live-head p{max-width:700px}.live-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.live-controls button,.live-card select,.live-filter select,.live-filter input{font:inherit;border:1px solid #cbdcd6;background:#fff;color:#20453c;border-radius:9px;padding:11px 15px;min-height:44px}.live-controls button{cursor:pointer}.live-controls button[aria-pressed=true]{background:#173f3c;color:white;border-color:#173f3c}.live-year-bar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px;background:#ffffffb8;border:1px solid #dce7e2;border-radius:13px;margin-bottom:20px}.live-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0 28px}.live-stat{text-align:left;background:#173f3c;color:white;border:0;border-radius:15px;padding:23px;cursor:pointer;box-shadow:0 10px 25px #143d3914;transition:transform .2s,box-shadow .2s}.live-stat:nth-child(2){background:#1c5d56}.live-stat:nth-child(3){background:#345777}.live-stat:nth-child(4){background:#5f533a}.live-stat:hover{transform:translateY(-4px);box-shadow:0 15px 30px #143d3930}.live-stat-label{font-size:.8rem;display:block;color:#dfebe5}.live-stat strong{display:block;font-size:2.8rem;margin:8px 0}.live-stat small,.live-stat em{display:block;font-size:.74rem;font-style:normal;color:#c5d9d1}.live-stat em{border-top:1px solid #ffffff26;margin-top:12px;padding-top:12px}.live-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.live-card{background:white;border:1px solid #dbe6e1;padding:24px;border-radius:16px;box-shadow:0 8px 30px #21463808;min-width:0}.live-card h3{font-size:1.03rem;line-height:1.45;margin:0 0 12px}.live-card select{width:100%;font-size:.8rem;margin-bottom:14px}.live-card.wide{grid-column:1/-1}.live-chart svg{width:100%;height:auto;display:block;overflow:visible}.axis{fill:#74877e;font-size:12px}.value{fill:#234b43;font-size:13px;font-weight:600}.live-mark{cursor:pointer;outline:none}.live-mark rect,.live-mark circle{transition:filter .15s}.live-mark:hover rect,.live-mark:focus rect,.live-mark:hover circle,.live-mark:focus circle{filter:brightness(.85);stroke:#174b43;stroke-width:3px}.live-note{font-size:.75rem;color:#6a7e74;line-height:1.6;margin-top:12px}.live-chart-tip{background:#173f3c;color:#fff;padding:12px 18px;border-radius:10px;font-size:.8rem;margin-top:20px}.live-quality{display:flex;align-items:center;gap:28px}.quality-ring{width:155px;height:155px;border-radius:50%;background:conic-gradient(#24a59a var(--coverage),#e7eeea 0);position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.quality-ring:before{content:'';position:absolute;inset:14px;border-radius:50%;background:white}.quality-ring span{position:relative;text-align:center}.quality-ring strong{display:block;font-size:1.8rem}.quality-ring small{display:block;font-size:.7rem}.live-filter{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:22px;background:#edf5f1;border:1px solid #d5e4dc;border-radius:14px;margin:20px 0}.live-filter label{font-size:.76rem;font-weight:600}.live-filter input,.live-filter select{width:100%;display:block;margin-top:8px}.live-filter-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.live-filter-actions button{padding:10px 15px;background:white;border:1px solid #c4d6cc;border-radius:8px;cursor:pointer;color:#244a3f}.live-filter-actions strong{margin-left:auto;font-size:.78rem}.live-explorer-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.live-places{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-height:480px;overflow:auto;padding:4px}.live-place{text-align:left;border:1px solid #d9e5df;border-radius:12px;background:white;overflow:hidden;padding:0;color:#173f3c;font:inherit;cursor:pointer;transition:transform .2s}.live-place:hover{transform:translateY(-3px);border-color:#24a59a}.live-place img,.place-placeholder{width:100%;height:130px;object-fit:cover;display:block}.place-placeholder{background:linear-gradient(140deg,#d7e6de,#edf3ee);display:flex;align-items:center;justify-content:center;font-size:.78rem;letter-spacing:.05em}.live-place>div:last-child{padding:15px}.live-place small{font-size:.64rem;text-transform:uppercase;color:#6c887b;letter-spacing:.08em}.live-place h3{font-size:.85rem;margin:7px 0 12px;line-height:1.4}.live-place span{font-size:.72rem;color:#2b7b68}.category-row{display:grid;grid-template-columns:110px 1fr 22px;gap:8px;align-items:center;font:inherit;font-size:.7rem;padding:12px 0;width:100%;border:0;border-bottom:1px solid #edf2ef;background:white;text-align:left;cursor:pointer}.category-row>div{height:9px;border-radius:9px;background:#edf2ef;overflow:hidden}.category-row i{display:block;height:100%;border-radius:9px;transition:width .3s}.live-map-match{outline:3px solid #e3a336!important;background:#e3a33630!important}.live-map-muted{opacity:.25}.live-reference{font-size:.74rem;line-height:1.6;color:#658173}.live-dashboard .eyebrow{color:#298572}.live-pulse{display:inline-block;width:8px;height:8px;background:#38bca8;border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px #38bca81c}section{padding:45px 0}.hero{background:radial-gradient(ellipse at 90% 0,#285c55,#123b39 70%)}.single-hero-photo{box-shadow:0 20px 45px #0003}.gallery-grid{gap:22px}.gal-card{transition:box-shadow .2s}.gal-card:hover{box-shadow:0 12px 30px #133d251a}.source-details:not([open]){background:#fafcfb}@media(max-width:1050px){.live-stat-grid{grid-template-columns:repeat(2,1fr)}.live-explorer-layout{grid-template-columns:1fr}.live-places{grid-template-columns:repeat(3,1fr)}.live-explorer-layout aside{display:none}}@media(max-width:720px){.live-head{display:block}.live-chart-grid{grid-template-columns:1fr}.live-card.wide{grid-column:auto}.live-filter{grid-template-columns:1fr}.live-places{grid-template-columns:repeat(2,1fr)}.live-stat-grid{gap:10px}.live-stat{padding:16px}.live-stat strong{font-size:2rem}.live-card{padding:18px}.live-quality{display:block}.quality-ring{margin:0 auto 20px}.live-year-bar{padding:12px}.live-filter-actions strong{margin-left:0;width:100%}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{.live-controls,.live-year-bar,.live-filter{display:none!important}.live-chart-grid{grid-template-columns:1fr 1fr}.live-card{break-inside:avoid}.live-places{max-height:none}.live-explorer-layout{display:block}.live-place{break-inside:avoid}}

/* Publication fixes: report isolation and responsive comparison panels. */
.unit-comparison{margin:20px 0}.unit-comparison h4{margin:0 0 8px}.image-unavailable{min-height:80px;background:#edf3ef}#monthlyData table{width:100%;border-collapse:collapse}#monthlyData th,#monthlyData td{padding:8px;border-bottom:1px solid var(--borde);text-align:left}
body.report-open> :not(#reportView){display:none!important}body.report-open #reportView{display:block!important}#reportView{min-height:100vh}#reportView td,#reportView th{overflow-wrap:anywhere}#reportView table{table-layout:fixed}#reportView .report-toolbar{position:sticky;top:0;background:white;padding:12px 0;z-index:2}
@media print{body:not(.report-open)>section{display:block!important}body:not(.report-open) #reportView{display:none!important}body.report-open> :not(#reportView){display:none!important}body.report-open #reportView{display:block!important}body{overflow:visible!important}#reportView .report-toolbar{display:none!important}#reportView thead{display:table-header-group}#reportView tr{break-inside:avoid}#reportView table{font-size:8pt}#reportView th,#reportView td{padding:5px}body.report-open #reportView h1{font-size:22pt}}
