/* =========================================================
 * Secciones: sellos, plataforma, roles, FE, IA, móvil, portal, ISO, clientes
 * ========================================================= */
.nav-links { gap: 1.3rem; }
.hero-sellos { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem; }
.hero-sellos span { font-size: .75rem; padding: .35rem .75rem; border-radius: 999px; border: 1px solid var(--borde); background: rgba(10,22,40,.6); color: #cfe3f7; }

/* Plataforma */
.plataforma { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.plat-card { position: relative; padding: 2rem; border-radius: 22px; overflow: hidden; background: var(--vidrio); border: 1px solid var(--borde); backdrop-filter: blur(10px); }
.plat-card::before { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: conic-gradient(from var(--ang, 0deg), transparent 70%, var(--c, var(--teal))); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: borde 5s linear infinite; }
@property --ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes borde { to { --ang: 360deg; } }
.plat-card h3 { font-size: 1.2rem; margin: 1rem 0 .6rem; }
.plat-card p { color: var(--suave); font-size: .92rem; margin-bottom: 1rem; }
.plat-visual { height: 130px; border-radius: 14px; background: rgba(5,15,30,.7); border: 1px solid rgba(255,255,255,.06); position: relative; overflow: hidden; display: grid; place-items: center; }
.plat-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.plat-chips span { font-size: .7rem; padding: .25rem .6rem; border-radius: 8px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
/* multiempresa: tarjetas de empresa que rotan */
.empresas { position: relative; width: 210px; height: 90px; }
.empresa-tarjeta { position: absolute; inset: 0; border-radius: 12px; padding: .8rem 1rem; display: flex; align-items: center; gap: .7rem; background: linear-gradient(135deg, var(--ec), #0a1628); border: 1px solid rgba(255,255,255,.15); font-size: .78rem; transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .6s; }
.empresa-tarjeta b { display: block; font-size: .85rem; }
.empresa-tarjeta small { color: #cfe3f7; font-size: .65rem; }
.empresa-tarjeta .ini { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font: 900 .9rem 'Orbitron'; background: rgba(255,255,255,.15); flex: none; }
/* actualizaciones */
.update { width: 80%; }
.update-fila { display: flex; justify-content: space-between; font-size: .72rem; color: var(--suave); margin-bottom: .4rem; }
.update-fila b { color: var(--teal); font-family: 'Orbitron'; }
.update-barra { height: 8px; border-radius: 8px; background: rgba(255,255,255,.08); overflow: hidden; }
.update-barra i { display: block; height: 100%; width: 0; border-radius: 8px; background: linear-gradient(90deg, var(--teal), var(--azul)); box-shadow: 0 0 12px var(--teal); }
.update-msg { font-size: .72rem; margin-top: .6rem; color: #cfe3f7; min-height: 1.2em; }
.update-ico { display: inline-block; animation: gira 2s linear infinite; }
/* contabilidad: asiento */
.asiento { width: 88%; font-size: .68rem; }
.asiento-fila { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: .4rem; padding: .3rem .4rem; border-bottom: 1px dashed rgba(255,255,255,.08); opacity: 0; }
.asiento-fila.cab { opacity: 1; color: var(--suave); font-weight: 600; }
.asiento-fila span:not(:first-child) { text-align: right; font-family: 'Orbitron'; }
.asiento-fila.ver { animation: entraLado .4s forwards; }
.asiento-fila.total { color: var(--teal); font-weight: 700; border-bottom: 0; }

/* Roles */
.roles-tabs, .iso-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-bottom: 2.5rem; }
.rol { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; align-items: center; }
.rol-avatar { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; font-size: 2.2rem; background: linear-gradient(135deg, color-mix(in srgb, var(--c, var(--teal)) 40%, transparent), transparent); border: 1px solid var(--c, var(--teal)); box-shadow: 0 0 40px -10px var(--c, var(--teal)); margin-bottom: 1rem; }
.rol-info h3 { font-size: 1.6rem; margin-bottom: .8rem; }
.rol-info > p { color: var(--suave); margin-bottom: 1.2rem; }
.rol-modulos { display: flex; flex-wrap: wrap; gap: .4rem; }
.rol-modulos .mod { font-size: .75rem; }
.tablero { border-radius: var(--radio); background: rgba(5,15,30,.8); border: 1px solid var(--borde); overflow: hidden; box-shadow: 0 30px 80px -30px rgba(0,0,0,.8), 0 0 60px -30px var(--c, var(--teal)); }
.tablero-barra { display: flex; justify-content: space-between; align-items: center; padding: .8rem 1.2rem; background: rgba(0,0,0,.35); font: 600 .8rem 'Orbitron'; color: var(--c, var(--teal)); }
.kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; padding: 1.2rem; }
.kpi { padding: 1rem; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06); opacity: 0; animation: aparece .5s forwards; }
.kpi b { display: block; font: 700 1.6rem 'Orbitron'; color: #fff; }
.kpi small { color: var(--suave); font-size: .72rem; }
.kpi .medidor { height: 4px; border-radius: 4px; background: rgba(255,255,255,.08); margin-top: .6rem; overflow: hidden; }
.kpi .medidor i { display: block; height: 100%; width: 0; background: var(--c, var(--teal)); transition: width 1.2s cubic-bezier(.2,.8,.2,1); }
.tablero-lista { padding: 0 1.2rem 1.2rem; }
.fila-alerta { display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border-radius: 10px; margin-top: .5rem; background: rgba(255,255,255,.03); font-size: .84rem; opacity: 0; animation: entraLado .5s forwards; }
.fila-alerta em { margin-left: auto; font-style: normal; font-size: .7rem; padding: .15rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--c, var(--teal)) 18%, transparent); color: var(--c, var(--teal)); white-space: nowrap; }
@keyframes entraLado { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }

/* Facturación electrónica / split */
.fe, .split { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.fe-info h2, .split-info h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .8rem 0 1rem; }
.fe-info > p, .split-info > p { color: var(--suave); margin-bottom: 1.4rem; }
.fe-visual { perspective: 1200px; }
.factura { background: #f8fbff; color: #0b2c4d; border-radius: 16px; padding: 1.5rem; transform: rotateY(-8deg) rotateX(4deg); box-shadow: 0 40px 100px -30px rgba(0,0,0,.9), 0 0 80px -30px var(--teal); position: relative; overflow: hidden; }
.factura::after { content: ''; position: absolute; left: 0; right: 0; height: 60px; top: -60px; background: linear-gradient(transparent, rgba(94,234,212,.45), transparent); animation: escanea 3s linear infinite; pointer-events: none; }
@keyframes escanea { to { top: 110%; } }
.factura-cabeza { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; border-bottom: 2px solid #e2ecf7; }
.factura-cabeza img { width: 40px; }
.factura-cabeza b { font: 700 .85rem 'Orbitron'; display: block; }
.factura-cabeza small { color: #5b7590; }
.factura-estado { margin-left: auto; font-size: .72rem; font-weight: 700; padding: .3rem .7rem; border-radius: 999px; background: #fef3c7; color: #92400e; transition: .3s; white-space: nowrap; }
.factura-estado.ok { background: #ccfbf1; color: #0f766e; }
.factura-lineas div { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px dashed #dbe6f2; font-size: .85rem; }
.factura-total { display: flex; justify-content: space-between; padding: .9rem 0; font: 700 1.1rem 'Orbitron'; color: #0d9488; }
.factura-cufe { background: #eef4fb; border-radius: 8px; padding: .5rem .7rem; font-size: .7rem; }
.factura-cufe code { display: block; word-break: break-all; color: #1a6fb5; min-height: 1.2em; }
.fe-pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; margin-top: 1rem; }
.fe-pasos span { text-align: center; font-size: .65rem; font-weight: 600; padding: .45rem .2rem; border-radius: 6px; background: #e2ecf7; color: #5b7590; transition: .4s; }
.fe-pasos span.ok { background: linear-gradient(90deg, #5eead4, #38bdf8); color: #021018; }

/* IA */
.asistente { border-radius: var(--radio); background: rgba(5,15,30,.85); border: 1px solid rgba(167,139,250,.35); box-shadow: 0 0 80px -30px var(--violeta); overflow: hidden; }
.asistente-barra { display: flex; align-items: center; gap: .6rem; padding: .9rem 1.2rem; background: rgba(0,0,0,.35); font-weight: 600; font-size: .9rem; }
.asistente-barra .punto { margin-left: auto; }
.asistente-logo { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--violeta), var(--azul)); }
.asistente-chat { height: 320px; padding: 1.2rem; display: flex; flex-direction: column; gap: .8rem; overflow: hidden; justify-content: flex-end; }
.burbuja { max-width: 85%; padding: .7rem 1rem; border-radius: 16px; font-size: .88rem; animation: aparece .35s forwards; flex: none; }
.burbuja.yo { align-self: flex-end; background: linear-gradient(135deg, var(--azul-2), #0f3d68); border-bottom-right-radius: 4px; }
.burbuja.ia { align-self: flex-start; background: rgba(167,139,250,.12); border: 1px solid rgba(167,139,250,.3); border-bottom-left-radius: 4px; }
.burbuja.ia b { color: var(--teal); }
.pensando i { display: inline-block; width: 6px; height: 6px; margin: 0 2px; border-radius: 50%; background: var(--violeta); animation: salta 1s infinite; }
.pensando i:nth-child(2) { animation-delay: .15s; }
.pensando i:nth-child(3) { animation-delay: .3s; }
@keyframes salta { 50% { transform: translateY(-5px); opacity: .4; } }
.asistente-input { margin: 0 1.2rem 1.2rem; padding: .8rem 1rem; border-radius: 12px; border: 1px solid var(--borde); background: rgba(10,22,40,.8); font-size: .88rem; min-height: 46px; color: #cfe3f7; }
.cursor { display: inline-block; width: 2px; height: 1em; background: var(--teal); vertical-align: middle; margin-left: 2px; animation: parpadea 1s steps(1) infinite; }
@keyframes parpadea { 50% { opacity: 0; } }

/* Móvil */
.split.invertido { grid-template-columns: .8fr 1.2fr; }
.telefono-zona { position: relative; display: grid; place-items: center; }
.telefono { width: 270px; height: 550px; border-radius: 42px; padding: 12px; background: linear-gradient(145deg, #1e293b, #020617); border: 1px solid rgba(94,234,212,.3); box-shadow: 0 40px 100px -30px rgba(0,0,0,.9), 0 0 60px -20px var(--teal); position: relative; animation: flota 6s ease-in-out infinite; }
.telefono-notch { position: absolute; top: 18px; left: 50%; transform: translateX(-50%); width: 90px; height: 22px; border-radius: 20px; background: #000; z-index: 2; }
.telefono-pantalla { height: 100%; border-radius: 32px; overflow: hidden; display: flex; flex-direction: column; background: linear-gradient(170deg, #0f3d68, #050b16 60%); }
.tel-cabeza { display: flex; align-items: center; gap: .5rem; padding: 2.8rem 1rem .8rem; font: 700 .8rem 'Orbitron'; }
.tel-cabeza img { width: 26px; }
.tel-vista { flex: 1; padding: .4rem .9rem; overflow: hidden; }
.tel-vista h4 { font-size: .95rem; margin-bottom: .7rem; }
.tel-item { display: flex; align-items: center; gap: .6rem; padding: .65rem .7rem; border-radius: 12px; margin-bottom: .45rem; background: rgba(255,255,255,.06); font-size: .74rem; opacity: 0; animation: entraLado .4s forwards; }
.tel-item span { font-size: 1.1rem; }
.tel-item em { margin-left: auto; font-style: normal; font-size: .62rem; color: var(--teal); white-space: nowrap; }
.tel-mapa { height: 150px; border-radius: 14px; margin-bottom: .6rem; position: relative; overflow: hidden; background: linear-gradient(rgba(94,234,212,.08) 1px, transparent 1px) 0 0/20px 20px, linear-gradient(90deg, rgba(94,234,212,.08) 1px, transparent 1px) 0 0/20px 20px, #0a1f38; }
.tel-mapa svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tel-nav { display: flex; justify-content: space-around; padding: .7rem .5rem 1.1rem; background: rgba(0,0,0,.35); }
.tel-nav span { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-size: .95rem; transition: .3s; }
.tel-nav span.activo { background: rgba(94,234,212,.18); box-shadow: inset 0 -2px 0 var(--teal); }
.tel-funciones { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
.tel-funcion { display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; border-radius: 12px; border: 1px solid rgba(255,255,255,.07); background: rgba(10,22,40,.55); font-size: .85rem; transition: .3s; cursor: pointer; color: var(--texto); font-family: inherit; text-align: left; }
.tel-funcion.activo { border-color: var(--teal); background: rgba(94,234,212,.08); box-shadow: 0 0 24px -10px var(--teal); }

/* Portal */
.portal { display: grid; grid-template-columns: 1.4fr .6fr; gap: 2rem; align-items: start; }
.navegador { border-radius: 14px; overflow: hidden; border: 1px solid var(--borde); background: #f4f8fc; color: #0b2c4d; box-shadow: 0 40px 100px -30px rgba(0,0,0,.9), 0 0 60px -30px var(--azul); }
.navegador-barra { display: flex; align-items: center; gap: 6px; padding: .6rem .9rem; background: #0b2c4d; }
.navegador-barra i { width: 11px; height: 11px; border-radius: 50%; background: #ff5f57; flex: none; }
.navegador-barra i:nth-child(2) { background: #febc2e; }
.navegador-barra i:nth-child(3) { background: #28c840; }
.url { margin-left: .8rem; flex: 1; font-size: .72rem; padding: .3rem .8rem; border-radius: 999px; background: rgba(255,255,255,.1); color: #cfe3f7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.portal-cuerpo { display: grid; grid-template-columns: 170px 1fr; min-height: 360px; }
.portal-menu { background: #0f3d68; padding: 1rem .6rem; display: flex; flex-direction: column; gap: .3rem; }
.portal-menu .marca-cli { color: #fff; font: 700 .7rem 'Orbitron'; padding: 0 .5rem 1rem; }
.portal-menu button { text-align: left; border: 0; background: none; color: #bcd3ea; padding: .55rem .7rem; border-radius: 8px; font: 500 .8rem 'Inter'; cursor: pointer; transition: .2s; }
.portal-menu button.activo, .portal-menu button:hover { background: rgba(94,234,212,.18); color: #fff; }
.portal-vista { padding: 1.3rem; min-width: 0; }
.portal-vista h4 { font-size: 1rem; margin-bottom: .9rem; }
.pv-fila { display: flex; align-items: center; gap: .8rem; padding: .7rem .8rem; border-radius: 10px; background: #fff; border: 1px solid #e2ecf7; margin-bottom: .5rem; font-size: .8rem; opacity: 0; animation: aparece .4s forwards; }
.pv-fila small { color: #5b7590; display: block; font-size: .7rem; }
.pv-fila .est { margin-left: auto; font-size: .68rem; font-weight: 700; padding: .2rem .6rem; border-radius: 999px; white-space: nowrap; }
.est.v { background: #ccfbf1; color: #0f766e; }
.est.a { background: #fef3c7; color: #92400e; }
.est.z { background: #dbeafe; color: #1e40af; }
.pv-btn { margin-left: auto; font-size: .7rem; font-weight: 700; color: #0d9488; white-space: nowrap; }
.pv-linea { display: flex; justify-content: space-between; position: relative; margin: 1.5rem .5rem 1rem; }
.pv-linea::before { content: ''; position: absolute; left: 0; right: 0; top: 13px; height: 3px; background: #e2ecf7; }
.pv-linea .barra { position: absolute; left: 0; top: 13px; height: 3px; width: 0; background: linear-gradient(90deg, #5eead4, #38bdf8); transition: width 2s ease; }
.pv-etapa { position: relative; text-align: center; font-size: .62rem; width: 60px; color: #5b7590; }
.pv-etapa i { display: grid; place-items: center; width: 28px; height: 28px; margin: 0 auto .3rem; border-radius: 50%; background: #e2ecf7; font-style: normal; transition: .4s; }
.pv-etapa.ok i { background: linear-gradient(135deg, #5eead4, #38bdf8); color: #021018; box-shadow: 0 0 12px rgba(94,234,212,.7); }
.estrellas { font-size: 1.8rem; letter-spacing: .3rem; color: #d5e1ee; }
.estrellas span { transition: color .3s; }
.estrellas span.on { color: #fbbf24; }
.portal-beneficios { display: grid; gap: .8rem; }

/* ISO */
.iso-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.iso-req { padding: 1.3rem; border-radius: 14px; background: var(--vidrio); border: 1px solid var(--borde); position: relative; overflow: hidden; opacity: 0; animation: aparece .5s forwards; }
.iso-req .num { font: 900 1.6rem 'Orbitron'; color: var(--teal); }
.iso-req h4 { font-size: .95rem; margin: .2rem 0 .7rem; padding-right: 1.5rem; }
.iso-req .mods { display: flex; flex-wrap: wrap; gap: .35rem; }
.iso-req .mods span { font-size: .7rem; padding: .25rem .6rem; border-radius: 8px; background: rgba(94,234,212,.08); border: 1px solid rgba(94,234,212,.2); }
.iso-req::after { content: '✓'; position: absolute; top: 1rem; right: 1rem; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: .75rem; background: rgba(94,234,212,.15); color: var(--teal); }
.iso-nota { text-align: center; color: var(--suave); font-size: .78rem; margin-top: 1.5rem; }

/* Clientes */
.clientes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.cliente { height: 150px; border-radius: var(--radio); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; padding: 1.2rem; background: var(--vidrio); border: 1px solid var(--borde); transition: transform .3s, box-shadow .3s, border-color .3s; }
.cliente:hover { transform: translateY(-6px); border-color: var(--teal); box-shadow: 0 0 50px -15px var(--teal); }
.cliente img { max-height: 54px; width: auto; }
.cliente small { color: var(--suave); font-size: .75rem; }
.cliente-texto { font-family: 'Orbitron'; text-align: center; color: #e6f1ff; line-height: 1.2; }
.labservice { font-size: 1.3rem; letter-spacing: 1px; }
.labservice b { color: var(--azul); }
.csg { font-size: .85rem; letter-spacing: 1.5px; }
.csg b { display: block; font-size: 1.05rem; color: var(--teal); }
.csg i { font-style: normal; color: var(--azul); }

/* Carrusel 3D */
#destacados { overflow-x: clip; max-width: none; }
#destacados > * { max-width: var(--ancho); margin-left: auto; margin-right: auto; }
.carrusel { position: relative; height: 440px; perspective: 1400px; touch-action: pan-y; user-select: none; }
.carrusel-pista { position: absolute; inset: 0; transform-style: preserve-3d; }
.tarjeta-inn {
  position: absolute; left: 50%; top: 50%; width: 340px; height: 400px; margin: -200px 0 0 -170px;
  border-radius: 24px; padding: 1.8rem; overflow: hidden; cursor: pointer;
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 30%, #0a1628), #050b16 75%);
  border: 1px solid color-mix(in srgb, var(--c) 45%, transparent);
  box-shadow: 0 30px 80px -30px rgba(0,0,0,.9);
  transition: transform .7s cubic-bezier(.2,.8,.2,1), opacity .7s, filter .7s, box-shadow .7s;
  display: flex; flex-direction: column;
}
.tarjeta-inn.centro { box-shadow: 0 40px 100px -30px rgba(0,0,0,.9), 0 0 70px -15px var(--c); cursor: default; }
.tarjeta-inn::before { content: ''; position: absolute; width: 260px; height: 260px; right: -90px; top: -90px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--c) 45%, transparent), transparent 70%); }
.tarjeta-inn::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.08) 50%, transparent 65%); transform: translateX(-100%); }
.tarjeta-inn.centro::after { animation: destello 3.5s ease-in-out infinite; }
@keyframes destello { 60%, 100% { transform: translateX(100%); } }
.inn-ico { position: relative; width: 70px; height: 70px; border-radius: 20px; display: grid; place-items: center; font-size: 2.2rem; background: color-mix(in srgb, var(--c) 22%, transparent); border: 1px solid color-mix(in srgb, var(--c) 60%, transparent); box-shadow: 0 0 30px -8px var(--c); }
.tarjeta-inn.centro .inn-ico { animation: flota 4s ease-in-out infinite; }
.inn-tag { position: relative; align-self: flex-start; margin: 1.2rem 0 .6rem; font: 700 .62rem 'Orbitron'; letter-spacing: 1.5px; padding: .3rem .7rem; border-radius: 999px; color: var(--c); border: 1px solid color-mix(in srgb, var(--c) 50%, transparent); }
.tarjeta-inn h3 { position: relative; font-size: 1.3rem; margin-bottom: .7rem; }
.tarjeta-inn p { position: relative; color: #b9cce3; font-size: .9rem; flex: 1; }
.inn-pie { position: relative; display: flex; flex-wrap: wrap; gap: .35rem; }
.inn-pie span { font-size: .68rem; padding: .25rem .6rem; border-radius: 8px; background: rgba(255,255,255,.06); }
.carrusel-flecha { position: absolute; top: 50%; transform: translateY(-50%); z-index: 50; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--borde); background: rgba(5,11,22,.8); backdrop-filter: blur(8px); color: var(--teal); font-size: 2rem; line-height: 1; cursor: pointer; transition: .2s; }
.carrusel-flecha:hover { border-color: var(--teal); box-shadow: 0 0 25px -5px var(--teal); }
.carrusel-flecha.izq { left: 0; }
.carrusel-flecha.der { right: 0; }
.carrusel-puntos { display: flex; justify-content: center; gap: .5rem; margin-top: 1.5rem; flex-wrap: wrap; }
.carrusel-puntos button { width: 10px; height: 10px; border-radius: 999px; border: 0; padding: 0; background: rgba(255,255,255,.18); cursor: pointer; transition: .3s; }
.carrusel-puntos button.activo { width: 32px; background: linear-gradient(90deg, var(--teal), var(--azul)); box-shadow: 0 0 12px var(--teal); }

/* ---------- Responsive ---------- */
@media (max-width: 1150px) and (min-width: 761px) {
  .nav-links { gap: .9rem; }
  .nav-links a:not(.btn) { font-size: .78rem; }
}
@media (max-width: 960px) {
  .rol, .fe, .split, .split.invertido, .portal { grid-template-columns: 1fr; gap: 2.5rem; }
  .split.invertido .telefono-zona { order: 2; }
  .iso-grid, .plataforma { grid-template-columns: repeat(2, 1fr); }
  .clientes { grid-template-columns: repeat(2, 1fr); }
  .factura { transform: none; }
}
@media (max-width: 760px) {
  .iso-grid, .plataforma { grid-template-columns: 1fr; }
  .portal-cuerpo { grid-template-columns: 1fr; }
  .portal-menu { flex-direction: row; overflow-x: auto; padding: .6rem; }
  .portal-menu .marca-cli { display: none; }
  .portal-menu button { white-space: nowrap; }
  .kpis { gap: .5rem; padding: .8rem; }
  .kpi { padding: .7rem; }
  .kpi b { font-size: 1.15rem; }
}
@media (max-width: 480px) {
  .clientes { gap: .7rem; }
  .cliente { height: 120px; padding: .8rem; }
  .cliente img { max-height: 40px; }
  .labservice { font-size: 1rem; }
  .csg { font-size: .62rem; }
  .csg b { font-size: .78rem; }
  .tel-funciones { grid-template-columns: 1fr; }
  .telefono { width: 240px; height: 500px; }
  .kpis { grid-template-columns: 1fr 1fr; }
  .roles-tabs .caso-tab, .iso-tabs .caso-tab { flex: 1 1 calc(50% - .6rem); }
  .pv-etapa { width: 46px; font-size: .55rem; }
  .asistente-chat { height: 300px; }
  .fe-pasos span { font-size: .58rem; }
  .plat-card { padding: 1.5rem; }
  .carrusel { height: 420px; }
  .tarjeta-inn { width: 280px; height: 390px; margin: -195px 0 0 -140px; padding: 1.4rem; }
  .carrusel-flecha { width: 42px; height: 42px; font-size: 1.6rem; top: auto; bottom: -62px; transform: none; }
  .carrusel-flecha.izq { left: 16px; }
  .carrusel-flecha.der { right: 16px; }
}
