/* 1.18.0 · CLS: respaldos con las métricas de Anton, Inter y Space Grotesk (fontTools sobre las fuentes de web/fuentes contra
   Arial; mismo método que next/font): mientras llega la fuente, la de respaldo ocupa el mismo espacio y el cambio no mueve nada */
@font-face{font-family:'Anton Respaldo';src:local('Arial'),local('Helvetica Neue'),local('Roboto'),local('Liberation Sans');size-adjust:88.36%;ascent-override:133.13%;descent-override:37.25%;line-gap-override:0%}
@font-face{font-family:'Inter Respaldo';src:local('Arial'),local('Helvetica Neue'),local('Roboto'),local('Liberation Sans');size-adjust:105.67%;ascent-override:91.68%;descent-override:22.83%;line-gap-override:0%}
@font-face{font-family:'Space Grotesk Respaldo';src:local('Arial'),local('Helvetica Neue'),local('Roboto'),local('Liberation Sans');size-adjust:106.53%;ascent-override:92.37%;descent-override:27.41%;line-gap-override:0%}
/* Kit visual MASTERESTAURANT: tokens de design-system/tokens.json (paleta racing orange) + capa premium (Kit 14).
   Plantilla GENÉRICA de planes: cada sección se dibuja según su `tipo` en el JSON del plan. Diseño oscuro
   deliberado (identidad de marca): un solo tema, colores pintados de forma explícita. */
:root{
  color-scheme: dark;
  --bg:#0A0A0B; --bg2:#121011; --surf:#17130E; --surf2:#201a13; --tx:#F7F4EF; --txd:#B0ABA2; --txf:#7d776e;
  --oro:#FF6B00; --oro2:#FF9A3D; --verde:#9BDB00; --verde2:#C2FF3D; --teal:#0ABAB5; --teal2:#5fd9d5;
  --ambar:#FFB020; --rojo:#FF5A4E;
  --bd:rgba(255,107,0,.26); --bd2:rgba(247,244,239,.09); --glass:rgba(255,255,255,.04);
  --fh:'Anton', 'Anton Respaldo', Impact, 'Arial Narrow', sans-serif;
  --ft:'Inter', 'Inter Respaldo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --fl:'Space Grotesk', 'Space Grotesk Respaldo', 'Inter', system-ui, sans-serif;
  --max:1180px; --rad:16px;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--ft);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(120% 60% at 100% -10%, rgba(255,107,0,.10), transparent 55%),radial-gradient(90% 50% at -10% 110%, rgba(10,186,181,.07), transparent 60%);background-attachment:fixed}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:clamp(16px,4vw,32px)}
a{color:var(--oro2)}
a:focus-visible,button:focus-visible{outline:3px solid var(--oro);outline-offset:3px}
h1,h2,h3{font-family:var(--fh);font-weight:400;letter-spacing:.2px;line-height:1.02;text-wrap:balance;margin:0}
h2{font-size:clamp(2rem,5vw,3.1rem);text-transform:uppercase;overflow-wrap:anywhere}
h3{font-size:1.25rem;text-transform:uppercase;letter-spacing:.4px}
p{margin:0}
.eyebrow{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--oro2);overflow-wrap:anywhere}
.lead{font-size:clamp(1rem,2.3vw,1.12rem);color:var(--txd);max-width:72ch;overflow-wrap:anywhere}
.num{font-variant-numeric:tabular-nums}
section{padding-block:clamp(40px,6vw,76px);border-top:1px solid var(--bd2);scroll-margin-top:64px}
.shead{display:grid;gap:12px;margin-bottom:clamp(20px,3.5vw,32px)}
.note{font-size:.84rem;color:var(--txf)}
.panel{border:1px solid var(--bd2);border-radius:var(--rad);padding:clamp(16px,3vw,22px);background:linear-gradient(180deg,var(--surf2),var(--surf))}
.pill{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap;display:inline-block}
.p-rojo{background:rgba(255,90,78,.14);color:#ff8a80;border:1px solid rgba(255,90,78,.35)}
.p-ambar{background:rgba(255,176,32,.12);color:#ffc65a;border:1px solid rgba(255,176,32,.35)}
.p-verde{background:rgba(155,219,0,.12);color:var(--verde2);border:1px solid rgba(155,219,0,.35)}
.p-teal{background:rgba(10,186,181,.12);color:var(--teal2);border:1px solid rgba(10,186,181,.35)}
.p-gris{background:rgba(247,244,239,.06);color:var(--txd);border:1px solid var(--bd2)}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* nav de secciones */
.toc{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(10,10,11,.88);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--bd2)}
.toc .wrap{display:flex;gap:6px;overflow-x:auto;padding-block:10px;scrollbar-width:none}
.toc .wrap::-webkit-scrollbar{display:none}
.toc a{flex:none;font-family:var(--fl);font-size:.75rem;font-weight:600;letter-spacing:.06em;color:var(--txd);text-decoration:none;padding:6px 10px;border-radius:999px;border:1px solid var(--bd2)}
.toc a:hover{color:var(--tx);border-color:var(--bd)}

/* hero */
.hero{padding-block:clamp(36px,6vw,72px) clamp(26px,4vw,44px);border-top:0}
.hero-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;margin-bottom:clamp(20px,4vw,36px)}
.brand{font-family:var(--fh);font-size:1.25rem;letter-spacing:.8px}
.brand b{color:var(--oro);font-weight:400}
.stamp{font-family:var(--fl);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--txd);border:1px solid var(--bd);border-radius:999px;padding:6px 12px}
.hero h1{font-size:clamp(2.4rem,7.4vw,5.2rem);text-transform:uppercase;max-width:17ch;margin-top:14px}
.hero h1 em{font-style:normal;color:var(--oro)}
.hero .lead{margin-top:16px}
.meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:.84rem;color:var(--txd)}
.meta b{color:var(--tx);font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:12px;margin-top:clamp(24px,4vw,36px)}
.kpi{background:linear-gradient(180deg,var(--surf2),var(--surf));border:1px solid var(--bd2);border-radius:14px;padding:16px 16px 14px;display:grid;gap:4px;align-content:start}
.kpi .v{font-family:var(--fh);font-size:clamp(2rem,4.4vw,2.7rem);line-height:1;color:var(--tx)}
.kpi .v small{font-size:.5em;color:var(--txd)}
.kpi .k{font-size:.8rem;color:var(--txd);line-height:1.35}
.kpi.hot .v{color:var(--oro)} .kpi.teal .v{color:var(--teal)} .kpi.red .v{color:var(--rojo)} .kpi.verde .v{color:var(--verde)}

/* okr */
.okr{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
/* 27-sep: en celular la pastilla del KR (texto largo, sin partir) y el 1fr sin minmax empujaban 61 px fuera de pantalla */
.okr>*{min-width:0}
@media(max-width:600px){.kr{grid-template-columns:40px minmax(0,1fr)}.kr .pill{grid-column:2;justify-self:start;white-space:normal}}
@media(min-width:900px){.okr{grid-template-columns:5fr 7fr}}
.obj{display:grid;gap:14px;align-content:start}
.obj .o{font-size:clamp(1.1rem,2.4vw,1.35rem);line-height:1.45;font-weight:600}
.norte{border:1px solid rgba(10,186,181,.35);border-radius:14px;padding:16px;background:rgba(10,186,181,.06);display:grid;gap:6px}
.norte b{font-family:var(--fh);font-weight:400;font-size:1.4rem;letter-spacing:.4px;color:var(--teal2)}
.norte span{font-size:.86rem;color:var(--txd)}
.krs{display:grid;gap:8px}
.kr{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--bd2);border-radius:12px;background:var(--glass)}
.kr .kk{font-family:var(--fh);font-size:1.3rem;color:var(--oro)}
.kr .kt{font-size:.92rem;font-weight:600}
.kr .kt small{display:block;font-weight:500;color:var(--txf);font-size:.76rem}

/* resumen */
.res{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px}
.ri{border:1px solid var(--bd2);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start;background:var(--glass)}
.ri .n{font-family:var(--fh);font-size:1.6rem;line-height:1;color:var(--oro)}
.ri b{font-size:1rem;line-height:1.35}
.ri p{font-size:.88rem;color:var(--txd);line-height:1.5}

/* oportunidad */
.op{display:grid;gap:10px}
.oprow{display:grid;grid-template-columns:minmax(0,190px) 1fr 64px;gap:12px;align-items:center}
@media(max-width:640px){.oprow{grid-template-columns:1fr 56px}.oprow .on{grid-column:1/-1}}
.on b{display:block;font-size:.92rem}
.on small{display:block;color:var(--txf);font-size:.75rem;line-height:1.3}
.ob{display:grid;gap:4px}
.ob div{display:flex;align-items:center;gap:8px;font-size:.76rem;font-weight:700}
.ob i{display:block;height:12px;border-radius:3px;min-width:3px}
.ob .us i{background:linear-gradient(90deg,var(--teal),var(--teal2))}
.ob .us{color:var(--teal2)}
.ob .es i{background:linear-gradient(90deg,var(--oro),var(--oro2))}
.ob .es{color:var(--oro2)}
.ox{font-family:var(--fh);font-size:1.35rem;text-align:right;color:var(--tx)}
.ox.hi{color:var(--teal2)}
.optot{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:baseline;margin-top:16px;padding-top:14px;border-top:1px dashed var(--bd2)}
.optot b{font-family:var(--fh);font-weight:400;font-size:2rem;color:var(--teal2)}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--txd);align-items:center}

/* evidencia */
.ev{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}
.evc{border:1px solid var(--bd2);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start;background:var(--glass);min-width:0}
.evc .v{font-family:var(--fh);font-size:3rem;line-height:1}
.evc .v small{font-size:.45em}
.evc b{font-size:.98rem}
.evc p{font-size:.86rem;color:var(--txd);overflow-wrap:anywhere}
.t-red .v{color:var(--rojo)} .t-teal .v{color:var(--teal)} .t-verde .v{color:var(--verde)}

/* tablas */
.tscroll{overflow-x:auto;border:1px solid var(--bd2);border-radius:14px}
table.t{border-collapse:collapse;width:100%;min-width:720px;font-size:.86rem}
.t th{font-family:var(--fl);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--txd);text-align:left;padding:12px 14px;background:var(--bg2);border-bottom:1px solid var(--bd)}
.t td{padding:11px 14px;border-bottom:1px solid var(--bd2);vertical-align:top}
.t tr:last-child td{border-bottom:0}
.t td:first-child{font-weight:600}
.t td.no{color:var(--txf)} .t td.si{color:var(--verde2);font-weight:700}
.t td.c{text-align:center;font-family:var(--fl);font-weight:700}
.t td.cR{color:var(--oro2)} .t td.cA{color:var(--teal2)} .t td.cC{color:var(--txd)}

/* flujo */
.flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(128px,100%),1fr));gap:10px;counter-reset:fl}
.fn{position:relative;border-radius:14px;padding:14px 12px;display:grid;gap:6px;align-content:start;border:1px solid var(--bd2);background:var(--glass);counter-increment:fl}
.fn::before{content:counter(fl);font-family:var(--fh);font-size:1.4rem;line-height:1;color:var(--txf)}
.fn b{font-family:var(--fl);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase}
.fn span{font-size:.78rem;color:var(--txd);line-height:1.35;overflow-wrap:anywhere}
.fn.fuente{border-color:rgba(10,186,181,.4)} .fn.fuente b{color:var(--teal2)}
.fn.motor{border-color:var(--bd)} .fn.motor b{color:var(--oro2)}
.fn.dato{border-color:rgba(255,176,32,.4);background:rgba(255,176,32,.05)} .fn.dato b{color:var(--ambar)}
.fn.gate{border-color:rgba(155,219,0,.4);background:rgba(155,219,0,.05)} .fn.gate b{color:var(--verde2)}
.fn.humano{border-color:rgba(247,244,239,.25)} .fn.humano b{color:var(--tx)}
.loop{margin-top:10px;font-size:.8rem;color:var(--teal2);font-family:var(--fl);letter-spacing:.06em}

/* ejes */
.ejes{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:980px){.ejes{grid-template-columns:repeat(3,1fr)}}
.eje{border:1px solid var(--bd2);border-radius:var(--rad);padding:16px;display:grid;gap:10px;align-content:start;background:var(--glass)}
.eje header{display:flex;align-items:center;gap:12px}
.eje .ek{font-family:var(--fh);font-size:2.2rem;line-height:1;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;color:#0A0A0B}
.eje h3{font-size:1.15rem}
.it{display:grid;grid-template-columns:40px 1fr;gap:10px;padding-top:10px;border-top:1px dashed var(--bd2)}
.it .ik{font-family:var(--fl);font-weight:700;font-size:.8rem;color:var(--txd)}
.it b{font-size:.92rem;display:block}
.it p{font-size:.82rem;color:var(--txd);line-height:1.45}

/* matriz */
.mx{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:980px){.mx{grid-template-columns:7fr 5fr}}
.mx svg{width:100%;height:auto;display:block}
.rank{display:grid;gap:6px;align-content:start}
.rank div{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--bd2);border-radius:10px;font-size:.86rem}
.rank .n{font-family:var(--fh);font-size:1.2rem;color:var(--oro)}
.rank em{font-style:normal;font-size:.75rem;color:var(--txd);white-space:nowrap}

/* gantt */
.gscroll{overflow-x:auto;border:1px solid var(--bd2);border-radius:14px;background:var(--bg2)}
.gantt{min-width:860px;padding:14px 14px 10px}
.gh,.gr{display:grid;grid-template-columns:230px 1fr;align-items:center}
.gh .gw{position:relative;height:26px}
.gh .gw span{position:absolute;top:4px;font-family:var(--fl);font-size:.75rem;color:var(--txd);letter-spacing:.06em;transform:translateX(-50%);white-space:nowrap}
.gr{padding:5px 0;border-top:1px solid var(--bd2)}
.gr .gl{font-size:.82rem;padding-right:12px;line-height:1.3}
.gr .gl b{font-family:var(--fl);color:var(--txd);margin-right:6px}
.gr .gt{position:relative;height:22px}
.gr .gt i{position:absolute;top:4px;height:14px;border-radius:4px}
.gr .gt i.A{background:linear-gradient(90deg,var(--teal),var(--teal2))}
.gr .gt i.B{background:linear-gradient(90deg,var(--oro),var(--oro2))}
.gr .gt i.C{background:linear-gradient(90deg,#7fb300,var(--verde))}
.gv{position:absolute;top:0;bottom:0;width:1px;background:rgba(247,244,239,.06)}
.gm{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed rgba(255,176,32,.55)}
.hitos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:10px;margin-top:14px}
.hito{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;padding:10px 12px;border:1px solid rgba(255,176,32,.35);border-radius:12px;background:rgba(255,176,32,.05)}
.hito b{color:var(--ambar);font-family:var(--fl);white-space:nowrap}

/* experimento */
.exp{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:860px){.exp{grid-template-columns:1fr 1fr}}
.grp{border-radius:14px;padding:16px;display:grid;gap:6px;border:1px solid var(--bd2)}
.grp.teal{border-color:rgba(10,186,181,.45);background:rgba(10,186,181,.06)}
.grp.gris{background:rgba(247,244,239,.03);border-style:dashed}
.grp b{font-family:var(--fh);font-weight:400;font-size:1.5rem;letter-spacing:.4px}
.grp.teal b{color:var(--teal2)}
.grp p{font-size:.88rem;color:var(--txd)}
.dl{display:grid;gap:0;margin-top:12px;border:1px solid var(--bd2);border-radius:14px;overflow:hidden}
.dl div{display:grid;grid-template-columns:minmax(0,210px) 1fr;gap:14px;padding:12px 14px;border-top:1px solid var(--bd2);font-size:.88rem}
.dl div:first-child{border-top:0}
.dl dt,.dl .k{font-family:var(--fl);font-weight:700;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oro2)}
@media(max-width:640px){.dl div{grid-template-columns:1fr;gap:4px}}

/* motivacional */
.mot{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:980px){.mot{grid-template-columns:6fr 6fr}}
.terr{display:grid;gap:8px}
.tr{display:grid;grid-template-columns:minmax(0,130px) 1fr 1fr;gap:10px;align-items:center;font-size:.82rem}
.tr .tb{display:flex;align-items:center;gap:6px;font-weight:700;font-variant-numeric:tabular-nums}
.tr .tb i{display:block;height:10px;border-radius:3px;min-width:2px}
.tr .es i{background:var(--oro)} .tr .es{color:var(--oro2)}
.tr .en i{background:var(--teal)} .tr .en{color:var(--teal2)}
.tr.hd{font-family:var(--fl);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--txd)}
.tr.ok .tn{color:var(--tx);font-weight:600}
.tr .tn small{color:var(--verde2);font-family:var(--fl);font-size:.75rem;letter-spacing:.1em;margin-left:6px}
.opts{display:grid;gap:10px}
.opt{border:1px solid var(--bd2);border-radius:14px;padding:14px;display:grid;gap:6px}
.opt.rec{border-color:rgba(155,219,0,.45);background:rgba(155,219,0,.05)}
.opt header{display:flex;align-items:center;gap:10px;justify-content:space-between}
.opt b{font-size:1rem}
.opt p{font-size:.86rem;color:var(--txd)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:.78rem;padding:4px 10px;border-radius:999px;border:1px solid var(--bd2);background:rgba(247,244,239,.04)}
.steps9{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:8px}
.steps9 div{font-size:.82rem;padding:10px 12px;border-radius:10px;border:1px solid var(--bd2);background:var(--glass)}

/* herramientas */
.tools{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:900px){.tools{grid-template-columns:1fr 1fr}}
.tool{display:grid;gap:12px;align-content:start}
.tool h3 small{display:block;font-family:var(--ft);text-transform:none;letter-spacing:0;font-size:.84rem;color:var(--teal2);margin-top:4px}
.kwv{display:grid;gap:6px}
.kwv div{display:flex;justify-content:space-between;gap:10px;font-size:.84rem;padding:6px 10px;border-radius:8px;background:rgba(247,244,239,.04)}
.kwv b{font-variant-numeric:tabular-nums}
.kwv .es b{color:var(--oro2)} .kwv .en b{color:var(--teal2)}
.tool .lbl{font-family:var(--fl);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--txd)}
.tool p{font-size:.86rem;color:var(--txd)}

/* riesgos */
.rk{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.rk{grid-template-columns:5fr 7fr}}
.rgrid{display:grid;grid-template-columns:34px repeat(3,1fr);grid-template-rows:repeat(3,minmax(78px,auto)) 30px;gap:6px}
.rc{border-radius:10px;padding:6px;display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start}
.rc span{font-family:var(--fl);font-weight:700;font-size:.75rem;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#0A0A0B;border:1px solid rgba(247,244,239,.3)}
.ry{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--fl);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--txd);display:grid;place-items:center}
.rx{font-family:var(--fl);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--txd);text-align:center;align-self:center}
.rlist{display:grid;gap:8px}
.rlist div{display:grid;grid-template-columns:28px 1fr;gap:10px;font-size:.86rem;padding:8px 0;border-bottom:1px solid var(--bd2)}
.rlist b{display:block}
.rlist p{color:var(--txd);font-size:.82rem}
.rlist .n{font-family:var(--fl);font-weight:700;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;border:1px solid rgba(247,244,239,.3)}

/* decisiones */
.dec{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:12px}
.dc{border:1px solid var(--bd);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start;background:linear-gradient(180deg,rgba(255,107,0,.07),transparent 70%)}
.dc .dn{font-family:var(--fh);font-size:1.6rem;line-height:1;color:var(--oro)}
/* 27-sep: una pastilla de decision con texto largo («desbloquea conversion por URL en Meta y Google Ads») desbordaba 10 px a 390 px; en la tarjeta de decision la pastilla puede partir linea */
.dc .pill{white-space:normal;max-width:100%}
.dc b{font-size:1rem}
.dc p{font-size:.86rem;color:var(--txd)}
.dc p strong{color:var(--verde2);font-weight:600}
.dc footer{display:flex;flex-wrap:wrap;gap:6px}

/* bsc */
.bsc{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media(min-width:760px){.bsc{grid-template-columns:repeat(2,minmax(0,1fr))}}
.persp{border:1px solid var(--bd2);border-radius:var(--rad);padding:18px;background:var(--glass);display:grid;gap:12px;align-content:start}
.persp header{display:flex;align-items:center;gap:12px}
.pico{width:12px;height:40px;border-radius:6px;flex:none}
.persp h3{font-size:1.1rem}
.persp .pq{font-size:.82rem;color:var(--txd)}
.ind{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding-top:10px;border-top:1px dashed var(--bd2);font-size:.86rem}
.ind .f{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;font-size:.76rem;color:var(--txd)}
.ind .f b{color:var(--tx)}

/* lista, historial, fuentes */
.lst{display:grid;gap:8px;counter-reset:l;padding:0;margin:0;list-style:none}
.lst li{display:grid;grid-template-columns:34px 1fr;gap:10px;font-size:.92rem;padding:10px 0;border-bottom:1px solid var(--bd2);counter-increment:l}
.lst li::before{content:counter(l);font-family:var(--fh);font-size:1.3rem;color:var(--oro)}
.hist{display:grid;gap:8px;overflow-wrap:anywhere}.hist>*{min-width:0}
.dc{min-width:0;overflow-wrap:anywhere}  /* 25-sep: nombres de archivo largos (con _ no hay corte) desbordaban a 390 y a 1280 */
.hist div{display:grid;grid-template-columns:52px 110px 1fr;gap:10px;font-size:.84rem;color:var(--txd)}
.hist b{font-family:var(--fh);font-weight:400;color:var(--tx);font-size:1.1rem}
@media(max-width:640px){.hist div{grid-template-columns:44px 1fr}.hist div span:nth-child(2){display:none}}
.src{font-size:.84rem;color:var(--txd);padding-left:18px;margin:0}
.src li{overflow-wrap:anywhere;margin-bottom:4px}
footer.pie{padding-block:28px 48px;border-top:1px solid var(--bd2);font-size:.8rem;color:var(--txf);overflow-wrap:anywhere}

/* === extensión Motor de Áreas (2026-09-27): láminas, reparto antes/después, hallazgos e intervenciones === */
.lams{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:900px){.lams.dos{grid-template-columns:1fr 1fr}}
.lam{margin:0;border:1px solid var(--bd2);border-radius:14px;overflow:hidden;background:var(--bg2);min-width:0}
.lam img{display:block;width:100%;height:auto;cursor:zoom-in}
.lam figcaption{padding:10px 14px;font-size:.84rem;color:var(--txd)}
.lam figcaption b{color:var(--tx);display:block;font-size:.92rem}
.zoom{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:12px;cursor:zoom-out}
.zoom img{max-width:100%;max-height:100%;object-fit:contain}
.rep{display:grid;gap:8px}
.rrow{display:grid;grid-template-columns:minmax(0,200px) 1fr 132px;gap:12px;align-items:center;font-size:.86rem}
@media(max-width:640px){.rrow{grid-template-columns:1fr 104px}.rrow .rb{grid-column:1/-1;order:3}}
.rrow .rn{display:flex;gap:8px;align-items:center;min-width:0}
.rrow .rn i{width:12px;height:12px;border-radius:3px;flex:none}
.rb{display:grid;gap:3px}
.rb i{display:block;height:9px;border-radius:3px;min-width:2px}
.rv{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rv small{color:var(--txd)} .rv b{margin-left:6px} .rv em{font-style:normal;color:var(--oro2);font-size:.76rem;display:block}
.hl{display:grid;gap:10px}
.hi{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:12px 14px;border:1px solid var(--bd2);border-radius:12px;background:var(--glass)}
.hi .n{font-family:var(--fh);font-size:1.4rem;color:var(--oro)} .hi.fortaleza .n{color:var(--verde)} .hi.media .n{color:var(--ambar)}
.hi b{display:block} .hi p{font-size:.88rem;color:var(--txd)}
.ivs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr))}
.iv{border:1px solid var(--bd2);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start;background:var(--glass);min-width:0}
.iv header{display:flex;gap:10px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.iv .k{font-family:var(--fh);font-size:1.5rem;color:var(--oro);line-height:1}
.iv b{font-size:1rem} .iv p{font-size:.86rem;color:var(--txd)} .iv p strong{color:var(--tx);font-weight:600}
.flx{display:grid;gap:14px}
/* 1.17.0 · piezas del MR FX Kit en flujos: mariposa y los dos sankey a todo el ancho (el sankey necesita sus 960 px de dibujo) */
.flx{grid-template-columns:minmax(0,1fr)}.flx>*{min-width:0}
.flx-sk{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.flx-sk>div,.flx-kit{min-width:0;border:1px solid var(--bd2);border-radius:14px;padding:14px;background:var(--glass)}
.flx-sk h4{margin:0 0 6px;font:700 .8rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--txd)}
.mfv-host{min-width:0}
.flk{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}
.flk div{border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;background:var(--glass)}
.flk b{font-family:var(--fh);font-size:1.7rem;line-height:1;display:block} .flk small{color:var(--txd);font-size:.8rem;display:block;margin-top:4px}
.flk b.ko{color:var(--rojo,#FF5A4E)} .flk b.ok{color:var(--verde,#3BD16F)} .cap-ideas{margin:14px 0 18px;padding-left:20px;display:grid;gap:6px} .cap-ideas li{cursor:pointer;min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:0 6px}
.msl-host{min-width:0;margin-top:16px}
/* 1.16.0 · TRÁFICO: reproductor de la hora pico simulada (meseros y clientes) sobre el plano a escala */
.trf{display:grid;gap:16px}
.trf-vis{border:1px solid var(--bd2);border-radius:16px;padding:12px;background:var(--glass)}
.trf-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.trf-tabs button,.trf-ctl button{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--bd2);background:transparent;color:var(--tx);font:600 .9rem var(--fb,inherit);cursor:pointer}
.trf-tabs button[aria-selected="true"]{background:var(--oro);border-color:var(--oro);color:#0A0A0B}
.trf-ctl button[aria-pressed="true"]{background:rgba(255,107,0,.18);border-color:var(--oro)}
.trf-esc{position:relative;max-width:100%;margin:0 auto;border-radius:12px;overflow:hidden;background:#FAF8F4}
.trf-esc img{display:block;width:100%;height:auto}
.trf-esc canvas{position:absolute;inset:0;width:100%;height:100%}
.trf-ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.trf-t{font-size:.8rem;color:var(--txd);margin-left:auto}
.trf-ley{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.82rem;color:var(--txd)}
.trf-ley i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.trf-ley i.r{background:transparent;border:2px solid var(--rojo)}
.trf .n-comodo{color:#3BD16F}.trf .n-estrecho{color:var(--ambar)}.trf .n-de_lado{color:var(--rojo)}.trf .n-inaccesible{color:#C77DFF}
.trf details{border:1px solid var(--bd2);border-radius:12px;padding:10px 14px}
.trf details summary{cursor:pointer;font-weight:700;min-height:28px}
@media print{.trf-ctl,.trf-tabs{display:none}.trf-esc{break-inside:avoid}}
li,.iv p,.hi p{overflow-wrap:anywhere}
.ok{color:#3BD16F;font-weight:700} .ko{color:var(--rojo, #FF5A4E);font-weight:700}
.bars{display:grid;gap:10px}
.bar{display:grid;grid-template-columns:minmax(120px,210px) 1fr auto;gap:12px;align-items:center}
.bar .bt{display:grid;gap:3px} .bar .bt i{display:block;height:9px;border-radius:5px}
.bar .bv{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap} .bar .bv small{color:var(--txd);margin-right:6px}
@media (max-width:560px){.bar{grid-template-columns:1fr auto}.bar .bt{grid-column:1/-1;order:3}}
@media(prefers-reduced-motion:no-preference){
  .kpi,.ri,.evc,.eje,.persp,.dc,.opt{transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s}
  .kpi:hover,.ri:hover,.evc:hover,.eje:hover,.persp:hover,.dc:hover,.opt:hover{transform:translateY(-3px)}
}

/* ============================================================================
   DASHBOARD LUXE v2 (0.9.66) — capa ADITIVA de talla mundial para los dashboards del motor.
   Reglas de familia (Kit doc 19): oro=identidad · Tiffany=éxito/acción · animación GPU-only
   (transform/opacity/filter) · respiración con luz · prefers-reduced-motion SIEMPRE respetado.
   Reutilizable: apunta a clases genéricas (.kpi/.kpis/.lctab/.mbtn/.dsiteseg/h1/h2) — cualquier
   dashboard de la familia la hereda con <link> + dashboard_luxe.js.
   ========================================================================== */
:root{--lux-gold:#d4af54;--lux-tif:#0ABAB5;--lux-ink:#0a0c11}

/* ---- AURORA VIVA de fondo (dos masas de luz a la deriva + barrido cónico lentísimo) ---- */
body{position:relative}
body::before,body::after{content:"";position:fixed;inset:-20%;z-index:0;pointer-events:none}
body::before{background:
  radial-gradient(38% 30% at 18% 12%,rgba(212,175,84,.075),transparent 70%),
  radial-gradient(34% 28% at 84% 78%,rgba(10,186,181,.065),transparent 70%);
  animation:luxDrift 26s ease-in-out infinite alternate;filter:blur(2px)}
body::after{background:conic-gradient(from 0deg at 50% 50%,transparent 0 82%,rgba(212,175,84,.035) 90%,transparent 98%);
  animation:luxSpin 90s linear infinite;mix-blend-mode:screen}
@keyframes luxDrift{from{transform:translate3d(-2.5%,-1.5%,0) scale(1)}to{transform:translate3d(2.5%,2%,0) scale(1.06)}}
@keyframes luxSpin{to{transform:rotate(360deg)}}
body>*{position:relative;z-index:1}

/* ---- KPI: vidrio + borde-halo cónico girando + RESPIRACIÓN CON LUZ + número con gradiente ---- */
.kpi{position:relative;isolation:isolate;overflow:hidden;backdrop-filter:blur(8px);
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s;transform:translateZ(0)}
.kpi::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;z-index:-1;
  background:conic-gradient(from var(--lux-a,0deg),rgba(212,175,84,.55),rgba(10,186,181,.35),transparent 40%,rgba(212,175,84,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  animation:luxRing 9s linear infinite;opacity:.5}
@property --lux-a{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes luxRing{to{--lux-a:360deg}}
.kpi{animation:luxBreathe 5.2s ease-in-out infinite}
.kpi:nth-child(2){animation-delay:.7s}.kpi:nth-child(3){animation-delay:1.4s}
.kpi:nth-child(4){animation-delay:2.1s}.kpi:nth-child(5){animation-delay:2.8s}
@keyframes luxBreathe{0%,100%{box-shadow:0 6px 26px rgba(0,0,0,.35),0 0 0 rgba(212,175,84,0)}
  50%{box-shadow:0 10px 34px rgba(0,0,0,.45),0 0 26px rgba(212,175,84,.10)}}
.kpi.ok{--luxc:rgba(10,186,181,.14)}.kpi.ok::before{background:conic-gradient(from var(--lux-a,0deg),rgba(10,186,181,.6),rgba(212,175,84,.25),transparent 40%,rgba(10,186,181,.6))}
.kpi:hover{transform:translateY(-4px) scale(1.015)}
/* CÓDIGO DE COLORES ORIGINAL PRESERVADO (pedido Diego): default=acento del motor (--mc2),
   ok=verde (--ok2), amb=ámbar (--amb) — consistente con el dashboard AI. El gradiente premium
   se construye DESDE ese color, no lo reemplaza. */
.kpi .n{background:linear-gradient(120deg,#fff 18%,var(--mc2,var(--lux-gold)) 78%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums}
.kpi.ok .n{background:linear-gradient(120deg,#fff 14%,var(--ok2,var(--lux-tif)) 75%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.kpi.amb .n{background:linear-gradient(120deg,#fff 14%,var(--amb,#f5b301) 75%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* barrido de luz (sheen) al pasar */
.kpi::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transition:left .8s cubic-bezier(.22,1,.36,1)}
.kpi:hover::after{left:130%}

/* ---- Entrada escalonada (reveal) ---- */
.lux-in{opacity:0;transform:translateY(14px)}
.lux-in.lux-go{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}

/* ---- Títulos con línea de energía ---- */
h1,h2{position:relative}
h2::after{content:"";display:block;height:2px;margin-top:6px;border-radius:2px;max-width:150px;
  background:linear-gradient(90deg,var(--lux-gold),var(--lux-tif),transparent);
  background-size:200% 100%;animation:luxFlow 3.6s linear infinite}
@keyframes luxFlow{to{background-position:-200% 0}}

/* ---- Tabs / selector de sitios / botones: vida al interactuar ---- */
.lctab,.dsiteseg button,.mbtn{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .22s,border-color .18s!important;transform:translateZ(0)}
.lctab:hover,.dsiteseg button:hover{transform:translateY(-2px)}
.lctab:active,.dsiteseg button:active,.mbtn:active{transform:scale(.96)}
.lctab.on,.dsiteseg button.on{box-shadow:0 4px 18px rgba(212,175,84,.22);animation:luxTabGlow 3.4s ease-in-out infinite}
@keyframes luxTabGlow{0%,100%{box-shadow:0 4px 16px rgba(212,175,84,.16)}50%{box-shadow:0 6px 26px rgba(10,186,181,.22)}}
.mbtn-pub{position:relative;overflow:hidden}
.mbtn-pub::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:translateX(-120%);animation:luxCta 4.5s ease-in-out infinite}
@keyframes luxCta{0%,58%{transform:translateX(-120%)}78%,100%{transform:translateX(120%)}}

/* ---- Filas de lista: micro-lift ---- */
.dl a,.dl>div{transition:transform .16s,background .16s}
.dl a:hover,.dl>div:hover{transform:translateX(4px)}

/* ---- Barra de progreso viva ---- */
.pvprog .pvtime{text-shadow:0 0 18px rgba(10,186,181,.5);animation:luxBreathe 2.6s ease-in-out infinite}
.rgtr i{background-image:linear-gradient(90deg,var(--lux-tif),var(--lux-gold))!important}

/* ---- Accesibilidad / rendimiento ---- */
:focus-visible{outline:2px solid var(--lux-tif);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){
  body::before,body::after,.kpi,.kpi::before,.kpi::after,.lctab.on,.dsiteseg button.on,.mbtn-pub::after,h2::after,.pvprog .pvtime{animation:none!important;transition:none!important}
  .lux-in{opacity:1;transform:none}}
@media (max-width:640px){body::after{display:none}.kpi:hover{transform:none}}


/* ================= REPORTE v2 (Motor de Áreas 1.2.0) =================
   Pedidos de Diego (2026-09-27), cada uno con su regla en reglas_reporte.json:
   · marca del cliente arriba;
   · portada con el antes y el después;
   · cajas de luz que se mueven;
   · detalle al hacer clic;
   · móvil profesional;
   · botón PDF según el Kit doc 31;
   · conclusiones siempre;
   · cronogramas en semanas y meses, sin fechas.
   El movimiento es solo transform/opacity y respeta prefers-reduced-motion. */
.progreso{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:60;background:linear-gradient(90deg,var(--oro),var(--ambar),var(--teal));pointer-events:none}
.toc .wrap{align-items:center}
.toc a.on{color:#0A0A0B;background:var(--oro2);border-color:var(--oro2)}
.toc .volver{background:rgba(10,186,181,.12);border-color:rgba(10,186,181,.45);color:var(--teal2)}
.btn{font-family:var(--fl);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--bd);background:rgba(255,107,0,.1);color:var(--tx);cursor:pointer;text-decoration:none;position:relative;overflow:hidden}
.btn.pri{background:linear-gradient(135deg,var(--oro),#ff8a2a);color:#0A0A0B;border-color:transparent}
.btn.pri::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-120%);animation:luxCta 4.5s ease-in-out infinite}
.btn:hover{border-color:var(--oro2)}
.toc .btn{min-height:36px;padding:0 14px;font-size:.75rem;flex:none}

/* portada cinematográfica */
.portada{position:relative;overflow:hidden;border-bottom:1px solid var(--bd2);padding-block:clamp(22px,4vw,44px) clamp(28px,5vw,56px)}
.portada::before{content:"";position:absolute;inset:-20%;pointer-events:none;z-index:0;background:radial-gradient(38% 42% at 22% 30%,rgba(255,170,90,.16),transparent 70%),radial-gradient(30% 36% at 82% 22%,rgba(10,186,181,.10),transparent 70%),radial-gradient(42% 38% at 60% 88%,rgba(255,107,0,.10),transparent 70%);will-change:transform;animation:aura 24s ease-in-out infinite alternate}
@keyframes aura{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(3%,-2%,0) scale(1.06)}100%{transform:translate3d(-2%,2%,0) scale(1.02)}}
.portada .wrap{position:relative;z-index:1}
.cliente{display:grid;gap:2px}
.cliente .cm{font-family:var(--fh);font-size:clamp(1.6rem,4.6vw,2.4rem);letter-spacing:.6px;line-height:1;background:linear-gradient(120deg,#fff 20%,var(--oro2) 85%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cliente .cl{font-family:var(--fl);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--txd)}
.hero-top .brand{font-size:1rem;color:var(--txd)}
.hero-grid{display:grid;gap:clamp(20px,4vw,40px);grid-template-columns:minmax(0,1fr);align-items:center}
.hero-grid>*{min-width:0}
@media(min-width:980px){.hero-grid{grid-template-columns:6fr 5fr}}
.portada h1{font-size:clamp(2.1rem,6.2vw,4.4rem);text-transform:uppercase;margin-top:12px;max-width:18ch}
.portada h1 em{font-style:normal;color:var(--oro)}
.acciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
/* antes / después con arrastre */
.ba{position:relative;margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--bd);box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,214,150,.06);aspect-ratio:3/4;max-height:78vh;background:#000;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.ba::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,230,190,.16) 48%,rgba(255,255,255,.22) 50%,rgba(255,230,190,.16) 52%,transparent 65%);background-size:250% 100%;background-repeat:no-repeat;animation:brillo 9s ease-in-out infinite}
@keyframes brillo{0%,62%{background-position:150% 0}100%{background-position:-50% 0}}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.ba .antes{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.ba .tir{position:absolute;top:0;bottom:0;left:var(--x,50%);width:2px;margin-left:-1px;background:linear-gradient(var(--oro2),#fff,var(--oro2));box-shadow:0 0 18px rgba(255,170,90,.8)}
.ba .tir b{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:rgba(10,10,11,.8);border:2px solid var(--oro2);display:grid;place-items:center;color:var(--oro2);font-size:1.1rem;cursor:ew-resize}
.ba .et{position:absolute;top:12px;font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(10,10,11,.72);backdrop-filter:blur(6px)}
.ba .et.a{left:12px;color:var(--txd)} .ba .et.d{right:12px;color:var(--oro2)}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;font-size:.78rem;color:var(--txd);background:linear-gradient(transparent,rgba(0,0,0,.8))}
/* 1.11.1 · la portada toma la proporción de su foto y nada se recorta (Diego, 2026-10-03: «en la imagen principal sale
   cortada la implantación, debe verse completa»). Antes era 3/4 fijo con object-fit:cover: una foto apaisada perdía los lados.
   El ancho se limita para que la altura no pase del tope de la portada sin deformar la proporción. */
#ba{aspect-ratio:var(--ar,3/4);width:min(100%,calc(min(58vh,540px) * var(--arn,.75)));max-height:none;margin-inline:auto}
/* 1.9.0 · galería de opciones, comparadores y ficha de medidas */
.gal{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr))}
.gc{position:relative;display:grid;grid-template-rows:auto 1fr;border:1px solid var(--bd2);border-radius:16px;overflow:hidden;background:var(--glass);text-decoration:none;color:var(--tx);min-width:0;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s}
.gc:hover,.gc:focus-visible{transform:translateY(-5px);border-color:var(--oro2);box-shadow:0 22px 50px rgba(0,0,0,.5)}
.gc .gi{aspect-ratio:4/5;overflow:hidden;background:#000;position:relative}
.gc .gi img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.gc:hover .gi img{transform:scale(1.06)}
.gc .gl{position:absolute;left:10px;top:10px;font-family:var(--fh);font-size:1.6rem;line-height:1;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(10,10,11,.78);color:var(--oro2);border:1px solid var(--bd)}
.gc .gt{padding:12px 14px 14px;display:grid;gap:8px;align-content:start}
.gc .gt b{font-size:1.02rem}
.gc .gt em{font-style:normal;font-family:var(--fl);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--oro2)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:.78rem;padding:4px 9px;border-radius:999px;border:1px solid var(--bd2);background:rgba(247,244,239,.04);color:var(--txd);white-space:nowrap}
.chips span b{color:var(--tx);font-weight:700}
.gc .rk{position:absolute;right:10px;top:10px;font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(255,107,0,.92);color:#0a0a0b}
.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:10px;margin-bottom:16px}
.fm{position:relative;border:1px solid var(--bd2);border-radius:14px;padding:12px 14px;background:linear-gradient(180deg,rgba(255,107,0,.06),transparent 80%);display:grid;grid-template-columns:minmax(0,1fr);gap:4px;min-width:0;cursor:pointer;transition:border-color .25s,transform .25s}
.fm:hover{border-color:var(--bd);transform:translateY(-2px)}
.fm .fv{font-family:var(--fh);font-size:clamp(1.5rem,3.2vw,2rem);line-height:1;color:var(--oro2)}
.fm .fv small{font-family:var(--fb,inherit);font-size:.85rem;color:var(--txd);margin-left:3px}
.fm .fk{font-size:.8rem;color:var(--txd)}
.cmps{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}
.cmp{margin:0;min-width:0;display:grid;gap:8px}
.cmp .ba{aspect-ratio:var(--ar,3/4);max-height:none;width:100%;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.cmp .ba::after{animation-duration:11s}
.cmp .lam{border-radius:18px}
.cmp>figcaption{font-size:.86rem;color:var(--txd);padding:0 4px;display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.cmp>figcaption b{display:block;color:var(--tx);font-size:.95rem}
.amp{flex:none;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--bd);background:rgba(255,107,0,.1);color:var(--tx);font-family:var(--fl);font-weight:700;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;cursor:zoom-in}
.amp:hover{background:rgba(255,107,0,.22)}
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
@media(min-width:900px){
  .cmps.dos{grid-template-columns:1fr 1fr}
  .cmps.opc{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cmps.opc .cmp.alto{grid-row:span 2}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.gc,.gc .gi img,.fm{transition:none}}
.pista{font-size:.76rem;color:var(--txf);margin-top:8px;text-align:center}

/* clic para ver detalle */
[data-d]{cursor:pointer;position:relative}
[data-d]:not(tr):not(circle):not(g){transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .2s}
[data-d]:not(tr):not(circle):not(g):hover{border-color:var(--bd);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.mas{position:absolute;top:10px;right:10px;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,214,150,.3);background:rgba(10,10,11,.6);opacity:.55;transition:opacity .2s,transform .25s;pointer-events:none}
.mas::before{content:"";width:10px;height:10px;background:linear-gradient(var(--oro2),var(--oro2)) center/10px 1.5px no-repeat,linear-gradient(var(--oro2),var(--oro2)) center/1.5px 10px no-repeat}
:has(> .mas){position:relative}
[data-d]:hover > .mas,[data-d]:focus-visible > .mas{opacity:1;transform:rotate(90deg)}
tr[data-d]:hover td{background:rgba(255,107,0,.05)}
circle[data-d]:hover{stroke:#fff}
.cajon{position:fixed;inset:0;z-index:90;display:grid;justify-items:end;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s}
.cajon[hidden]{display:none}
.cajon.abierto{opacity:1}
.cajon-in{width:min(560px,100%);height:100%;overflow:auto;background:linear-gradient(180deg,#1b1510,#0f0c09);border-left:1px solid var(--bd);box-shadow:-30px 0 80px rgba(0,0,0,.6);padding:0 clamp(16px,4vw,26px) calc(28px + env(safe-area-inset-bottom));transform:translateX(30px);transition:transform .3s cubic-bezier(.22,1,.36,1)}
.cajon.abierto .cajon-in{transform:none}
.cajon header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0 12px;background:linear-gradient(#1b1510 80%,transparent);z-index:1}
.cajon h3{font-size:1.2rem;line-height:1.15}
.cajon .x{min-width:44px;min-height:44px;border-radius:50%;border:1px solid var(--bd2);background:rgba(255,255,255,.04);color:var(--tx);font-size:1.3rem;cursor:pointer}
.cajon .cb{display:grid;gap:14px;font-size:.95rem;line-height:1.6}
.cajon .cb p{color:var(--txd)} .cajon .cb p strong{color:var(--tx)}
.cajon .cb .dl div{grid-template-columns:minmax(0,150px) 1fr}
.cajon .cb img{width:100%;height:auto;border-radius:12px;display:block}
@media(max-width:640px){
  .cajon{justify-items:stretch;align-items:end}
  .cajon-in{width:100%;height:auto;max-height:88dvh;border-left:0;border-top:1px solid var(--bd);border-radius:20px 20px 0 0;transform:translateY(40px)}
  .cajon-in::before{content:"";display:block;width:44px;height:4px;border-radius:2px;background:var(--bd2);margin:10px auto 0}
}
.visor{overflow:auto;max-height:70dvh;border-radius:12px;border:1px solid var(--bd2);background:#000;-webkit-overflow-scrolling:touch}
.visor img{width:180%;max-width:none;height:auto;display:block}
@media(min-width:900px){.visor img{width:140%}}

/* recortes de foto (hallazgos e intervenciones) */
.rec{container-type:inline-size;position:relative;border-radius:10px;overflow:hidden;background-color:#000;background-repeat:no-repeat;border:1px solid var(--bd2);aspect-ratio:var(--ar,4/3);width:100%}
.rec .rz{position:absolute;border:2px solid var(--oro2);border-radius:4px;box-shadow:0 0 0 999px rgba(0,0,0,.28),0 0 14px rgba(255,170,90,.7)}
.rec em{position:absolute;left:6px;bottom:6px;font-style:normal;font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:rgba(10,10,11,.8);color:var(--txd)}
.rec.d em{color:var(--oro2)}
.rec .rp{position:absolute;z-index:1;display:inline-flex;align-items:baseline;gap:5px;font-family:var(--fh);font-weight:400;font-size:clamp(1rem,2.4vw,1.35rem);line-height:1;color:#0A0A0B;background:var(--oro2);padding:5px 9px 4px;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.45);white-space:nowrap}
.rec .rp small{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.rec.d .rp{background:var(--teal2)}
@container (max-width:240px){.rec .rp{font-size:.95rem;padding:3px 6px 2px;border-radius:6px}.rec .rp small{display:none}}
.par{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hi.foto{grid-template-columns:44px minmax(0,1fr) 120px}
@media(max-width:640px){.hi.foto{grid-template-columns:40px minmax(0,1fr)}.hi.foto .rec{grid-column:1/-1}}
.iv .par{margin-top:4px}
.iv .pill,.hi .pill,.rci .pill,.trafico .pill{white-space:normal;max-width:100%}
.iv,.hi,.rci,.rf,.lgr,.cci{min-width:0;overflow-wrap:anywhere}

/* conclusiones y recomendaciones */
.conc{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.conc{grid-template-columns:5fr 7fr}}
.conc>*{min-width:0}
.cc{display:grid;gap:10px}
.cci{border-left:3px solid var(--oro);padding:10px 14px;background:linear-gradient(90deg,rgba(255,107,0,.08),transparent);border-radius:0 12px 12px 0}
.cci b{display:block;font-size:1.02rem} .cci p{color:var(--txd);font-size:.92rem}
.rcm{display:grid;gap:10px;counter-reset:r}
.rci{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--bd2);border-radius:14px;background:var(--glass);counter-increment:r}
.rci::before{content:counter(r);font-family:var(--fh);font-size:1.8rem;line-height:1;color:var(--oro)}
.rci b{display:block;font-size:1rem} .rci p{font-size:.9rem;color:var(--txd)}
.rci .hz{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* R-NORMATIVA: permisos y normativa local, siempre al cierre */
.normativa{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;margin-top:18px;padding:16px 18px;border:1px solid rgba(255,107,0,.45);border-radius:14px;background:rgba(255,107,0,.07);break-inside:avoid}
.normativa svg{color:var(--oro);margin-top:2px}.normativa b{display:block;font-size:1rem;margin-bottom:4px}.normativa p{font-size:.92rem;color:var(--txd)}
/* R-FICTICIO: caso de ejemplo */
.cliente .ficticio{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;font-size:.8rem;white-space:normal;max-width:100%;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,107,0,.16);color:var(--oro);border:1px solid rgba(255,107,0,.5)}

@media(max-width:520px){.cliente .ficticio{display:block;margin:6px 0 0;width:fit-content}}

/* enlaces (reporte de marca) */
.enl{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.en{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--bd2);border-radius:16px;overflow:hidden;background:var(--glass);text-decoration:none;color:var(--tx);min-width:0;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s}
.en:hover{transform:translateY(-4px);border-color:var(--oro2)}
.en .th{aspect-ratio:16/10;background:#000 center/cover no-repeat;position:relative}
.en .th::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.65))}
.en .th .tp{position:absolute;left:10px;bottom:10px;z-index:1}
.en .tx{padding:12px 14px 14px;display:grid;gap:4px}
.en .tx b{font-size:1rem} .en .tx span{font-size:.84rem;color:var(--txd);overflow-wrap:anywhere}
.en .tx small{font-size:.75rem;color:var(--txf);overflow-wrap:anywhere}
/* 1.9.0 · descargas: el PDF imprimible con imágenes y medidas, y las imágenes en alta (Diego, 2026-10-01) */
.enl-dl .en .th{aspect-ratio:16/9}
.enl-dl .en .tp{position:absolute;left:10px;bottom:10px;z-index:1}
.enl-dl .en em{font-style:normal;font-weight:700;color:var(--oro2);font-size:.9rem}

/* legibilidad */
.leg{display:grid;gap:12px}
.lgr{display:grid;grid-template-columns:minmax(0,220px) 1fr 92px;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--bd2);border-radius:12px;background:var(--glass)}
.lgr .ln b{display:block;font-size:.92rem} .lgr .ln small{color:var(--txd);font-size:.76rem;display:block}
.lgb{display:grid;gap:5px}
.lgb div{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:center;font-size:.75rem;color:var(--txd);font-family:var(--fl);letter-spacing:.08em;text-transform:uppercase}
.fxgauge{height:12px;border-radius:99px;background:rgba(247,244,239,.07);overflow:hidden;position:relative}
.fxgauge i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--oro),var(--teal));transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.fxgauge.noche i{background:linear-gradient(90deg,#3b4a8c,#8ea2ff)}
.fxgauge i::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);background-size:200% 100%;animation:fxSheen 2.6s linear infinite;mix-blend-mode:overlay}
@keyframes fxSheen{0%{background-position:-180% 0}100%{background-position:180% 0}}
.lgr .lv{text-align:right;font-family:var(--fh);font-size:1.6rem;line-height:1}
.lgr .lv small{display:block;font-family:var(--fl);font-size:.75rem;letter-spacing:.12em;color:var(--txd);text-transform:uppercase;margin-top:4px}
@media(max-width:640px){.lgr{grid-template-columns:minmax(0,1fr) 76px}.lgr .lgb{grid-column:1/-1;order:3}}
.trafico{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}

/* referentes de categoría */
.ref{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}
.rf{border:1px solid var(--bd2);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start;background:var(--glass);min-width:0}
.rf header{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.rf h3{font-size:1.15rem} .rf .pa{font-family:var(--fl);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txd)}
.rf p{font-size:.88rem;color:var(--txd)} .rf p.le{color:var(--tx);border-left:2px solid var(--teal);padding-left:10px}

/* gantt relativo (semanas y meses, nunca fechas) */
.gh .gw span.mes{color:var(--oro2);font-weight:700}
.gr .gl small{display:block;color:var(--txf);font-size:.75rem;font-family:var(--fl);letter-spacing:.04em}
@media(max-width:700px){
  .gscroll{border:0;background:transparent;overflow:visible}
  .gantt{min-width:0;padding:0}
  .gh{display:none}
  .gr{grid-template-columns:1fr;gap:6px;padding:12px 14px;border:1px solid var(--bd2);border-radius:12px;margin-bottom:8px;background:var(--glass)}
  .gr .gt{height:14px;background:rgba(247,244,239,.05);border-radius:4px}
  .gr .gt i{top:0;height:14px}
  .gv,.gm{display:none}
}

/* tablas → tarjetas apiladas en celular (cada celda lleva su rótulo en data-label) */
@media(max-width:640px){
  .tscroll{overflow:visible;border:0}
  table.t,.t tbody{display:block;width:100%;min-width:0}
  .t td{white-space:normal!important}
  .solo-escritorio{display:none!important}
  .t thead{display:none}
  .t tr{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--bd2);border-radius:12px;margin-bottom:10px;background:var(--glass)}
  .t td{display:grid;grid-template-columns:minmax(0,40%) 1fr;gap:10px;padding:4px 0;border:0;text-align:left!important}
  .t td::before{content:attr(data-label);font-family:var(--fl);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--txf);align-self:center}
  .t td:first-child{grid-template-columns:1fr;font-size:1rem}
  .t td:first-child::before{display:none}
}
/* tipografía mínima y áreas táctiles (Kit doc 06) */
.pill{font-size:.75rem}
.eyebrow{font-size:.76rem}
.toc a{min-height:36px;display:inline-flex;align-items:center}
@media(pointer:coarse){.toc a{min-height:44px}.toc .btn{min-height:44px}.rc span{width:44px!important;height:44px!important;font-size:.9rem!important}}
.rank div{min-height:44px}
.bar,.rrow{min-height:44px}
.rv small,.bar .bv small,.kpi .v small{font-size:max(12px,.5em)}
.rv small,.bar .bv small{font-size:12px}
.note,.lam figcaption,.rank em,.rx,.ry,.gh .gw span,.t th,.hist div{font-size:max(.76rem,12px)}

/* impresión / PDF (Kit doc 31: Paged Media, portada con cliente y sujeto, pie «cliente | confidencial · fecha») */
.pportada{display:none}
.solo-movil{display:none}
@media(max-width:640px){.solo-movil{display:inline}}
/* @page (pie con el cliente) va en el estilo «mr-pie», más abajo: lo único de este estilo que cambia por reporte (1.16.0) */
/* 1.10.0 · TABLERO DE ALTO NIVEL (lenguaje del tablero de carruseles llevado a la marca: rótulos en mono, cifras grandes,
   hilos finos, medidores y semáforo). Diego, 2026-10-01: «un dashboard de alto nivel con colores semáforo»; «las medidas,
   dimensiones, proporciones y elementos visuales deben ser protagonistas y profesionales». */
:root{--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--hl:rgba(247,244,239,.08);--hl2:rgba(247,244,239,.14);--ok:#A8E61A;--al:#FF6A5E;--md:#FFB020}
.mono{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase}
.hud{border:1px solid var(--hl2);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(23,19,14,.95),rgba(10,10,11,.95));position:relative}
.hud::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(900px 300px at 12% -10%,rgba(255,107,0,.12),transparent 60%),radial-gradient(700px 260px at 100% 0,rgba(10,186,181,.08),transparent 60%)}
.hud-tk{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--hl);font:12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--txf);position:relative}
.hud-tk span{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}
.hud-tk b{color:var(--tx);font-weight:600;letter-spacing:.06em}
.hud-tk i{width:7px;height:7px;border-radius:50%;background:var(--txf);display:inline-block}
.hud-tk .s-ok i{background:var(--ok);box-shadow:0 0 8px var(--ok)} .hud-tk .s-al i{background:var(--al);box-shadow:0 0 8px var(--al)} .hud-tk .s-md i{background:var(--md);box-shadow:0 0 8px var(--md)}
.hud-g{display:grid;grid-template-columns:1fr;position:relative}
.hud-hero{padding:20px 20px 18px;border-bottom:1px solid var(--hl);display:grid;gap:10px;align-content:start;cursor:pointer;transition:background .25s}
.hud-hero:hover,.hk:hover,.hm:hover{background:rgba(255,107,0,.045)}
.hud .lbl{font:12px/1.35 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--txf)}
.hud-hero .big{font-family:var(--fh);font-size:clamp(3.6rem,10vw,6.4rem);line-height:.9;color:#fff;text-shadow:0 0 40px rgba(255,107,0,.25)}
.hud-hero .big small{font-size:.38em;color:var(--oro2);margin-left:6px}
.hud-hero .cmpb{position:relative;height:10px;border-radius:99px;background:rgba(255,255,255,.07);overflow:visible;margin-top:4px}
.hud-hero .cmpb i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;background:linear-gradient(90deg,var(--oro),var(--ambar),var(--verde));width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.hud-hero .cmpb em{position:absolute;top:-5px;bottom:-5px;width:2px;background:#fff;box-shadow:0 0 10px #fff}
.hud-hero .cmpb em::after{content:attr(data-t);position:absolute;top:18px;left:-1px;font:12px var(--mono);letter-spacing:.1em;color:var(--txd);white-space:nowrap}
.hud-hero .sub{font:12px/1.5 var(--mono);color:var(--txd);letter-spacing:.04em;margin-top:14px}
.hud-k{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.hk{padding:14px 16px 16px;border-top:1px solid var(--hl);border-left:1px solid var(--hl);display:grid;gap:6px;align-content:start;cursor:pointer;transition:background .25s;min-width:0}
.hk:nth-child(2n+1){border-left:0}
.hk .v{font-family:var(--fh);font-size:clamp(1.9rem,4.6vw,2.5rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.hk .v small{font-size:.48em;color:var(--txd);margin-left:3px}
.hk .d{font:12px/1.45 var(--mono);color:var(--txf);letter-spacing:.03em}
.hk .br{height:3px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:2px}
.hk .br i{display:block;height:100%;width:0;background:var(--c,var(--teal));transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.hk.s-ok{--c:var(--ok)} .hk.s-ok .v{color:var(--ok)} .hk.s-al{--c:var(--al)} .hk.s-al .v{color:var(--al)} .hk.s-md{--c:var(--md)} .hk.s-md .v{color:var(--md)} .hk.s-or{--c:var(--oro2)} .hk.s-or .v{color:var(--oro2)}
.hud-m{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));border-top:1px solid var(--hl)}
.hm{padding:14px 12px 12px;border-left:1px solid var(--hl);display:grid;justify-items:center;gap:2px;cursor:pointer;transition:background .25s;text-align:center}
.hm:first-child{border-left:0}
.hm .ga{position:relative;width:100%;max-width:180px}
.hm svg{width:100%;height:auto;overflow:visible;display:block}
.hm .gval{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-family:var(--fh);font-size:1.7rem;line-height:1;color:#fff;white-space:nowrap}
.hm .gval small{font-size:.5em;color:var(--txd)}
.hm .lbl{margin-top:6px}
.hud-pie{display:flex;gap:6px 16px;flex-wrap:wrap;justify-content:space-between;padding:9px 16px;border-top:1px solid var(--hl);font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--txf)}
.arc-f{stroke-dasharray:var(--L);stroke-dashoffset:var(--L);transition:stroke-dashoffset 1.5s cubic-bezier(.2,.8,.2,1)}
.lleno .arc-f{stroke-dashoffset:var(--o)}
@media(min-width:900px){
  .hud-g{grid-template-columns:minmax(300px,1.05fr) 2fr}
  .hud-hero{border-bottom:0;border-right:1px solid var(--hl);padding:24px 26px}
  .hud-k{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hk:nth-child(2n+1){border-left:1px solid var(--hl)} .hk:nth-child(3n+1){border-left:0}
  .hk:nth-child(-n+3){border-top:0}
}

/* tablero: miniatura de cada opción en su columna; un toque lleva al análisis de áreas de esa opción */
.tb-h>span.mi{display:grid;gap:8px;align-content:end;padding:10px 10px 12px}
.tb-mi{display:block;position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;border:1px solid var(--bd2);background:#000;cursor:pointer;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s}
.tb-mi img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.tb-mi:hover,.tb-mi:focus-visible{transform:translateY(-3px);border-color:var(--oro2)}
.tb-mi::after{content:"Ver áreas";position:absolute;left:6px;right:6px;bottom:6px;font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:4px 0;border-radius:6px;background:rgba(10,10,11,.78);color:var(--oro2);opacity:0;transition:opacity .25s}
.tb-mi:hover::after,.tb-mi:focus-visible::after{opacity:1}
.tb-movil{display:none}
@media(max-width:899px){
  .tb-movil{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-bottom:12px}
  .tb-movil a{display:grid;gap:4px;text-decoration:none;color:var(--txd);font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;text-align:center}
}

/* análisis de áreas interactivo: cada zona y cada pieza se toca y abre su ficha */
.mapa{display:grid;gap:14px}
.mp-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 6px;scroll-snap-type:x proximity}
.mp-tabs::-webkit-scrollbar{display:none}
.mp-tab{flex:none;scroll-snap-align:start;display:grid;grid-template-columns:42px auto;gap:2px 10px;align-items:center;text-align:left;min-height:56px;padding:6px 14px 6px 6px;border-radius:14px;border:1px solid var(--bd2);background:rgba(255,255,255,.03);color:var(--txd);cursor:pointer;transition:border-color .25s,background .25s,transform .25s}
.mp-tab img{grid-row:span 2;width:42px;height:52px;object-fit:cover;object-position:50% 25%;border-radius:9px;display:block}
.mp-tab b{font-family:var(--fl);font-size:.8rem;letter-spacing:.06em;color:var(--tx);white-space:nowrap}
.mp-tab span{font:12px var(--mono);letter-spacing:.08em;white-space:nowrap}
.mp-tab:hover{border-color:var(--bd);transform:translateY(-2px)}
.mp-tab[aria-selected="true"]{border-color:var(--oro2);background:rgba(255,107,0,.12)}
.mp-tab[aria-selected="true"] span{color:var(--oro2)}
.mp-cuerpo{display:grid;gap:14px;align-items:start}
.mp-esc{position:relative;border:1px solid var(--hl2);border-radius:18px;overflow:hidden;background:#000}
.mp-modos{position:absolute;z-index:3;top:10px;left:10px;display:flex;gap:4px;padding:4px;border-radius:12px;background:rgba(10,10,11,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--hl2)}
.mp-modos button{min-height:36px;padding:0 12px;border-radius:9px;border:0;background:transparent;color:var(--txd);font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.mp-modos button[aria-pressed="true"]{background:var(--oro2);color:#0a0a0b;font-weight:700}
.mp-zoom{position:absolute;z-index:3;top:10px;right:10px;min-height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--hl2);background:rgba(10,10,11,.78);color:var(--tx);font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:zoom-in}
.mp-img{position:relative;width:100%;max-height:min(84vh,980px);margin:0 auto}
.mp-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;transition:opacity .35s ease}
.mp-img img.sale{opacity:0}
.mp-img svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mp-z polygon{fill:var(--c);fill-opacity:.32;stroke:var(--c);stroke-opacity:.95;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill-opacity .25s,stroke-width .25s,opacity .25s}
.mp-z polygon.base{fill-opacity:.12}
.mp-z polygon:hover{fill-opacity:.55}
.mp-z.foco polygon{opacity:.18}
.mp-z.foco polygon.on{opacity:1;fill-opacity:.6;stroke:#fff;stroke-width:3}
.mp-z.uso polygon{opacity:.12}
.mp-z.uso polygon.u{opacity:1;fill-opacity:.62}
.mp-z text{font-family:var(--mono);font-weight:600;fill:#fff;paint-order:stroke;stroke:rgba(0,0,0,.75);stroke-width:3px;pointer-events:none;letter-spacing:.04em}
.mp-esc[data-modo="foto"] .mp-z,.mp-esc[data-modo="foto"] .mp-c,.mp-esc[data-modo="zonas"] .mp-c,.mp-esc[data-modo="medidas"] .mp-z{display:none}
.mp-c line,.mp-c path.l{stroke:#FFD08A;stroke-width:2;vector-effect:non-scaling-stroke;fill:none}
.mp-c .ext{stroke:rgba(255,208,138,.55);stroke-dasharray:4 4}
.mp-c .cam{fill:rgba(10,186,181,.16);stroke:#5fd9d5;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}
.mp-c .per{fill:#5fd9d5}
.mp-c .gal{stroke:#A8E61A;stroke-width:2;stroke-dasharray:10 6;vector-effect:non-scaling-stroke}
.mp-c text{font-family:var(--mono);font-weight:700;fill:#fff;paint-order:stroke;stroke:rgba(10,10,11,.9);stroke-width:4px;letter-spacing:.02em}
.mp-c text.g{fill:#C2FF3D} .mp-c text.tt{fill:#9BF0EC} .mp-c text.o{fill:#FFB86B}
.mp-c .cota{opacity:0;transition:opacity .45s ease}
.mp-esc.anim .mp-c .cota{opacity:1}
.mp-pan{display:grid;gap:12px;min-width:0}
.mp-card{border:1px solid var(--hl2);border-radius:16px;padding:14px 16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));min-width:0}
.mp-kp{display:grid;grid-template-columns:1fr;gap:0}
.mp-kp div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;min-width:0;padding:8px 0;border-top:1px solid var(--hl)}
.mp-kp div:first-child{border-top:0;padding-top:2px}
.mp-kp div b{grid-column:2;grid-row:1/span 2;text-align:right}
.mp-kp div em{grid-column:1}
.mp-kp div .dx{grid-column:1}
.mp-kp b{font-family:var(--fh);font-size:clamp(1.5rem,3vw,2rem);line-height:1;font-variant-numeric:tabular-nums}
.mp-kp b small{font-size:.5em;color:var(--txd)}
.mp-kp em{font-style:normal;font:12px var(--mono);letter-spacing:.06em;color:var(--txf)}
.mp-kp .dx{font:12px var(--mono);letter-spacing:.04em}
.mp-kp .s-ok b,.mp-kp .s-ok .dx{color:var(--ok)} .mp-kp .s-al b,.mp-kp .s-al .dx{color:var(--al)}
.mp-st{display:flex;height:12px;border-radius:99px;overflow:hidden;margin:4px 0 10px;background:rgba(255,255,255,.06)}
.mp-st i{display:block;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.mp-us{display:grid;gap:2px}
.mp-u{display:grid;grid-template-columns:12px minmax(0,1fr) 54px 82px;gap:8px;align-items:center;min-height:36px;padding:2px 6px;border-radius:8px;border:0;background:transparent;color:var(--tx);text-align:left;font-size:.84rem;cursor:pointer}
.mp-u:hover,.mp-u.on{background:rgba(255,255,255,.06)}
.mp-u i{width:12px;height:12px;border-radius:3px}
.mp-u span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-u b,.mp-u small{font:12px var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.mp-u small{color:var(--txf);white-space:nowrap}
.mp-fi{display:grid;gap:10px}
.mp-fi h4{margin:0;font-size:1rem;line-height:1.3;display:flex;gap:8px;align-items:center}
.mp-fi h4 i{width:12px;height:12px;border-radius:3px;flex:none}
.mp-fi .fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mp-fi .fg div{border:1px solid var(--hl);border-radius:10px;padding:8px 10px;display:grid;gap:2px}
.mp-fi .fg b{font-family:var(--fh);font-size:1.35rem;line-height:1.05;color:#fff}
.mp-fi .fg span{font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--txf)}
.mp-fi p{margin:0;font-size:.84rem;color:var(--txd)}
.mp-fi .vacio{font:12px/1.5 var(--mono);color:var(--txf);letter-spacing:.03em}
.mp-fi .mp-ver{justify-self:start;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--bd);background:rgba(255,107,0,.1);color:var(--tx);font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:zoom-in}
@media(min-width:980px){.mp-cuerpo{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.mp-pan{position:sticky;top:70px}.mp-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));overflow:visible}.mp-tab{grid-template-columns:36px minmax(0,1fr);padding-right:8px}.mp-tab img{width:36px;height:46px}.mp-tab b,.mp-tab span{overflow:hidden;text-overflow:ellipsis}}
@media(max-width:979px){.mp-tabs{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent);padding-right:40px}}

/* proporciones: las seis piezas a la MISMA escala, con regla en metros, gálibo y camión */
.pro{border:1px solid var(--hl2);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#14110d,#0b0a09)}
.pro-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pro-i{position:relative;border-left:1px solid var(--hl);border-top:1px solid var(--hl);padding:10px 6px 10px;display:grid;gap:6px;cursor:pointer;transition:background .25s;min-width:0}
.pro-i:hover,.pro-i:focus-visible{background:rgba(255,107,0,.05)}
.pro-i:nth-child(3n+1){border-left:0} .pro-i:nth-child(-n+3){border-top:0}
.pro-i svg{width:100%;height:auto;display:block;overflow:visible}
.pro-i .pl{font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--txd);text-align:center}
.pro-i .pl b{display:block;font-family:var(--fh);font-size:1.4rem;letter-spacing:0;color:#fff;line-height:1.1}
.pro svg .rj{stroke:rgba(247,244,239,.07);stroke-width:1;vector-effect:non-scaling-stroke}
.pro svg .gl{stroke:#A8E61A;stroke-width:1.5;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}
.pro svg .su{stroke:rgba(247,244,239,.45);stroke-width:1.5;vector-effect:non-scaling-stroke}
.pro svg .tp{stroke:#FFB86B;stroke-width:1.5;vector-effect:non-scaling-stroke}
.pro svg text{font:600 64px var(--mono);fill:rgba(247,244,239,.5)}
.pro svg text.tt{fill:#FFB86B;font-size:84px;font-weight:700}
.pro svg text.g{fill:#C2FF3D}
.pro svg .cam{fill:rgba(10,186,181,.14);stroke:#5fd9d5;stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.pro svg image{transform-origin:50% 100%;transform-box:fill-box;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.pro.pre svg image{transform:scaleY(.04)}
.pro-ley{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 14px;border-top:1px solid var(--hl);font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--txf)}
.pro-ley span{display:inline-flex;align-items:center;gap:8px}
.pro-ley i{display:inline-block;width:18px;height:0;border-top:2px dashed var(--c)}
@media(min-width:900px){.pro-g{grid-template-columns:repeat(6,minmax(0,1fr))}.pro-i:nth-child(3n+1){border-left:1px solid var(--hl)}.pro-i:first-child{border-left:0}.pro-i:nth-child(-n+6){border-top:0}}
@media(prefers-reduced-motion:reduce){.pro.pre svg image{transform:none}.arc-f{transition:none}.hud-hero .cmpb i,.hk .br i{transition:none}}

/* pistas de interacción: el «+» late dos veces cuando su sección entra en pantalla; en táctil se ve siempre */
@keyframes llama{0%{box-shadow:0 0 0 0 rgba(255,154,61,.6)}70%{box-shadow:0 0 0 12px rgba(255,154,61,0)}100%{box-shadow:0 0 0 0 rgba(255,154,61,0)}}
.vivo .mas{animation:llama 1.8s ease-out .4s 2;opacity:.95}
@media(pointer:coarse){.mas{opacity:.9}}
.mp-pista{position:absolute;z-index:2;pointer-events:none;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:8px}
.mp-pista i{width:48px;height:48px;border-radius:50%;border:2px solid #fff;background:rgba(255,154,61,.4);box-shadow:0 0 24px rgba(255,154,61,.8);animation:toque 1.6s ease-out infinite}
.mp-pista b{font:700 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;background:rgba(10,10,11,.88);color:#fff;padding:7px 12px;border-radius:999px;white-space:nowrap;border:1px solid var(--oro2)}
@keyframes toque{0%{transform:scale(.55);opacity:1}100%{transform:scale(1.7);opacity:0}}
@media(prefers-reduced-motion:reduce){.mp-pista i{animation:none}.vivo .mas{animation:none}}
/* en el celular nada por debajo de 11,5 px y toques de 44 px */
@media(max-width:640px){
  .hud-tk{font-size:12px;gap:6px 14px}
  .hud .lbl,.mp-tab span,.pro-i .pl,.mp-fi .fg span,.hud-pie{font-size:12px}
  .hk .d{font-size:12px}
  .hud-hero .sub{font-size:12.5px}
  .mp-modos button,.mp-zoom,.mp-fi button{min-height:44px;font-size:12px}
  .mp-u{font-size:13.5px;min-height:44px;grid-template-columns:12px minmax(0,1fr) 56px}
  .mp-u small{display:none}
  .mp-u b{font-size:13px}
  .mp-kp em{font-size:12px}
  .mp-kp .dx{font-size:12px}
  .mp-tab{min-height:60px}
}
/* mosaico: todas las opciones con el mismo encuadre, lado a lado */
.mos{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.ms{margin:0;position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-content:start;cursor:zoom-in;min-width:0}   /* 1.13.0 · la columna no crece con un pie largo (una etiqueta «Recomendada» empujaba la tesela 160 px) */
.ms .mi{position:relative;aspect-ratio:var(--ar);border-radius:14px;overflow:hidden;border:1px solid var(--bd2);background:#000;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s}
.ms .mi img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.ms:hover .mi,.ms:focus-visible .mi{transform:translateY(-4px);border-color:var(--oro2);box-shadow:0 20px 44px rgba(0,0,0,.5)}
.ms:hover .mi img{transform:scale(1.04)}
.ms.hoy .mi{border-color:rgba(247,244,239,.3)}
.ms .ml{position:absolute;left:8px;top:8px;min-width:36px;height:36px;padding:0 8px;border-radius:10px;display:grid;place-items:center;background:rgba(10,10,11,.8);color:var(--oro2);font-family:var(--fh);font-size:1.25rem;border:1px solid var(--bd)}
.ms.hoy .ml{color:var(--tx);font-size:.8rem;font-family:var(--mono);letter-spacing:.12em}
.ms .rkc{display:inline-block;vertical-align:middle;font:700 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:rgba(255,107,0,.92);color:#0a0a0b;margin-left:4px}
.ms .zz{position:absolute;right:8px;bottom:8px;font:700 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;border-radius:999px;background:rgba(10,10,11,.8);color:var(--tx);border:1px solid var(--hl2)}
.ms figcaption{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;font-size:.88rem;text-align:left;justify-items:start;min-width:0}
.ms .chips span,.ms figcaption b{white-space:normal}   /* 1.13.0 · un pie o una ficha larga parten línea dentro de su tesela */
.ms figcaption b{font-size:.92rem}
.ms .chips span{font-size:.75rem;padding:3px 8px}
@media(min-width:700px){.mos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1100px){.mos{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.ms .chips span{font-size:.75rem;padding:3px 6px}.ms figcaption b{font-size:.84rem}}

/* ajustes de la primera revisión en pantalla (1440 y 390 px) */
.cmps{grid-template-columns:minmax(0,1fr)}
.cmp{min-width:0;display:block}
.cmp>figcaption{margin-top:8px;white-space:normal}
.cmp>figcaption>span{min-width:0;flex:1 1 auto;white-space:normal}
.cmp>.ba,.cmp>.lam{width:100%;max-width:100%}
.hud .hm .ga .gval{top:auto;left:0;right:0;width:100%}
.cmp .ba{width:100%;height:auto}
.fm{padding-right:44px}
.pro-i .mas{top:auto;bottom:8px;right:8px}
@media(max-width:640px){.ms .chips span{font-size:.75rem;padding:2px 7px}.mos{gap:12px 10px}}
/* semáforo en el celular: matriz compacta que se desliza de lado, con la columna de indicadores fija y las fotos arriba */
@media(max-width:899px){
  section .tb{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  section .tb .tb-r{grid-template-columns:118px repeat(var(--nc),96px);min-width:max-content}
  section .tb .tb-h{display:grid}
  section .tb .tb-h>span{font-size:12px;padding:8px 6px;letter-spacing:.06em}
  section .tb .tb-n{grid-column:auto;position:sticky;left:0;z-index:1;background:#141110;font-size:.8rem;padding:10px;border-right:1px solid var(--bd2)}
  section .tb .tb-h>span:first-child{position:sticky;left:0;z-index:1;background:#191512}
  section .tb .tc{border-left:1px solid var(--bd2)!important;border-top:0;padding:8px;min-height:0;scroll-snap-align:start}
  section .tb .tc .tv{font-size:1.25rem}
  section .tb .tc .dx{font-size:12px}
  .tb-movil{display:none!important}
  .tb-desliza{display:flex}
}
.tb-desliza{display:none;align-items:center;gap:8px;font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--oro2);margin:0 0 8px}
.tb-desliza i{display:inline-block;width:26px;height:2px;background:var(--oro2);position:relative;animation:desliza 1.6s ease-in-out infinite}
@keyframes desliza{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}
@media(prefers-reduced-motion:reduce){.tb-desliza i{animation:none}}
.mp-ley{margin:0;font-size:12px;color:var(--txf)}
@media(max-width:640px){.mp-ley{font-size:12px}}

.pro-i{padding-bottom:42px}
.ms .rkc{font-size:12px}
/* R-MOVIL: en el celular ningún texto por debajo de 12 px */
@media(max-width:640px){
  .hud-tk,.hud .lbl,.mp-tab span,.pro-i .pl,.mp-fi .fg span,.hud-pie,.mp-kp em,.mp-kp .dx,.mp-ley,.tb-desliza,.ms .zz,.pro-ley,.mp-fi .vacio,.ms .rkc,.ms .chips span,.hk .d{font-size:12px}
  section .tb .tb-h>span,section .tb .tc .dx{font-size:12px}
  .mp-fi .fg span{letter-spacing:.04em}
}
.mp-cap{display:block;font-size:12px;color:var(--txf)}
@media(max-width:640px){.mp-cap{font-size:12px}}

@media(pointer:coarse),(max-width:900px){.mp-modos button,.mp-zoom,.mp-fi .mp-ver,.mp-u{min-height:44px}}

@media print{
  :root{color-scheme:light;--bg:#fff;--bg2:#f5f3ef;--surf:#fff;--surf2:#faf8f4;--tx:#141210;--txd:#4a4540;--txf:#6b655e;--bd:rgba(200,90,0,.35);--bd2:rgba(20,18,16,.14);--glass:#fff}
  html,body{background:#fff!important;color:var(--tx);font-size:10.5pt;line-height:1.5}
  body::before,body::after,.portada::before,.ba::after,.toc,.progreso,.cajon,.vz,.acciones,.pista,.mas,.ba input,.ba .tir,.zoom{display:none!important}
  .pportada{display:flex;flex-direction:column;justify-content:space-between;height:297mm;padding:22mm 20mm 18mm;box-sizing:border-box;break-after:page;background:linear-gradient(160deg,#0A0A0B 0%,#1c140c 100%);color:#F7F4EF;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pportada .pc{font-family:var(--fh);font-size:40pt;line-height:1;color:#FF9A3D}
  .pportada .ps{font-family:var(--fl);font-size:11pt;letter-spacing:.2em;text-transform:uppercase;color:#d9d3ca;margin-top:6mm}
  .pportada h1,.pportada .ph1{font-family:var(--fh);font-size:30pt;line-height:1.05;text-transform:uppercase;color:#fff;margin-top:24mm;max-width:16ch}
  .pportada .pl{font-size:11pt;color:#d9d3ca;max-width:120mm;margin-top:8mm}
  .pportada img{width:100%;height:92mm;object-fit:contain;border-radius:4mm;margin-top:10mm}
  .pportada dl{display:grid;grid-template-columns:38mm 1fr;gap:2.5mm 6mm;font-size:9.5pt;margin:0}
  .pportada dt{font-family:var(--fl);letter-spacing:.14em;text-transform:uppercase;color:#FF9A3D;font-size:8pt}
  .pportada dd{margin:0;color:#F7F4EF}
  .pportada .pf{font-size:8pt;color:#b8b0a6;border-top:1px solid rgba(255,255,255,.2);padding-top:4mm}
  .portada{break-after:page;padding:0;border:0}
  .portada .hero-top,.portada .ba{display:none}
  .portada h1{font-size:22pt;color:var(--tx);max-width:none}
  .cliente .cm{-webkit-text-fill-color:initial;color:#c85a00;background:none}
  section{break-before:auto;padding-block:8mm 4mm;border-top:1px solid var(--bd2)}
  h2{font-size:18pt;break-after:avoid;color:var(--tx)} h3{break-after:avoid}
  h2::after{display:none}
  p,li{widows:3;orphans:3}
  .kpi,.ri,.evc,.hi,.iv,.rci,.cci,.dc,.persp,.lgr,.rf,.en,.lam,.gr,.t tr,.rrow,.bar,.kr{break-inside:avoid;box-shadow:none!important;animation:none!important;backdrop-filter:none!important}
  .kpi::before,.kpi::after{display:none}
  .kpi .n,.kpi .v{-webkit-text-fill-color:initial!important;background:none!important;color:#c85a00!important}
  *,*::before,*::after{transition:none!important;animation:none!important}   /* sin transiciones ni capas compuestas: Chromium rasterizaría páginas enteras y el PDF pesaría el triple */
  .lux-in,.kpi,.kpi:hover{opacity:1!important;transform:none!important}
  .rz{box-shadow:none!important}
  .panel,.kpi,.ri,.evc,.hi,.iv,.rci,.rf,.lgr,.dc,.persp,.gscroll{background:#fff!important}
  .tscroll,.gscroll{overflow:visible!important}
  table.t{min-width:0!important;font-size:8.5pt}
  .gantt{min-width:0!important}
  .lam img{max-height:200mm;width:auto;max-width:100%;margin:0 auto}
  .rv{opacity:1!important;transform:none!important} .mp-tabs,.mp-modos,.mp-zoom,.mp-pista,.tb-mi::after,.ms .zz{display:none!important} .mp-cuerpo{grid-template-columns:1fr!important} .mp-pan{position:static!important} .hud,.pro,.mp-esc,.ms{break-inside:avoid} .pro.pre svg image{transform:none!important} .arc-f{stroke-dashoffset:var(--o)!important} .amp{display:none!important} .bax .antes{display:none} .cmp .ba{max-height:none;aspect-ratio:auto;height:auto;box-shadow:none} .cmp .ba img.despues{position:static;width:auto;max-width:100%;height:auto;max-height:180mm;object-fit:contain;margin:0 auto} .cmp,.gc,.fm{break-inside:avoid} .gc .gi{aspect-ratio:auto} .gc .gi img{height:auto;max-height:70mm;object-fit:contain}
  .rec,.par{display:none!important} .hi.foto{grid-template-columns:44px 1fr!important}  /* los recortes repiten la foto entera en cada tarjeta: en PDF pesan megas y las láminas ya muestran las zonas */
  a{color:var(--tx);text-decoration:none}
  .en{border:1px solid var(--bd2)} .en .th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  footer.pie{font-size:8pt}
  [data-d]{cursor:auto}
}
.fxdot{animation:fxPop .5s cubic-bezier(.22,1,.36,1) backwards;transform-box:fill-box;transform-origin:center}
@keyframes fxPop{0%{transform:scale(0)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
/* 1.3.0 · jerarquía: cifras con color de estado, tablero de apertura, material con jerarquía y referentes con foto */
@media screen{
.kpi{position:relative;overflow:hidden;border-top:3px solid var(--kc,rgba(255,214,150,.35));background:radial-gradient(130% 100% at 0 0,var(--kg,rgba(255,154,61,.08)),transparent 62%),linear-gradient(180deg,var(--surf2),var(--surf))}
.kpi.hot{--kc:var(--oro);--kv:#FF8A2B;--kg:rgba(255,107,0,.22)}
.kpi.red{--kc:var(--rojo);--kv:#FF6A5E;--kg:rgba(255,90,78,.22)}
.kpi.teal{--kc:var(--teal);--kv:#2FD3CE;--kg:rgba(10,186,181,.22)}
.kpi.verde{--kc:var(--verde);--kv:#A8E61A;--kg:rgba(155,219,0,.2)}
.kpi .v{background:none!important;-webkit-text-fill-color:var(--kv,#F7F4EF)!important;color:var(--kv,#F7F4EF)!important;font-size:clamp(2.5rem,5.2vw,3.6rem)!important;text-shadow:0 0 34px var(--kg,transparent)}
.kpi .k{color:#cfc8bf}
.ba{max-height:min(58vh,540px)}
.portada h1{font-size:clamp(2rem,4.6vw,3.4rem)}
.portada .lead{font-size:clamp(.98rem,1.3vw,1.08rem)}
}
@media screen and (min-width:980px){.portada .pista{display:none}.portada{padding-top:clamp(18px,3vw,32px)}.portada .kpis{margin-top:26px}}
/* móvil: las cifras van antes de la foto (primera pantalla con números y color) */
@media screen and (max-width:979px){
  #inicio .wrap{display:flex;flex-direction:column}
  #inicio .hero-grid{display:contents}
  #inicio .hero-grid>div:first-child{order:1}
  #inicio .kpis{order:2;margin-top:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
  #inicio .kpi:last-child:nth-child(odd){grid-column:1/-1}
  #inicio .ba{order:3;margin-top:22px}
  #inicio .pista{order:4}
}
.tb{border:1px solid var(--bd2);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01))}
.tb-r{display:grid;grid-template-columns:minmax(170px,1.25fr) repeat(var(--nc),minmax(0,1fr));align-items:stretch;border-top:1px solid var(--bd2)}
.tb-r:first-child{border-top:0}
.tb-h{background:rgba(255,255,255,.035)}
.tb-h>span{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--txd);padding:12px 14px;display:flex;align-items:flex-end;flex-wrap:wrap}
.tb-h>span b{color:var(--tx);letter-spacing:.08em}
.tb-n{padding:14px;font-weight:600;font-size:.92rem;display:flex;align-items:center;color:var(--tx)}
.tc{padding:12px 14px;display:grid;gap:6px;align-content:center;border-left:1px solid var(--bd2);cursor:pointer;transition:background .2s;min-height:64px}
.tc:hover,.tc:focus-visible{background:rgba(255,255,255,.04)}
.tc .tv{font-family:var(--fh);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1;font-variant-numeric:tabular-nums}
.tc .tv small{font-size:max(12px,.55em);margin-left:2px;opacity:.8}
.tc .th0{font-size:.75rem;color:var(--txd)}
.tc .tbar{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.tc .tbar i{display:block;height:100%;border-radius:inherit;background:currentColor}
.tc.alerta{color:#FF6A5E;background:linear-gradient(90deg,rgba(255,90,78,.13),transparent 85%)}
.tc.ok{color:#A8E61A;background:linear-gradient(90deg,rgba(155,219,0,.11),transparent 85%)}
.tc.neutro{color:#F7F4EF}
.tc .th0.alerta{color:#FF8A80}.tc .th0.ok{color:#B9EC4A}
.dx{justify-self:start;white-space:nowrap;font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.02em;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--txd)}
.dx.up{background:rgba(155,219,0,.14);color:#B9EC4A}.dx.down{background:rgba(255,90,78,.16);color:#FF8A80}
.tb-ley{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:.8rem;color:var(--txd)}
.tb-ley span{display:inline-flex;align-items:center;gap:6px}.tb-ley i{width:10px;height:10px;border-radius:50%;display:inline-block}
@media(max-width:720px){
  .tb-r{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb-h{display:none}
  .tb-n{grid-column:1/-1;padding:12px 14px 4px}
  .tc{border-left:0;border-top:1px solid var(--bd2)}
  .tc:nth-child(odd){border-left:1px solid var(--bd2)}
  .tb-r.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tb-r.n3 .tc{border-left:1px solid var(--bd2);padding:10px}
  .tb-r.n3 .tc:nth-child(2){border-left:0}
  .tc::before{content:attr(data-c);font-family:var(--fl);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txd)}
}
.enl-rep{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.enl-lam{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:10px}
.en .tx .tp{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal2)}
.en.grande .th{aspect-ratio:4/3}
.en.grande .tx{padding:16px 18px 18px;gap:6px}
.en.grande .tx b{font-family:var(--fh);font-weight:400;font-size:1.6rem;line-height:1.05;text-transform:uppercase}
.en.grande .tx em{font-style:normal;font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oro2);margin-top:4px}
.en.chica .th{aspect-ratio:16/9}
.en.chica .tx{padding:10px 12px 12px}
.en.chica .tx b{font-size:.92rem}
.en.chica .tx span:not(.tp){font-size:.8rem}
.en.chica .tx em{display:none}
.rf{padding:0;overflow:hidden;gap:0}
.rff{margin:0;position:relative;aspect-ratio:4/3;background:#000;overflow:hidden}
.rff img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.rf:hover .rff img{transform:scale(1.04)}
.rff figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 8px;font-size:.75rem;color:#e9e3da;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.rfb{padding:14px 16px 16px;display:grid;gap:8px;align-content:start}
.cajon .rfz{width:100%;border-radius:12px;margin-bottom:12px;display:block}
@media print{.tc{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tb-r{break-inside:avoid}.rff{-webkit-print-color-adjust:exact;print-color-adjust:exact}.rff figcaption{color:#fff}.tc.neutro{color:#1a1612}.tc.ok,.tc .th0.ok{color:#2f6b00}.tc.alerta,.tc .th0.alerta{color:#b3261e}.dx.up{color:#2f6b00;background:#eaf5d6}.dx.down{color:#b3261e;background:#fbe3e0}.tb-h>span b,.tb-n{color:#1a1612}}
/* Visor con zoom real (1.3.0) */
.vz{position:fixed;inset:0;z-index:120;background:rgba(6,6,7,.97);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--tx)}
.vz[hidden]{display:none}
.vz header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--bd2)}
.vz header b{flex:1;min-width:0;font-family:var(--fh);font-weight:400;font-size:1.15rem;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vz .vzn{font-family:var(--fl);font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--oro2);min-width:52px;text-align:right}
.vz button{min-width:44px;min-height:44px;border-radius:999px;border:1px solid var(--bd);background:rgba(255,255,255,.06);color:var(--tx);font-size:1.15rem;cursor:pointer}
.vz button:hover{background:rgba(255,255,255,.12)}
.vz .lienzo{position:relative;overflow:hidden;cursor:zoom-in;touch-action:none;user-select:none;-webkit-user-select:none}
.vz .lienzo.z{cursor:grab}.vz .lienzo.arr{cursor:grabbing}
.vz img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;display:block;will-change:transform;-webkit-user-drag:none}
.vz footer{padding:8px 14px 12px;font-size:.8rem;color:var(--txd);text-align:center}
#cajon .rec{cursor:zoom-in}
@media(prefers-reduced-motion:reduce){.portada::before,.ba::after,.btn.pri::after,.fxgauge i::after,.fxdot{animation:none!important}.fxgauge i{transition:none}}
/* ===== 1.19.0 · CONSEJO EXPERTO DE PLANTA (mx-): consejo, áreas, niveles, finanzas, propuestas animadas, visor de planta y pestañas ===== */
.mx-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px;padding:4px;border:1px solid var(--bd2);border-radius:999px;width:max-content;max-width:100%;background:var(--glass)}
.mx-tabs button,.mx-seg button{min-height:46px;padding:8px 16px;border-radius:999px;border:0;background:transparent;color:var(--txd);font:700 .8rem/1.1 var(--fl);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s}
.mx-tabs button[aria-selected="true"],.mx-seg button[aria-pressed="true"]{background:var(--oro);color:#0A0A0B}
.mx-tabs button:focus-visible,.mx-seg button:focus-visible{outline:2px solid var(--oro2);outline-offset:2px}
.mx-pn{display:none}.mx-pn.on{display:block;animation:mxFade .45s ease}
.mx-pn>.shead{margin-bottom:16px}.mx-pn>.shead h2{font-size:clamp(1.4rem,3.4vw,2rem)}
@keyframes mxFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mx-seg{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--bd2);border-radius:999px;background:var(--glass);flex-wrap:wrap}
.mx-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.mx-k{font:700 12px/1.2 var(--fl);letter-spacing:.14em;text-transform:uppercase;color:var(--txf)}
.mx-e{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.mx-e.ok{background:var(--ok)}.mx-e.al{background:var(--md)}.mx-e.md{background:var(--al)}.mx-e.sin,.mx-e.te{background:var(--txf)}
.mx-p{font:700 12px/1 var(--fl);letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:999px;white-space:nowrap}
.mx-p.ok{background:rgba(168,230,26,.14);color:var(--ok)}.mx-p.al{background:rgba(255,176,32,.14);color:var(--md)}.mx-p.md{background:rgba(255,106,94,.15);color:var(--al)}.mx-p.sin,.mx-p.te{background:var(--hl);color:var(--txd)}
.mx-cnt{font-variant-numeric:tabular-nums}
/* anillos */
.mx-ring{display:block}.mx-ring .bg{stroke:var(--hl2)}.mx-ring .arc{stroke-dasharray:var(--c);stroke-dashoffset:var(--c);transition:stroke-dashoffset 1.3s cubic-bezier(.22,1,.36,1);transform:rotate(-90deg);transform-origin:50% 50%}
.mx-in .mx-ring .arc{stroke-dashoffset:var(--o)}
/* consejo */
.mx-cons{display:grid;gap:18px}
.mx-ver{display:grid;grid-template-columns:auto 1fr;gap:clamp(14px,3vw,28px);align-items:center}
.mx-ver .rn{position:relative;width:132px;height:132px}.mx-ver .rn b{position:absolute;inset:0;display:grid;place-items:center;font:400 2.6rem/1 var(--fh)}.mx-ver .rn small{position:absolute;bottom:26px;left:0;right:0;text-align:center;font:700 12px var(--fl);letter-spacing:.12em;color:var(--txf)}
.mx-ver h3{font:400 1.5rem/1.1 var(--fh);text-transform:uppercase;margin:4px 0 8px}
.mx-dec{display:grid;gap:8px;margin:0;padding:0;list-style:none;counter-reset:d}
.mx-dec li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;min-height:44px}
.mx-dec li::before{counter-increment:d;content:counter(d);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--hl2);font:700 .8rem var(--fl)}
.mx-dec li b{color:var(--tx)}.mx-dec li span{color:var(--txd);font-size:.92rem}
.mx-ags{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.mx-ag{border:1px solid var(--bd2);border-radius:var(--rad);padding:16px;background:linear-gradient(180deg,var(--surf2),var(--surf));display:grid;gap:10px;opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .2s;border-top:3px solid var(--ag)}
.mx-in .mx-ag{opacity:1;transform:none}
.mx-ag header{display:grid;grid-template-columns:44px 1fr 56px;gap:10px;align-items:center}
.mx-ag .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--ag) 18%,transparent);color:var(--ag);font:400 1.4rem var(--fh)}
.mx-ag h3{font:700 .98rem/1.2 var(--fb,inherit)}.mx-ag .as{font-size:.78rem;color:var(--txf)}
.mx-ag .sr{position:relative;width:56px;height:56px}.mx-ag .sr b{position:absolute;inset:0;display:grid;place-items:center;font:700 1rem var(--fl)}
.mx-ag .kv{font-size:.88rem;color:var(--txd)}.mx-ag .kv b{color:var(--tx)}
.mx-ag .rc{font-size:.88rem;color:var(--tx);border-left:2px solid var(--ag);padding-left:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mx-chk{display:grid;gap:8px;margin:10px 0}.mx-chk div{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:.9rem}
/* áreas */
.mx-ar{display:grid;gap:16px}
.mx-rep{display:grid;gap:14px}
.mx-row{display:grid;grid-template-columns:minmax(120px,190px) 1fr minmax(84px,auto);gap:12px;align-items:center}
.mx-row .lb{font-size:.9rem}.mx-row .lb small{display:block;color:var(--txf);font-size:.76rem}
.mx-trk{position:relative;height:16px;border-radius:999px;background:var(--hl);overflow:hidden}
.mx-trk .bd{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(168,230,26,.22) 0 6px,rgba(168,230,26,.1) 6px 12px);border-left:1px solid var(--ok);border-right:1px solid var(--ok)}
.mx-trk .fl{position:absolute;left:0;top:3px;bottom:3px;border-radius:999px;width:var(--w);transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.22,1,.36,1),width .6s ease}
.mx-in .mx-trk .fl{transform:scaleX(1)}
.mx-fl-ok{background:var(--ok)}.mx-fl-al{background:var(--md)}.mx-fl-md{background:var(--al)}.mx-fl-te{background:var(--teal)}
.mx-row .vv{text-align:right;font:700 1rem var(--fl);font-variant-numeric:tabular-nums}.mx-row .vv small{display:block;font:400 12px var(--fb,inherit);color:var(--txf)}
.mx-coc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;align-items:center}
.mx-big{font:400 clamp(2.2rem,6vw,3.4rem)/1 var(--fh)}.mx-big small{font:700 .9rem var(--fl);color:var(--txd);margin-left:4px}
.mx-gauge{position:relative;height:46px;margin-top:22px}
.mx-gauge .tk{position:absolute;left:0;right:0;top:14px;height:18px;border-radius:999px;background:var(--hl)}
.mx-gauge .z{position:absolute;top:14px;height:18px}.mx-gauge .z.mn{background:rgba(255,176,32,.35)}.mx-gauge .z.id{background:rgba(168,230,26,.4)}
.mx-gauge .mk{position:absolute;top:4px;width:4px;height:38px;border-radius:2px;background:var(--tx);left:0;transition:left 1.3s cubic-bezier(.22,1,.36,1);box-shadow:0 0 0 3px rgba(0,0,0,.35)}
.mx-gauge .mk::after{content:attr(data-t);position:absolute;top:-20px;left:50%;transform:translateX(-50%);font:700 12px var(--fl);white-space:nowrap;color:var(--tx)}
.mx-gauge .lg{position:absolute;top:36px;font-size:12px;color:var(--txf);white-space:nowrap;transform:translateX(-50%)}
.mx-nv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.mx-nvc{border:1px solid var(--bd2);border-radius:var(--rad);padding:16px;display:grid;gap:8px;background:linear-gradient(180deg,var(--surf2),var(--surf));position:relative;opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.mx-in .mx-nvc{opacity:1;transform:none}
.mx-nvc.act{border-color:var(--oro)}.mx-nvc.act::before{content:'Hoy está aquí';position:absolute;top:-10px;right:12px;background:var(--oro);color:#0A0A0B;font:700 12px var(--fl);letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.mx-nvc h4{font:400 1.25rem/1 var(--fh);text-transform:uppercase}.mx-nvc .sb{font-size:.78rem;color:var(--txf)}
.mx-nvc .pz{font:400 2.6rem/1 var(--fh)}.mx-nvc .pz small{font:700 .8rem var(--fl);color:var(--txd);margin-left:6px}
.mx-seats{display:flex;flex-wrap:wrap;gap:3px;min-height:14px}.mx-seats i{width:9px;height:9px;border-radius:50%;background:var(--teal);opacity:0;transform:scale(.3);transition:opacity .3s,transform .3s}
.mx-seats i.x{background:transparent;box-shadow:inset 0 0 0 1.5px var(--al)}
.mx-in .mx-seats i{opacity:1;transform:none}
.mx-alr{font-size:.86rem;padding:8px 10px;border-radius:10px;background:rgba(255,106,94,.12);color:var(--tx);border-left:3px solid var(--al)}
.mx-okm{font-size:.86rem;padding:8px 10px;border-radius:10px;background:rgba(168,230,26,.1);border-left:3px solid var(--ok)}
.mx-reb{font-size:.82rem;color:var(--txd)}
/* finanzas */
.mx-fin{display:grid;gap:18px}
.mx-sl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.mx-sl label{display:grid;gap:6px;font-size:.85rem;color:var(--txd)}.mx-sl label b{color:var(--tx);font-family:var(--fl)}
.mx-sl input[type=range]{width:100%;min-height:44px;accent-color:var(--oro)}
.mx-esc{display:grid;gap:10px}
.mx-er{display:grid;grid-template-columns:minmax(120px,200px) 1fr minmax(110px,auto);gap:12px;align-items:center;min-height:44px}
.mx-er .lb{font-size:.9rem}.mx-er .lb small{display:block;color:var(--txf);font-size:.76rem}
.mx-er.base .lb{color:var(--oro2);font-weight:700}
.mx-dv{position:relative;height:22px}
.mx-dv .ax{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--txf)}
.mx-dv .b{position:absolute;top:3px;height:16px;border-radius:4px;transition:left .5s ease,width .5s ease}
.mx-dv .b.pos{background:linear-gradient(90deg,var(--verde),var(--verde2))}.mx-dv .b.neg{background:linear-gradient(270deg,var(--al),#ff9a8f)}
.mx-er .vv{text-align:right;font:700 .95rem var(--fl);font-variant-numeric:tabular-nums}.mx-er .vv small{display:block;font:400 12px var(--fb,inherit);color:var(--txf)}
.mx-kp{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px}
.mx-kp>div{border:1px solid var(--bd2);border-radius:12px;padding:12px;display:grid;gap:4px}.mx-kp b{font:400 1.7rem/1 var(--fh)}.mx-kp span{font-size:.78rem;color:var(--txf)}
.mx-wf{display:grid;gap:8px}
.mx-wr{display:grid;grid-template-columns:minmax(140px,1.2fr) 2fr minmax(100px,auto);gap:10px;align-items:center;font-size:.88rem;min-height:44px}
.mx-wr .tr{position:relative;height:18px;background:var(--hl);border-radius:4px;overflow:hidden}
.mx-wr .tr i{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.22,1,.36,1)}
.mx-wr.tot .tr i{background:var(--oro)}.mx-wr.neg .tr i{background:var(--al)}
.mx-in .mx-wr .tr i{transform:scaleX(1)}
.mx-wr .vv{text-align:right;font:700 .9rem var(--fl);font-variant-numeric:tabular-nums}
/* propuestas */
.mx-pr{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px}
.mx-pc{border:1px solid var(--bd2);border-radius:var(--rad);padding:16px;display:grid;gap:10px;background:linear-gradient(180deg,var(--surf2),var(--surf));border-left:3px solid var(--ag);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.mx-in .mx-pc{opacity:1;transform:none}
.mx-pc header{display:flex;justify-content:space-between;gap:8px;align-items:center}.mx-pc h4{font-size:.98rem}
.mx-ab{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font:400 clamp(1.6rem,4.5vw,2.3rem)/1 var(--fh)}
.mx-ab .a{color:var(--txf);text-decoration:line-through;text-decoration-thickness:2px;font-size:.62em}.mx-ab .fl{color:var(--oro2);font-size:.6em}.mx-ab .mx-cnt{font:inherit;font-size:1.15em;color:var(--tx)}
.mx-mb{display:grid;gap:5px}.mx-mb .r{position:relative;height:10px;border-radius:999px;background:var(--hl)}
.mx-mb .r i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;width:var(--w);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.22,1,.36,1) .15s}
.mx-mb .r.a i{background:var(--txf)}.mx-mb .r.d i{background:var(--ag);transition-delay:.55s}
.mx-mb .r .mt{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ok)}
.mx-in .mx-mb .r i{transform:scaleX(1)}
.mx-pc p{font-size:.86rem;color:var(--txd)}
.mx-pc .go{justify-self:start;min-height:46px;padding:8px 14px;border-radius:999px;border:1px solid var(--bd);background:transparent;color:var(--oro2);font:700 12px var(--fl);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
/* visor de planta */
.mx-pl{display:grid;gap:12px}
.mx-plf{position:relative;margin:0;border-radius:var(--rad);overflow:hidden;background:#0f0d0b;border:1px solid var(--bd2);cursor:zoom-in}
.mx-plf img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .7s ease}
.mx-plf img.on{opacity:1;position:relative}
.mx-plf .et{position:absolute;top:12px;left:12px;background:rgba(10,10,11,.78);color:#F7F4EF;font:700 12px var(--fl);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:999px;pointer-events:none}
.mx-plc{font-size:.9rem;color:var(--txd);min-height:2.6em}
.mx-play{min-height:46px;padding:8px 16px;border-radius:999px;border:1px solid var(--bd);background:transparent;color:var(--oro2);font:700 .78rem var(--fl);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
@media(max-width:640px){.mx-row,.mx-er{grid-template-columns:1fr;gap:6px}.mx-row .vv,.mx-er .vv{text-align:left}.mx-wr{grid-template-columns:1fr auto}.mx-wr .tr{grid-column:1/-1}.mx-ver{grid-template-columns:1fr;justify-items:start}}
@media(prefers-reduced-motion:reduce){.mx-ag,.mx-nvc,.mx-pc{opacity:1;transform:none;transition:none}.mx-trk .fl,.mx-wr .tr i,.mx-mb .r i{transform:none;transition:none}.mx-ring .arc{stroke-dashoffset:var(--o);transition:none}.mx-seats i{opacity:1;transform:none}.mx-pn.on{animation:none}}
@media print{.mx-tabs,.mx-bar,.mx-play,.mx-pc .go{display:none!important}.mx-pn{display:block!important}.mx-ag,.mx-nvc,.mx-pc{opacity:1!important;transform:none!important}.mx-trk .fl,.mx-wr .tr i,.mx-mb .r i{transform:none!important}.mx-ring .arc{stroke-dashoffset:var(--o)!important}.mx-seats i{opacity:1!important;transform:none!important}.mx-ag,.mx-nvc,.mx-pc,.mx-er,.mx-row{break-inside:avoid}.mx-plf img{position:relative;opacity:1}.mx-plf img:not(.on){display:none}}
