/* Índice OIA-CO — sistema de diseño "Intelligence Infrastructure" */
:root{
  /* color */
  --c-primary:#236AE0;--c-navy:#001443;--c-sky:#5BAEF7;--c-bg:#F7FAFE;--c-surface:#FFFFFF;--c-text:#07142F;--c-text-2:#52627B;--c-border:#DFE7F3;
  --c-soft:#EEF4FD;--c-selected:#E6EFFD;--c-success:#16A34A;--c-warning:#D97706;--c-error:#DC2626;--c-gold:#C99A06;--c-silver:#8A97AB;--c-bronze:#B8692F;
  --c-on-primary:#FFFFFF;--c-code-bg:#0B1430;--c-code-text:#DCE6FA;
  /* tipografía */
  --f-title:"Plus Jakarta Sans",Inter,system-ui,sans-serif;--f-body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,monospace;
  --fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-h3:clamp(17px,1.6vw,20px);--fs-h2:clamp(22px,2.6vw,30px);--fs-h1:clamp(32px,4.6vw,52px);
  /* espacio, radios, sombras, movimiento */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
  --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;
  --sh-1:0 1px 2px rgba(7,20,47,.04),0 2px 10px rgba(7,20,47,.05);--sh-2:0 8px 30px rgba(7,20,47,.08);
  --t-fast:120ms;--t-med:220ms;--ease:cubic-bezier(.2,.7,.2,1);
  --maxw:1320px;--ctl:42px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --c-bg:#050B1C;--c-surface:#0B1631;--c-text:#E8EEFA;--c-text-2:#9FB0D0;--c-border:#1B2B52;--c-soft:#0F1E42;--c-selected:#13285A;--c-navy:#E8EEFA;--sh-1:none;--sh-2:none;--c-primary:#4C8DF0}}
:root[data-theme="dark"]{--c-bg:#050B1C;--c-surface:#0B1631;--c-text:#E8EEFA;--c-text-2:#9FB0D0;--c-border:#1B2B52;--c-soft:#0F1E42;--c-selected:#13285A;--c-navy:#E8EEFA;--sh-1:none;--sh-2:none;--c-primary:#4C8DF0}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--c-bg);color:var(--c-text);font:var(--fs-md)/1.55 var(--f-body)}
a{color:inherit;text-decoration:none}a:hover{color:var(--c-primary)}
:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--f-title);color:var(--c-navy);line-height:1.12;margin:0;letter-spacing:-.015em}
h1{font-size:var(--fs-h1);font-weight:800}h2{font-size:var(--fs-h2);font-weight:800}h3{font-size:var(--fs-h3);font-weight:700}
p{margin:0}.muted{color:var(--c-text-2)}.mono{font-family:var(--f-mono)}.hl{color:var(--c-primary)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--c-primary);color:#fff;padding:8px 12px;border-radius:8px;z-index:100}.skip:focus{top:8px;color:#fff}
.ico{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* header */
.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--c-bg) 86%,transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--c-border)}
.top .bar{display:flex;align-items:center;gap:var(--s4);height:68px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand svg{width:40px;height:40px;flex:none}
.brand b{display:block;font:800 20px/1 var(--f-title);color:var(--c-navy);letter-spacing:-.01em}
.brand small{display:block;font:500 11.5px/1.25 var(--f-body);color:var(--c-text-2);max-width:170px}
.nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav>a,.nav>details>summary{display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:var(--r-sm);font:600 14.5px var(--f-body);color:var(--c-text);cursor:pointer;list-style:none;white-space:nowrap}
.nav>details>summary::-webkit-details-marker{display:none}
.nav>a.on,.nav>details.on>summary{background:var(--c-selected);color:var(--c-primary)}
.nav>a:hover,.nav>details>summary:hover{background:var(--c-soft)}
.nav details{position:relative}
.nav .menu{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-2);padding:6px;display:grid}
.nav .menu a{padding:9px 10px;border-radius:var(--r-sm);font-size:14px;display:flex;gap:10px;align-items:center}.nav .menu a:hover{background:var(--c-soft)}
.top .tools{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--ctl);padding:0 18px;border-radius:var(--r-md);border:1px solid transparent;font:700 14.5px var(--f-body);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast);white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--c-primary);color:var(--c-on-primary)}.btn.pri:hover{filter:brightness(1.08);color:#fff}
.btn.nav-b{background:var(--c-navy);color:var(--c-bg)}:root[data-theme="dark"] .btn.nav-b{color:#050B1C}
.btn.sec{background:var(--c-surface);border-color:var(--c-border);color:var(--c-text)}.btn.sec:hover{border-color:var(--c-primary);color:var(--c-primary)}
.btn.ghost{background:transparent;color:var(--c-primary);padding:0 8px}
.icon-btn{width:var(--ctl);height:var(--ctl);display:grid;place-items:center;border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer}
.icon-btn:hover{border-color:var(--c-primary);color:var(--c-primary)}
.burger{display:none}
@media (max-width:1100px){.nav{display:none}.burger{display:grid}.top .tools .btn.sec{display:none}
  .nav.open{display:grid;position:absolute;top:68px;left:0;right:0;background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:10px 16px 16px;gap:2px;box-shadow:var(--sh-2)}
  .nav.open .menu{position:static;box-shadow:none;border:0;padding:0 0 0 12px}}
@media (max-width:640px){.brand small{display:none}.wrap{padding:0 16px}}

/* componentes */
.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.card.pad{padding:var(--s5)}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-pill);font:600 13.5px var(--f-body);color:var(--c-text);cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--c-primary);color:var(--c-primary)}.chip.on,.chip[aria-pressed="true"]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.chip .n{color:var(--c-text-2);font-weight:500}.chip.on .n,.chip[aria-pressed="true"] .n{color:#DCE8FF}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-pill);padding:2px 9px;font:600 12px var(--f-body);background:var(--c-soft);color:var(--c-primary);white-space:nowrap}
.pill.ok{background:color-mix(in srgb,var(--c-success) 12%,transparent);color:var(--c-success)}
.pill.warn{background:color-mix(in srgb,var(--c-warning) 14%,transparent);color:var(--c-warning)}
.pill.grey{background:var(--c-soft);color:var(--c-text-2)}
.eyebrow{display:flex;align-items:center;gap:10px;font:800 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--c-primary)}
.eyebrow:before{content:"";width:28px;height:2px;background:var(--c-primary);border-radius:2px}
.av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font:700 12.5px var(--f-title);color:#fff;background:var(--c-primary)}
.av.lg{width:76px;height:76px;font-size:26px}.av.sq{border-radius:10px;background:var(--c-navy);color:var(--c-bg)}
.field{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 6px 0 16px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.field:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--c-primary) 15%,transparent)}
.field input{flex:1;min-width:0;border:0;background:transparent;font:500 15.5px var(--f-body);color:var(--c-text);outline:none;height:48px}
.field .go{width:40px;height:40px;border-radius:var(--r-md);background:var(--c-primary);color:#fff;display:grid;place-items:center;border:0;cursor:pointer}
select,input[type=text],input[type=search],input[type=url],input[type=email],textarea{font:500 14.5px var(--f-body);color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);min-height:var(--ctl);padding:0 12px}
textarea{padding:10px 12px;min-height:110px;resize:vertical}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-primary) 15%,transparent)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 var(--s4)}
.sec-head .lnk{font-weight:700;color:var(--c-primary);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.section{padding:var(--s7) 0 0}
.crumb{font-size:var(--fs-sm);color:var(--c-text-2);margin:var(--s5) 0 var(--s3)}.crumb a:hover{color:var(--c-primary)}
.empty{padding:var(--s7) var(--s5);text-align:center;color:var(--c-text-2)}
.note{background:var(--c-soft);border-radius:var(--r-md);padding:12px 14px;font-size:var(--fs-sm);color:var(--c-text-2)}
.answer{border-left:4px solid var(--c-primary);background:var(--c-surface);border-radius:var(--r-md);padding:14px 18px;box-shadow:var(--sh-1);margin:var(--s4) 0}
.answer .k{font:800 11px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--c-primary);display:block;margin-bottom:4px}
.answer a{color:var(--c-primary);font-weight:600}
.meta-line{font-size:var(--fs-sm);color:var(--c-text-2);display:flex;flex-wrap:wrap;gap:6px 14px}

/* hero */
.hero{position:relative;padding:var(--s6) 0 var(--s5);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.badges{display:inline-flex;flex-wrap:wrap;gap:6px 12px;align-items:center;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-pill);padding:6px 14px;font:600 13px var(--f-body);color:var(--c-text-2)}
.badges .ico{color:var(--c-primary)}
.hero h1{margin:var(--s4) 0 var(--s3)}
.hero .lead{font-size:var(--fs-lg);color:var(--c-text-2);max-width:640px;margin-bottom:var(--s5)}
.hero .chips{margin-top:var(--s3)}
.hero-deco{position:absolute;right:-60px;top:-30px;width:520px;opacity:.55;pointer-events:none;z-index:-1}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-top:var(--s5)}
.kpi{display:flex;gap:14px;align-items:center;padding:16px 18px}
.kpi .ic{width:46px;height:46px;border-radius:var(--r-md);background:var(--c-soft);display:grid;place-items:center;color:var(--c-primary);font-size:22px}
.kpi b{display:block;font:800 30px/1 var(--f-title);color:var(--c-navy)}.kpi span{font-size:var(--fs-sm);color:var(--c-text-2)}
.agent-card{padding:var(--s5)}
.agent-card .head{display:flex;align-items:center;gap:10px;background:var(--c-navy);color:var(--c-bg);margin:-24px -24px 16px;padding:14px 20px;border-radius:var(--r-lg) var(--r-lg) 0 0;font:800 17px var(--f-title)}
:root[data-theme="dark"] .agent-card .head{color:#050B1C}
.seg{display:flex;border:1px solid var(--c-border);border-radius:var(--r-md);padding:3px;gap:3px;background:var(--c-bg)}
.seg button{flex:1;border:0;background:transparent;border-radius:9px;padding:8px;font:700 13px var(--f-body);color:var(--c-text-2);cursor:pointer;display:flex;gap:6px;justify-content:center;align-items:center}
.seg button[aria-selected="true"]{background:var(--c-surface);color:var(--c-primary);box-shadow:var(--sh-1)}
pre.code{background:var(--c-code-bg);color:var(--c-code-text);border-radius:var(--r-md);padding:14px 16px;font:500 12.5px/1.55 var(--f-mono);overflow-x:auto;margin:12px 0;position:relative;white-space:pre}
.copy{position:absolute;top:8px;right:8px;border:1px solid #2A3B66;background:#14214A;color:#DCE6FA;border-radius:8px;font:600 11.5px var(--f-body);padding:4px 8px;cursor:pointer}
.status{display:inline-flex;align-items:center;gap:6px;font:700 13px var(--f-body)}.status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-success)}

/* módulos de portada */
.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s5)}
.module{padding:var(--s5);display:flex;flex-direction:column;min-width:0}
.module .mh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:var(--s3)}
.module .mh h2{font-size:19px;display:flex;gap:10px;align-items:center}.module .mh h2 .ico{color:var(--c-primary);font-size:22px}
.rows{list-style:none;margin:0;padding:0}
.rows li a{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 8px;border-radius:var(--r-sm);min-height:48px}
.rows li a:hover{background:var(--c-selected)}.rows li a:hover .nm{color:var(--c-primary)}
.rows .pos{font:700 13px var(--f-mono);color:var(--c-text-2);text-align:right}
.rows .nm{font-weight:650;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.rows .sub{font-size:12px;color:var(--c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.rows .sc{font:700 15.5px var(--f-mono);color:var(--c-navy);text-align:right}
.rows .sc small{display:block;font:500 10.5px var(--f-body);color:var(--c-text-2)}
.minimap{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center}
.citylist{list-style:none;margin:0;padding:0;font-size:13.5px}
.citylist a{display:flex;justify-content:space-between;gap:8px;padding:6px 6px;border-radius:6px}.citylist a:hover{background:var(--c-selected)}
.citylist b{font-family:var(--f-mono)}
.sig{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px 8px;border-radius:var(--r-sm);border-top:1px solid var(--c-border)}
.sig:first-child{border-top:0}.sig:hover{background:var(--c-selected)}
.sig .t{font-weight:650;font-size:14px;line-height:1.35}.sig .m{font-size:12px;color:var(--c-text-2);margin-top:3px}

/* líneas */
.lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.line-card{padding:var(--s5) var(--s5) var(--s4);display:flex;flex-direction:column}
.line-card .lh{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:var(--s3)}
.line-card .lh .ic{width:44px;height:44px;border-radius:var(--r-md);background:var(--c-soft);color:var(--c-primary);display:grid;place-items:center;font-size:22px}
.line-card .lh p{font-size:13px;color:var(--c-text-2);margin-top:3px}
.line-card .foot{margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--c-border);display:flex;justify-content:space-between;font-size:12px;color:var(--c-text-2)}
.about-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s5);align-items:center;padding:var(--s4) var(--s5);margin-top:var(--s4)}
.about-band .links{display:flex;flex-wrap:wrap;gap:6px 18px}.about-band .links a{display:inline-flex;gap:6px;align-items:center;font-weight:700;color:var(--c-primary);font-size:14px}

/* especialidades + territorio */
.spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.spec{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);min-height:120px;transition:border-color var(--t-fast),background var(--t-fast)}
.spec:hover{border-color:var(--c-primary)}.spec[aria-current="true"]{background:var(--c-selected);border-color:var(--c-primary)}
.spec .ic{color:var(--c-primary);font-size:24px}.spec b{font:700 15px/1.3 var(--f-title);color:var(--c-navy)}.spec span{font-size:13px;color:var(--c-text-2);margin-top:auto}
.terr{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s4)}
.mapbox{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.8fr);gap:var(--s4);align-items:center}
svg.map{width:100%;height:auto;display:block}
svg.map path{fill:var(--c-soft);stroke:color-mix(in srgb,var(--c-primary) 35%,var(--c-border));stroke-width:.8}
svg.map .dot{fill:var(--c-primary);opacity:.9;cursor:pointer;transition:r var(--t-med)}svg.map .halo{fill:var(--c-primary);opacity:.14}
svg.map .dot.sel{fill:var(--c-navy)}svg.map text{font:600 15px var(--f-body);fill:var(--c-text)}
.ctable{width:100%;border-collapse:collapse;font-size:14px}.ctable td{padding:7px 4px;border-bottom:1px solid var(--c-border)}.ctable td:last-child{text-align:right;font:700 14px var(--f-mono)}
.ctable a{display:flex;gap:8px;align-items:center}.ctable .b{width:10px;height:10px;border-radius:50%;background:var(--c-primary);flex:none}

/* tabla ranking */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s4) 0}
.filters .grow{flex:1 1 240px}
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}
.tbl th{font:700 11.5px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-2);text-align:left;padding:12px 14px;background:var(--c-soft)}
.tbl td{padding:12px 14px;border-top:1px solid var(--c-border);vertical-align:middle}
.tbl tr:hover td{background:color-mix(in srgb,var(--c-selected) 60%,transparent)}
.tbl .rk{font:800 17px var(--f-title);color:var(--c-text-2);width:56px}.tbl tr.p1 .rk{color:var(--c-gold)}.tbl tr.p2 .rk{color:var(--c-silver)}.tbl tr.p3 .rk{color:var(--c-bronze)}
.tbl .who{display:flex;gap:12px;align-items:center;min-width:0}.tbl .who b{display:block;font-weight:700}.tbl .who small{display:block;color:var(--c-text-2);font-size:12.5px;max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl .num{font:700 16px var(--f-mono);color:var(--c-navy)}
.bd{display:flex;height:8px;width:120px;border-radius:99px;overflow:hidden;background:var(--c-soft);margin-top:5px}
.bd i{display:block;height:100%}.bd .S{background:#236AE0}.bd .I{background:#5BAEF7}.bd .A{background:#001443}.bd .L{background:#A8C4F0}.bd .R{background:#7CC4A4}
.cards-m{display:none}
@media (max-width:860px){.tbl{display:none}.cards-m{display:grid;gap:10px}
  .rcard{display:grid;grid-template-columns:30px 34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;min-height:64px}
  .rcard .rk{font:800 15px var(--f-title);color:var(--c-text-2)}.rcard b{display:block;font-weight:700}.rcard small{display:block;color:var(--c-text-2);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* perfil */
.profile{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s4);align-items:start}
.ph{display:flex;gap:18px;align-items:center}.ph h1{font-size:clamp(28px,4vw,44px)}
.big3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:var(--s5) 0}
.big3>div{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);padding:12px 14px}
.big3 .k{font:800 11px var(--f-body);letter-spacing:.12em;color:var(--c-text-2);text-transform:uppercase}.big3 .v{font:800 28px var(--f-title);color:var(--c-navy)}
.drv{margin:12px 0}.drv .h{display:flex;justify-content:space-between;font-weight:650;font-size:14px}.drv .x{font-size:12.5px;color:var(--c-text-2)}
.bar{height:8px;border-radius:99px;background:var(--c-soft);overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--c-primary),var(--c-sky))}
.ev{list-style:none;margin:0;padding:0}.ev li{padding:12px 0;border-top:1px solid var(--c-border)}.ev li:first-child{border-top:0}
.ev .m{font-size:12px;color:var(--c-text-2);text-transform:uppercase;letter-spacing:.05em}.ev a.t{font-weight:650;color:var(--c-primary)}
svg.ego{width:100%;height:auto}svg.ego line{stroke:var(--c-border);stroke-width:1.5}svg.ego circle{stroke:var(--c-surface);stroke-width:2}svg.ego text{font:600 11px var(--f-body);fill:var(--c-text)}

/* radar */
.radar{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:var(--s4);align-items:start}
.graph{position:relative;padding:var(--s3)}
.graph svg{width:100%;height:auto;display:block;touch-action:none;user-select:none}
.graph .edge{stroke:color-mix(in srgb,var(--c-primary) 30%,var(--c-border));stroke-width:1.2;transition:opacity var(--t-med)}
.graph .edge.hot{stroke:var(--c-primary);stroke-width:2.2}
.graph .node{cursor:pointer;transition:opacity var(--t-med)}.graph .node circle{transition:r var(--t-med)}
.graph .node:focus-visible circle{stroke:var(--c-navy);stroke-width:3}
.graph .node text{font:700 12.5px var(--f-body);fill:var(--c-text);pointer-events:none}
.graph .node text.sub{font:500 11px var(--f-body);fill:var(--c-text-2)}
.graph .dim{opacity:.18}
.graph .ctrls{position:absolute;right:16px;top:16px;display:grid;gap:6px}
.graph .legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--c-text-2);padding:6px 6px 0}
.graph .legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.slist{max-height:820px;overflow:auto;padding:var(--s3)}
.sitem{display:block;padding:12px;border:1px solid transparent;border-radius:var(--r-md);cursor:pointer}
.sitem+.sitem{border-top-color:var(--c-border);border-radius:0}.sitem.sel{border:1px solid var(--c-primary);border-radius:var(--r-md);background:var(--c-selected)}
.sitem .m{font:700 11.5px var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:var(--c-text-2)}
.sitem .t{font:700 15px/1.35 var(--f-title);color:var(--c-navy);margin:3px 0 6px}
.view-toggle{display:none}
@media (max-width:980px){.radar{grid-template-columns:1fr}.view-toggle{display:flex}.radar[data-view="lista"] .graph{display:none}.radar[data-view="red"] .slist{max-height:none}}

/* faq + participación */
.faq-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.faq-item{border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-md);margin:10px 0;transition:border-color var(--t-fast)}
.faq-item.open{border-color:var(--c-primary)}
.faq-item h3{margin:0}
.faq-item button.q{all:unset;box-sizing:border-box;display:flex;gap:12px;align-items:center;width:100%;padding:16px 18px;cursor:pointer;font:700 15.5px var(--f-title);color:var(--c-navy)}
.faq-item button.q:focus-visible{outline:2px solid var(--c-primary);border-radius:var(--r-md)}
.faq-item .plus{width:24px;height:24px;flex:none;border:1.5px solid var(--c-primary);border-radius:50%;display:grid;place-items:center;color:var(--c-primary);font:700 16px/1 var(--f-body)}
.faq-item .a{padding:0 18px 16px 54px;display:none}.faq-item.open .a{display:block}
.faq-item .a .links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}.faq-item .a .links a{font-weight:700;color:var(--c-primary);font-size:14px;display:inline-flex;gap:6px;align-items:center}
.faq-item .a .m{font-size:12px;color:var(--c-text-2);margin-top:8px}
.side-graph svg{width:100%;height:auto}.side-graph .n{fill:var(--c-soft);stroke:var(--c-primary);stroke-width:1.5}.side-graph .n.hot{fill:var(--c-primary)}
.side-graph line{stroke:color-mix(in srgb,var(--c-primary) 35%,var(--c-border));stroke-width:1.2}.side-graph line.hot{stroke:var(--c-primary);stroke-width:2.4}
.side-graph text{font:700 11.5px var(--f-body);fill:var(--c-text)}
.connect{display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));gap:var(--s4);align-items:stretch}
.ccard{padding:var(--s5);display:flex;flex-direction:column;gap:6px}.ccard .ic{font-size:26px;color:var(--c-primary)}.ccard b{font:800 17px var(--f-title);color:var(--c-navy)}.ccard a{margin-top:auto;font-weight:700;color:var(--c-primary);display:inline-flex;gap:6px;align-items:center}
form.req{display:grid;gap:14px;max-width:720px}form.req label{display:grid;gap:6px;font-weight:650;font-size:14px}
.types{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.types label{display:flex!important;gap:10px;align-items:flex-start;border:1px solid var(--c-border);border-radius:var(--r-md);padding:12px;cursor:pointer;background:var(--c-surface);font-weight:600}
.types input{margin-top:3px}.types label:has(input:checked){border-color:var(--c-primary);background:var(--c-selected)}
.ticket{border:1px dashed var(--c-primary);background:var(--c-selected);border-radius:var(--r-md);padding:16px}
.timeline{list-style:none;margin:10px 0 0;padding:0;border-left:2px solid var(--c-border)}.timeline li{padding:4px 0 10px 14px;position:relative;font-size:14px}
.timeline li:before{content:"";position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--c-primary)}

/* prosa y manifiesto */
.prose{max-width:780px}.prose h2{font-size:24px;margin:34px 0 10px}.prose p,.prose li{margin:0 0 12px;font-size:16.5px;line-height:1.7}
.manifesto{max-width:760px;margin:0 auto;padding:var(--s7) 0}
.manifesto .q{font:800 clamp(30px,5vw,54px)/1.08 var(--f-title);color:var(--c-navy);letter-spacing:-.025em}
.manifesto p{font-size:19px;line-height:1.75;margin:0 0 18px;color:var(--c-text)}.manifesto p.lead{color:var(--c-primary);font-weight:700}
.dims{display:flex;height:46px;border-radius:var(--r-md);overflow:hidden;margin:16px 0}
.dims button{border:0;color:#fff;font:800 14px var(--f-title);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.dims button[aria-pressed="true"]{box-shadow:inset 0 0 0 3px #fff}

/* footer */
footer.site{margin-top:var(--s8);border-top:1px solid var(--c-border);background:var(--c-surface)}
footer.site .cols{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:var(--s5);padding:var(--s6) 0}
footer.site h4{font:800 13px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-2);margin-bottom:10px}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:14px}
footer.site .legal{border-top:1px solid var(--c-border);padding:16px 0 28px;font-size:12.5px;color:var(--c-text-2);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
footer.site .motto{font:800 16px var(--f-title);color:var(--c-navy);margin-top:10px}

/* responsive general */
@media (max-width:1100px){.hero-grid{grid-template-columns:minmax(0,1fr)}.modules{grid-template-columns:1fr 1fr}.lines{grid-template-columns:1fr 1fr}.spec-grid{grid-template-columns:repeat(2,1fr)}.terr{grid-template-columns:minmax(0,1fr)}.connect{grid-template-columns:1fr 1fr}footer.site .cols{grid-template-columns:1fr 1fr}.faq-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){.kpis{grid-template-columns:1fr 1fr}.modules,.lines{grid-template-columns:1fr}.profile{grid-template-columns:1fr}.mapbox{grid-template-columns:1fr}.minimap{grid-template-columns:1fr 120px}
  .about-band{grid-template-columns:1fr}.connect{grid-template-columns:1fr}.big3 .v{font-size:22px}.ph{flex-direction:column;align-items:flex-start}.kpi b{font-size:24px}.kpi .ic{width:38px;height:38px}}
@media (max-width:420px){.spec-grid{grid-template-columns:1fr 1fr}.spec{min-height:104px;padding:12px}.kpi{padding:12px}.minimap{grid-template-columns:1fr}footer.site .cols{grid-template-columns:1fr}}
@media print{.top,footer.site,.filters,.no-print{display:none!important}body{background:#fff}.card,.tbl{box-shadow:none}}
.sig .t,.sig .m{display:block}.sig .m{margin-top:3px}
.hero-grid>*,.terr>*,.faq-grid>*,.profile>*,.radar>*{min-width:0}.brand b{white-space:nowrap}pre.code{max-width:100%;overflow-x:auto}
.kpis,.big3{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.kpis>*,.big3>*{min-width:0}.filters select{max-width:100%;min-width:0}.agent-card .btn.ghost{white-space:normal;text-align:left}
@media (max-width:767px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.big3{grid-template-columns:1fr}.filters select,.filters .grow{flex:1 1 100%}.kpi .ic{display:none}}
.sec-head{flex-wrap:wrap;gap:12px}.sec-head>div{min-width:0}
@media (max-width:420px){header .brand span{display:none}.top .bar{gap:8px}.hero-deco{opacity:.35}}
@media (max-width:420px){#theme{display:none}.top .nav-b{padding-inline:12px}}
/* ---------- capa "en vivo" ---------- */
.hero-deco .hl-edge{stroke:var(--c-sky);stroke-width:1.3;fill:none;opacity:.55;stroke-dasharray:4 7;animation:flow 6s linear infinite}
.hero-deco .hn{transform-box:fill-box;transform-origin:center;animation:breathe 3.4s ease-in-out infinite}
.hero-deco .hn-halo{fill:var(--c-sky);opacity:.18;transform-box:fill-box;transform-origin:center;animation:halo 3.4s ease-out infinite}
.hero-deco .pulse-dot{fill:var(--c-primary);filter:drop-shadow(0 0 4px var(--c-sky))}
@keyframes flow{to{stroke-dashoffset:-110}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
@keyframes halo{0%{transform:scale(.6);opacity:.35}100%{transform:scale(1.8);opacity:0}}
.live{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:10px 14px;margin-top:var(--s4);overflow:hidden}
.live-k{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px}.live-k b{color:var(--c-text);font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:12px}
.live-dot{width:9px;height:9px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 0 rgba(22,163,74,.55);animation:ping 1.8s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(22,163,74,.55)}80%,100%{box-shadow:0 0 0 9px rgba(22,163,74,0)}}
.ticker{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker .track{display:flex;gap:34px;width:max-content;animation:marquee 70s linear infinite}
.ticker:hover .track,.ticker:focus-within .track{animation-play-state:paused}
.ticker a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:14px;font-weight:600;color:var(--c-text)}.ticker a:hover{color:var(--c-primary)}
.lt-d{font:600 12px var(--f-mono);color:var(--c-primary)}.lt-m{color:var(--c-text-2);font-weight:500}
.lt-new{display:inline-block;background:#DCFCE7;color:#166534;font:800 10.5px/1 var(--f-body);text-transform:uppercase;letter-spacing:.05em;padding:4px 7px;border-radius:999px;margin-right:6px;vertical-align:2px}
@keyframes marquee{to{transform:translateX(-50%)}}
svg.map .halo{transform-box:fill-box;transform-origin:center;animation:halo 2.8s ease-out infinite}
svg.map a:nth-child(3n) .halo,svg.map g:nth-child(3n) .halo{animation-delay:.9s}svg.map a:nth-child(3n+1) .halo{animation-delay:1.7s}
.radar .graph .edge{stroke-dasharray:3 6;animation:flow 9s linear infinite}
.radar .graph circle[fill="var(--c-navy)"]{animation:breathe 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.side-graph line{stroke-dasharray:3 5;animation:flow 10s linear infinite}
.kpi b{font-variant-numeric:tabular-nums}
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.rv.in{opacity:1;transform:none}
.card{transition:transform .2s ease,box-shadow .2s ease}.module:hover,.line-card:hover,.spec:hover,.ccard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
@media (max-width:767px){.live{grid-template-columns:1fr;gap:8px}.ticker .track{animation-duration:55s}}
@media (prefers-reduced-motion:reduce){.ticker{overflow-x:auto}.rv{opacity:1;transform:none}}
/* ---------- hero vivo + móvil compacto ---------- */
.hero{isolation:isolate}
.hero-deco{width:820px;right:-160px;top:10px;opacity:.6;z-index:-1}
@media (max-width:1100px){.hero-deco{width:620px;right:-200px;top:-20px;opacity:.45}}
@media (max-width:767px){
  .hero{padding-top:var(--s4)}
  .hero-deco{width:520px;right:-170px;top:-40px;opacity:.5}
  .hero h1{font-size:clamp(30px,8.6vw,40px)}
  .hero .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}
  .hero .chips::-webkit-scrollbar{display:none}.hero .chips .chip{flex:0 0 auto}
  .agent-card{padding:14px 16px}.agent-card>p,.agent-card .seg,.agent-card #ag-body{display:none}
  .agent-card .head{margin-bottom:6px}
  .modules,.lines{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:4px 16px 14px;scrollbar-width:none}
  .modules::-webkit-scrollbar,.lines::-webkit-scrollbar{display:none}
  .modules>*,.lines>*{flex:0 0 88%;scroll-snap-align:center;min-width:0}
  .spec-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;scrollbar-width:none;margin-inline:-6px;padding:2px 6px 10px}
  .spec-grid>*{flex:0 0 46%;scroll-snap-align:start}
  .swipe-hint{display:flex}
}
.swipe-hint{display:none;align-items:center;gap:6px;font-size:12.5px;color:var(--c-text-2);margin:6px 0 2px}
.swipe-hint i{display:inline-block;width:18px;height:2px;background:var(--c-primary);border-radius:2px;animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}
@media (min-width:1101px){.hero-deco{width:760px;right:-120px;top:120px;opacity:.7}.agent-card{background:color-mix(in srgb,var(--c-surface) 82%,transparent);backdrop-filter:blur(6px)}}
@media (max-width:767px){.modules,.lines{align-items:flex-start}}
/* =================== v3 — diseño según referencias =================== */
.hero3{position:relative;isolation:isolate;overflow:hidden;padding:28px 0 34px;margin-bottom:-6px}
.hero-photo{position:absolute;inset:0 0 0 38%;background:url(/assets/hero.jpg) center 40%/cover no-repeat;z-index:-2;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34%),linear-gradient(0deg,transparent 0,#000 22%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 34%),linear-gradient(0deg,transparent 0,#000 22%);mask-composite:intersect}
.hero3 .hero-deco{left:auto;right:-60px;top:20px;width:640px;opacity:.55;z-index:-1}
.hero3-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--s6);align-items:center;min-height:420px}
.hero3 h1{font-size:clamp(34px,4.4vw,58px);line-height:1.04;margin:16px 0 12px;max-width:760px}
.hero3 .lead{max-width:640px}
.field.big{max-width:820px;padding:8px 8px 8px 18px;box-shadow:var(--sh-2)}.field.big input{font-size:16px}
.temas{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.temas>span{font-weight:700;font-size:14px;margin-right:4px}
.h-right{display:flex;justify-content:flex-end;align-self:start;padding-top:90px}
.ask{width:100%;max-width:340px;background:rgba(10,30,80,.42);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(255,255,255,.45);border-radius:20px;padding:14px;color:#fff;box-shadow:0 20px 50px rgba(0,20,67,.28)}
.ask-h{display:flex;gap:8px;align-items:center;font-weight:700;font-size:14px;margin-bottom:10px}.ask-h .ico:last-child{color:#FDE68A}
.ask-f{display:flex;background:#fff;border-radius:12px;overflow:hidden}.ask-f input{flex:1;border:0;padding:11px 12px;font:600 13px var(--f-body);color:#07142F;min-width:0;background:#fff}
.ask-f button{border:0;background:#fff;color:var(--c-primary);padding:0 12px;cursor:pointer;border-left:1px solid #E5ECF6}
.ask-r{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:12px;font-size:12.5px;line-height:1.45}
.ask-r .ic{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.95);color:var(--c-primary);display:grid;place-items:center}
.ask-r b{font-size:12px}.ask-r p{margin:2px 0 4px}.ask-r a{color:#BFDBFE;font-weight:700;font-size:12px}
.kpis{position:relative;z-index:2}
.kpi{position:relative;padding:18px 20px;gap:16px}.kpi .ic{width:auto;height:auto;background:none;font-size:42px;color:var(--c-primary)}
.kpi .ic .ico{stroke-width:1.7}.kpi b{font-size:34px}
.tip{display:inline-flex;vertical-align:-2px;color:var(--c-text-2);cursor:help;position:relative}.tip .ico{font-size:14px}
.tip:hover::after,.tip:focus::after{content:attr(data-tip);position:absolute;left:50%;bottom:130%;transform:translateX(-50%);width:220px;background:#07142F;color:#fff;font-size:12px;line-height:1.4;padding:8px 10px;border-radius:8px;z-index:20;font-weight:500}
.delta{position:absolute;top:14px;right:14px;display:inline-flex;gap:4px;align-items:center;background:#DCFCE7;color:#166534;font:700 12px var(--f-body);padding:4px 8px;border-radius:999px}.delta .ico{font-size:13px}
.grid4{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.05fr);gap:var(--s4);margin-top:var(--s4)}
.grid4 .module{display:flex;flex-direction:column;padding:18px}
.module .mh{display:flex;align-items:center;gap:10px;margin-bottom:12px}.module .mh h2{font-size:19px;display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.mi{color:var(--c-primary);font-size:26px;display:inline-flex}.top10{font-weight:700;font-size:13px;color:var(--c-text)}
.pill-l{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--c-border);border-radius:999px;padding:4px 10px;font:700 12.5px var(--f-body);color:var(--c-primary);white-space:nowrap}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tabs button{border:1px solid var(--c-border);background:var(--c-surface);border-radius:8px;padding:6px 11px;font:600 12.5px var(--f-body);color:var(--c-text);cursor:pointer}
.tabs button[aria-selected=true],.tabs button[aria-pressed=true]{background:var(--c-navy);border-color:var(--c-navy);color:#fff}
:root[data-theme=dark] .tabs button[aria-selected=true]{color:#07142F}
table.mt{width:100%;border-collapse:collapse;font-size:13px}table.mt th{text-align:left;font-weight:700;font-size:12px;color:var(--c-text);padding:6px 4px;border-bottom:1px solid var(--c-border)}
table.mt td{padding:8px 4px;border-bottom:1px solid var(--c-border);vertical-align:middle}table.mt td:first-child{width:22px;font-weight:700}
table.mt td a{display:inline-flex;gap:8px;align-items:center;font-weight:600}table.mt td a .ico{color:var(--c-primary)}table.mt td.n{font:800 15px var(--f-mono)}
table.mt td:nth-child(3){color:var(--c-text-2);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbar{display:block;width:70px;height:6px;border-radius:6px;background:var(--c-soft);overflow:hidden}.sbar i{display:block;height:100%;background:linear-gradient(90deg,#22C55E,#16A34A);border-radius:6px}
.mm{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px;align-items:center;flex:1}
.mm-leg{display:grid;gap:9px;font-size:13px}.mm-leg b{font-size:13px;margin-bottom:2px}.mm-leg a{display:flex;align-items:center;gap:8px}.mm-leg a span{margin-left:auto;font:700 12px var(--f-mono);color:var(--c-text-2)}.mm-leg i{width:11px;height:11px;border-radius:50%}
svg.map.glow path{fill:#E6EEFB;stroke:#fff;stroke-width:1.2}:root[data-theme=dark] svg.map.glow path{fill:#132650;stroke:#0B1631}
svg.map.glow .gl-e{stroke:#5BAEF7;stroke-opacity:.75;stroke-dasharray:4 5;animation:flow 7s linear infinite}
svg.map.glow .halo{fill:#5BAEF7;opacity:.22}
.hoy{display:inline-flex;align-items:center;gap:6px;background:var(--c-soft);color:var(--c-primary);font:700 12px var(--f-body);padding:5px 10px;border-radius:999px}
.rlist{display:grid;gap:10px;flex:1}.ritem{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;padding:4px;border-radius:12px}.ritem:hover{background:var(--c-selected)}
.ritem .thumb{width:96px;height:62px;border-radius:10px;display:block}.ritem .t{display:block;font-weight:700;font-size:13.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ritem .m{display:block;font-size:11.5px;color:var(--c-text-2);margin-top:3px}
.btn.outline{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-primary);justify-content:center;margin-top:12px;font-weight:700}
.btn.soft{background:var(--c-soft);color:var(--c-primary);justify-content:center;margin-top:12px;font-weight:700}.btn.wide{width:100%}
.grid4 .agent-card{padding:0;overflow:hidden}.grid4 .agent-card .head{background:var(--c-navy);color:#fff;padding:14px 18px;font:700 17px var(--f-title);display:flex;gap:10px;align-items:center}
:root[data-theme=dark] .grid4 .agent-card .head{background:#1B3A8A}
.grid4 .agent-card>*:not(.head){margin-left:16px;margin-right:16px}.grid4 .agent-card .btn.soft{margin-bottom:16px}
.grid4 .agent-card .seg button{font-size:12.5px;padding:7px 6px}
.status{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px;margin-top:12px}.status::before{content:"";width:9px;height:9px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 3px #DCFCE7}
.feats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:var(--s4);padding:18px 8px}
.feats a{display:flex;gap:12px;align-items:flex-start;padding:4px 16px;border-left:1px solid var(--c-border)}.feats a:first-child{border-left:0}
.feats .fi{font-size:30px;color:var(--c-primary);display:inline-flex}.feats b{display:block;font:800 18px var(--f-title);color:var(--c-navy)}.feats small{display:block;font-size:12.5px;color:var(--c-text-2);line-height:1.4;margin-top:3px}
.feats a:hover b{color:var(--c-primary)}
/* FAQ v3 */
.faq3-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.faq-t{font-size:clamp(28px,3.4vw,44px);margin:8px 0 6px}
.fbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:18px 0 10px}.fbar .field{flex:1 1 420px;padding:6px 6px 6px 14px}.fbar .pills button{border-radius:999px;padding:8px 14px;font-size:13px}
.fq{border:1px solid var(--c-border);background:var(--c-surface);border-radius:14px;margin-bottom:10px;transition:border-color .2s,background .2s}
.fq.open{border-color:#93B4F0;background:linear-gradient(180deg,#F3F7FF,var(--c-surface));box-shadow:0 8px 24px rgba(35,106,224,.08)}
:root[data-theme=dark] .fq.open{background:var(--c-selected)}
.fq h3{margin:0}.fq .q{display:flex;gap:14px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:15px 18px;font:700 16px var(--f-title);color:var(--c-text);cursor:pointer}
.fq .pm{flex:0 0 22px;height:22px;border:2px solid var(--c-primary);border-radius:50%;position:relative}.fq .pm::before,.fq .pm::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;background:var(--c-primary);transform:translate(-50%,-50%)}
.fq .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}.fq.open .pm::after{transform:translate(-50%,-50%) rotate(0)}
.fq .q>span:nth-child(2){flex:1}.fq .chev{width:9px;height:9px;border-right:2px solid var(--c-text-2);border-bottom:2px solid var(--c-text-2);transform:rotate(45deg);opacity:0;transition:transform .2s}.fq.open .chev{opacity:1;transform:rotate(-135deg)}
.fq .a{display:none;padding:0 18px 16px 54px}.fq.open .a{display:block}.fq .a p{color:var(--c-text-2);line-height:1.6}
.fq .fl{display:flex;flex-wrap:wrap;gap:8px 26px;margin:12px 0 8px}.fq .fl a{display:inline-flex;gap:7px;align-items:center;color:var(--c-primary);font-weight:700;font-size:14px}
.fq .m{font-size:12px!important;margin-top:4px}
.faq-side{overflow:hidden;position:sticky;top:96px}.faq-side .art{background:linear-gradient(180deg,#F3F7FF,#EAF2FF);border-bottom:1px solid var(--c-border)}:root[data-theme=dark] .faq-side .art{background:#0F1E42}
.brain{display:block;width:100%}.brain .be{stroke:#3B82F6;stroke-width:1.3;opacity:.7}.brain .bl{stroke:#93C5FD;stroke-dasharray:3 4;animation:flow 8s linear infinite}
.brain .bn{fill:#236AE0;stroke:#fff;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:breathe 2.8s ease-in-out infinite}
.faq-side .pad{padding:22px}.faq-side h3{font-size:22px;margin-bottom:8px}.btn.big{width:100%;justify-content:center;padding:15px;font-size:16px;border-radius:999px;margin-top:16px;background:linear-gradient(90deg,#1D5FE0,#0B3FB3)}
/* Conéctate v3 */
.con3-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:var(--s4);align-items:center}
.con3 h2{font-size:clamp(26px,3vw,38px);margin:8px 0 6px}
.cc{display:flex;gap:14px;padding:20px}.cc .ci{font-size:32px;color:var(--c-primary)}.cc b{display:block;font:800 17px var(--f-title)}.cc small{display:block;color:var(--c-text-2);font-size:13px;margin:4px 0 10px}.cc em{font-style:normal;color:var(--c-primary);font-weight:700;font-size:14px;display:inline-flex;gap:6px;align-items:center}
.infobar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;padding:14px 22px;margin-top:var(--s5)}
.ib-l{display:flex;gap:12px;align-items:center;padding-right:22px;border-right:1px solid var(--c-border)}.ib-i{width:44px;height:44px;border-radius:50%;background:var(--c-soft);color:var(--c-primary);display:grid;place-items:center;font-size:22px}
.ib-l b{display:block;font:800 17px var(--f-title)}.ib-l small{display:block;font-size:12px;color:var(--c-text-2);max-width:170px}.infobar p{color:var(--c-text-2);font-size:14px}
.soc{display:flex;gap:18px}.soc a{color:var(--c-primary);font-size:24px;display:inline-flex}
/* Radar v3 */
.radar3{background:radial-gradient(1200px 500px at 85% -10%,rgba(91,174,247,.22),transparent 60%),radial-gradient(800px 600px at 10% 60%,rgba(35,106,224,.08),transparent 60%)}
.r3-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s5);align-items:start;margin-top:8px}.r3-head h1{font-size:clamp(30px,3.8vw,50px);margin:8px 0 8px}.r3-head p{max-width:720px}
.r3-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi.sm{padding:12px 14px;gap:10px}.kpi.sm .ic{font-size:26px}.kpi.sm b{font-size:22px}.kpi.sm span{font-size:12px}
.r3-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:22px 0 10px}.r3-filters .field{flex:1 1 360px;padding:5px 5px 5px 14px;background:var(--c-surface)}
.sel{display:inline-flex;align-items:center;gap:6px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:0 10px;box-shadow:var(--sh-1)}.sel .ico{color:var(--c-primary)}.sel select{border:0;background:transparent;padding:11px 2px;font:600 13.5px var(--f-body);color:var(--c-text);max-width:210px}
.vt{display:flex;border:1px solid var(--c-border);border-radius:12px;overflow:hidden;margin-left:auto}.vt button{border:0;background:var(--c-surface);padding:10px 14px;font-size:20px;color:var(--c-text);cursor:pointer}.vt button[aria-selected=true]{background:var(--c-primary);color:#fff}
.r3{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--s4);align-items:start}
.r3[data-view=red]{grid-template-columns:1fr}.r3[data-view=red] .r3-list{display:none}.r3[data-view=lista]{grid-template-columns:1fr}.r3[data-view=lista] .r3-graph{display:none}
.r3-graph{position:relative}.r3-graph svg{width:100%;height:auto;display:block;overflow:visible}
.r3-graph .edge{stroke:#93C5FD;stroke-width:2.2;fill:none;stroke-dasharray:5 6;animation:flow 9s linear infinite;opacity:.8}.r3-graph .edge.faint{stroke-width:1;opacity:.35}.r3-graph .edge.hot{stroke:var(--c-primary);opacity:1;stroke-width:2.6}
.r3-graph .dust{fill:#5BAEF7;opacity:.4;animation:twinkle 3.6s ease-in-out infinite}@keyframes twinkle{50%{opacity:.08}}
.r3-graph .core{transform-box:fill-box;transform-origin:center;animation:breathe 4s ease-in-out infinite}.core-t{fill:#fff;font:800 26px var(--f-title)}
.sph{cursor:pointer;transform-box:fill-box;transform-origin:center;animation:float 5s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}
.sph:hover circle:nth-child(2),.sph:focus circle:nth-child(2),.sph.on circle:nth-child(2){stroke:#fff;stroke-width:4}.sph.dim{opacity:.35}
.sl{font:800 17px var(--f-title);fill:var(--c-text)}.ss{font:600 14px var(--f-body);fill:var(--c-text-2)}
.sdot{cursor:pointer}.sdot circle{fill:#5BAEF7;stroke:#fff;stroke-width:2}.sdot.on circle{fill:var(--c-primary)}
.r3-graph .ctrls{position:absolute;right:6px;top:6px}
.r3-list{padding:18px}.r3-list .mh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.r3-list h2{font-size:20px;display:flex;gap:8px;align-items:center}.r3-list h2 .ico{color:var(--c-primary)}
.r3-item{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 6px;border-top:1px solid var(--c-border);border-radius:10px;cursor:pointer}.r3-item:first-child{border-top:0}
.r3-item:hover,.r3-item.sel{background:var(--c-selected)}.r3-item .thumb{width:104px;height:70px;border-radius:10px}
.r3-item .m{font:700 11.5px var(--f-body);color:var(--c-text-2);text-transform:uppercase;letter-spacing:.02em}.r3-item .t{display:block;font-weight:700;font-size:15px;line-height:1.3;margin:3px 0 6px;color:var(--c-text)}.r3-item .t:hover{color:var(--c-primary)}
.r3-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between}.r3-meta .who{display:inline-flex;gap:5px;align-items:center;font-size:13px;color:var(--c-text-2)}
.tags{display:flex;gap:6px;flex-wrap:wrap}.tg{display:inline-flex;gap:4px;align-items:center;font:700 11.5px var(--f-body);color:var(--tc);background:color-mix(in srgb,var(--tc) 12%,var(--c-surface));padding:4px 9px;border-radius:999px}
.r3-item .ext{color:var(--c-text-2);font-size:18px;align-self:start;padding:4px}.r3-item .ext:hover{color:var(--c-primary)}
.r3-legend{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:22px;align-items:center;padding:16px 22px;margin-top:var(--s4)}
.r3-legend b{display:flex;gap:8px;align-items:center;font-size:17px;padding-right:20px;border-right:1px solid var(--c-border)}.r3-legend b .ico{color:var(--c-primary);font-size:22px}.r3-legend p{font-size:13.5px;color:var(--c-text-2)}
.lg{display:inline-flex;gap:10px;align-items:center;font-weight:600;font-size:14px;white-space:nowrap}.lg-s{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#3B82F6 30%,#1D4ED8)}.lg-d{width:9px;height:9px;border-radius:50%;background:#5BAEF7}.lg-l{width:52px;height:2px;background:#93C5FD}
/* responsive v3 */
@media (max-width:1280px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.feats{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:16px}.feats a:nth-child(4){border-left:0}}
@media (max-width:1100px){.hero3-in{grid-template-columns:minmax(0,1fr)}.h-right{justify-content:flex-start;padding-top:0}.hero-photo{inset:0 0 40% 20%}
  .faq3-grid{grid-template-columns:minmax(0,1fr)}.faq-side{position:static}.con3-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.con3-grid>div:first-child{grid-column:1/-1}
  .r3-head{grid-template-columns:minmax(0,1fr)}.r3{grid-template-columns:minmax(0,1fr)}.r3-legend{grid-template-columns:minmax(0,1fr)}.r3-legend b{border:0}}
@media (max-width:767px){
  .hero3{padding-top:14px}.hero-photo{inset:auto 0 0 0;height:300px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 45%);mask-image:linear-gradient(180deg,transparent 0,#000 45%);-webkit-mask-composite:source-over;mask-composite:add;opacity:.9}
  .hero3-in{min-height:0;gap:18px}.hero3 h1{font-size:clamp(30px,8.4vw,40px)}
  .temas{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.temas::-webkit-scrollbar{display:none}.temas .chip{flex:0 0 auto}
  .ask{max-width:none}
  .kpi{padding:14px}.kpi .ic{display:none}.kpi b{font-size:26px}.delta{position:static;margin-top:6px;font-size:11px}.kpi{flex-direction:column;align-items:flex-start;gap:4px}
  .grid4{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:4px 16px 14px;gap:12px;align-items:flex-start;scrollbar-width:none}.grid4::-webkit-scrollbar{display:none}
  .grid4>*{flex:0 0 88%;scroll-snap-align:center;min-width:0}
  .feats{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 4px}.feats a{border-left:0;padding:8px 10px}
  .fbar .field{flex-basis:100%}.fbar .pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.fq .q{font-size:15px;padding:13px 14px}.fq .a{padding:0 14px 14px 14px}
  .con3-grid{grid-template-columns:minmax(0,1fr)}.infobar{grid-template-columns:minmax(0,1fr);gap:12px}.ib-l{border:0}
  .r3-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sel{flex:1 1 46%}.sel select{max-width:none;width:100%}.vt{margin-left:0}
  .r3-item{grid-template-columns:76px minmax(0,1fr) auto;gap:10px}.r3-item .thumb{width:76px;height:54px}.r3-item .t{font-size:14px}
  .sl{font-size:22px}.ss{font-size:17px}}
@media (max-width:420px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.feats{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.sph,.r3-graph .core{animation:none}}
.ask-btn{border:1.5px solid #9CC0F5;background:var(--c-surface);color:var(--c-primary);font-weight:700}.ask-btn .ico{color:#3B82F6}
.nav-b{display:inline-flex;gap:8px;align-items:center}
.askdlg{border:0;border-radius:22px;padding:0;background:transparent;max-width:440px;width:calc(100% - 32px)}.askdlg::backdrop{background:rgba(0,20,67,.45);backdrop-filter:blur(3px)}
.askdlg #askslot{background:linear-gradient(160deg,#0B3FB3,#001443);border-radius:22px;padding:18px}.askdlg .ask{max-width:none;background:transparent;border:0;box-shadow:none;padding:0}.askdlg .muted{color:#BFD3F5}
.askdlg .x{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.15);color:#fff;border:0}
@media (max-width:1100px){.ask-btn .t{display:none}.ask-btn{padding:10px}}
@media (max-width:420px){.nav-b .t{display:none}.nav-b{padding:10px 12px}}
:root{--maxw:1580px}
.grid4 .agent-card .head{margin:0;border-radius:0}
.grid4 .agent-card>p.muted{margin:12px 16px!important}
.delta{position:static;margin-left:auto;align-self:flex-start;white-space:nowrap}
.module .mh h2{font-size:18px;white-space:nowrap}
@media (max-width:767px){.grid4 .agent-card>p.muted{display:block}.grid4 .agent-card .seg{display:flex}.grid4 .agent-card #ag-body{display:block}.delta{margin-left:0}}
.mm svg.map{width:100%;height:auto;max-height:340px;display:block}.minimap svg.map.glow{width:100%;height:auto}
.rlist{flex:0 0 auto;align-content:start}.ritem{align-items:start}.ritem>.ico{align-self:center}
.kpi>div{min-width:0}
.r3-filters .field input,.fbar .field input{border:0;outline:0;background:transparent;box-shadow:none}
@media (max-width:767px){.temas>span{display:none}.hero3 .hero-deco{opacity:.28}.r3-list{order:-1}.r3-legend .lg{display:none}}
/* Pulso del ecosistema */
.pulse{margin-top:var(--s4);padding:22px;background:linear-gradient(160deg,#071A45,#001443 55%,#0A2A6E);color:#E8EEFA;border:0;overflow:hidden;position:relative}
.pulse::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(91,174,247,.06) 0 1px,transparent 1px 60px),repeating-linear-gradient(0deg,rgba(91,174,247,.05) 0 1px,transparent 1px 44px);pointer-events:none}
.pulse>*{position:relative}.pulse .muted{color:#9FB6E0}.pulse h2{color:#fff;font-size:clamp(24px,2.6vw,32px);margin:6px 0}
.pu-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.pu-head p{max-width:680px;font-size:14px}
.pu-live{display:inline-flex;gap:8px;align-items:center;font:800 12px var(--f-body);letter-spacing:.08em;color:#86EFAC}
.pu-clock{text-align:right;display:grid;gap:2px}.pu-clock>b{font:700 34px/1 var(--f-mono);color:#fff;letter-spacing:.02em}.pu-clock small{color:#9FB6E0;font-size:12px}.pu-clock span{font-size:13px;color:#C7D7F5;margin-top:6px}.pu-clock span b{font-family:var(--f-mono);color:#FDE68A}
.pu-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:18px;margin-top:18px}
.pu-total{display:flex;flex-direction:column;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(147,197,253,.22);border-radius:16px;padding:18px;color:#fff}
.pu-total small{color:#9FB6E0;font-weight:600}.pu-total>b{font:800 54px/1 var(--f-title)}.pu-total .spk{width:100%;height:80px;margin-top:auto}
.pu-tbl{display:grid;gap:2px}.pu-r{display:grid;grid-template-columns:minmax(0,1.6fr) 70px 90px minmax(0,1.2fr);gap:12px;align-items:center;padding:8px 12px;border-radius:10px;color:#E8EEFA;font-size:14px;transition:background .4s}
.pu-r i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:9px}.pu-r .n{font:700 16px var(--f-mono);text-align:right}
.pu-h{font:700 11.5px var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:#9FB6E0}.pu-h span:nth-child(2){text-align:right}
a.pu-r:hover,a.pu-r.hot{background:rgba(91,174,247,.16)}a.pu-r.hot .n{color:#FDE68A}
.chg{font:700 13px var(--f-mono);white-space:nowrap}.chg.up{color:#4ADE80}.chg.dn{color:#F87171}.chg.eq{color:#9FB6E0}
.spk{width:100%;height:34px;display:block;overflow:visible}.spk .ln{fill:none;stroke-width:2;stroke-linejoin:round;stroke-dasharray:400;stroke-dashoffset:400;animation:draw 1.6s ease forwards}
.spk.up .ln{stroke:#4ADE80}.spk.dn .ln{stroke:#F87171}.spk .ar{stroke:none}.spk.up .ar{fill:rgba(74,222,128,.12)}.spk.dn .ar{fill:rgba(248,113,113,.12)}
.spk .dt{fill:#fff;animation:ping2 1.6s infinite}.spk.up .dt{stroke:#4ADE80}.spk.dn .dt{stroke:#F87171}@keyframes draw{to{stroke-dashoffset:0}}@keyframes ping2{50%{r:5;opacity:.6}}
.pu-cities{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px}.pu-cities a{display:flex;gap:8px;align-items:baseline;background:rgba(255,255,255,.05);border:1px solid rgba(147,197,253,.18);border-radius:12px;padding:10px 12px;color:#E8EEFA}
.pu-cities span{font-weight:600;font-size:13px;flex:1}.pu-cities b{font:700 16px var(--f-mono)}
.pu-note{font-size:11.5px;color:#7F96C3;margin-top:12px}
@media (max-width:1100px){.pu-main{grid-template-columns:minmax(0,1fr)}.pu-cities{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.pulse{padding:16px;margin-inline:-4px}.pu-head{flex-direction:column}.pu-clock{text-align:left}.pu-clock>b{font-size:28px}
  .pu-r{grid-template-columns:minmax(0,1.5fr) 44px 70px minmax(0,1fr);gap:8px;padding:8px 6px;font-size:13px}.pu-cities{grid-template-columns:repeat(2,minmax(0,1fr))}.pu-total>b{font-size:44px}}
@media (prefers-reduced-motion:reduce){.spk .ln{stroke-dashoffset:0}}
@media (max-width:767px){.pu-h{font-size:10px;letter-spacing:.03em}.pu-total .spk{height:60px}}
