/* ============================================================
   Equipamientos Group S.R.L. · Sala de Equipos — identidad y componentes propios
   Colores reales del logo: rojo #FF0000 (EQUIPAMIENTOS) · azul #076DF4 (S.R.L. y flechas)
   naranja #FF7602 (isotipo) · gris #C3C3C3 (GROUP) · acento de la web #EC7340
   Tipografía: Barlow Condensed (display) + Inter. Estética de cocina industrial: acero y negro.
   ============================================================ */
:root{
  --rojo:#FF0000; --rojo-700:#D10000; --rojo-900:#8F0000; --rojo-50:#FFECEC; --rojo-100:#FFC9C9;
  --azul:#076DF4; --azul-700:#0453C8; --azul-50:#E6F0FE;
  --naranja:#FF7602; --naranja-700:#B84F00; --naranja-50:#FFEEDF; --acento:#EC7340;
  --amarillo:#E6A100; --amarillo-50:#FFF4D6; --ambar:#FF7602; --ambar-50:#FFEEDF;
  --gris-logo:#C3C3C3; --acero:#6B7785; --hielo:#38B6E8;
  --negro:#15181C; --negro-2:#22262B; --negro-3:#30353B;
  --tinta:#111418; --tinta-70:#3A424C; --tinta-45:#5F6873; --tinta-25:#8E97A1;
  --linea:#E1E4E8; --linea-fuerte:#CDD2D8; --fondo:#F3F4F6; --fondo-2:#E9ECEF;
  --verde:#12A150; --verde-50:#E2F5EA;
  --sombra-1:0 1px 2px rgba(21,24,28,.06),0 1px 3px rgba(21,24,28,.05);
  --sombra-2:0 6px 18px rgba(21,24,28,.09),0 1px 3px rgba(21,24,28,.05);
  --sombra-3:0 22px 50px rgba(21,24,28,.18),0 2px 8px rgba(21,24,28,.07);
  --disp:"Barlow Condensed","Inter",sans-serif;
}
body{background:var(--fondo)}
.rojo{color:var(--rojo-700)}
code,.mono{font-family:var(--mono);font-size:11px}
.sub{font-size:11px;color:var(--tinta-45)}
.vacio{text-align:center;padding:24px 0;color:var(--tinta-45);font-size:12.5px}
em.nov{font-style:normal;color:var(--naranja-700);font-weight:700}

/* ---------- portada ---------- */
.gate{background:radial-gradient(70% 60% at 50% 40%,#1E2329 0%,#0E1013 100%)}
.gate__bg i{background:linear-gradient(90deg,transparent,var(--rojo) 40%,var(--rojo) 60%,transparent);opacity:.09}
.gate__bg i:nth-child(2){background:linear-gradient(90deg,transparent,var(--azul) 40%,var(--azul) 60%,transparent);opacity:.08}
.gate__bg i:nth-child(3){background:linear-gradient(90deg,transparent,var(--naranja) 40%,var(--naranja) 60%,transparent);opacity:.08}
.gate__logo{display:block;margin:0 auto 22px}
.gate__t{font-family:var(--disp);font-size:34px;font-weight:800;letter-spacing:1.5px;color:#fff}
.gate__s{color:#A7B0BA}
.gate__pie{color:#8E97A1}
.pin__cajas input{border-color:#3A4048;background:#101317;caret-color:var(--naranja)}
.pin__cajas input:focus{border-color:var(--naranja);box-shadow:0 0 0 4px rgba(255,118,2,.2)}
.pin__btn{background:var(--rojo-700);box-shadow:0 8px 24px rgba(255,0,0,.28)}
.pin__btn:hover{background:#B80000}
.pin__err{color:#FF6B6B}

/* ---------- apertura y wipe ---------- */
.boot{background:radial-gradient(70% 60% at 50% 40%,#1E2329 0%,#0E1013 100%)}
.boot__k{font:700 11px/1 Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#A7B0BA;margin:4px 0 12px}
.boot__l b{color:var(--naranja);font-weight:700}
.boot__barra i{background:linear-gradient(90deg,var(--rojo),var(--naranja),var(--azul))}
.wipe{background:linear-gradient(120deg,var(--rojo) 0%,#E00000 55%,var(--naranja) 100%)}
.wipe__emb{width:132px;height:132px}
.wipe__iso{display:grid;place-items:center;width:132px;height:132px;border-radius:30px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.28);padding:18px}
.wipe__iso svg{width:100%;height:100%;display:block}

/* ---------- menú lateral de acero ---------- */
.side{background:linear-gradient(180deg,#191C21 0%,#121418 100%);color:#D6DADF}
.side::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px)}
.side__brand{border-bottom:1px solid #2B3036}
.marca__emb{width:44px;height:44px;flex:0 0 44px}
.marca__iso{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff;padding:5px;box-shadow:0 4px 14px rgba(255,118,2,.35)}
.marca__iso svg{width:100%;height:100%;display:block}
.marca__txt strong{font-family:var(--disp);font-size:19px;letter-spacing:.4px;text-transform:uppercase;font-weight:800}
.marca__txt span{color:#9AA4AE}
.nav__rot{color:#7E8892}
.nav__it{color:#C9CED4}
.nav__it.on{background:rgba(255,118,2,.14)}
.nav__it.on::before{background:var(--naranja)}
.nav__it .pin{background:var(--rojo-700)}
.nav__it .pin--amarillo{background:var(--naranja);color:#15181C}
.side__pie{color:#8E97A1;border-top:1px solid #2B3036}
.side__pie b{color:#fff}

/* ---------- encabezado, chips, tags ---------- */
.top h1{font-family:var(--disp);font-size:22px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.chip--rojo{background:var(--rojo-50);color:var(--rojo-900);border-color:var(--rojo-100)}
.chip--azul{background:var(--azul-50);color:#0A3F8F;border-color:#BCD6FB}
.chip--vivo{background:var(--verde-50);color:#0B6E36;border-color:#BFE6D2}
.tag--verde{background:var(--verde-50);color:#0B6E36}
.tag--azul{color:#0A3F8F}
.tag--naranja{background:var(--naranja-50);color:#8A3A00}
.tag--amarillo{background:var(--amarillo-50);color:#6E4D00}
.tag--modelo{background:#EEF0F3;color:#4A525C;border:1px dashed #B7BEC6;font-weight:600;font-size:9.5px;letter-spacing:.3px;text-transform:uppercase}
.kpi--rojo::after{background:var(--rojo)}
.kpi--naranja::after{background:var(--naranja)}
.hub-cab h2 span{color:var(--rojo)}
.btn--rojo{background:var(--rojo-700);border-color:var(--rojo-700);color:#fff}
.btn--rojo:hover{background:#B80000;border-color:#B80000}
.btn--wa{background:#0B7A4B;border-color:#0B7A4B;color:#fff}
.btn--wa:hover{background:#08633C}
.btn--wa svg{width:15px;height:15px}
.btn--mini{padding:5px 10px;font-size:11.5px}
.btn:disabled{opacity:.6;cursor:default}
.hallazgo .num{color:var(--rojo)}
.hallazgo .sol{background:var(--azul-50);color:#0A3F8F;border-left-color:var(--azul)}
.hallazgo .sol b{color:#062F6E}
.t .prod img,.prod img{object-fit:contain;background:#fff}
.mod::before{background:linear-gradient(90deg,var(--rojo),var(--naranja))}
.mod__ico{background:var(--naranja-50);color:var(--naranja-700)}
.mod--dark{background:linear-gradient(150deg,#1A1E23 0%,#111317 100%)}
.mod--dark .mod__ico{background:rgba(255,118,2,.16);color:var(--naranja)}
.mod--dark p,.mod--dark .mod__kpis div{color:#AEB6BF}
.card--negro{background:linear-gradient(150deg,#1B1F24 0%,#111317 100%)}
.card--rojo{background:linear-gradient(135deg,#D10000 0%,#8F0000 100%);border-color:#8F0000}
.pcard .pr{color:var(--tinta)}
.tour-card__n{color:var(--rojo-700)}
.tour-card__barra i{background:linear-gradient(90deg,var(--rojo),var(--naranja))}
.tour-spot{box-shadow:0 0 0 9999px rgba(21,24,28,.72),0 0 0 3px var(--naranja)}
.as-fab{background:linear-gradient(135deg,#22262B,#15181C)}
.as-fab svg{color:var(--naranja)}
.as-sub{font-size:10.5px;color:var(--tinta-45)}
.pie b{color:var(--tinta-70)}
.mapa-py .ciu{fill:#15181C}

/* ---------- franja "La empresa hoy" ---------- */
.franja-t{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}
.franja-t b{font-family:var(--disp);font-size:22px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.franja-t span{font-size:12px;color:var(--tinta-45)}
.hoy{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.hoy__kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.hoy__k b{font-size:32px}
.hoy__k b small{font-size:15px;color:var(--tinta-45)}

/* ---------- escena ---------- */
.escena{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--linea);border-left:4px solid var(--naranja);border-radius:14px;padding:13px 16px;margin:0 0 16px;box-shadow:var(--sombra-1)}
.escena__k{flex:0 0 auto;font:800 10.5px/1 Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--naranja-700);padding-top:4px}
.escena p{margin:0;font-size:13px;line-height:1.55;color:var(--tinta-70)}
.escena p b{color:var(--tinta)}

/* ---------- grillas propias ---------- */
.g-cat{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.g-12m{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.col-stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.col-stack>.card{min-width:0}

/* ---------- mapa ---------- */
.mapa-py .ruta{fill:none;stroke:var(--azul);stroke-width:3.5;stroke-dasharray:1;stroke-dashoffset:1;opacity:.55;animation:rutaDib 1.6s ease forwards var(--d,0s)}
@keyframes rutaDib{to{stroke-dashoffset:0}}
.mapa-py .lupa{fill:none;stroke:var(--tinta-45);stroke-width:2.5;stroke-dasharray:6 6}
.mapa-py .lupa-l{fill:none;stroke:var(--tinta-25);stroke-width:2;stroke-dasharray:6 6}
.mapa-py .inset rect{fill:#fff;stroke:var(--linea-fuerte);stroke-width:2;filter:drop-shadow(0 4px 8px rgba(21,24,28,.1))}
.mapa-py .inset__t{font:800 17px Inter,sans-serif;letter-spacing:.12em;fill:var(--tinta-45)}
.mapa-py .nodo__n{font:800 18px Inter,sans-serif;fill:#fff}
.mapa-py .nodo__m{font:800 12px Inter,sans-serif;fill:#fff}
.mapa-py .ciu-m{font:700 15px Inter,sans-serif;fill:#15181C}
.mapa-py .sede-t{font-size:13px;fill:var(--rojo-700)}
.mapa-py .movil-mapa{pointer-events:none}
.mapa-py .rio-real{stroke:#9CC7EA;stroke-width:3}
@media (prefers-reduced-motion:reduce){.mapa-py .ruta{animation:none;stroke-dashoffset:0}}

/* ---------- flujo en vivo ---------- */
.fv__svg{width:100%;height:auto;display:block;margin:2px 0 8px;overflow:visible}
.fv__base{fill:none;stroke:var(--linea-fuerte);stroke-width:5;stroke-linecap:round;stroke-dasharray:2 12}
.fv__hecho{fill:none;stroke:var(--naranja);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.fv__est circle{fill:#fff;stroke:var(--linea-fuerte);stroke-width:4;transition:all .3s}
.fv__est text{font:800 15px Inter,sans-serif;fill:var(--tinta-45)}
.fv__est.ok circle{fill:var(--naranja);stroke:#fff}
.fv__est.ok text{fill:#fff}
.fv__obj{filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}
.fv__pasos{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:10px}
.fv__pasos .paso.on{border-color:var(--naranja);box-shadow:0 0 0 3px var(--naranja-50)}
.fv__pasos .paso.on .num{background:var(--naranja)}
.fv__ctl{margin-top:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fv__nota{font-size:11.5px;color:var(--tinta-45)}

/* ---------- diagnóstico ---------- */
.lh{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;text-align:center}
.lh>div{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--tinta-45);font-weight:600}
.velo{display:flex;align-items:center;gap:14px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--linea)}
.velo svg{width:170px;flex:0 0 170px;height:auto}
.velo__aguja{transform-origin:110px 110px;transform:rotate(-90deg);animation:aguja 1.6s cubic-bezier(.3,1.4,.5,1) .3s forwards}
@keyframes aguja{to{transform:rotate(var(--a))}}
.velo__t{font:600 11px Inter,sans-serif;fill:var(--tinta-45)}
.velo__v b{display:block;font-family:var(--disp);font-size:40px;font-weight:800;color:var(--rojo-700);line-height:1}
.velo__v span{font-size:11.5px;color:var(--tinta-45)}
@media (prefers-reduced-motion:reduce){.velo__aguja{animation:none;transform:rotate(var(--a))}}
.hallazgos{margin:-16px -18px -18px}
.canales{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.canal{border:1px solid var(--linea);border-radius:12px;padding:12px;background:var(--fondo);min-width:0;display:flex;flex-direction:column;gap:10px}
.canal>span{font-size:11px;color:var(--tinta-45);line-height:1.4}
.canal__cab{display:flex;align-items:center;gap:8px;font-size:12.5px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot--web{background:var(--azul)}.dot--ig{background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF)}
.canal__mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.canal__mini div{background:#fff;border:1px solid var(--linea);border-radius:8px;padding:6px 8px;font-size:10.5px;color:var(--tinta-45)}
.canal__mini b{display:block;font-family:var(--disp);font-size:22px;color:var(--tinta);line-height:1}
.canal__mini .cero{border-color:var(--rojo-100);background:var(--rojo-50)}
.canal__mini .cero b{color:var(--rojo-700)}
.ig-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.ig-mini img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;display:block}
.t--comp td:first-child{color:var(--tinta-45);font-size:11.5px}
.clientes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
.cli{border:1px solid var(--linea);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:#fff;transition:transform .2s,box-shadow .2s}
.cli:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.cli img{width:64px;height:64px;object-fit:contain}
.cli b{font-size:11.5px;line-height:1.2}
.cli span{font-size:10px;color:var(--tinta-45)}
.cli--roto{border-style:dashed;border-color:var(--rojo-100)}
.cli--roto span{color:var(--rojo-900)}
.obs{display:inline-block;margin:0 4px 4px 0;padding:2px 7px;border-radius:6px;background:var(--naranja-50);color:#8A3A00;font-size:10.5px;font-weight:600}

/* ---------- catálogo y cotizador ---------- */
.sel-marca button{padding:6px 12px;gap:6px}
.sel-marca button b{font-size:10.5px;opacity:.65}
.sel-marca .nuevo{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--naranja);color:#15181C;padding:1px 6px;border-radius:99px}
.tipos{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 14px;padding:10px;border-radius:12px;background:var(--fondo);border:1px solid var(--linea)}
.tipos button{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;border:1px solid transparent;color:var(--tinta-70)}
.tipos button:hover{border-color:var(--linea-fuerte);background:#fff}
.tipos button.on{background:var(--negro);color:#fff}
.rejilla--eq{grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:12px}
.rejilla--eq .pcard{position:relative;padding:12px;gap:5px;transition:transform .2s,box-shadow .2s,border-color .2s}
.rejilla--eq .pcard:hover{transform:translateY(-3px);box-shadow:var(--sombra-2);border-color:var(--linea-fuerte)}
.rejilla--eq .pcard img{height:132px;object-fit:contain;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.rejilla--eq .pcard:hover img{transform:scale(1.05)}
.rejilla--eq .pcard b{font-size:12.5px}
.rejilla--eq .ficha{font-size:11px;color:var(--tinta-45);line-height:1.4;flex:1}
.pcard__pie{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}
.pcard__pie .pr{font-family:var(--disp);font-size:20px;font-weight:700}
.btn--consultar{justify-content:center;background:var(--naranja);border-color:var(--naranja);color:#15181C;font-weight:700;margin-top:4px}
.btn--consultar:hover{background:#E86A00;border-color:#E86A00}
.btn--consultar.ok{background:var(--verde);border-color:var(--verde);color:#fff}
.pcard__nov{position:absolute;top:8px;left:8px;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:linear-gradient(135deg,#F58529,#DD2A7B);color:#fff}
.cot__cab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}
.cot__vacio{font-size:12.5px;line-height:1.55;color:var(--tinta-45);padding:16px;border:1.5px dashed var(--linea-fuerte);border-radius:12px;text-align:center}
.cot__items{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto}
.cot__it{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px;border:1px solid var(--linea);border-radius:10px}
.cot__it img{width:40px;height:40px;object-fit:contain}
.cot__it b{display:block;font-size:11.5px;line-height:1.25}
.cot__it span{font-size:10.5px;color:var(--tinta-45)}
.cot__q{display:flex;align-items:center;gap:4px;font-weight:700;font-size:12px}
.cot__q button{width:22px;height:22px;border-radius:6px;background:var(--fondo-2);font-weight:800}
.cot__p{font-size:12px;white-space:nowrap}
.cot__tot{margin-top:12px;border-top:1px solid var(--linea);padding-top:10px;display:flex;flex-direction:column;gap:4px;font-size:12px}
.cot__tot div{display:flex;justify-content:space-between;gap:8px}
.cot__tot span{color:var(--tinta-45)}
.cot__tot .g b{font-family:var(--disp);font-size:24px}
.cot__btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.cot__btns .btn{flex:1;justify-content:center}
.antes-desp{display:grid;gap:10px}
.ad{border-radius:12px;padding:12px;border:1px solid var(--linea)}
.ad small{display:block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.ad b{display:block;font-size:14px}
.ad p{margin:4px 0;font-size:12px;line-height:1.45}
.ad span{font-size:10.5px;color:var(--tinta-45)}
.ad--hoy{background:#FAFAFB;border-style:dashed}
.ad--hoy small{color:var(--rojo-700)}
.ad--hoy b{font-family:var(--mono);font-weight:600}
.ad--hoy p{color:var(--tinta-45);font-style:italic}
.ad--nuevo{background:var(--azul-50);border-color:#BCD6FB}
.ad--nuevo small{color:#0A3F8F}
.wa-par{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.wa-tel{min-width:0}
.wa-tel__t{font:800 11px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-45);margin-bottom:8px;text-align:center}
.wa-tel .wa-phone{flex:none;width:100%;max-width:260px;margin:0 auto}
.wa-tel .wa-screen{height:330px}
.wa-top .av{padding:3px}
.wa-top .av svg{width:22px;height:22px}
.wa-m{font-size:11px}

/* cotización imprimible */
.cot-modal{position:fixed;inset:0;z-index:120;background:rgba(14,16,19,.66);display:grid;place-items:center;padding:16px;overflow:auto;animation:lienzoIn .25s ease}
.cot-doc{background:#fff;width:min(760px,100%);border-radius:16px;padding:26px 28px;box-shadow:var(--sombra-3);max-height:calc(100vh - 32px);overflow:auto}
.cot-doc__cab{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:3px solid var(--rojo);padding-bottom:14px;flex-wrap:wrap}
.cot-doc__logo{width:230px}
.cot-doc__logo svg{width:100%;height:auto;display:block}
.cot-doc__emp{font-size:11.5px;color:var(--tinta-70);text-align:right;line-height:1.5}
.cot-doc__emp b{display:block;font-size:13px;color:var(--tinta)}
.cot-doc__t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:16px 0 10px;flex-wrap:wrap}
.cot-doc__t h2{margin:0;font-family:var(--disp);font-size:28px;text-transform:uppercase}
.cot-doc__t span{font-size:12px;color:var(--tinta-45)}
.cot-doc__tot{margin-left:auto;width:min(330px,100%);margin-top:12px;display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.cot-doc__tot div{display:flex;justify-content:space-between;gap:10px}
.cot-doc__tot span{color:var(--tinta-45)}
.cot-doc__tot .g{border-top:1px solid var(--linea);padding-top:6px}
.cot-doc__tot .g b{font-family:var(--disp);font-size:26px}
.cot-doc__cond{font-size:11.5px;color:var(--tinta-70);line-height:1.6;padding-left:18px;margin:16px 0}
.cot-doc__btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@media print{
  body.imprime-cot>*:not(.cot-modal){display:none!important}
  body.imprime-cot .cot-modal{position:static;background:none;padding:0;display:block}
  body.imprime-cot .cot-doc{box-shadow:none;max-height:none;width:100%;border-radius:0}
  body.imprime-cot .cot-doc__btns{display:none}
}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;z-index:130;background:#15181C;color:#fff;font-size:12.5px;padding:10px 16px;border-radius:12px;box-shadow:var(--sombra-3);transition:all .3s cubic-bezier(.2,.8,.2,1);max-width:calc(100vw - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast b{color:var(--naranja)}
.toast.ok b{color:#6EE7A8}

/* ---------- mesa de asistencia ---------- */
.moviles{display:flex;flex-direction:column;gap:8px}
.movil{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--linea);border-radius:12px;background:var(--fondo)}
.movil__ic{width:38px;height:38px;border-radius:10px;background:#15181C;color:var(--naranja);display:grid;place-items:center}
.movil__ic svg{width:20px;height:20px}
.movil b{display:block;font-size:12.5px}
.movil span{font-size:11px;color:var(--tinta-45)}
.movil__n{font-family:var(--disp);font-size:24px;font-weight:800;text-align:right;line-height:1}
.movil__n small{display:block;font-family:var(--sans);font-size:9.5px;font-weight:600;color:var(--tinta-45)}
.cal__c{min-height:62px}
.cal__e{background:var(--amarillo-50);color:#6E4D00}
.cal__e.na{background:#FFE4CF;color:#8A3A00}
.cal__e.az{background:#DCE9FD;color:#0A3F8F}
.cal__e.am{background:#FFF1C9;color:#6E4D00}
.cal__e.ok{background:#D7F0E1;color:#0B6E36}
.cal__mas{display:block;font-size:9.5px;color:var(--tinta-45);margin-top:2px}

/* ---------- Partes ORIGINALES ---------- */
.po-banner{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr);gap:20px;align-items:center;padding:26px 28px;margin-bottom:16px;overflow:hidden;position:relative}
.po-banner h2{margin:8px 0 6px;font-family:var(--disp);font-size:34px;line-height:1.02;text-transform:uppercase;color:#fff}
.po-banner h2 span{color:var(--naranja)}
.po-banner p{margin:0 0 8px;color:#C9CED4;font-size:13px}
.po-banner .escena__k{color:var(--naranja)}
.po-banner ul{list-style:none;padding:0;margin:10px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.po-banner li{position:relative;padding-left:22px;font-size:12.5px;color:#E8EAED;opacity:0;transform:translateX(-8px);animation:liIn .5s ease forwards calc(.3s + var(--i) * .12s)}
.po-banner li::before{content:"";position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:3px;background:var(--rojo);box-shadow:0 0 0 3px rgba(255,0,0,.2)}
@keyframes liIn{to{opacity:1;transform:none}}
.po-banner__nota{font-size:12px!important;color:#AEB6BF!important;border-top:1px dashed rgba(255,255,255,.18);padding-top:10px;margin-top:8px!important}
.po-escudo svg{width:100%;max-width:220px;height:auto;display:block;margin:0 auto}
.esc-anillo{transform-origin:100px 104px;animation:girar 24s linear infinite}
.esc-eng{animation:girarEng 6s linear infinite}
@keyframes girar{to{transform:rotate(360deg)}}
@keyframes girarEng{from{transform:translate(160px,40px) rotate(0)}to{transform:translate(160px,40px) rotate(360deg)}}
.esc-check{stroke-dasharray:1;stroke-dashoffset:1;animation:ldTrazo .9s ease forwards .6s}
.esc-t{font:800 22px "Barlow Condensed",Inter,sans-serif;letter-spacing:.2em;fill:#fff}
.esc-cuerpo{filter:drop-shadow(0 10px 24px rgba(255,118,2,.35))}
@media (prefers-reduced-motion:reduce){.esc-anillo,.esc-eng{animation:none}.esc-check{animation:none;stroke-dashoffset:0}.po-banner li{animation:none;opacity:1;transform:none}}
.po-busca{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.po-busca label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-45)}
.po-busca select,.simx__sel,.pedir select{width:100%;min-width:0;font:inherit;font-size:13px;padding:9px 12px;border-radius:10px;border:1.5px solid var(--linea-fuerte);background:#fff;color:var(--tinta)}
.po-busca select:focus,.simx__sel:focus{outline:none;border-color:var(--naranja);box-shadow:0 0 0 3px var(--naranja-50)}
.po-eq{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border-radius:12px;background:var(--fondo);border:1px solid var(--linea);margin-bottom:12px}
.po-eq img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:10px}
.po-eq b{display:block;font-size:14px}
.po-eq span{font-size:11.5px;color:var(--tinta-45)}
.card--negro .simx__sel{background:#22262B;color:#fff;border-color:rgba(255,255,255,.22)}
.card--negro .simx__res{background:#fff}
.h160{height:160px}
.simx__res .lienzo-chart{margin-top:12px;background:#15181C;border-radius:12px;padding:8px}
.pedidos-imp{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.pimp{border:1px solid var(--linea);border-radius:12px;overflow:hidden}
.pimp__cab{background:#15181C;color:#fff;padding:10px 12px}
.pimp__cab b{display:block;font-family:var(--disp);font-size:18px;text-transform:uppercase;letter-spacing:.4px}
.pimp__cab span{font-size:11px;color:#AEB6BF}
.pimp__it{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:7px 12px;border-top:1px solid var(--linea);font-size:11.5px;align-items:center}
.pimp__it .mono{color:var(--tinta-45);font-size:10px}

/* ---------- Ingreso Clientes ---------- */
.login{display:grid;place-items:center;padding:18px;border-radius:14px;min-height:300px}
.login--hoy{background:linear-gradient(135deg,#1E3A8A,#3B82F6)}
.login--nuevo{background:linear-gradient(150deg,#1B1F24,#111317);position:relative;overflow:hidden}
.login--nuevo::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 80% 10%,rgba(255,118,2,.25),transparent 70%)}
.login__box{position:relative;background:#fff;border-radius:14px;padding:18px 20px;width:min(300px,100%);box-shadow:0 18px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:8px}
.login__logo{width:170px;margin:0 auto 4px}
.login__logo svg{width:100%;height:auto;display:block}
.login__t{font-weight:800;font-size:17px;text-align:center}
.login--nuevo .login__t{font-family:var(--disp);font-size:24px;text-transform:uppercase;letter-spacing:.5px}
.login__s{font-size:11.5px;color:var(--tinta-45);text-align:center;margin-bottom:4px}
.login--hoy .login__s{color:#374151}
.login label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--tinta-70)}
.login input{border:1px solid #D1D5DB;border-radius:8px;padding:7px 9px;font:inherit;background:#F9FAFB}
.login__b{text-align:center;font-weight:700;font-size:12.5px;color:#fff;background:#F97316;border-radius:8px;padding:9px;margin-top:4px}
.login__b--ok{background:var(--rojo-700)}
.login__pie{font-size:10px;color:var(--tinta-45);text-align:center}
.sel-cli button{padding:4px 12px 4px 4px}
.sel-cli .lg{width:28px;height:28px;border-radius:50%;object-fit:contain;background:#fff;border:1px solid var(--linea)}
.portal{border:2px solid var(--negro);border-radius:22px;padding:18px;background:#fff;box-shadow:var(--sombra-2);display:flex;flex-direction:column;gap:16px}
.portal__cab{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:4px 4px 12px;border-bottom:1px solid var(--linea)}
.portal__cab img{width:56px;height:56px;object-fit:contain;border-radius:14px;border:1px solid var(--linea);background:#fff}
.portal__cab small{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--naranja-700)}
.portal__cab h2{margin:0;font-family:var(--disp);font-size:32px;text-transform:uppercase;line-height:1}
.portal__cab span{font-size:12px;color:var(--tinta-45)}
.portal__cab .btn{margin-left:auto}
.portal__cab .btn svg{width:15px;height:15px}
.mosaico--eq{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.loc__eqs{display:flex;flex-direction:column;gap:6px}
.loc__eq{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:11px}
.loc__eq img{width:34px;height:34px;object-fit:contain;background:#fff;border:1px solid var(--linea);border-radius:7px}
.loc__eq b{display:block;font-size:11.5px}
.loc__eq .mono{font-size:9.5px;color:var(--tinta-45)}
.doc{grid-template-columns:36px minmax(0,1fr) auto auto}
.doc__dl{font-size:11px;font-weight:700;color:var(--azul-700)}
.feed__it.nuevo{border-color:var(--naranja);background:var(--naranja-50);animation:lienzoIn .4s ease}
.pedir__f{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:12px;align-items:end}
.pedir label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--tinta-45);text-transform:uppercase;letter-spacing:.05em;min-width:0}

/* ---------- Proyectos de Cocina ---------- */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:12px;margin-bottom:16px;overflow-x:auto;padding-bottom:6px}
.kb{background:var(--fondo-2);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-width:0}
.kb__cab{display:flex;justify-content:space-between;align-items:baseline;padding:2px 4px 4px}
.kb__cab b{font-family:var(--disp);font-size:17px;text-transform:uppercase;letter-spacing:.4px}
.kb__cab span{font-size:11px;color:var(--tinta-45);font-weight:600}
.kb__it{position:relative;text-align:left;background:#fff;border:1px solid var(--linea);border-radius:11px;padding:10px;display:flex;flex-direction:column;gap:4px;transition:transform .2s,box-shadow .2s,border-color .2s}
.kb__it:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.kb__it.on{border-color:var(--naranja);box-shadow:0 0 0 3px var(--naranja-50)}
.kb__it b{font-size:12px;line-height:1.25}
.kb__it span{font-size:10.5px;color:var(--tinta-45)}
.kb__pie{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:3px}
.kb__pie b{font-size:11.5px}
.kb__alerta{font-style:normal;font-size:9.5px;font-weight:700;color:var(--rojo-900);background:var(--rojo-50);border-radius:6px;padding:1px 6px;align-self:flex-start}
.plano svg{width:100%;height:auto;display:block}
.plano__muro{stroke:#15181C;stroke-width:5;stroke-dasharray:1;stroke-dashoffset:1;animation:ldTrazo 1.4s ease forwards}
.plano__puerta{fill:none;stroke:var(--tinta-25);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:ldTrazo .8s ease forwards 1s}
.plano__eq{opacity:0;transform:translateY(8px);animation:eqIn .5s cubic-bezier(.2,.8,.2,1) forwards calc(1.1s + var(--i) * .18s)}
@keyframes eqIn{to{opacity:1;transform:none}}
.plano__m{font:800 14px "Barlow Condensed",Inter,sans-serif;text-transform:uppercase;fill:#15181C}
.plano__s{font:600 10.5px Inter,sans-serif;fill:#5F6873}
.plano__zona{font:800 12px Inter,sans-serif;letter-spacing:.3em;fill:#B7BEC6}
.plano__esc{font:600 10px Inter,sans-serif;fill:#8E97A1}
@media (prefers-reduced-motion:reduce){.plano__muro,.plano__puerta{animation:none;stroke-dashoffset:0}.plano__eq{animation:none;opacity:1;transform:none}}
.proy-eqs{display:flex;flex-direction:column;gap:8px}
.proy-eq{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:12px}
.proy-eq img{width:44px;height:44px;object-fit:contain;background:#fff;border:1px solid var(--linea);border-radius:8px}
.proy-eq b{display:block;font-size:12px;line-height:1.25}
.proy-eq span{font-size:10.5px;color:var(--tinta-45)}
.proy-tot{display:flex;flex-direction:column;align-items:flex-end;border-top:1px solid var(--linea);padding-top:8px;margin-top:4px}
.proy-tot span{font-size:11px;color:var(--tinta-45)}
.proy-tot b{font-family:var(--disp);font-size:28px;line-height:1}
.proy-tot small{font-size:10.5px;color:var(--tinta-45)}

/* ---------- Importaciones ---------- */
.ruta-imp svg{width:100%;height:auto;display:block}
.ruta-imp .mar{fill:#EAF4FB}
.ruta-imp .tierra{fill:#DDE3E8}
.ruta-imp__base{fill:none;stroke:#9CC7EA;stroke-width:4;stroke-dasharray:3 9;stroke-linecap:round}
.ruta-imp__hecho{fill:none;stroke:var(--azul);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:rutaHecho 2.2s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes rutaHecho{to{stroke-dashoffset:calc(1 - var(--k))}}
.ruta-imp .pto circle{fill:#fff;stroke:var(--tinta-45);stroke-width:3}
.ruta-imp .pto text{font:700 13px Inter,sans-serif;fill:#15181C}
.ruta-imp .pto text.sub{font-weight:500;font-size:11px;fill:#5F6873}
.ruta-imp .pto--py circle{fill:var(--rojo-700);stroke:#fff;stroke-width:4}
.ruta-imp .leyenda-ruta{font:800 13px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;fill:var(--azul-700)}
@media (prefers-reduced-motion:reduce){.ruta-imp__hecho{animation:none;stroke-dashoffset:calc(1 - var(--k))}}
.etapas{display:flex;gap:3px;margin-bottom:3px}
.etapas i{width:14px;height:6px;border-radius:3px;background:var(--fondo-2)}
.etapas i.ok{background:var(--azul)}
.etapas i.on{background:var(--naranja);animation:latido 1.6s ease-in-out infinite}
.t tr.sel td{background:var(--azul-50)}
.sim-eq{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed var(--linea)}
.sim-eq img{width:54px;height:54px;object-fit:contain}
.sim-eq b{display:block;font-size:13px}
.sim-eq span{font-size:11px;color:var(--tinta-45)}
.desglose{margin-top:12px}
.desglose__barra{display:flex;height:14px;border-radius:99px;overflow:hidden;background:var(--fondo-2)}
.desglose__barra i{display:block;height:100%;transition:width .25s ease}
.desglose__ley{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:11px;color:var(--tinta-70)}
.desglose__ley i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.simx__res .simx__h{color:var(--naranja-700)}
.simx__res{border-color:var(--naranja)}
.simx__f input[type=range]{accent-color:var(--naranja)}
.simx__f .val{color:var(--naranja-700)}
.card--negro .simx__f .val{color:#fff}

/* ---------- Propuesta ---------- */
.mods-precio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mp{border:1px solid var(--linea);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;background:#fff;transition:transform .2s,box-shadow .2s}
.mp:hover{transform:translateY(-3px);box-shadow:var(--sombra-2)}
.mp__ic{width:38px;height:38px;border-radius:10px;background:var(--naranja-50);color:var(--naranja-700);display:grid;place-items:center}
.mp__ic svg{width:20px;height:20px}
.mp>b{font-family:var(--disp);font-size:20px;text-transform:uppercase;letter-spacing:.3px;line-height:1.05}
.mp p{margin:0;font-size:11.5px;color:var(--tinta-45);line-height:1.45;flex:1}
.mp__p{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px dashed var(--linea);padding-top:10px;margin-top:4px}
.mp__p div{text-align:center}
.mp__p small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-45)}
.mp__p b{display:block;font-family:var(--disp);font-size:24px;line-height:1.1}
.mp__p span{display:block;font-size:10px;color:var(--tinta-45)}
.pista::before{background:linear-gradient(90deg,var(--rojo) 0 33%,var(--naranja) 33% 66%,var(--azul) 66%)}
.fase__ahorro{text-align:center;font-size:11.5px;color:var(--tinta-45);margin:-6px 14px 4px}
.tachado{text-decoration:line-through;opacity:.7}
.card--sig{border:2px solid var(--naranja)}
.sig p{margin:0 0 14px;font-size:13.5px;line-height:1.65;color:var(--tinta-70)}
.sig__btns{display:flex;gap:10px;flex-wrap:wrap}
.sig__btns .btn{padding:11px 18px;font-size:13px}
.sig__pin{display:block;margin-top:12px;font-size:12px;color:var(--tinta-45)}

/* ---------- hero wow ---------- */
.wow-hero{--wow-logo-w:250px;background:radial-gradient(55% 75% at 76% 52%,var(--wow-glow) 0%,transparent 72%),radial-gradient(40% 60% at 8% 100%,rgba(7,109,244,.10),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px),linear-gradient(135deg,#1A1E23 0%,#0F1114 100%);transition:background .6s}
.wow-kin{font-size:clamp(40px,4.7vw,78px);line-height:.92}
.wow-logo{max-width:70%}
.wow-sel{position:relative;z-index:3;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:16px 16px 0}
.wow-sel button{font-size:12px;font-weight:700;padding:7px 13px;border-radius:99px;color:#E8EAED;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);transition:all .2s}
.wow-sel button:hover{background:rgba(255,255,255,.14)}
.wow-sel button.on{background:var(--naranja);border-color:var(--naranja);color:#15181C}
.wow-hero--frio .wow-sel button.on{background:#7FD3F5;border-color:#7FD3F5}
.wow-3d__hint{top:62px}
.wow-datos b{color:#fff}

/* ---------- responsive ---------- */
@media (max-width:1400px){.mods-precio{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1180px){
  .g-cat,.g-12m{grid-template-columns:minmax(0,1fr)}
  .hoy{grid-template-columns:minmax(0,1fr)}
  .po-banner{grid-template-columns:minmax(0,1fr)}
  .po-escudo{max-width:180px}
  .fv__pasos{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){
  .lh{grid-template-columns:repeat(2,minmax(0,1fr))}
  .canales,.wa-par,.pedir__f{grid-template-columns:minmax(0,1fr)}
  .fv__pasos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .po-banner ul{grid-template-columns:minmax(0,1fr)}
  .po-banner h2{font-size:28px}
  .mods-precio{grid-template-columns:minmax(0,1fr)}
  .escena{flex-direction:column;gap:6px}
  .velo{flex-direction:column;align-items:flex-start}
  .portal{padding:12px}
  .portal__cab .btn{margin-left:0}
  .kanban{grid-template-columns:repeat(5,minmax(220px,1fr))}
  .top__der{display:none}
}
@media (max-width:560px){
  .hoy__kpis{grid-template-columns:minmax(0,1fr)}
  .fv__pasos{grid-template-columns:minmax(0,1fr)}
  .rejilla--eq{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rejilla--eq .pcard img{height:100px}
  .ig-mini{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cot__it{grid-template-columns:34px minmax(0,1fr) auto}
  .cot__it .cot__p{grid-column:2/4}
  .cot-doc{padding:18px}
  .wow-kin{font-size:clamp(34px,10vw,52px)}
  .gate__t{font-size:28px}
}

/* el chip del menú comparte nombre con el formulario del PIN: se neutraliza */
.nav__it .pin{margin-top:0;opacity:1;animation:none;flex:0 0 auto}
.gate__box{width:min(600px,94vw)}
/* al re-pintar la misma vista (filtros) las tarjetas no se animan, pero tienen que quedar visibles */
.sin-anim .mod{opacity:1}
@media (prefers-reduced-motion:reduce){.mod{animation:none;opacity:1}}
.hoy__kpis{align-content:start}
.hoy__k{min-height:118px}
.t--comp th,.t--comp td{white-space:normal;padding:7px 8px;font-size:11.5px}
.t--comp{min-width:0;width:100%}
.card--negro .simx__res{color:var(--tinta)}
.card--negro .simx__res .simx__o b{color:var(--tinta)}
.card--negro .simx__res .simx__o small{color:var(--tinta-45)}
.esc-t{font-size:17px!important;letter-spacing:.12em!important}
.kb__pie b{white-space:nowrap}.kb__pie .tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.t--emb td,.t--emb th{white-space:normal}
.t--emb td:nth-child(2){min-width:200px}
.ruta-imp .oceano{font:800 15px Inter,sans-serif;letter-spacing:.4em;fill:#B9D6EC}
.ruta-imp .rio-imp{fill:none;stroke:#9CC7EA;stroke-width:10;stroke-linecap:round;opacity:.5}
.ruta-imp .rio-t{font:600 11px Inter,sans-serif;fill:#5F87A8}
.t td{white-space:normal}.t td.num,.t td .tag,.t td .mono{white-space:nowrap}.t td{min-width:0}
.precios .pblo b span,.precios--junto .pblo b span{font-size:inherit;color:inherit;display:inline;font-weight:inherit}
.franja-t{flex-wrap:wrap;row-gap:2px}
.t--emb td:first-child b{white-space:nowrap}
