/* ==========================================================================
   Infincas — pantallas de producto recreadas (bloque infincas/mockup)
   Todo escala con el ancho del contenedor (container queries).
   ========================================================================== */

.ifm-block { container-type: inline-size; position: relative; }
.ifm { --nv: #0B1F3F; --nv2: #13305E; --bg: #F6F9FE; --ln: #E6ECF5; --tx: #0F172A; --mt: #64748B; --bl: #2B7DE9;
	position: relative; margin: 0; font-family: var(--wp--preset--font-family--body, Inter, system-ui, sans-serif); font-size: clamp(8px, 1.68cqw, 13.5px); line-height: 1.35; color: var(--tx); padding: 1.2em 1.6em 2.2em 0; overflow-wrap: normal; word-break: normal; hyphens: none; text-align: left; }
.ifm *, .ifm *::before, .ifm *::after { box-sizing: border-box; }
.ifm__window { display: grid; grid-template-columns: 13.5em 1fr; border-radius: 1.2em; overflow: hidden; background: var(--bg); border: 1px solid #D9E3F1; box-shadow: 0 2px 4px rgba(15,23,42,.04), 0 30px 70px -20px rgba(11,31,63,.35); min-height: 31em; }
.ifm--no-side .ifm__window { grid-template-columns: 1fr; }
.ifm--no-side .ifm__side { display: none; }

/* Lateral */
.ifm__side { background: linear-gradient(180deg, var(--nv) 0%, var(--nv2) 100%); padding: 1.4em .9em; color: #9FB3D1; }
.ifm__logo { display: block; width: 7.6em; height: auto; margin: 0 .4em 1.6em; opacity: .95; }
.ifm__nav { list-style: none; margin: 0; padding: 0; display: grid; gap: .15em; }
.ifm__nav li { display: flex; align-items: center; gap: .65em; padding: .55em .7em; border-radius: .6em; font-size: .92em; white-space: nowrap; }
.ifm__nav li .ifi { width: 1.15em; height: 1.15em; flex: none; opacity: .8; }
.ifm__nav li.is-active { background: rgba(43,125,233,.25); color: #fff; box-shadow: inset 2px 0 0 #60A5FA; }

/* Principal */
.ifm__main { display: flex; flex-direction: column; min-width: 0; }
.ifm__top { display: flex; align-items: center; justify-content: space-between; gap: 1em; padding: .8em 1.4em; background: #fff; border-bottom: 1px solid var(--ln); }
.ifm__search { display: flex; align-items: center; gap: .6em; flex: 1; max-width: 26em; padding: .5em .8em; border-radius: .6em; background: var(--bg); color: #94A3B8; font-size: .9em; white-space: nowrap; overflow: hidden; }
.ifm__search .ifi { width: 1.1em; height: 1.1em; flex: none; }
.ifm__user { display: flex; align-items: center; gap: .8em; color: #94A3B8; }
.ifm__user .ifi { width: 1.25em; height: 1.25em; }
.ifm__avatar { width: 2.3em; height: 2.3em; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #60A5FA, #2B7DE9); color: #fff; font-weight: 700; font-size: .85em; }
.ifm__body { padding: 1.3em 1.4em 1.5em; display: grid; gap: 1em; align-content: start; }
.ifm__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1em; flex-wrap: wrap; }
.ifm__title { margin: 0; font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-weight: 700; font-size: 1.55em; letter-spacing: -.02em; color: var(--tx); line-height: 1.15; }
.ifm__subtitle { margin: .2em 0 0; color: var(--mt); font-size: .9em; }

/* Nota y flotante */
.ifm__note { position: absolute; left: .4em; bottom: .3em; font-size: .85em; color: #94A3B8; letter-spacing: .02em; }
.ifm__float { position: absolute; right: 0; bottom: .4em; z-index: 3; max-width: 46%; }

/* Tonos */
.ifm-tone--blue { background: #E8F1FD; color: #1D6FE0; }
.ifm-tone--violet { background: #F1EAFE; color: #7C3AED; }
.ifm-tone--green { background: #E3F6EA; color: #15803D; }
.ifm-tone--amber { background: #FEF3DB; color: #D97706; }
.ifm-tone--red { background: #FDE8E8; color: #DC2626; }
.ifm-tone--teal { background: #DDF5F4; color: #0E918F; }
.ifm-tone--navy { background: #0B1F3F; color: #fff; }

/* KPIs */
.ifm-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5em, 1fr)); gap: .8em; }
.ifm-kpi { position: relative; background: #fff; border: 1px solid var(--ln); border-radius: .9em; padding: .85em .95em; display: grid; gap: .2em; }
.ifm-kpi__ico { position: absolute; top: .8em; right: .8em; width: 2.2em; height: 2.2em; border-radius: .6em; display: grid; place-items: center; }
.ifm-kpi__ico .ifi { width: 1.15em; height: 1.15em; }
.ifm-kpi__label { color: var(--mt); font-size: .85em; padding-right: 2.5em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifm-kpi__value { font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-size: 1.6em; letter-spacing: -.02em; }
.ifm-kpi__delta { color: #16A34A; font-size: .8em; font-weight: 600; }

/* Tarjetas */
.ifm-card { background: #fff; border: 1px solid var(--ln); border-radius: .9em; padding: .95em 1em; min-width: 0; }
.ifm-card__head { display: flex; justify-content: space-between; align-items: center; gap: .5em; font-weight: 600; margin-bottom: .8em; font-size: .95em; }
.ifm-chart { display: flex; flex-direction: column; }
.ifm-chart .ifm-bars { flex: 1; min-height: 9.5em; height: auto; }
.ifm-grid-2 { display: grid; grid-template-columns: 1.35fr 1fr; gap: .9em; }
.ifm-grid-2--even { grid-template-columns: 1fr 1fr; }
.ifm-legend { display: flex; align-items: center; gap: .4em; color: var(--mt); font-weight: 500; font-size: .85em; }
.ifm-legend i { width: .7em; height: .7em; border-radius: .2em; background: var(--bl); display: inline-block; }
.ifm-legend i.b { background: #BFD7F7; margin-left: .5em; }

/* Gráfico de barras */
.ifm-bars { display: flex; align-items: flex-end; justify-content: space-between; gap: .45em; height: 9.5em; padding-top: .5em; border-bottom: 1px solid var(--ln); background: repeating-linear-gradient(0deg, transparent 0 calc(25% - 1px), #EEF2F8 calc(25% - 1px) 25%); }
.ifm-bars__g { flex: 1; display: flex; align-items: flex-end; gap: 12%; height: 100%; }
.ifm-bars__g i { flex: 1; height: var(--h); border-radius: .3em .3em 0 0; background: linear-gradient(180deg, #4B93F0, #2B7DE9); transform-origin: bottom; }
.ifm-bars__g i + i { background: #C7DCF8; }

/* Actividad */
.ifm-activity { list-style: none; margin: 0; padding: 0; display: grid; gap: .55em; }
.ifm-activity li { display: flex; align-items: center; gap: .7em; padding: .5em .4em; border-radius: .6em; }
.ifm-activity li + li { border-top: 1px solid #F0F3F8; }
.ifm-activity__ico { width: 2.2em; height: 2.2em; border-radius: .6em; display: grid; place-items: center; flex: none; }
.ifm-activity__ico .ifi { width: 1.1em; height: 1.1em; }
.ifm-activity__txt { display: grid; min-width: 0; flex: 1; }
.ifm-activity__txt strong { font-weight: 600; font-size: .95em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifm-activity__txt small { color: var(--mt); font-size: .82em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Pills, chips, botones */
.ifm-pill { display: inline-flex; align-items: center; gap: .35em; padding: .25em .65em; border-radius: 99em; font-size: .8em; font-weight: 600; white-space: nowrap; }
.ifm-pill .ifi { width: 1em; height: 1em; }
.ifm-pill--blue { background: #E8F1FD; color: #1D6FE0; }
.ifm-pill--green { background: #E3F6EA; color: #15803D; }
.ifm-pill--amber { background: #FEF3DB; color: #B45309; }
.ifm-pill--red { background: #FDE8E8; color: #DC2626; }
.ifm-pill--teal { background: #DDF5F4; color: #0E7C7A; }
.ifm-pill--violet { background: #F1EAFE; color: #6D28D9; }
.ifm-pill--gray { background: #EEF2F7; color: #475569; }
.ifm-chips { display: flex; flex-wrap: wrap; gap: .5em; }
.ifm-chip { padding: .45em .8em; border-radius: .6em; background: #E8F1FD; color: #1D6FE0; font-size: .85em; }
.ifm-chip b { font-size: 1.15em; margin-right: .2em; }
.ifm-chip--amber { background: #FEF3DB; color: #B45309; }
.ifm-chip--red { background: #FDE8E8; color: #DC2626; }
.ifm-chip--green { background: #E3F6EA; color: #15803D; }
.ifm-actions { display: flex; gap: .45em; flex-wrap: wrap; }
.ifm-btn { display: inline-flex; align-items: center; justify-content: center; padding: .55em 1em; border-radius: .6em; background: var(--bl); color: #fff; font-weight: 600; font-size: .85em; white-space: nowrap; }
.ifm-btn--ghost { background: #fff; color: #1D6FE0; border: 1px solid #CFE0F7; }
.ifm-btn--block { display: flex; margin-top: .8em; }

/* Tablas */
.ifm-table { background: #fff; border: 1px solid var(--ln); border-radius: .9em; overflow: hidden; position: relative; }
.ifm-tr { display: grid; grid-template-columns: 1.35fr 1.35fr .85fr 1.1fr; gap: .8em; align-items: center; padding: .7em 1em; font-size: .9em; }
.ifm-table--5 .ifm-tr { grid-template-columns: 1.2fr 1.2fr .9fr 1fr .9fr; }
.ifm-table--6 .ifm-tr { grid-template-columns: 1.3fr .6fr .5fr .65fr .55fr 1.3fr; }
.ifm-tr > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ifm-tr b { font-weight: 600; }
.ifm-tr + .ifm-tr { border-top: 1px solid #F0F3F8; }
.ifm-tr--head { background: #F8FAFD; color: var(--mt); font-size: .8em; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding-block: .6em; }
.ifm-person { display: inline-flex; align-items: center; gap: .55em; }
.ifm-person i { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: .75em; font-weight: 700; flex: none; }
.ifm-progress { display: inline-block; width: 60%; height: .5em; border-radius: 99em; background: #EEF2F7; vertical-align: middle; overflow: hidden; }
.ifm-progress i { display: block; height: 100%; width: var(--w); border-radius: inherit; background: #16A34A; transform-origin: left; }
.ifm-progress--amber i { background: #F59E0B; }
.ifm-progress--red i { background: #EF4444; }
.ifm-progress__v { margin-left: .5em; font-size: .9em; }
.ifm-origin { display: inline-flex; align-items: center; gap: .35em; color: var(--mt); }
.ifm-origin .ifi { width: 1.1em; height: 1.1em; }
.ifm-mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8em; }
.ifm-mini__i { background: #fff; border: 1px solid var(--ln); border-radius: .9em; padding: .7em .9em; display: grid; grid-template-columns: auto 1fr; column-gap: .6em; align-items: center; }
.ifm-mini__i span { grid-row: span 2; width: 2.2em; height: 2.2em; border-radius: .6em; display: grid; place-items: center; }
.ifm-mini__i span .ifi { width: 1.1em; height: 1.1em; }
.ifm-mini__i b { font-size: 1.25em; font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); }
.ifm-mini__i small { color: var(--mt); font-size: .8em; }
.ifm-tabs { display: flex; gap: .3em; border-bottom: 1px solid var(--ln); font-size: .9em; color: var(--mt); }
.ifm-tabs span { padding: .5em .9em; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.ifm-tabs span.is-active { color: #1D6FE0; border-color: #2B7DE9; font-weight: 600; }
.ifm-tabs--sm { border: 0; background: #EEF2F7; border-radius: .6em; padding: .2em; }
.ifm-tabs--sm span { border: 0; border-radius: .45em; padding: .35em .8em; margin: 0; }
.ifm-tabs--sm span.is-active { background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.08); }

/* Tarjetas flotantes */
.ifm-toast, .ifm-extract, .ifm-entry, .ifm-timeline, .ifm-perm { background: #fff; border: 1px solid #DCE6F3; border-radius: 1em; box-shadow: 0 20px 50px -15px rgba(11,31,63,.35); padding: .9em 1.05em; font-size: .95em; }
.ifm-toast { display: flex; align-items: center; gap: .75em; }
.ifm-toast__ico { width: 2.6em; height: 2.6em; border-radius: .75em; display: grid; place-items: center; flex: none; }
.ifm-toast__ico .ifi { width: 1.35em; height: 1.35em; }
.ifm-toast strong { display: block; font-size: .98em; }
.ifm-toast small { color: var(--mt); font-size: .85em; }
.ifm-extract { min-width: 16em; }
.ifm-extract__t { display: flex; align-items: center; gap: .45em; margin: 0 0 .65em; font-weight: 700; color: #0E7C7A; font-size: .92em; }
.ifm-extract__t .ifi { width: 1.15em; height: 1.15em; }
.ifm-extract dl { display: grid; grid-template-columns: auto 1fr; gap: .35em 1em; margin: 0 0 .7em; font-size: .88em; }
.ifm-extract dt { color: var(--mt); }
.ifm-extract dd { margin: 0; font-weight: 600; text-align: right; }
.ifm-entry { min-width: 17em; }
.ifm-entry .ifm-extract__t { color: #1D6FE0; }
.ifm-entry__row { display: grid; grid-template-columns: 1fr 4em 4em; gap: .5em; font-size: .88em; padding: .35em 0; border-top: 1px dashed var(--ln); }
.ifm-entry__row b { text-align: right; }
.ifm-timeline ol { list-style: none; margin: 0; padding: 0 0 0 1.1em; border-left: 2px solid #DCE6F3; display: grid; gap: .55em; }
.ifm-timeline li { position: relative; display: flex; justify-content: space-between; gap: 1em; font-size: .88em; }
.ifm-timeline li::before { content: ""; position: absolute; left: -1.55em; top: .25em; width: .75em; height: .75em; border-radius: 50%; background: #2B7DE9; box-shadow: 0 0 0 3px #fff; }
.ifm-timeline li.is-pending::before { background: #F59E0B; }
.ifm-timeline li small { color: var(--mt); }
.ifm-timeline .ifm-extract__t { color: #1D6FE0; }
.ifm-perm ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4em; font-size: .88em; }
.ifm-perm li { display: flex; align-items: center; gap: .5em; }
.ifm-perm li::before { content: "✓"; width: 1.4em; height: 1.4em; border-radius: 50%; display: grid; place-items: center; background: #E3F6EA; color: #15803D; font-weight: 700; font-size: .8em; flex: none; }
.ifm-perm li.warn::before { content: "!"; background: #FEF3DB; color: #B45309; }
.ifm-perm .ifm-extract__t { color: #0B1F3F; }

/* Juntas: onda y checks */
.ifm-rec { color: #EF4444; font-weight: 600; font-size: .85em; }
.ifm-wave { display: flex; align-items: center; gap: .22em; height: 4.2em; padding: .4em .2em; background: linear-gradient(90deg, #F1EAFE, #E8F1FD); border-radius: .7em; }
.ifm-wave i { flex: 1; height: var(--h); border-radius: 99em; background: linear-gradient(180deg, #8B5CF6, #2B7DE9); }
.ifm-checks { list-style: none; margin: .8em 0 0; padding: 0; display: grid; gap: .45em; font-size: .9em; }
.ifm-checks li { display: flex; align-items: center; gap: .55em; }
.ifm-checks li::before { content: "✓"; width: 1.5em; height: 1.5em; border-radius: 50%; display: grid; place-items: center; background: #2B7DE9; color: #fff; font-size: .75em; font-weight: 700; flex: none; }
.ifm-checks li.is-pending { color: var(--mt); }
.ifm-checks li.is-pending::before { content: "…"; background: #EEF2F7; color: var(--mt); }

/* Oficina IA */
.ifm-channels { display: flex; flex-wrap: wrap; gap: .4em; }
.ifm-channels span { display: inline-flex; align-items: center; gap: .35em; padding: .35em .7em; border-radius: 99em; background: #fff; border: 1px solid var(--ln); font-size: .82em; font-weight: 500; }
.ifm-channels .ifi { width: 1.1em; height: 1.1em; color: #2B7DE9; }
.ifm-agents { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6em; }
.ifm-agent { background: #fff; border: 1px solid var(--ln); border-radius: .9em; padding: .7em; display: grid; gap: .4em; justify-items: start; font-size: .9em; }
.ifm-agent > span:first-child { width: 2.2em; height: 2.2em; border-radius: .6em; display: grid; place-items: center; }
.ifm-agent .ifi { width: 1.1em; height: 1.1em; }

/* Consulta documental */
.ifm-chat { display: grid; gap: .8em; padding: .5em 0; }
.ifm-msg { max-width: 82%; padding: .8em 1em; border-radius: 1em; font-size: .98em; }
.ifm-msg p { margin: 0; }
.ifm-msg--user { justify-self: end; background: #2B7DE9; color: #fff; border-bottom-right-radius: .3em; }
.ifm-msg--ai { justify-self: start; background: #fff; border: 1px solid var(--ln); border-bottom-left-radius: .3em; display: grid; gap: .6em; position: relative; padding-left: 3.2em; }
.ifm-msg__ico { position: absolute; left: .8em; top: .8em; width: 1.8em; height: 1.8em; border-radius: .5em; display: grid; place-items: center; background: #DDF5F4; color: #0E918F; }
.ifm-msg__ico .ifi { width: 1em; height: 1em; }
.ifm-source { display: inline-flex; align-items: center; gap: .4em; width: fit-content; padding: .3em .7em; border-radius: .5em; background: #E8F1FD; color: #1D6FE0; font-size: .82em; font-weight: 600; }
.ifm-source .ifi { width: 1em; height: 1em; }
.ifm-msg--typing { display: none; }
.ifm-input { display: flex; justify-content: space-between; align-items: center; padding: .7em .8em .7em 1em; border-radius: .8em; background: #fff; border: 1px solid var(--ln); color: #94A3B8; }
.ifm-input__send { width: 2.2em; height: 2.2em; border-radius: .6em; background: #2B7DE9; color: #fff; display: grid; place-items: center; }
.ifm-input__send .ifi { width: 1.1em; height: 1.1em; }

/* Estados intercambiables (conciliación) */
.ifm-swap { display: inline-grid; }
.ifm-swap > span { grid-area: 1 / 1; }
.ifm-swap__a { visibility: hidden; }

/* ---------- Responsive ---------- */
@container (max-width: 560px) {
	.ifm { font-size: clamp(8.5px, 2.25cqw, 12px); padding-right: .8em; }
	.ifm__window { grid-template-columns: 1fr; }
	.ifm__side { display: none; }
	.ifm-grid-2, .ifm-grid-2--even { grid-template-columns: 1fr; }
	.ifm-grid-2 > :last-child { display: none; }
	.ifm-agents { grid-template-columns: repeat(2, 1fr); }
	.ifm-tr > span:nth-child(2) { display: none; }
	.ifm-tr { grid-template-columns: 1.4fr .9fr 1.2fr !important; }
	.ifm-table--5 .ifm-tr, .ifm-table--6 .ifm-tr { grid-template-columns: 1.3fr .8fr 1fr 1fr !important; }
	.ifm-table--6 .ifm-tr > span:nth-child(4), .ifm-table--6 .ifm-tr > span:nth-child(5) { display: none; }
	.ifm-table--5 .ifm-tr > span:nth-child(5) { display: none; }
	.ifm__float { max-width: 70%; right: 0; }
	.ifm-mini { grid-template-columns: 1fr 1fr; }
	.ifm-mini__i:last-child { display: none; }
	.ifm-kpis { grid-template-columns: 1fr 1fr; }
}

/* ---------- Animaciones (solo con JS y sin reducción de movimiento) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.ifm-wave i { animation: ifm-wave 1.4s ease-in-out infinite; animation-delay: calc(var(--i) * -70ms); transform-origin: center; }
	@keyframes ifm-wave { 0%, 100% { transform: scaleY(.45); } 50% { transform: scaleY(1); } }
	.ifm-rec { animation: if-pulse 1.6s infinite; }

	.js-anim .ifm-block .ifm-bars__g i { transform: scaleY(0); }
	.js-anim .ifm-block.is-inview .ifm-bars__g i { transform: scaleY(1); transition: transform .9s var(--if-ease, ease) calc(.3s + var(--i, 0) * 60ms); }
	.js-anim .ifm-block .ifm-bars__g { --i: 0; }
	.js-anim .ifm-block .ifm-kpi, .js-anim .ifm-block .ifm-activity li, .js-anim .ifm-block .ifm-tr:not(.ifm-tr--head), .js-anim .ifm-block .ifm-checks li, .js-anim .ifm-block .ifm-timeline li { opacity: 0; transform: translateY(6px); }
	.js-anim .ifm-block.is-inview .ifm-kpi, .js-anim .ifm-block.is-inview .ifm-activity li, .js-anim .ifm-block.is-inview .ifm-tr:not(.ifm-tr--head) { opacity: 1; transform: none; transition: opacity .5s, transform .5s; transition-delay: calc(.25s + var(--i, 0) * 90ms); }
	.js-anim .ifm-block.is-inview .ifm-checks li { opacity: 1; transform: none; transition: opacity .4s, transform .4s; transition-delay: calc(1s + var(--i, 0) * 450ms); }
	.js-anim .ifm-block.is-inview .ifm-timeline li { opacity: 1; transform: none; transition: opacity .4s, transform .4s; transition-delay: calc(1.6s + var(--i, 0) * 400ms); }
	.js-anim .ifm-block .ifm-progress i { transform: scaleX(0); }
	.js-anim .ifm-block.is-inview .ifm-progress i { transform: scaleX(1); transition: transform 1.1s var(--if-ease, ease) .6s; }
	.js-anim .ifm-block .ifm__float { opacity: 0; transform: translateY(14px) scale(.97); }
	.js-anim .ifm-block.is-inview .ifm__float { opacity: 1; transform: none; transition: opacity .6s, transform .6s var(--if-ease, ease); transition-delay: 1.3s; }
	.js-anim .ifm-block.is-inview .ifm__float > * { animation: ifm-float 6s ease-in-out 2s infinite; }
	@keyframes ifm-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

	/* Escaneo IA de facturas */
	.js-anim .ifm-block.is-inview .ifm-table--scan::after { content: ""; position: absolute; left: 0; right: 0; top: 2.2em; height: 2.4em; background: linear-gradient(90deg, transparent, rgba(14,165,164,.14), transparent); border-top: 1px solid rgba(14,165,164,.45); animation: ifm-scan 3.6s ease-in-out 1s infinite; pointer-events: none; }
	@keyframes ifm-scan { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(11em); opacity: 0; } }

	/* Conciliación: pendiente → conciliado */
	.js-anim .ifm-block .ifm-table--swap .ifm-swap__a { visibility: visible; }
	.js-anim .ifm-block .ifm-table--swap .ifm-swap__b { opacity: 0; transform: scale(.85); }
	.js-anim .ifm-block.is-inview .ifm-table--swap .ifm-swap__a { visibility: hidden; transition: visibility 0s calc(1.2s + var(--i, 0) * 500ms); }
	.js-anim .ifm-block.is-inview .ifm-table--swap .ifm-swap__b { opacity: 1; transform: none; transition: opacity .35s, transform .35s; transition-delay: calc(1.2s + var(--i, 0) * 500ms); }
	.js-anim .ifm-block .ifm-table--swap .ifm-tr { --i: inherit; }

	/* Chat documental */
	.js-anim .ifm-block .ifm-msg { opacity: 0; transform: translateY(8px); }
	.js-anim .ifm-block.is-inview .ifm-msg--user { opacity: 1; transform: none; transition: all .45s .4s; }
	.js-anim .ifm-block .ifm-msg--typing { display: inline-flex; gap: .3em; justify-self: start; background: #fff; border: 1px solid var(--ln); padding: .9em 1em; }
	.js-anim .ifm-block .ifm-msg--typing i { width: .5em; height: .5em; border-radius: 50%; background: #94A3B8; animation: ifm-dot 1s infinite; }
	.js-anim .ifm-block .ifm-msg--typing i:nth-child(2) { animation-delay: .15s; }
	.js-anim .ifm-block .ifm-msg--typing i:nth-child(3) { animation-delay: .3s; }
	.js-anim .ifm-block.is-inview .ifm-msg--typing { animation: ifm-typing 1.8s .9s both; }
	.js-anim .ifm-block.is-inview .ifm-msg--ai { opacity: 1; transform: none; transition: all .5s 2.6s; }
	@keyframes ifm-dot { 0%, 100% { opacity: .3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
	@keyframes ifm-typing { 0% { opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; max-height: 4em; } 100% { opacity: 0; max-height: 0; padding: 0; border-width: 0; margin: 0; } }
}
