:root{
  --navy:#062b46;--navy2:#0b3b5d;--ink:#0b2c45;--muted:#64747e;--line:#dfe5e8;
  --soft:#f6f8f9;--white:#fff;--orange:#ef7b12;--blue:#2f6fb6;--green:#3b965d;
  --purple:#7752ad;--gold:#e3a62c;--teal:#178b8a;--shadow:0 10px 28px rgba(6,43,70,.08)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f6f7f7;line-height:1.5}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.container{width:min(1420px,calc(100% - 48px));margin:auto}
.section{padding:18px 0 26px}
.eyebrow{display:block;font-size:14px;letter-spacing:.13em;font-weight:900;color:#2683b0;margin-bottom:5px}
.eyebrow.light{color:#6ed7e4}
.site-header{height:70px;background:var(--navy);color:#fff;display:flex;align-items:center;position:sticky;top:0;z-index:1000}
.nav-shell{width:min(1450px,calc(100% - 48px));margin:auto;display:flex;align-items:center;gap:27px}
.brand,.footer-brand{display:flex;align-items:center;gap:10px;font-weight:850;white-space:nowrap}
.brand img,.footer-brand img{width:38px;height:38px}
.main-nav{display:flex;align-items:center;justify-content:center;gap:29px;flex:1;font-size:15px;font-weight:750}
.main-nav a{padding:25px 0;position:relative;opacity:.9}
.main-nav .active:after{content:"";position:absolute;left:0;right:0;bottom:11px;height:3px;background:var(--orange)}
.nav-cta{background:linear-gradient(180deg,#ff961f,#e9720b);padding:10px 18px;border-radius:8px;font-size:14px;font-weight:850}
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:26px;margin-left:auto}

.pulse-banner{padding:14px 0 10px;background:#f6f7f7}
.pulse-grid{background:linear-gradient(135deg,#062b46,#093b61);color:#fff;border-radius:13px;display:grid;grid-template-columns:1.65fr repeat(6,.72fr) 2fr;align-items:stretch;box-shadow:var(--shadow);overflow:hidden}
.pulse-title{display:flex;align-items:center;gap:13px;padding:18px 22px;border-right:1px solid rgba(255,255,255,.1)}
.pulse-dot{width:12px;height:12px;border-radius:50%;background:#ef7b12;box-shadow:0 0 0 6px rgba(239,123,18,.12)}
.pulse-title p{font-size:14px;font-weight:900;margin:0 0 2px}.pulse-title h1{font-size:15px;font-weight:500;margin:0;color:#d7e7ee}
.pulse-stat{padding:15px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:7px}
.pulse-stat .icon{font-size:25px}.pulse-stat strong{display:block;font-size:21px}.pulse-stat small{font-size:13px;color:#d6e5eb}
.pressure-card{padding:14px 20px;background:rgba(0,0,0,.09)}
.pressure-card>small{font-size:12px;font-weight:850;color:#cfdee5}.pressure-main{display:flex;gap:10px;align-items:center;margin:5px 0}.pressure-main span{font-size:30px}.pressure-main strong{font-size:14px;line-height:1.2}
.pressure-card a{display:inline-block;border:1px solid #d99d24;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:800;margin-top:3px}

.dashboard-grid{display:grid;grid-template-columns:1.05fr 1fr 1.02fr;gap:16px}
.panel{background:#fff;border:1px solid #e1e6e8;border-radius:12px;box-shadow:0 5px 20px rgba(6,43,70,.05);padding:18px;min-width:0}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-head h2{font-size:16px;margin:0}.panel-head a{font-size:13px;color:#1e70a1;font-weight:850}
.demo-badge{font-size:12px;background:#fff2df;color:#b76518;border-radius:14px;padding:5px 8px;font-weight:800}

.ranking{display:flex;flex-direction:column;gap:11px}
.rank-row{display:grid;grid-template-columns:22px 115px 1fr 54px 38px;gap:8px;align-items:center;font-size:13px}
.rank-num{font-weight:800}.rank-label{font-weight:750}.bar{height:11px;background:#edf1f3;border-radius:10px;overflow:hidden}.bar i{height:100%;display:block;background:linear-gradient(90deg,#2e6db3,#3a83cf);border-radius:10px}
.rank-row:nth-child(2) .bar i{background:#ef7b12}.rank-row:nth-child(3) .bar i{background:#3f9a61}.rank-row:nth-child(4) .bar i{background:#7e58b7}.rank-row:nth-child(5) .bar i{background:#e9a62d}.rank-row:nth-child(6) .bar i{background:#228f8d}
.rank-row strong{text-align:right;font-size:13px}.rank-row small{font-size:12px;color:#6c7c85}
.panel-total{border-top:1px solid #e4eaec;margin-top:17px;padding-top:12px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.panel-total strong{font-size:20px}

.trend-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:23px;margin-bottom:4px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin:0}.legend span{display:flex;align-items:center;gap:5px;color:#50636e;font-weight:750}.legend i{width:14px;height:3px;display:inline-block;border-radius:2px;flex:0 0 auto}.legend-loading{color:#7b8b94!important;font-weight:600!important}
.trend-meta{font-size:11px;color:#71828b;background:#f3f6f7;border:1px solid #e3e9eb;border-radius:12px;padding:3px 7px;white-space:nowrap}
.trend-chart-wrap{position:relative;min-height:250px;display:flex;align-items:center}.trend-chart{width:100%;height:auto;display:block;overflow:visible}.trend-chart .trend-grid{stroke:#e7edef;stroke-width:1}.trend-chart .trend-axis{fill:#74848c;font-size:13px}.trend-chart .trend-line{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.trend-chart .trend-point{stroke:#fff;stroke-width:2;cursor:help}.trend-chart .trend-end-label{font-size:12px;font-weight:800}.trend-chart .trend-empty{font-size:15px;fill:#73838c}.trend-chart .trend-error{font-size:14px;fill:#9a5b43}.trend-chart .trend-loading{font-size:14px;fill:#73838c}
.period-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.period-tabs button{border:1px solid #d8e0e4;background:#fff;border-radius:6px;padding:6px 9px;font-size:12px;cursor:pointer;transition:.18s ease}.period-tabs button:hover{border-color:#91a8b5;background:#f7fafb}.period-tabs button.active{background:#082f4e;color:#fff;border-color:#082f4e}.period-tabs button:disabled{opacity:.6;cursor:wait}

.schematic-map{height:230px;border-radius:10px;position:relative;overflow:hidden;background:
linear-gradient(145deg,#d9e6d6 0 42%,#e6d6b8 42% 74%,#a8d0dd 74% 100%)}
.schematic-map:before{content:"";position:absolute;left:2%;right:4%;top:40%;height:3px;background:rgba(255,255,255,.85);transform:rotate(-9deg);box-shadow:0 19px 0 rgba(255,255,255,.6)}
.schematic-map:after{content:"";position:absolute;width:260px;height:120px;right:-50px;top:10px;border-radius:50%;border:2px solid rgba(83,123,90,.3);transform:rotate(-12deg)}
.map-label{position:absolute;font-size:12px;font-weight:800;z-index:3}.santiago{left:12%;top:16%}.miraflores{left:34%;top:27%}.sjc{right:14%;top:28%}.ribera{left:37%;top:49%}.csl{left:19%;bottom:13%}
.heat{position:absolute;width:68px;height:68px;border-radius:50%;background:radial-gradient(circle,rgba(234,76,47,.86) 0 18%,rgba(243,130,53,.6) 28%,rgba(243,177,63,.24) 55%,transparent 70%);z-index:2}.h1{left:16%;bottom:12%}.h2{left:35%;bottom:21%}.h3{left:48%;top:39%}.h4{right:21%;top:34%}.h5{left:46%;top:13%;transform:scale(.7)}
.map-legend{display:flex;gap:17px;font-size:12px;margin-top:9px}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{width:9px;height:9px;border-radius:50%}.hot{background:#e94f34}.mid{background:#f59a38}.low{background:#4b9b62}.map-note{display:block;font-size:11px;color:#8a989f;margin-top:5px}

.community-panel label{font-size:12px;font-weight:800;display:block;margin-bottom:5px}.community-panel select{width:100%;border:1px solid #d4dde1;border-radius:7px;padding:9px 10px;background:#fff;font-size:13px}
.community-detail{border:1px solid #e0e6e9;border-radius:9px;padding:14px;margin-top:10px}.community-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.community-top strong{display:block;font-size:13px}.community-top small{font-size:12px;color:#74848c}.community-badge{font-size:11px;background:#edf5fb;color:#2475a4;padding:5px 7px;border-radius:12px;font-weight:800}
.mini-ranking{margin-top:12px}.mini-ranking div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #edf1f2;font-size:13px}

.recent-list{display:flex;flex-direction:column;gap:9px}.recent-item{border:1px solid #e4e9eb;border-radius:8px;padding:9px 10px;display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center}.recent-icon{font-size:22px}.recent-item strong{display:block;font-size:13px}.recent-item small{display:block;font-size:11px;color:#71828b;margin-top:2px}.recent-item em{font-style:normal;background:#eef4f9;color:#2b78a4;border-radius:10px;padding:4px 7px;font-size:11px}

.participate-panel h2{font-size:17px;margin:0 0 7px}.participate-panel>p{font-size:13px;color:#647680}.report-btn{display:inline-block;background:#082f4e;color:#fff;border-radius:7px;padding:9px 14px;font-size:13px;font-weight:850;margin:8px 0 17px}
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.benefit-grid div{text-align:center;padding:9px 4px;border-left:1px solid #edf1f2}.benefit-grid div:first-child{border-left:0}.benefit-grid span{display:block;font-size:23px}.benefit-grid strong{font-size:11px;line-height:1.2;display:block;margin-top:5px}

.method{background:#fff}
.method-grid{display:grid;grid-template-columns:.8fr 1.6fr;gap:35px;align-items:start}.method-grid h2{font-size:24px;margin:0 0 10px}.method-grid p{font-size:14px;color:#637681}
.method-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.method-steps article{border:1px solid #e3e8ea;border-radius:9px;padding:13px;background:#fafbfb}.method-steps span{display:block;color:#ed7810;font-size:18px;font-weight:300}.method-steps strong{display:block;font-size:14px;margin:6px 0 3px}.method-steps small{font-size:12px;color:#6a7b84}

.future-system{background:#f6f7f7}
.future-card{background:linear-gradient(135deg,#082f4e,#0a3c61);color:#fff;border-radius:12px;padding:23px 28px;display:grid;grid-template-columns:1fr 1.2fr;gap:35px;align-items:center}.future-card h2{font-size:22px;margin:0 0 9px}.future-card p{font-size:13px;color:#d8e7ed}
.architecture{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.architecture span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:10px 12px;border-radius:8px;font-size:13px;font-weight:800}.architecture b{color:#ff921f}

.summary-strip{padding:0 0 20px}.summary-grid{background:linear-gradient(135deg,#062b46,#093a5d);color:#fff;border-radius:12px;display:grid;grid-template-columns:repeat(4,.75fr) 1.4fr;overflow:hidden}
.summary-grid>div{padding:20px;border-right:1px solid rgba(255,255,255,.1)}.summary-grid>div:last-child{border-right:0}.summary-grid span{font-size:26px;vertical-align:middle;margin-right:8px}.summary-grid strong{font-size:19px}.summary-grid small{display:block;font-size:12px;color:#d5e4ea;margin-top:4px}
.summary-message strong{display:block;font-size:14px}.summary-message small{font-size:13px;line-height:1.5}

.site-footer{background:var(--navy);color:#fff;padding:22px 0}.footer-content{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px}.footer-cta{background:var(--orange);padding:8px 15px;border-radius:6px;font-weight:850}

@media(max-width:1150px){
  .main-nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--navy);padding:18px 24px;flex-direction:column;align-items:flex-start;gap:0}.main-nav.open{display:flex}.main-nav a{padding:9px 0}.menu-toggle{display:block}.nav-cta{display:none}
  .pulse-grid{grid-template-columns:1.5fr repeat(3,1fr)}.pulse-stat:nth-of-type(n+5){display:none}.pressure-card{grid-column:1/-1}
  .dashboard-grid{grid-template-columns:1fr 1fr}.map-panel{grid-column:1/-1}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-message{grid-column:1/-1}
}
@media(max-width:760px){
  .container,.nav-shell{width:min(100% - 28px,1420px)}
  .pulse-grid{grid-template-columns:1fr 1fr}.pulse-title,.pressure-card{grid-column:1/-1}.pulse-stat{border-top:1px solid rgba(255,255,255,.08)}
  .dashboard-grid{grid-template-columns:1fr}.map-panel{grid-column:auto}.rank-row{grid-template-columns:22px 95px 1fr 44px}.rank-row small{display:none}
  .benefit-grid{grid-template-columns:1fr 1fr}.method-grid{grid-template-columns:1fr}.method-steps{grid-template-columns:1fr 1fr}.future-card{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}
  .footer-content{flex-direction:column}
}
@media(max-width:430px){
  .pulse-grid{grid-template-columns:1fr}.pulse-stat{justify-content:flex-start;padding-left:22px}.pulse-title,.pressure-card{grid-column:auto}
  .method-steps{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}.summary-message{grid-column:auto}.benefit-grid{grid-template-columns:1fr}
}

.pulse-stats-live{display:contents}
.loading-copy{font-size:14px;color:#71828b;margin:12px 0}
.live-error{font-size:14px;color:#a44834;background:#fff1ee;border:1px solid #f0d0c7;padding:9px 10px;border-radius:7px}
@media(max-width:1150px){.pulse-stats-live{display:contents}}

/* ==========================================================
   MAPA ESQUEMÁTICO DINÁMICO
   ========================================================== */
.schematic-map{position:relative}
.map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#667983;font-weight:700;z-index:4}
.dynamic-community{position:absolute;z-index:5;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:auto}
.dynamic-community .bubble{display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:900;color:#fff;border:2px solid rgba(255,255,255,.92);box-shadow:0 0 0 5px rgba(239,123,18,.10),0 7px 18px rgba(7,46,72,.18);transition:.25s}
.dynamic-community.high .bubble{background:#e94f34;box-shadow:0 0 0 8px rgba(233,79,52,.15),0 7px 18px rgba(7,46,72,.18)}
.dynamic-community.medium .bubble{background:#f59a38;box-shadow:0 0 0 7px rgba(245,154,56,.14),0 7px 18px rgba(7,46,72,.15)}
.dynamic-community.low .bubble{background:#4b9b62;box-shadow:0 0 0 6px rgba(75,155,98,.13),0 7px 18px rgba(7,46,72,.12)}
.dynamic-community .community-map-label{background:rgba(255,255,255,.91);border-radius:5px;padding:2px 5px;font-size:11px;font-weight:850;white-space:nowrap;color:#0b2c45;box-shadow:0 2px 8px rgba(6,43,70,.08)}
.dynamic-community:hover{z-index:20}.dynamic-community:hover .bubble{transform:scale(1.08)}
.map-unlocated{position:absolute;left:10px;right:10px;bottom:8px;background:rgba(255,255,255,.9);border:1px solid rgba(6,43,70,.08);border-radius:6px;padding:5px 7px;font-size:11px;color:#61747f;z-index:8}

.real-pressure-map{height:360px;border-radius:10px;border:1px solid #dce5e8;overflow:hidden}.real-map-toolbar{display:flex;gap:8px;margin-bottom:9px}.real-map-toolbar select{flex:1;border:1px solid #d5dfe3;border-radius:7px;padding:8px;background:#fff;font-size:13px}.leaflet-popup-content{font-family:Inter,system-ui,sans-serif;font-size:14px}.map-panel .map-note{line-height:1.4}
@media(max-width:760px){.real-pressure-map{height:330px}.real-map-toolbar{flex-direction:column}}

@media(max-width:520px){.trend-toolbar{flex-direction:column;gap:5px}.trend-meta{align-self:flex-start}.trend-chart-wrap{min-height:220px}.period-tabs{gap:5px}.period-tabs button{padding:6px 8px}}
