/* ============================================================
   Cervepar · Sala de situación — identidad Pilsen + Polar
   Rojo de lata Pilsen #C1121F · azul marino de las bandas Pilsen/Polar #1B2453
   dorado de la moneda Pilsen #C9A227 · rojo Polar #E30613 · ámbar y espuma de la cerveza
   ============================================================ */
:root{
  --rojo:#C1121F; --rojo-900:#7E0A13; --rojo-700:#9E0E1A; --rojo-50:#FBEAEB; --rojo-100:#F4C9CC;
  --polar:#E30613; --azul:#2B3990; --azul-50:#E9EBF6;
  --navy:#1B2453; --navy-2:#141B40; --navy-3:#0E1330; --navy-line:#2C3672;
  --oro:#C9A227; --oro-50:#FAF3DC; --ambar:#E8A317; --espuma:#FFF6DE;
  --verde:#1E7A4F; --verde-50:#E3F3EA;
  --tinta:#16161D; --tinta-70:#45454F; --tinta-45:#6F6F7A; --tinta-25:#A6A6B0;
  --linea:#E8E1D5; --linea-fuerte:#D6CCBB; --papel:#FFFFFF; --fondo:#F6F3EE; --fondo-2:#EDE7DD;
  --sombra-1:0 1px 2px rgba(27,36,83,.06),0 1px 3px rgba(27,36,83,.04);
  --sombra-2:0 8px 22px rgba(27,36,83,.08),0 1px 3px rgba(27,36,83,.05);
  --sombra-3:0 24px 56px rgba(14,19,48,.22),0 2px 8px rgba(14,19,48,.08);
  --r-s:8px; --r-m:12px; --r-l:18px;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --disp:"Barlow Condensed","Inter",sans-serif;
  --slab:"Roboto Slab",Georgia,serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);background:var(--fondo);color:var(--tinta);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
[hidden]{display:none!important}
b,strong{font-weight:700}
.num,.t td.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid rgba(201,162,39,.7);outline-offset:2px}

/* ===================== GATE ===================== */
.gate{position:fixed;inset:0;z-index:100;background:radial-gradient(1200px 700px at 50% 38%,#1A2150 0%,#0B0F26 62%,#06081A 100%);display:grid;place-items:center;overflow:hidden;transition:opacity .6s ease,visibility .6s}
.gate.off{opacity:0;visibility:hidden}
.gate__bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.gate__bg i{position:absolute;left:-30%;width:160%;height:150px;transform:rotate(-16deg);animation:barrido 11s linear infinite;opacity:.13}
.gate__bg i:nth-child(1){top:6%;background:linear-gradient(90deg,transparent,var(--rojo) 45%,var(--rojo) 55%,transparent)}
.gate__bg i:nth-child(2){top:46%;background:linear-gradient(90deg,transparent,var(--oro) 48%,var(--oro) 52%,transparent);animation-delay:-4s;opacity:.08;height:60px}
.gate__bg i:nth-child(3){top:76%;background:linear-gradient(90deg,transparent,var(--azul) 45%,var(--azul) 55%,transparent);animation-delay:-7s}
.gate__burbujas{position:absolute;inset:0;pointer-events:none}
.gate__burbujas span{position:absolute;bottom:-20px;border-radius:50%;border:1.5px solid rgba(255,246,222,.35);background:rgba(255,246,222,.06);animation:burbuja linear infinite}
@keyframes barrido{from{transform:translateX(-22%) rotate(-16deg)}to{transform:translateX(22%) rotate(-16deg)}}
@keyframes burbuja{from{transform:translateY(0) translateX(0);opacity:0}10%{opacity:1}to{transform:translateY(-110vh) translateX(18px);opacity:0}}
.gate__box{position:relative;text-align:center;padding:28px 20px;width:min(540px,94vw)}
.gate__logo{width:min(360px,78vw);margin:0 auto 6px;color:#fff}
.gate__logo svg{width:100%;height:auto;display:block;overflow:visible}
.gate__polar{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 18px;opacity:0;animation:subir .7s var(--ease) 1.5s forwards}
.gate__polar img{height:34px;width:auto;border-radius:6px;background:#fff;padding:3px 6px}
.gate__polar span{font-family:var(--disp);font-size:13px;letter-spacing:2.4px;text-transform:uppercase;color:#B9BCD6}
.gate__t{font-family:var(--slab);font-weight:800;font-size:28px;letter-spacing:.2px;color:#fff;opacity:0;animation:subir .7s ease .8s forwards}
.gate__s{color:#AEB1CB;font-size:13px;margin-top:6px;opacity:0;animation:subir .7s ease .95s forwards}
.gate__s b{color:var(--oro);font-weight:600}
@keyframes subir{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pin{margin-top:26px;opacity:0;animation:subir .7s ease 1.1s forwards}
.pin__cajas{display:flex;gap:12px;justify-content:center}
.pin__cajas input{width:58px;height:68px;border-radius:14px;border:2px solid var(--navy-line);background:rgba(255,255,255,.04);color:#fff;font-family:var(--disp);font-size:34px;font-weight:700;text-align:center;outline:none;transition:border-color .2s,transform .2s,box-shadow .2s;caret-color:var(--oro)}
.pin__cajas input:focus{border-color:var(--oro);box-shadow:0 0 0 4px rgba(201,162,39,.18);transform:translateY(-2px)}
.pin__cajas.err input{border-color:var(--rojo);animation:sacudir .4s}
@keyframes sacudir{0%,100%{transform:none}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.pin__btn{margin-top:20px;background:var(--rojo);color:#fff;font-weight:700;padding:13px 44px;border-radius:999px;font-size:14px;letter-spacing:.3px;box-shadow:0 10px 26px rgba(193,18,31,.4);transition:transform .15s,box-shadow .2s,background .2s}
.pin__btn:hover{transform:translateY(-1px);background:#D0182A;box-shadow:0 14px 32px rgba(193,18,31,.5)}
.pin__err{color:#FF8A92;font-size:12.5px;margin-top:12px;height:18px;opacity:0;transition:opacity .2s}
.pin__err.on{opacity:1}
.gate__pie{margin-top:22px;font-size:11.5px;color:#7F83A3;letter-spacing:.3px;opacity:0;animation:subir .7s ease 1.3s forwards}
.gate__pie b{color:#C8CBE2;font-weight:600}

/* logo Pilsen por trazos: rombo, fila "DESDE ★ 1912" y PILSEN */
.emb-pilsen .l{fill:currentColor;stroke:currentColor;stroke-width:1.4}
.trazo .emb-pilsen .l{fill-opacity:0;stroke-dasharray:2600;stroke-dashoffset:2600;animation:trazo 1.25s var(--ease) forwards,relleno .6s ease forwards}
.trazo .emb-pilsen .l-rombo{animation-delay:0s,1.05s}
.trazo .emb-pilsen .l-desde{animation-delay:.35s,1.2s}
.trazo .emb-pilsen .l-pilsen{animation-delay:.5s,1.3s}
@keyframes trazo{to{stroke-dashoffset:0}}
@keyframes relleno{to{fill-opacity:1;stroke-width:0}}
.gate__logo .emb-pilsen{filter:drop-shadow(0 14px 40px rgba(193,18,31,.45))}

/* ===================== APERTURA ===================== */
.boot{position:fixed;inset:0;z-index:95;background:var(--navy-3);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .45s}
.boot.on{opacity:1;pointer-events:auto}
.boot__box{width:min(720px,92vw);text-align:center;color:#fff}
.boot__ilu{width:120px;margin:0 auto 10px}
.boot__l{font-family:var(--disp);font-size:20px;letter-spacing:.6px;text-transform:uppercase;color:#D9DBEE;min-height:30px}
.boot__k{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0 20px}
.boot__k div{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px 6px}
.boot__k b{display:block;font-family:var(--disp);font-size:34px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1}
.boot__k span{font-size:11px;color:#9EA2C4;text-transform:uppercase;letter-spacing:.6px}
.boot__barra{height:4px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}
.boot__barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rojo),var(--oro));animation:carga 3.6s linear forwards}
@keyframes carga{to{width:100%}}
@media(max-width:620px){.boot__k{grid-template-columns:repeat(3,1fr)}.boot__k div:nth-child(n+4){display:none}}

/* ===================== WIPE ===================== */
.wipe{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;display:grid;place-items:center;background:var(--rojo);clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%);transition:clip-path .5s cubic-bezier(.7,0,.3,1)}
.wipe.in{clip-path:polygon(50% -60%,160% 50%,50% 160%,-60% 50%)}
.wipe.out{clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%)}
.wipe__emb{width:min(260px,60vw);color:#fff;opacity:.95}
.wipe__emb svg{width:100%;height:auto;display:block}

/* ===================== SHELL ===================== */
.shell{display:grid;grid-template-columns:262px 1fr;min-height:100vh}
.shell.entra .main{animation:lienzoIn .5s var(--ease)}
@keyframes lienzoIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.side{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy-2),var(--navy-3));color:#fff;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid rgba(255,255,255,.04)}
.side::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--rojo),var(--rojo) 60%,var(--oro))}
.side__brand{padding:18px 18px 14px 22px;border-bottom:1px solid rgba(255,255,255,.06)}
.marca{display:flex;align-items:center;gap:12px}
.marca__emb{width:64px;flex:0 0 64px;color:#fff}
.marca__emb svg{width:100%;height:auto;display:block}
.marca__txt strong{display:block;font-family:var(--slab);font-size:16px;letter-spacing:.2px;line-height:1.1}
.marca__txt span{font-size:11px;color:#A3A7C9;letter-spacing:.3px}
.nav{flex:1;overflow-y:auto;padding:8px 12px 12px 14px;scrollbar-width:thin;scrollbar-color:#2C3672 transparent}
.nav__rot{padding:14px 10px 6px;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#7277A0}
.nav__it{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:13px;color:#CBCDE3;text-align:left;transition:background .15s,color .15s,transform .15s}
.nav__it svg{width:17px;height:17px;flex:0 0 17px;opacity:.85;transition:transform .25s var(--ease)}
.nav__it:hover{background:rgba(255,255,255,.06);color:#fff}
.nav__it:hover svg{transform:scale(1.12) rotate(-4deg)}
.nav__it.on{background:var(--rojo);color:#fff;box-shadow:0 6px 16px rgba(193,18,31,.35)}
.nav__it .pin{margin-left:auto;font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:rgba(201,162,39,.18);color:#E9CF7A}
.nav__it.on .pin{background:rgba(255,255,255,.2);color:#fff}
.side__pie{padding:12px 18px 14px 22px;border-top:1px solid rgba(255,255,255,.06);font-size:11px;line-height:1.55;color:#8D91B5}
.side__pie b{color:#D5D7EA;font-weight:600}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:14px 28px;background:rgba(246,243,238,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.top h1{margin:0;font-family:var(--slab);font-size:21px;font-weight:800;letter-spacing:.1px;line-height:1.15}
.top__sub{font-size:12.5px;color:var(--tinta-45)}
.top__der{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.menu-btn{display:none;width:38px;height:38px;border-radius:10px;background:var(--navy);color:#fff;place-items:center}
.lienzo{padding:24px 28px 36px;min-width:0;animation:lienzoIn .45s var(--ease)}
.lienzo.sin-anim{animation:none}
.pie{margin:auto 28px 0;padding:18px 0 26px;border-top:1px solid var(--linea);font-size:11.5px;line-height:1.65;color:var(--tinta-45)}
.pie b{color:var(--tinta-70)}
.pie .rojo{color:var(--rojo)}

/* ===================== PIEZAS BASE ===================== */
.g{display:grid;gap:16px;grid-template-columns:1fr 1fr}
.g-2{grid-template-columns:1fr 1fr}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}
.g-21{grid-template-columns:1.65fr 1fr}.g-12{grid-template-columns:1fr 1.65fr}
.g>*,.card,.lienzo-chart{min-width:0}
.mt{margin-top:16px}
.card{background:var(--papel);border:1px solid var(--linea);border-radius:var(--r-l);box-shadow:var(--sombra-1);overflow:hidden;position:relative}
.card__cab{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 0}
.card__cab h3{margin:0;font-family:var(--disp);font-size:19px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;line-height:1.1}
.card__cab p{margin:3px 0 0;font-size:12.5px;color:var(--tinta-45)}
.card__cab .der{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.card__cuerpo{padding:14px 18px 18px}
.card__pie{padding:10px 18px 14px;border-top:1px solid var(--linea);font-size:11.5px;color:var(--tinta-45)}
.card--negro{background:linear-gradient(160deg,var(--navy),var(--navy-2));border-color:var(--navy-2);color:#fff}
.card--negro .card__cab p,.card--negro .grafico-nota{color:#C3C6E0}
.card--negro .card__pie{border-color:rgba(255,255,255,.1);color:#C3C6E0}
.card--rojo{background:linear-gradient(160deg,var(--rojo),var(--rojo-700));border-color:var(--rojo-700);color:#fff}
.card--rojo .card__cab p,.card--rojo .grafico-nota{color:#FFE3E5}
.card--rojo .panel{background:#fff;color:var(--tinta);border-radius:14px;padding:12px}
.card--rojo .panel .grafico-nota{color:var(--tinta-45)}
.card--rojo .as-nota,.card--negro .as-nota{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.card--rojo .as-nota b,.card--negro .as-nota b{color:#fff}
.panel{min-width:0}
.grafico-nota{font-size:11.5px;color:var(--tinta-45);margin-top:8px;line-height:1.5}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.4px;padding:5px 10px;border-radius:99px;background:var(--fondo-2);color:var(--tinta-70);white-space:nowrap}
.chip--rojo{background:var(--rojo);color:#fff}
.chip--negro{background:var(--navy);color:#fff}
.chip--oro{background:var(--oro-50);color:#6B520A}
.chip--azul{background:var(--azul-50);color:var(--azul)}
.chip--vivo i{width:7px;height:7px;border-radius:50%;background:#2ECC71;box-shadow:0 0 0 0 rgba(46,204,113,.6);animation:latido 1.8s infinite}
@keyframes latido{0%{box-shadow:0 0 0 0 rgba(46,204,113,.55)}70%{box-shadow:0 0 0 8px rgba(46,204,113,0)}100%{box-shadow:0 0 0 0 rgba(46,204,113,0)}}
.tag{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--fondo-2);color:var(--tinta-70);white-space:nowrap}
.tag--rojo{background:var(--rojo-50);color:var(--rojo-900)}.tag--azul{background:var(--azul-50);color:#232F7A}.tag--oro{background:var(--oro-50);color:#6B520A}.tag--verde{background:var(--verde-50);color:#14573A}.tag--gris{background:#F0EEEA;color:var(--tinta-45)}.tag--negro{background:var(--navy);color:#fff}
.btn{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;padding:9px 15px;border-radius:10px;background:var(--fondo-2);color:var(--tinta);transition:transform .15s,background .15s,box-shadow .2s}
.btn:hover{transform:translateY(-1px);background:#E3DBCD}
.btn--rojo{background:var(--rojo);color:#fff;box-shadow:0 6px 16px rgba(193,18,31,.25)}
.btn--rojo:hover{background:#D0182A}
.btn--negro{background:var(--navy);color:#fff}
.ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.d{font-size:11px;font-weight:700;padding:1px 6px;border-radius:5px}
.d--up{background:var(--verde-50);color:#14573A}.d--dn{background:var(--rojo-50);color:var(--rojo-900)}.d--eq{background:var(--fondo-2);color:var(--tinta-45)}

/* KPI */
.kpi{padding:16px 18px;display:flex;flex-direction:column;justify-content:center;min-height:120px;transition:transform .2s var(--ease),box-shadow .2s}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.kpi::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--c,var(--rojo))}
.kpi__rot{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--tinta-45)}
.kpi__val{font-family:var(--disp);font-size:36px;font-weight:700;line-height:1.05;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.kpi__val small{font-size:15px;color:var(--tinta-45);font-weight:600;margin-left:3px}
.kpi__pie{font-size:12px;color:var(--tinta-45);margin-top:4px;line-height:1.4}
.kpi__spark{position:absolute;right:14px;top:16px;width:80px;height:28px;opacity:.9}
.kpi--rojo{--c:var(--rojo)}.kpi--azul{--c:var(--azul)}.kpi--oro{--c:var(--oro)}.kpi--verde{--c:var(--verde)}.kpi--negro{--c:var(--navy)}.kpi--ambar{--c:var(--ambar)}

/* barras y anillos */
.barra-fila{display:grid;grid-template-columns:minmax(0,1.3fr) 2fr auto;gap:10px;align-items:center;padding:6px 0;font-size:12.5px}
.barra-fila .lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tinta-70)}
.barra-fila .v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:62px}
.barra{height:9px;border-radius:99px;background:var(--fondo-2);overflow:hidden}
.barra i{display:block;height:100%;width:0;border-radius:99px;background:var(--rojo);transition:width 1s var(--ease)}
.barra i.az{background:var(--azul)}.barra i.oro{background:var(--oro)}.barra i.ve{background:var(--verde)}.barra i.na{background:var(--navy)}
.anillo{position:relative;width:96px;height:96px;flex:0 0 96px}
.anillo svg{width:100%;height:100%;transform:rotate(-90deg)}
.anillo .bg{fill:none;stroke:var(--fondo-2);stroke-width:9}
.anillo .fg{fill:none;stroke:var(--rojo);stroke-width:9;stroke-linecap:round;stroke-dasharray:0 999;transition:stroke-dasharray 1.2s var(--ease)}
.anillo b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--disp);font-size:22px;font-weight:700}
.anillos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.anillos>div{display:flex;align-items:center;gap:12px}
.anillos small{display:block;font-size:12px;color:var(--tinta-45);line-height:1.4}
.anillos strong{display:block;font-size:13px}

/* tablas */
.tabla-env{overflow-x:auto;-webkit-overflow-scrolling:touch}
.t{width:100%;border-collapse:collapse;font-size:12.5px}
.t th{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta-45);text-align:left;padding:9px 10px;border-bottom:1px solid var(--linea);white-space:nowrap;background:#FBFAF7}
.t td{padding:9px 10px;border-bottom:1px solid var(--linea);vertical-align:middle}
.t tr:last-child td{border-bottom:0}
.t tbody tr{transition:background .15s}
.t tbody tr:hover{background:#FBF7EF}
.t .num{text-align:right;white-space:nowrap}
.t .prod{display:flex;align-items:center;gap:10px;min-width:180px}
.t .prod b{display:block;font-size:12.5px;line-height:1.3}
.t .prod span{font-size:11px;color:var(--tinta-45)}
.fo{width:44px;height:44px;flex:0 0 44px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--linea);padding:3px;transition:transform .25s var(--ease)}
.t tbody tr:hover .fo{transform:scale(1.15) rotate(-3deg)}
.fo--vacia{display:inline-block;background:repeating-linear-gradient(45deg,#F2EEE6,#F2EEE6 6px,#FAF8F3 6px,#FAF8F3 12px)}
.vacio{padding:26px 0;text-align:center;color:var(--tinta-45);font-size:12.5px}

/* buscador */
.buscador{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--linea-fuerte);border-radius:11px;background:#fff;margin-bottom:10px;transition:border-color .15s,box-shadow .15s}
.buscador:focus-within{border-color:var(--rojo);box-shadow:0 0 0 3px rgba(193,18,31,.1)}
.buscador svg{width:16px;height:16px;color:var(--tinta-45);flex:0 0 16px}
.buscador input{flex:1;min-width:0;border:0;outline:0;font-family:inherit;font-size:13px;padding:10px 0;background:transparent}
.buscador__x{font-size:20px;color:var(--tinta-45);line-height:1}
.buscador__pie{font-size:11.5px;color:var(--tinta-45);margin-top:8px}

/* feed */
.feed{display:flex;flex-direction:column}
.feed__it{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--linea)}
.feed__it:last-child{border-bottom:0}
.feed__it .ic{width:32px;height:32px;flex:0 0 32px;border-radius:10px;display:grid;place-items:center;background:var(--rojo-50);color:var(--rojo)}
.feed__it .ic svg{width:16px;height:16px}
.feed__it .ic.az{background:var(--azul-50);color:var(--azul)}.feed__it .ic.oro{background:var(--oro-50);color:#8A6A0B}.feed__it .ic.ve{background:var(--verde-50);color:var(--verde)}
.feed__it b{display:block;font-size:12.8px;line-height:1.35}
.feed__it span{font-size:12px;color:var(--tinta-45);line-height:1.45}
.feed__it .hora{margin-left:auto;font-size:11px;color:var(--tinta-25);white-space:nowrap;font-variant-numeric:tabular-nums}
.card--negro .feed__it{border-color:rgba(255,255,255,.12)}.card--negro .feed__it span{color:#C3C6E0}
.feed--vivo .feed__it{animation:feedIn .5s var(--ease) both}
@keyframes feedIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.stack{display:flex;flex-direction:column}
.stack>div{padding:10px 0;border-bottom:1px solid var(--linea)}
.stack>div:last-child{border-bottom:0}
.stack b{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.stack b small{font-weight:600;color:var(--rojo);font-size:12px;white-space:nowrap}
.stack span{font-size:12px;color:var(--tinta-45)}
.card--negro .stack>div{border-color:rgba(255,255,255,.12)}.card--negro .stack span{color:#C3C6E0}.card--negro .stack b small{color:#F2D27A}
.as-nota{background:var(--oro-50);border:1px solid #EBDDAF;color:#5C4708;border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.55}
.lienzo-chart{position:relative;width:100%}
.h220{height:220px}.h260{height:260px}.h300{height:300px}.h340{height:340px}

/* ===================== HUB ===================== */
.hub-cab{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
.hub-cab h2{margin:0;font-family:var(--slab);font-size:40px;font-weight:800;line-height:1.02;letter-spacing:-.4px}
.hub-cab h2 span{color:var(--rojo)}
.hub-cab p{margin:10px 0 0;max-width:820px;color:var(--tinta-70);font-size:14px;line-height:1.6}
.hub-cab .der{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.cumple{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,var(--navy),var(--navy-2));color:#fff;border-radius:16px;padding:12px 16px;margin-bottom:16px;overflow:hidden;position:relative}
.cumple svg.ilu-chopp{width:46px;height:56px;flex:0 0 46px}
.cumple b{font-family:var(--slab);font-size:16px}
.cumple span{font-size:12.5px;color:#C3C6E0;display:block}
.cumple .chip{margin-left:auto}
.hoy{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;margin-bottom:18px}
.hoy__kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hoy__k{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:14px 16px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;transition:transform .2s var(--ease),box-shadow .2s}
.hoy__k:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.hoy__k::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--rojo))}
.hoy__k small{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--tinta-45)}
.hoy__k b{font-family:var(--disp);font-size:34px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}
.hoy__k span{font-size:11.8px;color:var(--tinta-45);line-height:1.4}
.hub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mod{position:relative;display:flex;flex-direction:column;text-align:left;background:#fff;border:1px solid var(--linea);border-radius:20px;padding:20px 20px 18px;box-shadow:var(--sombra-1);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;overflow:hidden;animation:modIn .55s var(--ease) both}
.mod::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--rojo);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.mod:hover{transform:translateY(-4px);box-shadow:var(--sombra-2);border-color:var(--linea-fuerte)}
.mod:hover::before{transform:scaleX(1)}
.hub .mod:nth-child(2){animation-delay:.05s}.hub .mod:nth-child(3){animation-delay:.1s}.hub .mod:nth-child(4){animation-delay:.15s}.hub .mod:nth-child(5){animation-delay:.2s}.hub .mod:nth-child(6){animation-delay:.25s}.hub .mod:nth-child(7){animation-delay:.3s}.hub .mod:nth-child(8){animation-delay:.35s}.hub .mod:nth-child(9){animation-delay:.4s}
@keyframes modIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.mod__tag{position:absolute;top:18px;right:18px}
.mod__ilu{width:64px;height:64px;margin-bottom:12px}
.mod__ilu svg{width:100%;height:100%;overflow:visible}
.mod h3{margin:0 0 6px;font-family:var(--slab);font-size:19px;font-weight:800;line-height:1.15;padding-right:70px}
.mod p{margin:0 0 14px;font-size:12.8px;color:var(--tinta-70);line-height:1.55;flex:1}
.mod__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--linea);padding-top:12px}
.mod__kpis div{font-size:10.5px;color:var(--tinta-45);line-height:1.3}
.mod__kpis b{display:block;font-family:var(--disp);font-size:21px;color:var(--tinta);line-height:1.1}
.mod__ir{position:absolute;right:16px;bottom:16px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--fondo-2);transition:transform .25s var(--ease),background .25s,color .25s;opacity:0}
.mod:hover .mod__ir{opacity:1;transform:translateX(2px);background:var(--rojo);color:#fff}
.mod--dark{background:linear-gradient(160deg,var(--navy),var(--navy-3));border-color:var(--navy-2);color:#fff}
.mod--dark p,.mod--dark .mod__kpis div{color:#C3C6E0}.mod--dark .mod__kpis{border-color:rgba(255,255,255,.12)}.mod--dark .mod__kpis b{color:#fff}
.mod--dark .mod__ir{background:rgba(255,255,255,.1)}
.mod--rojo{background:linear-gradient(160deg,var(--rojo),var(--rojo-900));border-color:var(--rojo-700);color:#fff}
.mod--rojo p,.mod--rojo .mod__kpis div{color:#FFE3E5}.mod--rojo .mod__kpis{border-color:rgba(255,255,255,.2)}.mod--rojo .mod__kpis b{color:#fff}.mod--rojo::before{background:var(--oro)}
.mod--rojo .mod__ir{background:rgba(255,255,255,.15)}

/* ===================== MAPA ===================== */
.mapa{position:relative;background:linear-gradient(180deg,#FBF9F5,#F3EFE7);border:1px solid var(--linea);border-radius:18px;padding:10px;min-width:0;display:flex;flex-direction:column}
.mapa svg{width:100%;height:auto;max-height:560px;display:block;flex:1}
.mapa .pais{fill:#fff;stroke:#B9AE9B;stroke-width:3;stroke-linejoin:round}
.mapa .rio{fill:none;stroke:#9DB4D8;stroke-width:5;stroke-linecap:round;opacity:.75}
.mapa .reg{font-family:var(--disp);font-size:30px;letter-spacing:6px;fill:#C9BFAE;font-weight:600}
.mapa .ruta{fill:none;stroke:var(--rojo);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:var(--L,1200);stroke-dashoffset:var(--L,1200);animation:dibujar 1.6s var(--ease) forwards;opacity:.85}
.mapa .ruta--fpv{stroke:var(--oro);stroke-dasharray:12 12;stroke-dashoffset:0;animation:hormiga 1.2s linear infinite;opacity:.9}
.mapa .ruta--watch{stroke:var(--azul);stroke-width:2.5;opacity:.45}
@keyframes dibujar{to{stroke-dashoffset:0}}
@keyframes hormiga{to{stroke-dashoffset:-24}}
.mapa .pt .halo{fill:var(--c);opacity:.18;transform-box:fill-box;transform-origin:center;animation:halo 2.4s ease-out infinite}
.mapa .pt .nucleo{fill:var(--c);stroke:#fff;stroke-width:4}
.mapa .pt .et{font-family:var(--sans);font-size:30px;font-weight:700;fill:var(--tinta);paint-order:stroke;stroke:#FBF9F5;stroke-width:9px;stroke-linejoin:round}
.mapa .pt .ev{font-family:var(--sans);font-size:24px;font-weight:600;fill:var(--tinta-45);paint-order:stroke;stroke:#FBF9F5;stroke-width:8px}
.mapa .pt:hover .nucleo{stroke:var(--oro)}
@keyframes halo{0%{transform:scale(.6);opacity:.35}100%{transform:scale(1.7);opacity:0}}
.mapa .bg-pt{fill:var(--azul);opacity:.35}
.mapa .camion{offset-rotate:auto}
.leyenda{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 8px 2px;font-size:11.5px;color:var(--tinta-70)}
.leyenda span{display:inline-flex;align-items:center;gap:6px}
.leyenda i{width:10px;height:10px;border-radius:50%;display:inline-block}

/* ===================== DIAGNÓSTICO ===================== */
.hallazgo{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:18px 18px;border-bottom:1px solid var(--linea);transition:background .2s}
.hallazgo:hover{background:#FCFAF6}
.hallazgo:last-child{border-bottom:0}
.hallazgo .num{font-family:var(--slab);font-size:30px;font-weight:800;color:var(--rojo);line-height:1}
.hallazgo h4{margin:0 0 6px;font-family:var(--slab);font-size:16.5px;font-weight:800;line-height:1.3}
.hallazgo p{margin:0 0 8px;font-size:13px;line-height:1.6;color:var(--tinta-70)}
.hallazgo .imp{font-size:12.5px}
.hallazgo .evid{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.hallazgo .evid img{width:46px;height:46px;object-fit:contain;background:#fff;border:1px solid var(--linea);border-radius:10px;padding:3px}
.sol{background:var(--rojo);color:#fff;border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.5}
.sol b{color:#fff}
.sol::before{content:"El sistema que lo resuelve · ";font-weight:700;color:#FFD5D8}
.dominios{display:flex;flex-direction:column;gap:8px}
.dominios div{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:11px;background:#FBFAF7;border:1px solid var(--linea)}
.dominios code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;font-weight:700}
.dominios span{font-size:11.8px;color:var(--tinta-45)}
.dominios i{width:9px;height:9px;border-radius:50%;flex:0 0 9px;margin-top:5px}

/* ===================== GÓNDOLA ===================== */
.gond-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.gond-it{position:relative;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:10px 10px 12px;text-align:center;transition:transform .25s var(--ease),box-shadow .25s}
.gond-it:hover{transform:translateY(-3px);box-shadow:var(--sombra-2)}
.gond-it img{width:100%;height:110px;object-fit:contain;transition:transform .3s var(--ease)}
.gond-it:hover img{transform:scale(1.06) rotate(-2deg)}
.gond-it b{display:block;font-size:12px;line-height:1.3;margin-top:6px;min-height:31px}
.gond-it .pr{font-family:var(--disp);font-size:20px;font-weight:700;color:var(--rojo)}
.gond-it .pr small{font-size:12px;color:var(--tinta-45);font-family:var(--sans);font-weight:600}
.gond-it .rib{position:absolute;top:8px;left:8px}
.gond-it--comp .pr{color:var(--azul)}
.estante{position:relative;padding:14px 12px 0;background:linear-gradient(180deg,#FFFDF9,#F7F1E6);border-radius:16px;border:1px solid var(--linea)}
.estante__fila{display:flex;align-items:flex-end;gap:6px;min-height:118px;padding:0 6px;border-bottom:10px solid #CDBFA6;border-radius:0 0 4px 4px;overflow-x:auto;scrollbar-width:thin}
.estante__fila img{height:96px;width:auto;flex:0 0 auto;filter:drop-shadow(0 6px 6px rgba(0,0,0,.08));animation:llega .6s var(--ease) both}
.estante__fila .hueco{width:46px;height:86px;flex:0 0 46px;border:2px dashed #D6CCBB;border-radius:8px;display:grid;place-items:center;font-size:10px;color:var(--tinta-45);text-align:center;line-height:1.1}
.estante__rot{display:flex;justify-content:space-between;font-size:11px;color:var(--tinta-45);padding:6px 4px 10px}
@keyframes llega{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

/* ===================== SIMULADOR ===================== */
.simx{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--linea-fuerte);border-radius:18px;overflow:hidden;background:#fff}
.simx__ctr{padding:20px 22px;background:#FBF8F2;border-right:1px solid var(--linea)}
.simx__res{padding:20px 24px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(500px 220px at 100% 0%,rgba(201,162,39,.12),transparent 70%),#fff}
.simx__h{font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--tinta-45);margin-bottom:12px}
.simx__f{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin-bottom:16px}
.simx__f .lb{font-size:12.8px;font-weight:600;color:var(--tinta-70)}
.simx__f .val{font-family:var(--disp);font-size:19px;color:var(--rojo);font-variant-numeric:tabular-nums}
.simx__f input{grid-column:1/-1;width:100%;accent-color:var(--rojo);margin:6px 0 0;height:22px;cursor:grab}
.simx__f input:active{cursor:grabbing}
.simx__f .rng{grid-column:1/-1;display:flex;justify-content:space-between;font-size:10.5px;color:var(--tinta-25)}
.simx__rot{font-size:12.5px;font-weight:700;color:var(--tinta-70)}
.simx__big{font-family:var(--disp);font-size:56px;font-weight:700;line-height:1;color:var(--rojo);margin:6px 0 8px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.simx__exp{font-size:12.8px;line-height:1.6;color:var(--tinta-70)}
.simx__mini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.simx__o{background:#FBF8F2;border:1px solid var(--linea);border-radius:12px;padding:10px}
.simx__o small{display:block;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta-45)}
.simx__o b{font-family:var(--disp);font-size:21px;font-variant-numeric:tabular-nums}

/* ===================== FLUJO EN VIVO (SVG) ===================== */
.flujo-svg{position:relative;background:linear-gradient(180deg,#FFFDF9,#F8F3EA);border:1px solid var(--linea);border-radius:16px;padding:8px 8px 4px;overflow:hidden}
.flujo-svg svg{width:100%;height:auto;display:block}
.flujo-svg .via{fill:none;stroke:#E2D8C6;stroke-width:10;stroke-linecap:round}
.flujo-svg .via-on{fill:none;stroke:var(--rojo);stroke-width:4;stroke-linecap:round;stroke-dasharray:var(--L);stroke-dashoffset:var(--L);transition:stroke-dashoffset 4.6s linear}
.flujo-svg.corre .via-on{stroke-dashoffset:0}
.flujo-svg .nodo circle{fill:#fff;stroke:#CFC3AE;stroke-width:3;transition:fill .3s,stroke .3s}
.flujo-svg .nodo.on circle{fill:var(--rojo);stroke:var(--rojo)}
.flujo-svg .nodo text{font-family:var(--sans);font-size:13px;font-weight:700;fill:var(--tinta)}
.flujo-svg .nodo .sub{font-size:11px;font-weight:500;fill:var(--tinta-45)}
.flujo-svg .nodo.on .ck{opacity:1}
.flujo-svg .ck{opacity:0;transition:opacity .3s;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.flujo-svg .viajero{offset-rotate:0deg;offset-distance:0%}
.flujo-svg.corre .viajero{animation:viaje 4.6s linear forwards}
@keyframes viaje{to{offset-distance:100%}}
.flujo-fin{margin-top:10px;min-height:20px}

/* ===================== ILUSTRACIONES SVG ===================== */
.ilu{display:block;width:100%;height:auto;overflow:visible}
.ilu .liq{transform-box:fill-box;transform-origin:bottom;animation:llenar 2.4s var(--ease) both}
@keyframes llenar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ilu .bur{animation:sube 2.6s ease-in infinite;opacity:0}
@keyframes sube{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(-58px);opacity:0}}
.ilu .espuma{transform-box:fill-box;transform-origin:center bottom;animation:espuma 2.4s var(--ease) both}
@keyframes espuma{0%,55%{transform:scaleY(0);opacity:0}100%{transform:scaleY(1);opacity:1}}
.ilu .chorro{stroke-dasharray:60;stroke-dashoffset:60;animation:chorro 2.4s ease-in-out infinite}
@keyframes chorro{0%{stroke-dashoffset:60;opacity:1}40%{stroke-dashoffset:0;opacity:1}80%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-60;opacity:0}}
.ilu .cinta{animation:cinta 1.2s linear infinite}
@keyframes cinta{to{stroke-dashoffset:-24}}
.ilu .avanza{animation:avanza 6s linear infinite}
@keyframes avanza{from{transform:translateX(-60px)}to{transform:translateX(560px)}}
.ilu .tapa{animation:tapa 1.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes tapa{0%,100%{transform:translateY(-8px)}45%,60%{transform:translateY(0)}}
.ilu .barre{transform-box:view-box;transform-origin:50% 50%;animation:barre 3.4s linear infinite}
@keyframes barre{to{transform:rotate(360deg)}}
.ilu .late{transform-box:fill-box;transform-origin:center;animation:lateIlu 1.8s ease-in-out infinite}
@keyframes lateIlu{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}
.ilu .flota{animation:flota 3.2s ease-in-out infinite}
@keyframes flota{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.ilu .ondea{transform-box:fill-box;transform-origin:left center;animation:ondea 2.2s ease-in-out infinite}
@keyframes ondea{0%,100%{transform:skewY(0) scaleX(1)}50%{transform:skewY(-4deg) scaleX(.96)}}
.ilu .gira{transform-box:fill-box;transform-origin:center;animation:barre 2.2s linear infinite}
.ilu .brilla{animation:brilla 2.6s ease-in-out infinite}
@keyframes brilla{0%,100%{opacity:.25}50%{opacity:1}}
.ilu .termo{transform-box:fill-box;transform-origin:bottom;transition:transform 1.2s var(--ease)}
.ilu .dib{stroke-dasharray:var(--L,300);stroke-dashoffset:var(--L,300);animation:dibujar 1.4s var(--ease) forwards}
.ilu .olas{animation:olas 3s linear infinite}
@keyframes olas{to{transform:translateX(-40px)}}
.ilu .fuego{transform-box:fill-box;transform-origin:center bottom;animation:fuego .9s ease-in-out infinite alternate}
@keyframes fuego{from{transform:scaleY(.85);opacity:.8}to{transform:scaleY(1.12);opacity:1}}
.mod:hover .mod__ilu .hov{animation-duration:.8s}
.medidor .arco{fill:none;stroke:var(--fondo-2);stroke-width:14;stroke-linecap:round}
.medidor .val{fill:none;stroke:var(--rojo);stroke-width:14;stroke-linecap:round;stroke-dasharray:0 999;transition:stroke-dasharray 1.3s var(--ease)}
.medidor .aguja{transform-origin:100px 100px;transition:transform 1.3s var(--ease)}
.medidor text{font-family:var(--disp);font-weight:700}
.escena{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:18px;align-items:center}
.escena p{margin:0;font-family:var(--slab);font-size:17px;line-height:1.55;font-weight:500}
.escena p b{color:#F2D27A;font-weight:700}
.escena small{display:block;margin-top:8px;font-family:var(--sans);font-size:11.5px;color:#AEB1CB}
.escena__ilu{max-width:200px;justify-self:end;width:100%}

/* calendario de activaciones */
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.cal__it{position:relative;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:12px 14px 12px 16px;transition:transform .2s var(--ease),box-shadow .2s;cursor:pointer;text-align:left}
.cal__it::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:4px;background:var(--c,var(--rojo))}
.cal__it:hover,.cal__it.on{transform:translateY(-2px);box-shadow:var(--sombra-2);border-color:var(--linea-fuerte)}
.cal__it.on{outline:2px solid var(--rojo)}
.cal__it small{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta-45)}
.cal__it b{display:block;font-size:13.5px;line-height:1.3;margin:2px 0 4px}
.cal__it span{font-size:11.8px;color:var(--tinta-45);line-height:1.45;display:block}
.cal__it .cifra{font-family:var(--disp);font-size:18px;font-weight:700;color:var(--rojo);margin-top:6px}

/* ===================== PROPUESTA ===================== */
.plataforma{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plataforma>div{display:flex;gap:10px;align-items:flex-start}
.plataforma .ic{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#F2D27A}
.plataforma .ic svg{width:18px;height:18px}
.plataforma b{display:block;font-size:13px}
.plataforma span{font-size:12px;color:#C3C6E0;line-height:1.45}
.ruta-prop{margin:16px 0}
.ruta-prop svg{width:100%;height:auto;display:block}
.fases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fase{background:#fff;border:1px solid var(--linea);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sombra-1);transition:transform .25s var(--ease),box-shadow .25s}
.fase:hover{transform:translateY(-3px);box-shadow:var(--sombra-2)}
.fase__cab{display:flex;gap:12px;align-items:center;padding:16px 18px;background:var(--c);color:#fff}
.fase__cab .n{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;font-family:var(--slab);font-size:20px;font-weight:800}
.fase__cab h3{margin:0;font-family:var(--slab);font-size:18px;font-weight:800}
.fase__cab span{font-size:12px;opacity:.9}
.fase__sis{padding:14px 18px 6px;display:flex;flex-direction:column;gap:10px;flex:1}
.sis{display:flex;gap:10px;align-items:flex-start}
.sis .ic{width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:var(--rojo-50);color:var(--rojo);display:grid;place-items:center}
.sis .ic svg{width:16px;height:16px}
.sis b{display:block;font-size:13px;line-height:1.3}
.sis span{font-size:12px;color:var(--tinta-45);line-height:1.45}
.precios{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px}
.precios--junto{grid-template-columns:repeat(3,1fr);padding:0}
.pblo{background:#FBF8F2;border:1px solid var(--linea);border-radius:14px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pblo small{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--tinta-45)}
.pblo b{font-family:var(--disp);font-size:28px;font-weight:700;line-height:1.1;color:var(--tinta);font-variant-numeric:tabular-nums}
.pblo span{font-size:11.5px;color:var(--tinta-45)}
.card--rojo .pblo{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}
.card--rojo .pblo small,.card--rojo .pblo span{color:#FFE3E5}.card--rojo .pblo b{color:#fff}
.fase__pie{padding:12px 18px 16px;border-top:1px solid var(--linea)}
.fase__rec{font-size:12.3px;line-height:1.55;color:var(--tinta-70)}
.fase__ent{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fase__ent span{font-size:11px;padding:4px 8px;border-radius:7px;background:var(--fondo-2);color:var(--tinta-70)}
.hitos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.hito{border-left:3px solid var(--rojo);padding:4px 0 4px 10px}
.hito b{display:block;font-family:var(--slab);font-size:18px;font-weight:800}
.hito span{font-size:12px;color:var(--tinta-45);line-height:1.45}

/* ===================== ASISTENTE ===================== */
.as-fab{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:8px;padding:12px 18px 12px 12px;border-radius:999px;background:var(--navy);color:#fff;font-weight:700;font-size:13px;box-shadow:0 14px 32px rgba(14,19,48,.38);transition:transform .2s,background .2s;animation:fabIn .6s var(--ease) 1.2s both}
.as-fab svg{width:22px;height:22px}
.as-fab:hover{transform:translateY(-2px);background:var(--rojo)}
.as-fab.on{background:var(--rojo)}
@keyframes fabIn{from{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:none}}
.as-panel{position:fixed;right:22px;bottom:82px;z-index:60;width:min(440px,calc(100vw - 44px));height:min(620px,calc(100vh - 110px));background:#fff;border-radius:20px;border:1px solid var(--linea);box-shadow:var(--sombra-3);display:flex;flex-direction:column;overflow:hidden;animation:panelIn .35s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.as-cab{display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(90deg,var(--navy),var(--navy-2));color:#fff}
.as-cab .ilu-chopp{width:30px;height:36px;flex:0 0 30px}
.as-cab-t b{display:block;font-size:13.5px}.as-cab-t span{font-size:11px;color:#AEB1CB}
.as-cerrar{margin-left:auto;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:18px;line-height:1;display:grid;place-items:center}
.as-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--fondo)}
.as-msg{max-width:92%;padding:10px 12px;border-radius:14px;font-size:12.5px;line-height:1.5;animation:feedIn .3s var(--ease)}
.as-msg p{margin:0 0 6px}.as-msg p:last-child{margin:0}
.as-msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--linea);border-bottom-left-radius:4px}
.as-msg--yo{align-self:flex-end;background:var(--rojo);color:#fff;border-bottom-right-radius:4px}
.as-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.as-chip{font-size:11.5px;padding:6px 10px;border-radius:999px;border:1px solid var(--linea-fuerte);background:#fff;color:var(--tinta-70);text-align:left;transition:all .15s}
.as-chip:hover{border-color:var(--rojo);color:var(--rojo);background:var(--rojo-50)}
.as-tabla{overflow-x:auto;margin-top:8px;border:1px solid var(--linea);border-radius:10px}
.as-tabla table{width:100%;border-collapse:collapse;font-size:11.5px}
.as-tabla th{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--tinta-45);text-align:left;padding:7px 9px;background:#FBFAF7;border-bottom:1px solid var(--linea);white-space:nowrap}
.as-tabla td{padding:7px 9px;border-bottom:1px solid var(--linea);vertical-align:top}
.as-tabla tr:last-child td{border-bottom:0}
.as-tabla td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.as-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;color:var(--rojo)}
.as-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--linea);background:#fff}
.as-form input{flex:1;min-width:0;font-family:inherit;font-size:13px;padding:10px 12px;border-radius:10px;border:1px solid var(--linea-fuerte);outline:none}
.as-form input:focus{border-color:var(--rojo);box-shadow:0 0 0 3px rgba(193,18,31,.1)}
.as-send{background:var(--navy);color:#fff;font-weight:700;font-size:12.5px;padding:0 16px;border-radius:10px}
.as-dots{display:inline-flex;gap:4px;padding:4px 2px}.as-dots i{width:6px;height:6px;border-radius:50%;background:var(--tinta-25);animation:dot 1s ease-in-out infinite}.as-dots i:nth-child(2){animation-delay:.15s}.as-dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-4px);opacity:1}}

/* ===================== RECORRIDO ===================== */
.tour-velo{position:fixed;inset:0;z-index:80;background:rgba(14,19,48,.72);opacity:0;pointer-events:none;transition:opacity .3s}
.tour-velo.on{opacity:1;pointer-events:auto}
.tour-spot{position:fixed;z-index:81;border-radius:16px;box-shadow:0 0 0 9999px rgba(14,19,48,.7),0 0 0 3px var(--oro);pointer-events:none;opacity:0;transition:top .35s,left .35s,width .35s,height .35s,opacity .3s;top:-9999px}
.tour-card{position:fixed;z-index:82;top:-9999px;width:380px;max-width:calc(100vw - 32px);background:#fff;border-radius:16px;box-shadow:var(--sombra-3);padding:16px 18px;animation:panelIn .35s var(--ease)}
.tour-card--centro{top:50%!important;left:50%!important;transform:translate(-50%,-50%)}
.tour-card__cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.tour-card__n{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--rojo)}
.tour-card__x{width:26px;height:26px;border-radius:50%;background:var(--fondo-2);color:var(--tinta-70);font-size:17px;line-height:1;display:grid;place-items:center}
.tour-card h4{margin:0 0 6px;font-family:var(--slab);font-size:19px;font-weight:800;line-height:1.2}
.tour-card p{margin:0;font-size:13px;line-height:1.55;color:var(--tinta-70)}
.tour-card__barra{height:5px;border-radius:99px;background:var(--fondo-2);margin:14px 0 12px;overflow:hidden}
.tour-card__barra i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--rojo),var(--oro));transition:width .4s}
.tour-card__btns{display:flex;gap:8px;justify-content:flex-end}
.tour-invita{position:fixed;inset:0;z-index:85;background:rgba(14,19,48,.62);display:grid;place-items:center;padding:16px;animation:lienzoIn .3s ease}
.tour-invita__box{background:#fff;border-radius:22px;padding:26px 26px 22px;width:min(450px,100%);text-align:center;box-shadow:var(--sombra-3);animation:panelIn .4s var(--ease)}
.tour-invita__emb{width:150px;margin:0 auto 12px;color:var(--rojo)}
.tour-invita__emb svg{width:100%;height:auto}
.tour-invita h3{margin:0 0 6px;font-family:var(--slab);font-size:24px;font-weight:800;line-height:1.15}
.tour-invita p{margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--tinta-70)}
.tour-invita .tour-card__btns{justify-content:center}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1400px){.kpi__val{font-size:32px}.hub-cab h2{font-size:34px}}
@media (max-width:1180px){
  .g-4{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(2,1fr)}.g-21,.g-12{grid-template-columns:1fr}
  .hub{grid-template-columns:repeat(2,1fr)}.hoy{grid-template-columns:1fr}.plataforma{grid-template-columns:repeat(2,1fr)}.fases{grid-template-columns:1fr}
}
@media (max-width:980px){.simx{grid-template-columns:1fr}.simx__ctr{border-right:0;border-bottom:1px solid var(--linea)}.simx__big{font-size:46px}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:70;transform:translateX(-100%);transition:transform .3s var(--ease);box-shadow:var(--sombra-3)}
  .side.abierto{transform:none}
  .menu-btn{display:grid}
  .top{padding:12px 16px}.top__der{display:none}
  .lienzo{padding:16px 16px 28px}.pie{margin:auto 16px 0}
  .hub-cab{flex-direction:column;align-items:flex-start}.hub-cab .der{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
}
@media (max-width:820px){
  .g,.g-2,.g-3,.g-4{grid-template-columns:1fr}
  .hub{grid-template-columns:1fr}
  .hoy__kpis{grid-template-columns:1fr 1fr}
  .hub-cab h2{font-size:28px}
  .escena{grid-template-columns:1fr}.escena__ilu{justify-self:center;max-width:180px}
  .mapa .pt .et{font-size:36px}.mapa .pt .ev{font-size:28px}
  .tour-card{width:calc(100vw - 32px)}
}
@media (max-width:560px){
  .precios,.precios--junto{grid-template-columns:1fr}.simx__mini{grid-template-columns:1fr 1fr}.simx__big{font-size:38px}
  .hoy__k b{font-size:28px}.kpi__val{font-size:30px}.plataforma{grid-template-columns:1fr}
  .pin__cajas input{width:52px;height:62px}
  .barra-fila{grid-template-columns:minmax(0,1fr) 1.2fr auto}
}
/* menos movimiento: todo queda en su estado final */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .ilu .bur,.gate__burbujas,.ilu .avanza,.ilu .barre{display:none}
  .trazo .emb-pilsen .l{stroke-dashoffset:0;fill-opacity:1}
}

/* ajustes de QA 12-10 */
.hoy__k b span,.pblo b span,.kpi__val span,.mod__kpis b span{font-size:inherit;color:inherit;font-weight:inherit;line-height:inherit}
.gond-it .ilu-lata{height:110px;width:auto;margin:0 auto}
.gond-it img[src=""]{display:none}
.pblo b{white-space:nowrap;font-size:clamp(21px,1.9vw,28px)}
@media(max-width:820px){.cumple{flex-wrap:wrap}.cumple>div{flex:1 1 200px;min-width:0}.cumple .chip{margin-left:0}}
.cumple .chip{color:#6B520A;display:inline-flex}
.nav__it .pin{margin-top:0;opacity:1;animation:none}
