@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=Space+Grotesk:wght@500;600&display=swap');*{box-sizing:border-box}body{margin:auto;max-width:1500px;padding:0 42px;background:#07100e;color:#f2f6f4;font-family:DM Sans;background-image:radial-gradient(circle at 75% 0,#173128 0,transparent 32%)}header{height:88px;border-bottom:1px solid #20332e;display:flex;align-items:center;gap:35px}.brand{font:700 19px Space Grotesk;letter-spacing:3px;margin-right:auto}.brand small{display:block;color:#82978f;font:400 8px DM Sans;letter-spacing:2px}button{background:none;border:0;color:#8fa39c;padding:10px;cursor:pointer}button:hover{color:#b9f34a}.hero{display:grid;grid-template-columns:1.5fr .55fr;gap:60px;padding:75px 0 60px;align-items:end}label{color:#b9f34a;font-size:10px;letter-spacing:2.5px;font-weight:700}h1{font:600 clamp(52px,7vw,96px)/.9 Space Grotesk;letter-spacing:-5px;margin:15px 0 25px}h1 em{color:#b9f34a;font-style:normal}.hero p,.head p,.call p{color:#9db0a9;line-height:1.65}.hero aside{border-left:1px solid #20332e;padding-left:35px}.hero aside>*{display:block}.hero aside strong{font:600 75px Space Grotesk;color:#b9f34a}.hero aside i{color:#e7c267;font-size:9px;letter-spacing:1.3px;font-style:normal}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #20332e;margin-bottom:70px}.stats div{padding:22px;border-right:1px solid #20332e}.stats small{color:#8fa39c;font-size:9px;display:block}.stats b{font:600 34px Space Grotesk}.head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.head h2{font:600 32px Space Grotesk;margin:7px 0}.head p{max-width:480px}.geo{display:grid;grid-template-columns:1.6fr .75fr;border:1px solid #20332e}.map{background:#0a1512;position:relative}.map svg{width:100%;height:500px;background-image:linear-gradient(#20332e55 1px,transparent 1px),linear-gradient(90deg,#20332e55 1px,transparent 1px);background-size:45px 45px}.map path{fill:#10231e;stroke:#345148;stroke-width:2}.mark circle{fill:#b9f34a;stroke:#07100e;stroke-width:5;cursor:pointer}.mark text{fill:#e5eeea;font-size:11px}.mark .sc{fill:#b9f34a}.note{position:absolute;bottom:18px;left:20px;color:#71877f;font-size:9px}.panel{padding:30px;background:#0b1714;border-left:1px solid #20332e}.panel .score{font:600 58px Space Grotesk;color:#b9f34a}.panel h3{font:600 23px Space Grotesk}.panel p{color:#9db0a9;font-size:12px;line-height:1.6}.mini{display:grid;grid-template-columns:25px 1fr 28px;gap:8px;align-items:center;font-size:10px;margin:8px 0}.bar{height:4px;background:#20332e}.bar i{display:block;height:100%;background:#67d8c4}.ranking{margin:55px 0}.row{display:grid;grid-template-columns:35px 1.3fr 2fr 70px 180px;gap:18px;align-items:center;padding:16px;border-top:1px solid #20332e}.row:hover{background:#0c1815}.row small{color:#e7c267}.cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#20332e;border:1px solid #20332e;margin-bottom:70px}.card{padding:25px;background:#0b1714}.card .top{display:flex;justify-content:space-between;color:#b9f34a}.card h3{font:600 17px Space Grotesk}.card p{color:#8fa39c;font-size:12px;line-height:1.6}.call{border:1px solid #20332e;padding:30px;margin-bottom:20px;background:#10241e}.call b{font:600 30px Space Grotesk;color:#b9f34a}.purpose{border-top:1px solid #20332e;padding:65px 0}.purpose h2{font:500 clamp(24px,3vw,39px)/1.35 Space Grotesk;max-width:1100px}.purpose p{color:#9db0a9}.purpose>b{display:block;border-left:3px solid #e7c267;color:#e7c267;padding:12px;margin-top:30px;font-size:10px;letter-spacing:1px}.hide{display:none}footer{border-top:1px solid #20332e;padding:25px 0 40px;display:flex;gap:30px;font-size:10px;color:#8fa39c}footer span:first-of-type{margin-left:auto}@media(max-width:800px){body{padding:0 18px}nav{display:none}.hero{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.geo{grid-template-columns:1fr}.panel{border-left:0}.cards{grid-template-columns:1fr}.row{grid-template-columns:25px 1fr 60px}.row .bar,.row small{display:none}.head{display:block}}
/* Prototype 02 — report-inspired palette */
:root{--ink:#24212b;--muted:#6f6a75;--purple:#4b347c;--yellow:#f3cf69;--paper:#fbfaf7;--line:#ddd8ce}
body{background:var(--paper);background-image:none;color:var(--ink)}
header{border-color:var(--line);background:#fff}.brand{color:var(--purple)}.brand small,button{color:var(--muted)}button:hover,label{color:var(--purple)}
h1 em,.hero aside strong{color:var(--purple)}.hero p,.head p,.call p{color:var(--muted)}.hero aside{border-color:var(--line)}.hero aside i{color:#8a6710}
.stats{border-color:var(--line);background:#fff}.stats div{border-color:var(--line)}.stats small{color:var(--muted)}
.geo{border-color:var(--line);background:#fff}.map{background:#f7f4ed}.map svg{background-image:linear-gradient(#ded9cf88 1px,transparent 1px),linear-gradient(90deg,#ded9cf88 1px,transparent 1px)}.map path{fill:#eee8db;stroke:#a89bb9}.mark circle{fill:var(--purple);stroke:#fff}.mark text{fill:#3d3745}.mark .sc{fill:#8a6710}.note{color:var(--muted)}.panel{background:#fff;border-color:var(--line)}.panel .score{color:var(--purple)}.panel p{color:var(--muted)}.bar{background:#e7e2d9}.bar i{background:var(--yellow)}
.row{border-color:var(--line)}.row:hover{background:#fff7dd}.row small{color:#8a6710}.cards{background:var(--line);border-color:var(--line)}.card{background:#fff}.card .top{color:var(--purple)}.card p{color:var(--muted)}.call{border-color:#d4c087;background:#fff6d7}.call b{color:var(--purple)}.purpose{border-color:var(--line)}.purpose p{color:var(--muted)}.purpose>b{border-color:var(--yellow);color:#765a13}footer{border-color:var(--line);color:var(--muted)}
.autohero{display:grid;grid-template-columns:1.6fr .55fr;gap:30px;background:var(--purple);color:white;padding:35px;margin-bottom:1px}.autohero label{color:var(--yellow)}.autohero h3{font:600 30px Space Grotesk;margin:10px 0}.autohero p{color:#e4deed;line-height:1.6}.autostat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px 14px}.autostat b{font:600 46px Space Grotesk;color:var(--yellow)}.autostat span{font-size:11px;text-transform:uppercase;letter-spacing:1px}
.solution-strip{display:flex;flex-wrap:wrap;background:var(--yellow);color:#443719;padding:14px 18px;gap:8px}.solution-strip span{background:#fff9e8;border:1px solid #d5b34f;padding:7px 10px;font-size:10px;font-weight:700}
.autogrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:25px 0}.autocard{background:#fff;padding:24px;position:relative}.autocard .prio{position:absolute;right:20px;top:20px;background:var(--yellow);color:#453816;padding:5px 9px;font-size:10px;font-weight:700}.autocard h3{font:600 20px Space Grotesk;color:var(--purple);margin:5px 0 10px}.autocard p{font-size:12px;color:var(--muted);line-height:1.55}.autocard strong{font-size:10px;letter-spacing:.8px;color:#7b641e}.autofoot{border-left:5px solid var(--yellow);padding:25px 30px;background:#fff;margin-bottom:70px}.autofoot h3{font:600 22px Space Grotesk;color:var(--purple)}.autofoot p{color:var(--muted);line-height:1.6}.autofoot small{color:#918a96}
@media(max-width:800px){.autohero,.autogrid{grid-template-columns:1fr}}

.eco-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin:42px 0 15px}.eco-head h3{font:600 27px Space Grotesk;color:var(--purple);margin:7px 0}.eco-head p{max-width:650px;color:var(--muted);font-size:12px;line-height:1.6}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.lg{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.lg.domo{background:var(--purple)}.lg.target{background:#c49a2f}.lg.oem{background:#777}
.eco-map{border:1px solid var(--line);background:#fff;overflow:hidden}.eco-map svg{width:100%;display:block}.corridor{fill:none;stroke:#d8b84e;stroke-width:15;stroke-linecap:round;opacity:.24}.region{fill:#786c82;font-size:13px;font-weight:700;letter-spacing:1.2px}.hub circle:first-child{fill:#4b347c;opacity:.13}.hub circle:nth-child(2){fill:#4b347c}.hub text{fill:#4b347c;font-size:13px;font-weight:700}.hub .sub{fill:#777;font-size:10px;font-weight:400}.eco-target circle{fill:#c49a2f}.eco-target text,.eco-oem text{fill:#3e3942;font-size:11px}.eco-oem circle{fill:#777}.mapdis{fill:#8b838e;font-size:9px;letter-spacing:1px}
@media(max-width:800px){.eco-head{display:block}.eco-map{overflow-x:auto}.eco-map svg{min-width:800px}}

.layerbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border:1px solid var(--line);border-bottom:0;background:#fff;padding:12px 16px;font-size:10px;color:var(--muted)}.layerbar>b{color:var(--purple);letter-spacing:1.5px;margin-right:6px}.layerbar label{color:var(--muted);letter-spacing:0;font-weight:600}.layerbar input{accent-color:var(--purple);vertical-align:middle;margin-right:5px}
.realmap{display:grid;grid-template-columns:1fr 270px;border:1px solid var(--line);background:#fff;margin-bottom:28px}.mapcanvas{min-width:0;overflow:hidden}.mapcanvas svg{display:block;width:100%;height:auto}.mapinfo{padding:25px;border-left:1px solid var(--line);background:#fff}.mapinfo h3{font:600 23px Space Grotesk;color:var(--purple);margin:8px 0}.mapinfo p{font-size:11px;color:var(--muted);line-height:1.6}.cities circle{fill:#7d7680}.cities text{fill:#766f78;font-size:10px}.geolink{fill:none;stroke:#e3bd48;stroke-width:9;stroke-dasharray:8 8;opacity:.35}.linklabel{fill:#987a22;font-size:9px;letter-spacing:1px}.pin text,.campusHalo text{fill:#342f38;font-size:11px;font-weight:700}.pin .meta,.campusHalo .meta{fill:#837c85;font-size:9px;font-weight:400}.oemPin circle{fill:#4b347c}.targetPin circle{fill:#d2aa32;stroke:#fff;stroke-width:3}.campusHalo circle:first-child{fill:#4b347c;opacity:.13}.campusHalo circle:nth-child(2){fill:#4b347c}.key{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;margin:18px 0}.key span{display:block;font-size:9px;color:var(--muted);margin:8px 0}.key i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.koem{background:#4b347c}.ktarget{background:#d2aa32}.kcampus{background:#8065b4}.key .kcorr{height:3px;border-radius:0;background:#d2aa32}.mapmetric{display:grid;grid-template-columns:35px 1fr;gap:8px;align-items:center;margin-top:10px}.mapmetric b{font:600 26px Space Grotesk;color:var(--purple)}.mapmetric span{font-size:9px;color:var(--muted);text-transform:uppercase}.layer.off{display:none}.mapdis{fill:#8b838e;font-size:8px;letter-spacing:.8px}
@media(max-width:900px){.realmap{grid-template-columns:1fr}.mapinfo{border-left:0;border-top:1px solid var(--line)}.mapcanvas{overflow-x:auto}.mapcanvas svg{min-width:800px}}

.intel-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:42px 0 14px}.intel-head h3{font:600 27px Space Grotesk;color:var(--purple);margin:6px 0}.intel-head p{max-width:520px;color:var(--muted);font-size:12px}
.intel-layout{display:grid;grid-template-columns:.8fr 1.25fr;gap:20px;margin-bottom:45px}.autogrid.compact{display:block;border:1px solid var(--line);margin:0;background:#fff}.targetrow{display:grid;grid-template-columns:42px 1fr 72px;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer;background:#fff}.targetrow:last-child{border-bottom:0}.targetrow:hover,.targetrow.active{background:#fff7dc}.targetrow .num{font:600 12px Space Grotesk;color:#aaa}.targetrow b{font-size:12px;color:var(--purple)}.targetrow .prio{font-size:9px;font-weight:700;text-align:center;background:var(--yellow);padding:5px}.account-detail{border:1px solid var(--line);background:#fff;padding:28px;min-width:0}.account-detail .detailtop{display:flex;justify-content:space-between;gap:15px}.account-detail h3{font:600 29px Space Grotesk;color:var(--purple);margin:6px 0 3px}.account-detail .badge{height:max-content;background:var(--yellow);padding:7px 10px;font-size:10px;font-weight:700}.account-detail .core{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:22px}.detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.detailcell{background:#fff;padding:17px}.detailcell.wide{grid-column:1/-1}.detailcell small{display:block;color:#8a6710;font-size:8px;letter-spacing:1.3px;font-weight:700;margin-bottom:7px}.detailcell p{font-size:11px;color:#5f5962;line-height:1.55;margin:0}.commercial{margin-top:18px;border-left:4px solid var(--yellow);background:#fff9e6;padding:16px}.commercial small{color:#8a6710;font-size:8px;letter-spacing:1px}.commercial p{font-size:11px;line-height:1.55;margin:7px 0;color:#5f5962}.waveflag{margin-top:16px;color:var(--purple);font-size:9px;font-weight:700;letter-spacing:1px}
@media(max-width:900px){.intel-layout{grid-template-columns:1fr}.intel-head{display:block}.detailgrid{grid-template-columns:1fr}.detailcell.wide{grid-column:auto}}

.national-map{background:#fbfaf7;position:relative;min-height:500px}.map-title{position:absolute;z-index:3;left:20px;top:18px;display:flex;gap:12px;align-items:center;font-size:9px;letter-spacing:1.2px;color:#746e77}.map-title b{background:var(--yellow);color:#493b17;padding:5px 8px}.national-map svg{height:500px}.national-map .mexico-shape{fill:#f1eee8;stroke:#aaa1b0;stroke-width:1.4}.national-map .mark circle{fill:#4b347c;stroke:#fff;stroke-width:4;filter:drop-shadow(0 2px 2px rgba(50,35,70,.18))}.national-map .mark.selected circle{fill:#d0a62d;stroke:#4b347c;stroke-width:4}.national-map .mark text{fill:#3e3942;font-size:10px;font-weight:700}.national-map .mark .sc{fill:#7c6220;font-size:9px;font-weight:700}.national-map .mark .state{fill:#8c858e;font-size:8px;font-weight:400}.national-map .note{background:rgba(255,255,255,.88);padding:5px 8px}.geo{box-shadow:0 12px 35px rgba(49,39,58,.05)}.panel{min-height:500px}.panel .statusline{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 17px}.panel .chip{font-size:8px;letter-spacing:.8px;padding:5px 7px;border:1px solid #ddd5c6;color:#79621f;background:#fff8df}.panel .coords{font-size:9px;color:#918a94;margin-bottom:18px}.panel .thesis{border-left:3px solid var(--yellow);padding-left:12px}.ranking:before{content:"PORTFOLIO RANKING";display:block;color:var(--purple);font-size:9px;font-weight:700;letter-spacing:1.5px;margin-bottom:10px}

/* Prototype 07 — true cartographic national map */
.real-national{position:relative;background:#ece9e2;min-height:590px;overflow:hidden}
#mexicoRealMap{height:590px;width:100%;background:#ece9e2;z-index:1}
.real-national .map-title{z-index:500;background:rgba(255,255,255,.94);border:1px solid rgba(210,203,190,.95);padding:8px 10px;top:16px;left:16px;box-shadow:0 3px 12px rgba(50,40,60,.08)}
.map-legend{position:absolute;z-index:500;left:16px;bottom:28px;background:rgba(255,255,255,.94);border:1px solid #ddd6c9;padding:8px 10px;font-size:9px;color:#625c65;box-shadow:0 3px 12px rgba(50,40,60,.08)}
.map-legend span{margin-right:12px}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.site-dot{background:#4b347c}.selected-dot{background:#e1b83f;border:2px solid #4b347c;width:11px;height:11px}
.strata-marker{background:transparent;border:0}.strata-pin{width:18px;height:18px;border-radius:50%;background:#4b347c;border:4px solid #fff;box-shadow:0 2px 7px rgba(35,25,45,.32);transition:.15s}.strata-pin.active{width:24px;height:24px;background:#e1b83f;border-color:#4b347c;box-shadow:0 2px 10px rgba(35,25,45,.38)}
.leaflet-tooltip.strata-tip{background:#fff;color:#29242e;border:1px solid #d9d1c3;border-radius:0;box-shadow:0 4px 14px rgba(35,25,45,.12);font:600 10px DM Sans;padding:6px 8px}.leaflet-tooltip.strata-tip:before{display:none}.strata-tip b{color:#4b347c}.strata-tip small{display:block;color:#8b838e;font-size:8px;margin-top:2px;font-weight:400}
.leaflet-control-zoom a{color:#4b347c!important}.leaflet-control-attribution{font-size:8px!important;background:rgba(255,255,255,.86)!important}.leaflet-control-attribution a{color:#4b347c!important}
.panel{min-height:590px}.geo{grid-template-columns:minmax(0,1.65fr) minmax(315px,.75fr)}
@media(max-width:900px){.geo{grid-template-columns:1fr}.panel{min-height:auto}#mexicoRealMap{height:520px}.real-national{min-height:520px}}

.national-map>svg{display:none!important}

/* v07.1 HOTFIX — isolate Leaflet from legacy SVG map rules */
#mexicoRealMap svg{
    width:auto !important;
    height:auto !important;
    background:none !important;
    background-image:none !important;
}
#mexicoRealMap path{
    fill:inherit;
    stroke:inherit;
    stroke-width:inherit;
}
#mexicoRealMap .leaflet-pane svg{
    width:100% !important;
    height:100% !important;
}
#mexicoRealMap img{
    max-width:none !important;
    max-height:none !important;
}
#mexicoRealMap .leaflet-tile{
    width:256px !important;
    height:256px !important;
}
#mexicoRealMap .leaflet-control-container,
#mexicoRealMap .leaflet-pane,
#mexicoRealMap .leaflet-top,
#mexicoRealMap .leaflet-bottom{
    font-family:DM Sans, sans-serif;
}
#mexicoRealMap .leaflet-control-attribution svg,
#mexicoRealMap .leaflet-control-attribution img{
    width:auto !important;
    height:auto !important;
}

