/* ==========================================================================
   Infincas — pantallas reales de la aplicación (recreadas y animadas)
   Base: capturas de app.infincas.com. Datos ficticios.
   ========================================================================== */

.ifm--real { --rb: #2563EB; --rb2: #3B82F6; --rbg: #EEF2F8; --rnv: #0F2747; --rln: #E5EAF2; }
.ifm--real .ifr { grid-template-columns: 12.5em 1fr; background: var(--rbg); min-height: 0; }

/* Lateral */
.ifr-side { overflow: hidden; background: var(--rnv); padding: .9em .7em 1.2em; display: flex; flex-direction: column; gap: .8em; color: #C9D6EA; min-width: 0; }
.ifr-logo { display: grid; place-items: center; background: #fff; border-radius: .7em; padding: .7em .6em; }
.ifr-logo img { width: 100%; max-width: 8.4em; height: auto; display: block; }
.ifr-profile { display: block; text-align: center; font-size: .78em; color: #fff; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.05); border-radius: .6em; padding: .55em .4em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: .1em; }
.ifr-nav li { display: flex; align-items: center; gap: .7em; padding: .5em .65em; border-radius: .55em; font-size: .84em; white-space: nowrap; color: #DCE6F5; }
.ifr-nav li .ifi { width: 1.15em; height: 1.15em; flex: none; opacity: .85; }
.ifr-nav li span { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.ifr-nav__chev { font-weight: 400; opacity: .6; }
.ifr-nav li.is-active { background: var(--rb); color: #fff; font-weight: 600; box-shadow: 0 4px 10px -6px rgba(37,99,235,.9); }

/* Principal */
.ifr-main { min-width: 0; display: flex; flex-direction: column; }
.ifr-top { display: flex; align-items: center; justify-content: flex-end; gap: 1.1em; padding: .8em 1em .55em; background: #fff; border-bottom: 1px solid var(--rln); }
.ifr-top__btns { display: flex; gap: .45em; flex-wrap: nowrap; min-width: 0; }
.ifr-top__btn { position: relative; width: 2.2em; height: 2.2em; flex: none; border-radius: .55em; background: #F1F4F9; border: 1px solid #E3E8F0; display: grid; place-items: center; color: #334155; }
.ifr-top__btn .ifi { width: 1.1em; height: 1.1em; }
.ifr-badge { position: absolute; top: -.45em; right: -.4em; min-width: 1.4em; height: 1.4em; padding: 0 .3em; border-radius: 1em; background: var(--rb); color: #fff; font-style: normal; font-size: .62em; font-weight: 700; display: grid; place-items: center; line-height: 1; box-shadow: 0 0 0 2px #fff; }
.ifr-badge--ok { background: #22C55E; }
.ifr-top__user { display: flex; align-items: center; gap: .6em; text-align: right; white-space: nowrap; }
.ifr-top__user span { display: grid; line-height: 1.15; }
.ifr-top__user strong { font-size: .82em; color: #0F172A; }
.ifr-top__user small { font-size: .7em; color: #64748B; }
.ifr-avatar { width: 2.3em; height: 2.3em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: .78em; color: #fff; background: linear-gradient(135deg, #1E3A8A, #2563EB); box-shadow: 0 0 0 2px #fff, 0 0 0 3px #2563EB; }

.ifr-body { padding: .9em; }
.ifr-grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: .75em; }
.ifr-col { display: grid; gap: .75em; align-content: start; min-width: 0; }
.ifr-card { background: #fff; border-radius: .9em; padding: .85em .95em; box-shadow: 0 1px 2px rgba(15,23,42,.04); border: 1px solid #E8EDF5; min-width: 0; }
.ifr-split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0; padding: 0; }
.ifr-split > div { padding: .85em .95em; min-width: 0; }
.ifr-split > div + div { border-left: 1px solid var(--rln); }

.ifr-h { display: flex; align-items: center; gap: .45em; margin: 0; font-weight: 600; color: #0F172A; font-size: .98em; white-space: nowrap; }
.ifr-h .ifi { width: 1.15em; height: 1.15em; color: var(--rb); flex: none; }
.ifr-h span { overflow: hidden; text-overflow: ellipsis; }
.ifr-h b { margin-left: auto; font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-size: 1.35em; font-weight: 700; letter-spacing: -.01em; }
.ifr-h--sm { font-size: .9em; }
.ifr-h .ifr-money { font-family: inherit; font-size: .82em; font-weight: 500; color: #475569; }
.ifr-sub { margin: .15em 0 .6em; color: #64748B; font-size: .76em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-sub--row { display: flex; justify-content: space-between; gap: .5em; margin: .4em 0 .3em; }
.ifr-sub--row b { color: var(--rb); font-weight: 600; }

/* Barras mensuales */
.ifr-bars { display: flex; align-items: flex-end; gap: .35em; height: 7.4em; padding-bottom: 1.1em; position: relative; }
.ifr-bars--short { height: 6.2em; }
.ifr-bars > span { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; position: relative; }
.ifr-bars i { display: block; height: var(--h); min-height: 3px; background: var(--rb); border-radius: .15em .15em 0 0; transform-origin: bottom; }
.ifr-bars small { position: absolute; bottom: -1.35em; left: 50%; transform: translateX(-50%); font-size: .58em; color: #94A3B8; }

/* Saldos */
.ifr-saldos ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5em; }
.ifr-saldos li { display: grid; grid-template-columns: 1fr auto; gap: .1em .4em; font-size: .72em; color: #64748B; align-items: center; }
.ifr-saldos li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-saldos li b { color: var(--rb); font-weight: 600; white-space: nowrap; }
.ifr-saldos li .ifr-prog { grid-column: 1; }
.ifr-saldos li small { font-size: .95em; color: #94A3B8; }
.ifr-prog { display: block; height: .42em; border-radius: 1em; background: #E7ECF4; overflow: hidden; }
.ifr-prog > i { display: block; height: 100%; width: var(--p); border-radius: inherit; background: var(--rb); transform-origin: left; }
.ifr-saldos li .ifr-prog > i, .ifr-moro .ifr-prog > i { width: var(--p); }

/* Morosidad */
.ifr-line { display: block; width: 100%; height: 5.6em; overflow: visible; background: repeating-linear-gradient(0deg, transparent 0 calc(20% - 1px), #EFF3F9 calc(20% - 1px) 20%); border-left: 1px solid #CBD5E1; border-bottom: 1px solid #CBD5E1; }
.ifr-line path { fill: none; stroke: var(--rb); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }

/* KPIs laterales */
.ifr-col--kpis { gap: .55em; }
.ifr-kpi { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: end; gap: .1em .5em; padding: .6em .75em; }
.ifr-kpi__t { grid-column: 1 / -1; display: flex; align-items: center; gap: .4em; margin: 0; font-size: .78em; font-weight: 600; color: #0F172A; line-height: 1.2; }
.ifr-kpi__t .ifi { width: 1.1em; height: 1.1em; color: var(--rb); flex: none; }
.ifr-kpi__t span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ifr-kpi__v { font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-size: 1.7em; font-weight: 700; letter-spacing: -.02em; line-height: 1; color: #0F172A; transition: color .3s; }
.ifr-kpi__v.is-tick { color: var(--rb); }
.ifr-mini { display: flex; align-items: flex-end; gap: 2px; height: 2.1em; width: 5.6em; }
.ifr-mini i { flex: 1; height: var(--h); min-height: 2px; background: var(--rb); border-radius: 1px; transform-origin: bottom; }

/* Avisos flotantes que se van sucediendo */
.ifr-toasts { display: grid; }
.ifr-toasts > .ifr-toast { grid-area: 1 / 1; }
.ifr-toasts > .ifr-toast:not(:first-child) { visibility: hidden; }
.ifr-badge.is-tick { animation: ifr-pop .45s ease; }
@keyframes ifr-pop { 50% { transform: scale(1.35); } }

/* ---------- Responsive ---------- */
@container (max-width: 760px) {
	.ifm--real .ifr { grid-template-columns: 10.5em 1fr; }
	.ifr-top__btn:nth-child(n+6) { display: none; }
}
@container (max-width: 560px) {
	.ifm--real .ifr { grid-template-columns: 1fr; }
	.ifr-side { display: none; }
	.ifr-grid { grid-template-columns: 1fr; }
	.ifr-col--kpis { grid-template-columns: repeat(2, 1fr); }
	.ifr-col--kpis > :nth-child(n+5) { display: none; }
	.ifr-top__btn:nth-child(n+5) { display: none; }
	.ifr-split > div + div { display: none; }
	.ifr-split { grid-template-columns: 1fr; }
	.ifr-split + .ifr-split { display: none; }
}

/* ---------- Animaciones ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js-anim .ifm-block .ifm--real .ifr-card { opacity: 0; transform: translateY(8px); }
	.js-anim .ifm-block.is-inview .ifm--real .ifr-card { opacity: 1; transform: none; transition: opacity .5s, transform .5s var(--if-ease, ease); transition-delay: calc(.15s + var(--i, 0) * 110ms); }
	.js-anim .ifm-block .ifr-bars i, .js-anim .ifm-block .ifr-mini i { transform: scaleY(0); }
	.js-anim .ifm-block.is-inview .ifr-bars i { transform: scaleY(1); transition: transform .8s var(--if-ease, ease) calc(.45s + var(--i, 0) * 55ms); }
	.js-anim .ifm-block.is-inview .ifr-mini i { transform: scaleY(1); transition: transform .6s var(--if-ease, ease) calc(.9s + var(--j, 0) * 40ms); }
	.js-anim .ifm-block .ifr-prog > i { transform: scaleX(0); }
	.js-anim .ifm-block.is-inview .ifr-prog > i { transform: scaleX(1); transition: transform 1s var(--if-ease, ease) calc(.8s + var(--i, 0) * 120ms); }
	.js-anim .ifm-block .ifr-line path { stroke-dasharray: 1; stroke-dashoffset: 1; }
	.js-anim .ifm-block.is-inview .ifr-line path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.2s ease-in-out 1s; }

	/* Mes en curso «vivo»: la última barra respira */
	.js-anim .ifm-block.is-inview .ifr-bars > span:last-child i { animation: ifr-live 3.2s ease-in-out 2.5s infinite; }
	@keyframes ifr-live { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.12); filter: brightness(1.12); } }

	/* Avisos: se suceden en bucle */
	.js-anim .ifm-block.is-inview .ifr-toasts > .ifr-toast { visibility: visible; opacity: 0; animation: ifr-toast 12s ease-in-out infinite; animation-delay: calc(2s + var(--k) * 4s); }
	@keyframes ifr-toast { 0% { opacity: 0; transform: translateY(12px) scale(.97); } 4%, 29% { opacity: 1; transform: none; } 33%, 100% { opacity: 0; transform: translateY(-8px); } }
}
@media (prefers-reduced-motion: reduce) {
	.ifr-toasts > .ifr-toast:not(:first-child) { display: none; }
}

/* ==========================================================================
   Contabilidad: facturas por correo → menú → Tesorería / extractos (una animación)
   ========================================================================== */

/* Submenús del lateral */
.ifr-nav li.is-sub { display: none; padding: .38em .65em .38em 2.4em; font-size: .78em; color: #B8C7DE; gap: .6em; }
.ifr-nav li.is-sub i { width: .45em; height: .45em; border-radius: 50%; background: currentColor; opacity: .55; flex: none; }
.ifr-nav li.is-sub.is-shown { display: flex; animation: ifr-sub .3s ease both; }
.ifr-nav li.is-sub.is-active { background: var(--rb); color: #fff; font-weight: 600; }
.ifr-nav li.is-sub.is-active i { opacity: 1; background: #fff; }
.ifr-nav li.is-open:not(.is-active) { background: rgba(255,255,255,.07); color: #fff; }
.ifr-nav li.is-open .ifr-nav__chev { transform: rotate(90deg); }
.ifr-nav__chev { transition: transform .25s; }
.ifr-nav li.is-hover { background: rgba(255,255,255,.12); }
@keyframes ifr-sub { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }

/* Cursor animado */
.ifr { position: relative; }
.ifr-cursor { position: absolute; left: 0; top: 0; z-index: 6; width: 1.9em; height: 1.9em; pointer-events: none; opacity: 0; transform: translate(60em, 20em); transition: transform .9s cubic-bezier(.5, 0, .2, 1), opacity .3s; filter: drop-shadow(0 2px 3px rgba(0,0,0,.35)); }
.ifr-cursor svg { width: 100%; height: 100%; display: block; }
.ifr-cursor.is-on { opacity: 1; }
.ifr-cursor::after { content: ""; position: absolute; left: .1em; top: .1em; width: 1.4em; height: 1.4em; margin: -.7em 0 0 -.7em; border-radius: 50%; background: rgba(37,99,235,.35); transform: scale(0); opacity: 0; }
.ifr-cursor.is-click::after { animation: ifr-click .45s ease-out; }
@keyframes ifr-click { from { transform: scale(.2); opacity: 1; } to { transform: scale(1.8); opacity: 0; } }

/* Escenas */
.ifr-scenes { display: grid; }
.ifr-scene { grid-area: 1 / 1; display: grid; gap: .6em; align-content: start; }
.ifr-scenes.is-ready .ifr-scene { visibility: hidden; opacity: 0; transform: translateX(14px); transition: opacity .45s, transform .45s, visibility 0s .45s; }
.ifr-scenes.is-ready .ifr-scene.is-on { visibility: visible; opacity: 1; transform: none; transition: opacity .45s .1s, transform .45s .1s, visibility 0s; }
.ifr-scenes:not(.is-ready) .ifr-scene[data-scene="extracto"] { display: none; }

/* Cabecera de página */
.ifr-page { position: relative; display: flex; align-items: center; gap: .6em; background: #fff; border: 1px solid #E8EDF5; border-radius: .8em; padding: .55em .7em; }
.ifr-page__ico { width: 2.1em; height: 2.1em; border-radius: .5em; background: #EEF3FD; color: var(--rb); display: grid; place-items: center; flex: none; }
.ifr-page__ico .ifi { width: 1.15em; height: 1.15em; }
.ifr-page > span:nth-child(2) { display: grid; line-height: 1.2; min-width: 0; }
.ifr-page b { font-size: .92em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-page small { font-size: .7em; color: #64748B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-btns { margin-left: auto; display: flex; gap: .3em; flex: none; }
.ifr-btns em { font-style: normal; font-size: .72em; font-weight: 600; color: #fff; padding: .5em .8em; border-radius: .45em; white-space: nowrap; }
.b-blue { background: #2563EB; } .b-orange { background: #F59E0B; } .b-green { background: #16A34A; }
.ifr-mail { position: absolute; right: .7em; top: -.75em; font-style: normal; font-size: .62em; font-weight: 700; color: #fff; background: #2563EB; border-radius: 1em; padding: .35em .75em; display: inline-flex; align-items: center; gap: .35em; white-space: nowrap; opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s; box-shadow: 0 6px 14px -6px rgba(37,99,235,.8); }
.ifr-mail .ifi { width: 1.1em; height: 1.1em; }
.ifr-mail.is-on { opacity: 1; transform: none; }

/* Proceso */
.ifr-pipe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4em; }
.ifr-pipe li { display: flex; align-items: center; gap: .45em; background: #fff; border: 1px solid #E3E8F0; border-radius: .6em; padding: .45em .55em; color: #94A3B8; transition: all .35s; min-width: 0; }
.ifr-pipe li .ifi { width: 1.2em; height: 1.2em; flex: none; padding: .25em; box-sizing: content-box; border-radius: .4em; background: #F1F5F9; }
.ifr-pipe li span { display: grid; line-height: 1.15; min-width: 0; }
.ifr-pipe li b { font-size: .68em; color: #334155; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-pipe li small { font-size: .58em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-pipe li.is-done { color: #16A34A; border-color: #BBF7D0; }
.ifr-pipe li.is-done .ifi { background: #DCFCE7; }
.ifr-pipe li.is-on { color: var(--rb); border-color: #93C5FD; box-shadow: 0 0 0 3px rgba(37,99,235,.13); }
.ifr-pipe li.is-on .ifi { background: #DBEAFE; animation: ifr-beat 1s ease-in-out infinite; }
@keyframes ifr-beat { 50% { transform: scale(1.15); } }

/* Dos columnas: calendario + lista */
.ifr-two { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: .6em; align-items: start; }
.ifr-list { display: grid; gap: .4em; min-width: 0; align-content: start; }

/* Calendario */
.ifr-cal { background: #fff; border: 1px solid #E8EDF5; border-radius: .8em; padding: .5em; font-size: .9em; }
.ifr-cal__months { display: grid; grid-template-columns: repeat(5, 1fr); gap: .2em; margin-bottom: .4em; }
.ifr-cal__months span { font-size: .55em; font-weight: 700; text-align: center; padding: .4em 0; border-radius: .3em; }
.ifr-cal__months .is-ok { background: #DCFCE7; color: #15803D; }
.ifr-cal__months .is-warn { background: #FEE2E2; color: #DC2626; }
.ifr-cal__head { display: flex; justify-content: space-between; align-items: center; background: #EAF0FB; border-radius: .4em; padding: .35em .5em; font-size: .72em; font-weight: 600; color: #0F172A; }
.ifr-cal__head b { color: var(--rb); }
.ifr-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .18em; margin-top: .3em; }
.ifr-cal__grid em { font-style: normal; text-align: center; font-size: .56em; color: #64748B; padding: .2em 0; }
.ifr-cal__grid span { position: relative; text-align: center; font-size: .68em; font-weight: 600; color: #475569; padding: .95em 0 .25em; border-radius: .3em; }
.ifr-cal__grid span small { position: absolute; top: .15em; right: .25em; font-size: .62em; font-weight: 700; }
.ifr-cal__grid span small b { font-weight: inherit; }
.ifr-cal__grid .is-ok { background: #DCFCE7; color: #15803D; }
.ifr-cal__grid .is-warn { background: #FEE2E2; color: #DC2626; }
.ifr-cal__grid .is-today { background: #2563EB; color: #fff; box-shadow: 0 0 0 2px #93C5FD; }
.ifr-cal__grid .is-today small { color: #FECACA; }
.ifr-cal__grid .is-today.is-ok small { color: #BBF7D0; }
.ifr-cal__grid .is-bump { animation: ifr-pop .45s ease; }

/* Facturas */
.ifr-inv { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5em; background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; padding: .45em .55em; transition: box-shadow .3s, border-color .3s; }
.ifr-inv__doc { width: 2em; height: 2.3em; border-radius: .3em; background: linear-gradient(160deg, #F8FAFC, #E2E8F0); border: 1px solid #E2E8F0; display: grid; place-items: center; color: #94A3B8; }
.ifr-inv__doc .ifi { width: 1em; height: 1em; }
.ifr-inv__txt { display: grid; line-height: 1.25; min-width: 0; justify-items: start; }
.ifr-inv__txt b { font-size: .68em; font-style: italic; color: #16A34A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ifr-inv__txt small { font-size: .62em; color: #334155; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ifr-inv__amt { display: grid; text-align: right; line-height: 1.25; }
.ifr-inv__amt b { font-size: .8em; color: #16A34A; white-space: nowrap; }
.ifr-inv__amt small { font-size: .54em; color: #16A34A; white-space: nowrap; }
.ifr-inv--miss .ifr-inv__txt b, .ifr-inv--miss .ifr-inv__amt b, .ifr-inv--miss .ifr-inv__amt small { color: #DC2626; }
.ifr-tag { display: inline-flex; align-items: center; gap: .3em; margin-top: .25em; font-style: normal; font-size: .56em; font-weight: 700; border: 1px solid; border-radius: 1em; padding: .1em .6em .1em .2em; white-space: nowrap; }
.ifr-tag > .ifi { width: 1.35em; height: 1.35em; padding: .2em; box-sizing: border-box; border-radius: 50%; }
.ifr-inv--new .ifr-tag > .ifi { display: none; }
.ifr-inv--new .ifr-tag { padding-left: .6em; }
.ifr-st--green { background: #F0FDF4; border-color: #86EFAC; color: #15803D; } .ifr-st--green > .ifi { background: #22C55E; color: #fff; }
.ifr-st--red { background: #FEF2F2; border-color: #FCA5A5; color: #DC2626; } .ifr-st--red > .ifi { background: #EF4444; color: #fff; }
.ifr-st--blue { background: #EFF6FF; border-color: #93C5FD; color: #1D4ED8; } .ifr-st--blue > .ifi { background: #2563EB; color: #fff; }
.ifr-st--amber { background: #FFFBEB; border-color: #FCD34D; color: #B45309; } .ifr-st--amber > .ifi { background: #F59E0B; color: #fff; }
.ifr-validate { display: none; position: absolute; right: .55em; bottom: .45em; font-style: normal; font-size: .62em; font-weight: 700; color: #fff; background: #16A34A; border-radius: .4em; padding: .3em .7em; box-shadow: 0 4px 10px -4px rgba(22,163,74,.7); transition: transform .15s, filter .15s; }
.ifr-inv--new.is-ready .ifr-validate { display: inline-block; animation: ifr-in .3s ease; }
.ifr-inv--new.is-ready:not(.is-valid) .ifr-inv__amt { visibility: hidden; }
.ifr-inv--new.is-press .ifr-validate { transform: scale(.9); filter: brightness(.88); }
.ifr-inv--new.is-valid .ifr-validate { display: none; }
.ifr-sk { display: inline-block; min-width: 5.5em; height: .85em; border-radius: .3em; background: linear-gradient(90deg, #E2E8F0, #F1F5F9, #E2E8F0); background-size: 200% 100%; animation: ifr-sk 1.1s linear infinite; vertical-align: middle; }
.ifr-sk.is-filled { min-width: 0; height: auto; background: none; animation: none; }
@keyframes ifr-sk { to { background-position: -200% 0; } }
@keyframes ifr-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ifr-scenes.is-ready .ifr-inv--new:not(.is-in) { display: none; }
.ifr-scenes.is-ready .ifr-inv--new.is-in { animation: ifr-in .45s ease; border-color: #93C5FD; box-shadow: 0 0 0 3px rgba(37,99,235,.13); }
.ifr-scenes.is-ready .ifr-inv--new.is-valid { border-color: #86EFAC; box-shadow: 0 0 0 3px rgba(34,197,94,.15); }
.ifr-scenes:not(.is-ready) .ifr-inv--new .ifr-sk { min-width: 0; height: auto; background: none; animation: none; }
.ifr-scenes:not(.is-ready) .ifr-inv--new .ifr-sk::before { content: attr(data-fill); }

/* Aviso de descarga */
.ifr-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 7em); align-items: center; gap: .6em; border-radius: .8em; padding: .5em .7em; background: #FFFBEB; border: 1px solid #FCD34D; color: #92400E; transition: background .4s, border-color .4s, color .4s; }
.ifr-banner__ico { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; background: #F59E0B; color: #fff; transition: background .4s; }
.ifr-banner__ico .ifi { width: 1.1em; height: 1.1em; }
.ifr-banner > span:nth-child(2) { display: grid; line-height: 1.2; min-width: 0; }
.ifr-banner b { font-size: .76em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-banner small { font-size: .66em; }
.ifr-banner .ifr-prog { background: rgba(146,64,14,.15); }
.ifr-banner .ifr-prog > i { width: 0; background: #F59E0B; transition: width .2s linear; transform: none !important; }
.ifr-banner.is-done { background: #F0FDF4; border-color: #86EFAC; color: #166534; }
.ifr-banner.is-done .ifr-banner__ico { background: #22C55E; }
.ifr-banner.is-done .ifr-prog > i { background: #22C55E; }

/* Movimientos: la regla queda dentro de la tarjeta */
.ifr-mov { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .55em; background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; padding: .45em .6em; transition: border-color .3s, background .3s, box-shadow .3s; }
.ifr-mov__ring { position: relative; width: 2.1em; height: 2.1em; border-radius: 50%; border: 2px solid #22C55E; display: grid; place-items: center; transition: all .3s; flex: none; }
.ifr-mov__ring .ifi { width: 1.05em; height: 1.05em; color: #fff; opacity: 0; transform: scale(.5); transition: all .3s; }
.ifr-mov__ring b { position: absolute; font-size: .8em; color: #fff; opacity: 0; }
.ifr-mov__txt { display: grid; line-height: 1.25; min-width: 0; justify-items: start; }
.ifr-mov__txt small { font-size: .58em; font-weight: 700; color: #334155; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ifr-mov__txt i { font-size: .58em; color: #16A34A; }
.ifr-mov__txt b { font-size: .7em; font-weight: 500; color: #0F172A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ifr-mov__rule { margin-top: .3em; font-style: normal; font-size: .55em; font-weight: 700; color: #15803D; background: #DCFCE7; border: 1px solid #86EFAC; border-radius: 1em; padding: .05em .6em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; visibility: hidden; opacity: 0; transition: opacity .3s; }
.ifr-mov__amt { display: grid; text-align: right; line-height: 1.25; }
.ifr-mov__amt b { font-size: .84em; color: #0F172A; white-space: nowrap; }
.ifr-mov__amt small { font-size: .54em; color: #64748B; }
.ifr-mov[data-state="manual"] .ifr-mov__txt i { color: #DC2626; }
.ifr-mov.is-done { border-color: #BBF7D0; background: #FBFFFC; }
.ifr-mov.is-done .ifr-mov__ring { background: #22C55E; }
.ifr-mov.is-done .ifr-mov__ring .ifi { opacity: 1; transform: none; }
.ifr-mov.is-done .ifr-mov__rule, .ifr-mov.is-flag .ifr-mov__rule { visibility: visible; opacity: 1; }
.ifr-mov.is-flag .ifr-mov__ring { border-color: #EF4444; background: #EF4444; }
.ifr-mov.is-flag .ifr-mov__ring b { opacity: 1; }
.ifr-mov.is-flag .ifr-mov__rule { color: #B91C1C; background: #FEE2E2; border-color: #FCA5A5; }
.ifr-mov.is-flag { animation: ifr-flag 1.6s ease-in-out infinite; }
@keyframes ifr-flag { 50% { box-shadow: 0 0 0 3px rgba(239,68,68,.15); } }
.ifr-mov.is-scan { border-color: #93C5FD; box-shadow: 0 0 0 3px rgba(37,99,235,.13); }

/* Sin JS: estado final de la primera pantalla */
.ifr-scenes:not(.is-ready) .ifr-pipe li { color: #16A34A; border-color: #BBF7D0; }

@container (max-width: 760px) {
	.ifr-pipe li small { display: none; }
	.ifr-btns em:not(:last-child) { display: none; }
}
@container (max-width: 560px) {
	.ifr-two { grid-template-columns: 1fr; }
	.ifr-cal { display: none; }
	.ifr-pipe li { justify-content: center; }
	.ifr-pipe li span { display: none; }
	.ifr-inv:nth-child(n+4), .ifr-mov:nth-child(n+5) { display: none; }
	.ifr-btns { display: none; }
	.ifr-cursor { display: none; }
}

/* ==========================================================================
   Control de gestores: resumen anual → detalle → navegación → registro de actividad
   ========================================================================== */
.ifr-scenes[data-gest] .ifr-scene { position: relative; }
.ifr-scenes:not(.is-ready)[data-gest] .ifr-scene[data-scene="nav"] { display: none; }
.ifr-person { display: flex; align-items: center; gap: .45em; min-width: 0; }
.ifr-person b { font-size: .64em; font-weight: 600; color: #0F172A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-av { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: .58em; font-weight: 700; flex: none; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #E2E8F0; }

/* Resumen anual */
.ifr-gt { background: #fff; border: 1px solid #E8EDF5; border-radius: .8em; overflow: hidden; }
.ifr-gt__h, .ifr-gt__r { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(var(--cols), minmax(0, 1fr)); align-items: center; gap: .3em; padding: .35em .5em; }
.ifr-gt__h { background: #F8FAFC; border-bottom: 1px solid #EEF2F7; }
.ifr-gt__h span { font-size: .5em; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #64748B; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-gt__h span:first-child { text-align: left; }
.ifr-gt__r { border-bottom: 1px solid #F1F5F9; }
.ifr-gt__r:last-child { border-bottom: 0; }
.ifr-gc { position: relative; display: grid; justify-items: center; gap: .05em; border-radius: .4em; padding: .3em .2em .45em; overflow: hidden; line-height: 1.1; }
.ifr-gc b { font-size: .64em; font-weight: 700; }
.ifr-gc small { display: flex; justify-content: center; gap: .6em; font-size: .5em; font-weight: 600; opacity: .85; }
.ifr-gc small i { font-style: normal; }
.ifr-gc em { position: absolute; left: 0; bottom: 0; height: 3px; width: var(--p); background: currentColor; opacity: .55; transform-origin: left; }
.ifr-gc--com { color: #334155; background: transparent; }
.ifr-gc--com .ifi { width: 1em; height: 1em; }
.ifr-gc--ok { background: #DCFCE7; color: #15803D; }
.ifr-gc--hi { background: #E0F2FE; color: #0E7490; }
.ifr-gc--mid { background: #FEF3C7; color: #B45309; }
.ifr-gc--low { background: #FEE2E2; color: #DC2626; }
.ifr-gc[data-open-modal].is-hover, .ifr-hc[data-open-modal].is-hover { box-shadow: 0 0 0 2px #2563EB; }

/* Modal */
.ifr-modal { position: absolute; inset: 0; z-index: 4; display: grid; place-items: center; padding: .6em; background: rgba(15,23,42,.35); backdrop-filter: blur(1px); opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
.ifr-modal.is-on { opacity: 1; visibility: visible; transition: opacity .3s; }
.ifr-modal__box { width: 100%; background: #fff; border-radius: .8em; padding: .7em; display: grid; gap: .5em; box-shadow: 0 24px 50px -20px rgba(15,23,42,.55); transform: translateY(10px) scale(.98); transition: transform .35s; }
.ifr-modal.is-on .ifr-modal__box { transform: none; }
.ifr-modal__t { display: flex; align-items: center; gap: .4em; margin: 0; font-size: .76em; font-weight: 700; color: #0F172A; }
.ifr-modal__t .ifi { width: 1.2em; height: 1.2em; color: var(--rb); }
.ifr-modal__x { margin-left: auto; width: 1.6em; height: 1.6em; border-radius: .4em; display: grid; place-items: center; border: 1px solid #E2E8F0; color: #64748B; font-weight: 400; }
.ifr-modal__x.is-hover { background: #F1F5F9; }
.ifr-mm-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3em; }
.ifr-mm { display: grid; justify-items: center; gap: .05em; border-radius: .45em; padding: .35em .2em; line-height: 1.15; }
.ifr-mm em { font-style: normal; font-size: .56em; font-weight: 700; }
.ifr-mm b { font-size: .78em; }
.ifr-mm small { font-size: .52em; font-weight: 600; }
.ifr-modal.is-on .ifr-mm { animation: ifr-in .35s ease both; animation-delay: calc(var(--k) * 60ms); }

/* Navegación (mapa de calor) */
.ifr-hm { background: #fff; border: 1px solid #E8EDF5; border-radius: .8em; padding: .4em .5em; display: grid; gap: .25em; }
.ifr-hm__h, .ifr-hm__r { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(var(--cols), minmax(0, 1fr)); align-items: center; gap: .22em; }
.ifr-hm__h span { display: grid; text-align: center; font-size: .5em; font-weight: 700; color: #475569; line-height: 1.1; padding: .2em 0; border-radius: .3em; }
.ifr-hm__h span:first-child { text-align: left; font-size: .62em; color: #0F172A; }
.ifr-hm__h span b { font-size: 1.2em; }
.ifr-hm__h span.is-today { background: #E0E7FF; color: #3730A3; }
.ifr-hc { text-align: center; font-size: .52em; font-weight: 700; border-radius: .3em; padding: .45em 0; border: 1px solid; }
.ifr-hc--ok { background: #DCFCE7; border-color: #4ADE80; color: #15803D; }
.ifr-hc--mid { background: #FEF3C7; border-color: #FBBF24; color: #B45309; }
.ifr-hc--low { background: #FEE2E2; border-color: #F87171; color: #DC2626; }
.ifr-hc--zero { background: #F8FAFC; border-color: #E2E8F0; color: #94A3B8; }
.ifr-hc.is-today { outline: 2px solid rgba(99,102,241,.35); outline-offset: -1px; }

/* Registro de actividad */
.ifr-act__tags { display: flex; flex-wrap: wrap; gap: .3em; margin: 0; }
.ifr-act__tags em { font-style: normal; font-size: .54em; font-weight: 700; border-radius: .3em; padding: .2em .5em; background: #F1F5F9; color: #475569; }
.ifr-act__tags .t-blue { background: #DBEAFE; color: #1D4ED8; } .ifr-act__tags .t-amber { background: #FEF3C7; color: #B45309; }
.ifr-act__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7em; align-items: end; }
.ifr-act__who { display: grid; gap: .25em; }
.ifr-act__who small { font-size: .52em; color: #64748B; background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: .3em; padding: .2em .4em; white-space: nowrap; }
.ifr-hours { display: flex; align-items: flex-end; gap: .4em; height: 5.4em; padding-bottom: 1em; border-bottom: 1px solid #E2E8F0; background: repeating-linear-gradient(0deg, transparent 0 calc(25% - 1px), #F1F5F9 calc(25% - 1px) 25%); }
.ifr-hours span { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; position: relative; }
.ifr-hours i { height: var(--h); min-height: 1px; background: #A5B4FC; border: 1px solid #818CF8; border-radius: .15em .15em 0 0; transform-origin: bottom; transform: scaleY(0); transition: transform .5s; transition-delay: calc(.2s + var(--k) * 70ms); }
.ifr-modal.is-on .ifr-hours i { transform: scaleY(1); }
.ifr-hours small { position: absolute; bottom: -1.5em; left: 50%; transform: translateX(-50%); font-size: .5em; color: #94A3B8; white-space: nowrap; }
.ifr-log { list-style: none; margin: 0; padding: 0; display: grid; gap: .15em; }
.ifr-log li { display: grid; grid-template-columns: auto auto minmax(0, 1.6fr) minmax(0, 1fr) auto; align-items: center; gap: .5em; font-size: .58em; color: #334155; padding: .3em .4em; border-radius: .35em; background: #F8FAFC; }
.ifr-log li .ifi { width: 1.2em; height: 1.2em; color: #64748B; }
.ifr-log li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-log li em { font-style: normal; font-weight: 700; }
.ifr-modal.is-on .ifr-log li { animation: ifr-in .35s ease both; animation-delay: calc(.6s + var(--k) * 120ms); }

/* Entrada animada de tablas */
.ifr-scenes.is-ready .ifr-scene.is-on .ifr-gt__r { animation: ifr-in .4s ease both; animation-delay: calc(.15s + var(--i) * 90ms); }
.ifr-scenes.is-ready .ifr-scene.is-on .ifr-gc em { animation: ifr-grow .9s ease both; animation-delay: .6s; }
@keyframes ifr-grow { from { transform: scaleX(0); } }
.ifr-scenes.is-ready .ifr-scene.is-on .ifr-hc { animation: ifr-pop-in .3s ease both; animation-delay: calc(.2s + var(--c) * 70ms); }
@keyframes ifr-pop-in { from { opacity: 0; transform: scale(.6); } }

@container (max-width: 760px) {
	.ifr-gt__h span:nth-child(4), .ifr-gt__r > :nth-child(4) { display: none; }
	.ifr-gt__h, .ifr-gt__r { grid-template-columns: minmax(0, 1.5fr) repeat(calc(var(--cols) - 1), minmax(0, 1fr)); }
}
@container (max-width: 560px) {
	.ifr-gt__h span:nth-child(n+6), .ifr-gt__r > :nth-child(n+6) { display: none; }
	.ifr-gt__h, .ifr-gt__r { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); }
	.ifr-hm__h span:nth-child(n+8), .ifr-hm__r > :nth-child(n+8) { display: none; }
	.ifr-hm__h, .ifr-hm__r { grid-template-columns: minmax(0, 1.6fr) repeat(6, minmax(0, 1fr)); }
	.ifr-person b { display: none; }
	.ifr-log li span:nth-of-type(2) { display: none; }
}

/* ==========================================================================
   Juntas: app móvil graba → se sube a la reunión → la IA redacta el acta
   ========================================================================== */
.ifr-scenes[data-juntas] .ifr-scene { position: relative; }
.ifm--juntas .ifr-body { min-height: 27em; }

/* Lista de juntas */
.ifr-jr { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .5em; background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; padding: .5em .55em; transition: box-shadow .3s, border-color .3s; }
.ifr-jr__img { width: 2.6em; height: 2.6em; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(160deg, #CBD5E1, #94A3B8); color: #fff; }
.ifr-jr__img .ifi { width: 1.2em; height: 1.2em; }
.ifr-jr__txt { display: grid; line-height: 1.3; min-width: 0; justify-items: start; }
.ifr-jr__txt b { font-size: .7em; color: #0F172A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ifr-jr__txt small { font-size: .58em; color: #475569; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: inline-flex; align-items: center; gap: .25em; }
.ifr-jr__txt small .ifi { width: 1em; height: 1em; }
.ifr-jr__st { display: grid; justify-items: center; gap: .15em; border: 1px solid #E2E8F0; border-radius: .45em; padding: .3em .45em; min-width: 3.6em; }
.ifr-jr__st small { font-size: .48em; color: #64748B; font-weight: 600; }
.ifr-jr__st i { width: 1.6em; height: 1.6em; border-radius: .35em; display: grid; place-items: center; font-style: normal; font-size: .75em; font-weight: 700; transition: all .3s; }
.ifr-jr__st i .ifi { width: 1em; height: 1em; }
.ifr-jr__st i.ok { background: #DCFCE7; color: #16A34A; border: 1px solid #86EFAC; }
.ifr-jr__st i.ko { background: #FEE2E2; color: #DC2626; border: 1px solid #FCA5A5; }
.ifr-rec { display: none; align-items: center; gap: .3em; margin-top: .25em; font-style: normal; font-size: .54em; font-weight: 700; color: #7C3AED; background: #F3E8FF; border: 1px solid #D8B4FE; border-radius: 1em; padding: .1em .6em; }
.ifr-rec .ifi { width: 1.1em; height: 1.1em; }
.ifr-jr.is-rec .ifr-rec { display: inline-flex; animation: ifr-in .4s ease; }
.ifr-jr.is-rec { border-color: #C4B5FD; box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
.ifr-jr.is-hover { box-shadow: 0 0 0 2px #2563EB; }
.ifr-jr.is-acta [data-acta] i { background: #DCFCE7; color: #16A34A; border-color: #86EFAC; }

/* Modal de la reunión */
.ifr-modal--junta { align-items: start; padding: .4em; }
.ifr-modal--junta .ifr-modal__box { max-height: 100%; overflow: hidden; align-content: start; gap: .35em; padding: .55em; }
.ifr-modal--junta .ifr-pt { padding: .3em .4em; }
.ifr-modal--junta .ifr-pt__st i { width: 1.7em; height: 1.7em; }
.ifr-jbar { display: flex; align-items: center; gap: .4em; flex-wrap: wrap; }
.ifr-audio { display: inline-flex; align-items: center; gap: .35em; font-style: normal; font-size: .58em; font-weight: 600; color: #6D28D9; background: #F5F3FF; border: 1px solid #DDD6FE; border-radius: .45em; padding: .35em .6em; }
.ifr-audio .ifi { width: 1.1em; height: 1.1em; }
.ifr-audio small { font-size: .9em; color: #8B5CF6; font-weight: 500; }
.ifr-ia { margin-left: auto; display: inline-flex; align-items: center; gap: .35em; font-style: normal; font-size: .62em; font-weight: 700; color: #fff; background: linear-gradient(135deg, #2563EB, #7C3AED); border-radius: .45em; padding: .45em .8em; box-shadow: 0 6px 14px -6px rgba(124,58,237,.8); transition: transform .15s, filter .15s; }
.ifr-ia .ifi { width: 1.1em; height: 1.1em; }
.ifr-ia.is-hover { transform: scale(.94); filter: brightness(.9); }
.ifr-jprog { display: none; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .6em; font-size: .6em; font-weight: 600; color: #6D28D9; background: #F5F3FF; border-radius: .5em; padding: .45em .7em; }
.ifr-jprog .ifr-prog { height: .5em; background: #EDE9FE; }
.ifr-jprog .ifr-prog > i { width: 0; background: linear-gradient(90deg, #2563EB, #7C3AED); transform: none !important; transition: width .2s linear; }
.ifr-jprog.is-on { display: grid; }
.ifr-jsub { margin: 0; font-size: .64em; font-weight: 700; color: #334155; border-bottom: 1px solid #EEF2F7; padding-bottom: .25em; }
.ifr-pt { display: grid; grid-template-columns: 3.4em minmax(0, 1fr); gap: .45em; align-items: start; border: 1px solid #E8EDF5; border-radius: .55em; padding: .4em; transition: background .3s, border-color .3s; }
.ifr-pt__st { display: grid; justify-items: center; gap: .1em; }
.ifr-pt__st i { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: .85em; color: #fff; background: #EF4444; transition: background .3s; }
.ifr-pt__st small { font-size: .46em; color: #DC2626; font-weight: 600; white-space: nowrap; }
.ifr-pt__b b { display: block; font-size: .64em; color: #0F172A; }
.ifr-pt__c { margin: .2em 0 0; font-size: .56em; line-height: 1.35; color: #94A3B8; min-height: 1.35em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ifr-pt.is-work { border-color: #C4B5FD; }
.ifr-pt.is-work .ifr-pt__st i { background: #8B5CF6; animation: ifr-beat 1s ease-in-out infinite; }
.ifr-pt.is-work .ifr-pt__st small { color: #7C3AED; }
.ifr-pt.is-done { background: #F0FDF4; border-color: #BBF7D0; }
.ifr-pt.is-done .ifr-pt__st i { background: #22C55E; }
.ifr-pt.is-done .ifr-pt__st small { color: #16A34A; }
.ifr-pt.is-work .ifr-pt__c, .ifr-pt.is-done .ifr-pt__c { color: #166534; }
.ifr-pt__c.is-typing::after { content: "▍"; color: #7C3AED; animation: ifr-blink .7s steps(1) infinite; }
@keyframes ifr-blink { 50% { opacity: 0; } }
.ifr-jdone { display: none; align-items: center; gap: .4em; margin: 0; font-size: .62em; font-weight: 700; color: #15803D; background: #DCFCE7; border: 1px solid #86EFAC; border-radius: .5em; padding: .45em .7em; }
.ifr-jdone .ifi { width: 1.2em; height: 1.2em; }
.ifr-jdone.is-on { display: flex; animation: ifr-in .4s ease; }

/* Teléfono con la app de grabación */
.ifr-phone { position: absolute; z-index: 5; right: 1.4em; top: 1.4em; bottom: .9em; height: auto; aspect-ratio: 1 / 2; width: auto; max-width: 15em; border-radius: 2em; background: #0F172A; padding: .55em; box-shadow: 0 30px 60px -20px rgba(15,23,42,.6), inset 0 0 0 2px #334155; transform: translateY(115%) rotate(4deg); opacity: 0; transition: transform .7s cubic-bezier(.3, 1.3, .5, 1), opacity .4s; }
.ifr-phone.is-on { transform: none; opacity: 1; }
.ifr-phone__notch { position: absolute; top: .9em; left: 50%; width: 3.5em; height: .55em; margin-left: -1.75em; border-radius: 1em; background: #0F172A; z-index: 2; }
.ifr-phone__scr { position: relative; height: 100%; border-radius: 1.5em; overflow: hidden; background: #F4F6FB; }
.ifr-ps { position: absolute; inset: 0; padding: 1.8em .8em .8em; display: grid; gap: .5em; align-content: start; opacity: 0; visibility: hidden; transform: translateX(16px); transition: opacity .35s, transform .35s, visibility 0s .35s; }
.ifr-ps.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .35s, transform .35s; }
.ifr-ps__h { margin: 0; display: grid; font-size: .82em; font-weight: 700; color: #0F172A; line-height: 1.2; }
.ifr-ps__h small { font-size: .7em; font-weight: 500; color: #64748B; }
.ifr-pcal { background: #fff; border-radius: .8em; padding: .5em; box-shadow: 0 2px 6px rgba(15,23,42,.06); }
.ifr-pcal b { display: block; text-align: center; font-size: .66em; margin-bottom: .35em; }
.ifr-pcal div { display: grid; grid-template-columns: repeat(7, 1fr); gap: .15em; text-align: center; }
.ifr-pcal em, .ifr-pcal span { font-style: normal; font-size: .5em; color: #475569; padding: .3em 0; border-radius: .4em; }
.ifr-pcal em { color: #94A3B8; font-weight: 700; }
.ifr-pcal .has { background: #E0EAFB; }
.ifr-pcal .sel { background: #2F78D4; color: #fff; font-weight: 700; }
.ifr-pcal .today { box-shadow: inset 0 0 0 1.5px #2F78D4; color: #2F78D4; }
.ifr-ps__day { display: flex; align-items: center; gap: .35em; margin: 0; font-size: .62em; font-weight: 700; color: #0F172A; }
.ifr-ps__day .ifi { width: 1.2em; height: 1.2em; color: #2F78D4; }
.ifr-pcard { display: flex; align-items: center; justify-content: space-between; gap: .4em; background: #fff; border-radius: .7em; padding: .55em .6em; box-shadow: 0 2px 8px rgba(15,23,42,.08); transition: transform .15s, box-shadow .15s; }
.ifr-pcard span { display: grid; line-height: 1.25; min-width: 0; }
.ifr-pcard b { font-size: .56em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-pcard small { font-size: .5em; color: #64748B; }
.ifr-pcard em { font-style: normal; font-size: .46em; color: #64748B; background: #EEF2F7; border-radius: .4em; padding: .3em .5em; white-space: nowrap; }
.ifr-pbox { display: grid; gap: .4em; background: #fff; border-radius: .8em; padding: .6em; box-shadow: 0 2px 6px rgba(15,23,42,.06); }
.ifr-pbox p { display: flex; justify-content: space-between; gap: .4em; margin: 0; font-size: .54em; border-bottom: 1px solid #EEF2F7; padding-bottom: .35em; }
.ifr-pbox p:last-child { border-bottom: 0; padding-bottom: 0; }
.ifr-pbox p span { color: #64748B; } .ifr-pbox p b { text-align: right; }
.ifr-pbox > small { font-size: .52em; color: #64748B; }
.ifr-pbtn, .ifr-prow em { display: flex; align-items: center; justify-content: center; gap: .35em; font-style: normal; font-size: .6em; font-weight: 700; border-radius: 2em; padding: .65em; color: #fff; background: #2F78D4; transition: transform .15s, filter .15s; }
.ifr-pbtn .ifi, .ifr-prow em .ifi { width: 1.1em; height: 1.1em; }
.ifr-pring { justify-self: center; width: 8.5em; height: 8.5em; margin-top: .6em; border-radius: 50%; border: .3em solid #E5E7EB; display: grid; place-content: center; text-align: center; position: relative; }
.ifr-pring::before { content: ""; position: absolute; inset: -.3em; border-radius: 50%; border: .3em solid transparent; border-top-color: #2F78D4; animation: ifr-spin 2s linear infinite; }
@keyframes ifr-spin { to { transform: rotate(360deg); } }
.ifr-pring small { display: flex; align-items: center; justify-content: center; gap: .3em; font-size: .5em; font-weight: 700; letter-spacing: .12em; color: #475569; }
.ifr-pring small i { width: .7em; height: .7em; border-radius: 50%; background: #DC2626; animation: ifr-blink 1s steps(1) infinite; }
.ifr-pring b { font-size: 1.05em; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.ifr-pbars { display: flex; align-items: center; gap: .25em; height: 3em; margin: .4em 0; }
.ifr-pbars i { flex: 1; height: 40%; background: #2F78D4; border-radius: .2em; animation: ifr-eq .6s ease-in-out infinite alternate; animation-delay: calc(var(--b) * -110ms); }
@keyframes ifr-eq { from { height: 18%; } to { height: 95%; } }
.ifr-pinfo { display: flex; gap: .3em; }
.ifr-pinfo span { flex: 1; display: flex; align-items: center; gap: .3em; font-size: .48em; font-weight: 600; background: #fff; border-radius: .6em; padding: .55em .5em; white-space: nowrap; overflow: hidden; }
.ifr-pinfo .ifi { width: 1.1em; height: 1.1em; color: #2F78D4; }
.ifr-prow { display: grid; grid-template-columns: 1fr 1fr; gap: .4em; margin-top: auto; }
.ifr-prow em { background: #fff; color: #334155; border: 1px solid #CBD5E1; }
.ifr-prow em.red { background: #DC2626; color: #fff; border-color: #DC2626; }
.ifr-prow em.blue { background: #2F78D4; color: #fff; border-color: #2F78D4; }
.ifr-ps[data-ps="rec"], .ifr-ps[data-ps="up"] { grid-template-rows: auto auto auto auto 1fr; }
.ifr-pplay { display: grid; justify-items: center; gap: .5em; margin-top: 2.5em; }
.ifr-pplay b { font-size: 1.5em; font-variant-numeric: tabular-nums; }
.ifr-pplay .ifr-prog { width: 100%; height: .45em; }
.ifr-pplay .ifr-prog > i { width: 0; transform: none !important; transition: width .15s linear; }
.ifr-pplay small { font-size: .52em; color: #64748B; }
.ifr-pdone { display: none; align-items: center; justify-content: center; gap: .35em; margin: 0; font-size: .6em; font-weight: 700; color: #15803D; background: #DCFCE7; border-radius: .6em; padding: .55em; }
.ifr-pdone .ifi { width: 1.2em; height: 1.2em; }
.ifr-pdone.is-on { display: flex; animation: ifr-in .3s ease; }
.ifr-phone .is-tap { transform: scale(.94); filter: brightness(.92); }
.ifr-phone .ifr-touch { position: absolute; z-index: 4; width: 1.8em; height: 1.8em; margin: -.9em 0 0 -.9em; border-radius: 50%; background: rgba(47,120,212,.35); box-shadow: 0 0 0 2px rgba(255,255,255,.8); pointer-events: none; animation: ifr-touch .5s ease-out forwards; }
@keyframes ifr-touch { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }

/* Sin JS: lista con la grabación ya recibida y teléfono visible */
.ifr-scenes:not(.is-ready)[data-juntas] ~ .ifr-phone { transform: none; opacity: 1; }

@container (max-width: 760px) {
	.ifr-phone { right: .6em; }
	.ifr-jr__st:not([data-acta]) { display: none; }
}
@container (max-width: 560px) {
	.ifm--juntas .ifr-body { min-height: 26em; }
	.ifr-phone { font-size: .9em; }
	.ifr-jr { grid-template-columns: auto minmax(0, 1fr) auto; }
	.ifr-audio small { display: none; }
}

/* ==========================================================================
   Incidencias: WhatsApp / email → incidencia → trazabilidad de acciones
   ========================================================================== */
.ifr-scenes[data-incid] .ifr-scene { position: relative; }
.ifr-scenes:not(.is-ready)[data-incid] .ifr-scene:not([data-scene="det"]) { display: none; }
.ifm--incidencias .ifr-body { min-height: 26em; }
.ifr-top__btn.is-hover { box-shadow: 0 0 0 2px #2563EB; background: #DBEAFE; }

/* Chat / correo */
.ifr-chatwrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: .5em; align-items: start; }
.ifr-convs { display: grid; gap: .35em; }
.ifr-conv { display: grid; gap: .1em; background: #FFF1F2; border: 1px solid #FECDD3; border-radius: .6em; padding: .45em .55em; position: relative; }
.ifr-conv b { font-size: .62em; color: #BE123C; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 3em; }
.ifr-conv small { font-size: .54em; color: #475569; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-conv em { position: absolute; right: .45em; top: .45em; font-style: normal; font-size: .48em; font-weight: 700; color: #DC2626; }
.ifr-conv.is-sel { box-shadow: 0 0 0 2px #93C5FD; }
.ifr-scene[data-scene="em"] .ifr-conv { background: #fff; border-color: #E8EDF5; }
.ifr-scene[data-scene="em"] .ifr-conv b { color: #0F172A; }
.ifr-chat { background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; overflow: hidden; display: grid; }
.ifr-chat__h { padding: .45em .6em; border-bottom: 1px solid #EEF2F7; }
.ifr-chat__h span { display: grid; line-height: 1.25; }
.ifr-chat__h b { font-size: .66em; } .ifr-chat__h small { font-size: .54em; color: #64748B; }
.ifr-chat__bar { display: flex; align-items: center; gap: .35em; padding: .4em .6em; background: #FEF2F2; }
.ifr-chat__bar > span { display: grid; line-height: 1.2; margin-right: auto; }
.ifr-chat__bar b { font-size: .6em; color: #DC2626; } .ifr-chat__bar small { font-size: .5em; color: #DC2626; }
.ifr-chat__bar em { font-style: normal; font-size: .56em; font-weight: 700; color: #fff; border-radius: .4em; padding: .4em .6em; white-space: nowrap; transition: transform .15s; }
.ifr-chat__bar em.is-hover { transform: scale(.92); }
.ifr-chat__bar.is-ok { background: #F0FDF4; } .ifr-chat__bar.is-ok b, .ifr-chat__bar.is-ok small { color: #15803D; }
.ifr-msgs { display: grid; gap: .35em; padding: .55em; background: #EFEAE2; min-height: 8em; align-content: start; }
.ifr-msgs p { margin: 0; max-width: 80%; font-size: .58em; line-height: 1.35; padding: .45em .6em; border-radius: .6em; background: #fff; box-shadow: 0 1px 1px rgba(0,0,0,.06); }
.ifr-msgs p.out { justify-self: end; background: #D9FDD3; }
.ifr-scenes.is-ready .ifr-msgs p { display: none; }
.ifr-scenes.is-ready .ifr-msgs p.is-in { display: block; animation: ifr-in .35s ease; }
.ifr-mail { padding: .6em; display: grid; gap: .3em; }
.ifr-mail p { margin: 0; display: grid; grid-template-columns: 7em 1fr; font-size: .58em; color: #334155; }
.ifr-made { display: none; align-items: center; gap: .4em; justify-self: start; font-size: .62em; font-weight: 700; color: #15803D; background: #DCFCE7; border: 1px solid #86EFAC; border-radius: .5em; padding: .45em .7em; }
.ifr-made .ifi { width: 1.2em; height: 1.2em; }
.ifr-made.is-on { display: inline-flex; animation: ifr-in .35s ease; }

/* Listado */
.ifr-kpis3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4em; }
.ifr-kpis3 span { display: grid; justify-items: center; background: #fff; border: 1px solid #E8EDF5; border-radius: .6em; padding: .4em; line-height: 1.2; }
.ifr-kpis3 small { font-size: .5em; font-weight: 700; color: #2563EB; text-transform: uppercase; letter-spacing: .06em; }
.ifr-kpis3 b { font-size: .95em; } .ifr-kpis3 em { font-style: normal; font-size: .48em; font-weight: 700; color: #DC2626; background: #FEE2E2; border-radius: 1em; padding: .1em .5em; }
.ifr-itable { background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; overflow: hidden; }
.ifr-ir { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr) 5.2em; gap: .4em; align-items: center; padding: .4em .55em; border-bottom: 1px solid #F1F5F9; transition: background .3s, box-shadow .3s; }
.ifr-ir:last-child { border-bottom: 0; }
.ifr-ir--h span { font-size: .5em; font-weight: 700; text-transform: uppercase; color: #64748B; letter-spacing: .04em; }
.ifr-ir > span { display: grid; line-height: 1.25; min-width: 0; }
.ifr-ir b { font-size: .6em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-ir small { font-size: .5em; color: #64748B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-ir__via b, .ifr-ir__com b, .ifr-ir__t b { color: #DC2626; }
.ifr-ir__st { justify-items: center; text-align: center; font-size: .56em; font-weight: 700; border: 1px solid; border-radius: .4em; padding: .3em 0; }
.ifr-scenes.is-ready .ifr-ir[data-new]:not(.is-in) { display: none; }
.ifr-ir[data-new].is-in { background: #EFF6FF; box-shadow: inset 3px 0 0 #2563EB; animation: ifr-in .45s ease; }
.ifr-ir.is-hover { box-shadow: inset 0 0 0 2px #2563EB; }

/* Detalle */
.ifr-steps { display: grid; grid-template-columns: repeat(3, 1fr); }
.ifr-steps span { position: relative; text-align: center; font-size: .62em; font-weight: 700; color: #475569; background: #EEF2F7; padding: .5em 0; clip-path: polygon(0 0, calc(100% - .8em) 0, 100% 50%, calc(100% - .8em) 100%, 0 100%, .8em 50%); transition: background .4s, color .4s; }
.ifr-steps span:first-child { clip-path: polygon(0 0, calc(100% - .8em) 0, 100% 50%, calc(100% - .8em) 100%, 0 100%); border-radius: .4em 0 0 .4em; }
.ifr-steps span.is-past { background: #BFDBFE; color: #1E3A8A; }
.ifr-steps span.is-cur { background: #2563EB; color: #fff; }
.ifr-steps span.is-fin { background: #16A34A; color: #fff; }
.ifr-two--det { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.ifr-detf { display: grid; grid-template-columns: 1fr 1fr; gap: .35em; align-content: start; }
.ifr-detf p { margin: 0; display: grid; gap: .1em; background: #fff; border: 1px solid #E8EDF5; border-radius: .5em; padding: .35em .5em; line-height: 1.25; }
.ifr-detf p.w { grid-column: 1 / -1; }
.ifr-detf small { font-size: .5em; color: #2563EB; } .ifr-detf b { font-size: .6em; font-weight: 600; }
.ifr-origin { display: inline-flex; align-items: center; gap: .3em; color: #15803D; }
.ifr-origin .ifi { width: 1.1em; height: 1.1em; }
.ifr-acts { background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; padding: .5em; display: grid; gap: .35em; align-content: start; }
.ifr-tl { list-style: none; margin: 0; padding: 0; display: grid; gap: .3em; position: relative; }
.ifr-tl li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .45em; align-items: center; background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: .5em; padding: .35em .45em; }
.ifr-tl li i { width: 1.8em; height: 1.8em; border-radius: 50%; display: grid; place-items: center; background: #22C55E; color: #fff; }
.ifr-tl li i .ifi { width: 1em; height: 1em; }
.ifr-tl li span { display: grid; line-height: 1.25; min-width: 0; }
.ifr-tl li b { font-size: .58em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-tl li small { font-size: .5em; color: #475569; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-tl li em { font-style: normal; font-size: .52em; font-weight: 700; color: #64748B; }
.ifr-tl li:first-child { background: #F0FDF4; }
.ifr-scenes.is-ready .ifr-tl li { display: none; }
.ifr-scenes.is-ready .ifr-tl li.is-in { display: grid; animation: ifr-in .4s ease; }

@container (max-width: 560px) {
	.ifr-chatwrap, .ifr-two--det { grid-template-columns: 1fr; }
	.ifr-convs, .ifr-detf { display: none; }
	.ifr-ir { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) 5em; }
	.ifr-ir > :nth-child(2) { display: none; }
}

/* ==========================================================================
   Asistente IA: general del despacho → dentro de una comunidad
   ========================================================================== */
.ifr-scenes[data-ai] .ifr-scene { position: relative; }
.ifr-scenes:not(.is-ready)[data-ai] .ifr-scene[data-scene="gen"] { display: none; }
.ifm--documentos .ifr-body { min-height: 26em; }
.ifr-nav--com, .ifr-comtag { display: none; }
.ifm--documentos.is-com .ifr-nav:not(.ifr-nav--com) { display: none; }
.ifm--documentos.is-com .ifr-nav--com { display: grid; animation: ifr-in .35s ease; }
.ifm--documentos.is-com .ifr-profile { display: none; }
.ifr-comtag { align-items: center; gap: .45em; margin: 0; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: .6em; padding: .45em .55em; color: #fff; order: 1; }
.ifm--documentos.is-com .ifr-logo { order: 0; } .ifm--documentos.is-com .ifr-nav--com { order: 2; }
.ifr-comtag .ifi { width: 1.2em; height: 1.2em; flex: none; }
.ifr-comtag span { display: grid; line-height: 1.2; min-width: 0; }
.ifr-comtag b { font-size: .7em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ifr-comtag small { font-size: .58em; opacity: .7; }
.ifm--documentos.is-com .ifr-comtag { display: flex; }
.ifr-side { position: relative; }
.ifr-nav--com li.is-hover, .ifr-nav li.is-hover { background: rgba(255,255,255,.14); }

.ifr-ai { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.9fr); background: #fff; border: 1px solid #E8EDF5; border-radius: .8em; overflow: hidden; min-height: 24em; }
.ifr-ai__side { border-right: 1px solid #EEF2F7; display: grid; align-content: start; gap: .5em; padding-bottom: .5em; }
.ifr-ai__who { display: flex; align-items: center; gap: .45em; margin: 0; padding: .6em; background: #1D6FE0; color: #fff; }
.ifr-ai__who i, .ifr-ai__h i { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: .62em; background: rgba(255,255,255,.2); flex: none; }
.ifr-ai__who span, .ifr-ai__h span { display: grid; line-height: 1.2; min-width: 0; }
.ifr-ai__who b, .ifr-ai__h b { font-size: .66em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-ai__who small, .ifr-ai__h small { font-size: .52em; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-ai__new { margin: 0 .6em; text-align: center; font-style: normal; font-size: .6em; font-weight: 700; color: #fff; background: #1D6FE0; border-radius: 2em; padding: .5em; }
.ifr-ai__side ul { list-style: none; margin: 0; padding: 0 .4em; display: grid; gap: .15em; }
.ifr-ai__side li { display: grid; line-height: 1.2; padding: .4em .5em; border-radius: .4em; }
.ifr-ai__side li b { font-size: .6em; } .ifr-ai__side li small { font-size: .5em; color: #64748B; }
.ifr-scenes.is-ready .ifr-ai__side li[data-newconv] { display: none; }
.ifr-scenes.is-ready .ifr-ai__side li[data-newconv].is-in { display: grid; background: #DBEAFE; box-shadow: inset 2px 0 0 #1D6FE0; animation: ifr-in .3s ease; }
.ifr-ai__main { display: grid; grid-template-rows: auto 1fr auto; min-width: 0; }
.ifr-ai__h { display: flex; align-items: center; gap: .45em; margin: 0; padding: .6em .7em; background: #1D6FE0; color: #fff; }
.ifr-ai__body { display: grid; gap: .5em; align-content: start; padding: .7em; background: linear-gradient(180deg, #F4F8FE, #EEF4FC); position: relative; }
.ifr-ai__hello { display: grid; justify-items: center; text-align: center; gap: .3em; padding: 2.4em 0; }
.ifr-ai__hello span { font-size: 1.6em; } .ifr-ai__hello b { font-size: .9em; color: #1D6FE0; } .ifr-ai__hello small { font-size: .58em; color: #64748B; }
.ifr-ai__q { justify-self: end; max-width: 78%; margin: 0; font-size: .62em; line-height: 1.4; color: #fff; background: #1D6FE0; border-radius: .7em .7em .2em .7em; padding: .6em .8em; }
.ifr-ai__think { display: flex; align-items: center; gap: .3em; margin: 0; justify-self: start; font-size: .56em; color: #64748B; background: #fff; border-radius: .7em; padding: .5em .7em; box-shadow: 0 1px 2px rgba(15,23,42,.06); }
.ifr-ai__think i { width: .5em; height: .5em; border-radius: 50%; background: #94A3B8; animation: ifm-dot 1s infinite; }
.ifr-ai__think i:nth-child(2) { animation-delay: .15s; } .ifr-ai__think i:nth-child(3) { animation-delay: .3s; }
.ifr-ai__a { justify-self: start; max-width: 86%; background: #fff; border-radius: .7em .7em .7em .2em; padding: .6em .8em; box-shadow: 0 1px 2px rgba(15,23,42,.06); display: grid; gap: .45em; }
.ifr-ai__a p { margin: 0; font-size: .62em; line-height: 1.5; color: #0F172A; }
.ifr-ai__a p.is-typing::after { content: "▍"; color: #1D6FE0; animation: ifr-blink .7s steps(1) infinite; }
.ifr-ai__src { display: flex; flex-wrap: wrap; gap: .3em; }
.ifr-ai__src em { display: inline-flex; align-items: center; gap: .3em; font-style: normal; font-size: .52em; font-weight: 700; color: #1D4ED8; background: #EFF6FF; border: 1px solid #BFDBFE; border-radius: .4em; padding: .25em .55em; }
.ifr-ai__src em .ifi { width: 1.1em; height: 1.1em; }
.ifr-ai__in { display: flex; align-items: center; gap: .5em; padding: .55em .7em; border-top: 1px solid #EEF2F7; }
.ifr-ai__in span { flex: 1; font-size: .6em; color: #94A3B8; border: 1px solid #E2E8F0; border-radius: 2em; padding: .6em .9em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-ai__in span.is-typing { color: #0F172A; }
.ifr-ai__in span.is-typing::after { content: "▍"; color: #1D6FE0; animation: ifr-blink .7s steps(1) infinite; }
.ifr-ai__in i { width: 2.2em; height: 2.2em; border-radius: .6em; display: grid; place-items: center; background: #1D6FE0; color: #fff; flex: none; }
.ifr-ai__in i .ifi { width: 1em; height: 1em; }
.ifr-ai__in i.is-hover { transform: scale(.9); }
.ifr-scenes.is-ready .ifr-ai__q, .ifr-scenes.is-ready .ifr-ai__think, .ifr-scenes.is-ready .ifr-ai__a, .ifr-scenes.is-ready .ifr-ai__src em { display: none; }
.ifr-scenes.is-ready .is-in.ifr-ai__think, .ifr-scenes.is-ready .ifr-ai__src em.is-in { display: inline-flex; animation: ifr-in .3s ease; }
.ifr-scenes.is-ready .is-in.ifr-ai__q, .ifr-scenes.is-ready .is-in.ifr-ai__a { display: block; animation: ifr-in .3s ease; }
.ifr-scenes.is-ready .is-in.ifr-ai__a { display: grid; }
.ifr-scenes.is-ready .ifr-ai__hello.is-out { display: none; }
.ifr-scenes:not(.is-ready) .ifr-ai__hello, .ifr-scenes:not(.is-ready) .ifr-ai__think { display: none; }
.ifr-scenes:not(.is-ready) .ifr-ai__a p::before { content: attr(data-text); }

@container (max-width: 560px) {
	.ifr-ai { grid-template-columns: 1fr; }
	.ifr-ai__side { display: none; }
}

/* Perfil de comunidad (barra superior propia de la comunidad) */
.ifr-top__mods, .ifr-top__com { display: none; }
.ifr-top__mods { gap: .35em; margin-right: auto; }
.ifr-mod { position: relative; display: grid; justify-items: center; gap: .05em; width: 3.4em; padding: .35em .1em .25em; border: 1px solid #E3E8F0; border-radius: .5em; background: #F8FAFC; color: #64748B; line-height: 1.1; }
.ifr-mod .ifi { width: 1.2em; height: 1.2em; }
.ifr-mod b { font-size: .5em; color: #334155; } .ifr-mod small { font-size: .42em; color: #2563EB; }
.ifr-mod.is-sel { border-color: #2563EB; background: #EFF6FF; color: #2563EB; }
.ifr-mod em { position: absolute; top: -.45em; right: -.4em; width: 1.3em; height: 1.3em; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: .58em; font-weight: 700; color: #fff; background: #22C55E; box-shadow: 0 0 0 2px #fff; }
.ifr-mod em.ko { background: #EF4444; } .ifr-mod em.ko ~ small { color: #DC2626; }
.ifr-top__com { align-items: center; gap: .55em; text-align: right; white-space: nowrap; }
.ifr-top__com span { display: grid; line-height: 1.15; }
.ifr-top__com strong { font-size: .8em; color: #0F172A; } .ifr-top__com small { font-size: .6em; color: #64748B; }
.ifr-avatar--com { background: linear-gradient(160deg, #94A3B8, #475569); }
.ifr-avatar--com .ifi { width: 1.2em; height: 1.2em; }
.ifm--documentos.is-com .ifr-top { justify-content: space-between; }
.ifm--documentos.is-com .ifr-top__mods { display: flex; animation: ifr-in .35s ease; }
.ifm--documentos.is-com .ifr-top__com { display: flex; animation: ifr-in .35s ease; }
.ifm--documentos.is-com .ifr-top__user { display: none; }
.ifm--documentos.is-com .ifr-top__btn:nth-child(n+7) { display: none; }
.ifm--documentos.is-com .ifr-comtag { display: none; }
.ifr-nav--com li.is-active { background: var(--rb); color: #fff; font-weight: 600; }
@container (max-width: 760px) { .ifm--documentos.is-com .ifr-top__btn:nth-child(n+4) { display: none; } .ifr-mod { width: 3em; } }
@container (max-width: 560px) { .ifm--documentos.is-com .ifr-top__mods { display: none; } }

/* Asistente: listado de comunidades → ventana de la comunidad → asistente propio */
.ifr-scenes:not(.is-ready)[data-ai] .ifr-scene[data-scene="list"] { display: none; }
.ifr-search { display: flex; align-items: center; gap: .45em; font-size: .6em; color: #94A3B8; background: #fff; border: 1px solid #E2E8F0; border-radius: .6em; padding: .6em .8em; }
.ifr-search .ifi { width: 1.2em; height: 1.2em; }
.ifr-crs { display: grid; gap: .35em; }
.ifr-cr { display: grid; grid-template-columns: auto minmax(0, 1.8fr) minmax(0, 1fr) 5.5em; gap: .55em; align-items: center; background: #fff; border: 1px solid #E8EDF5; border-radius: .7em; padding: .5em .6em; transition: box-shadow .2s; }
.ifr-cr__img { width: 2.4em; height: 2.4em; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(160deg, #CBD5E1, #94A3B8); color: #fff; }
.ifr-cr__img .ifi { width: 1.15em; height: 1.15em; }
.ifr-cr span { display: grid; line-height: 1.25; min-width: 0; }
.ifr-cr b { font-size: .64em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-cr small { font-size: .52em; color: #64748B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifr-cr.is-hover { box-shadow: 0 0 0 2px #2563EB; }
.ifr-scenes.is-ready .ifr-scene.is-on .ifr-cr { animation: ifr-in .35s ease both; animation-delay: calc(.1s + var(--i) * 80ms); }

.ifr-pop { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; padding: 1.2em; background: rgba(15,23,42,.45); opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
.ifr-pop.is-on { opacity: 1; visibility: visible; transition: opacity .3s; }
.ifr-pop__win { position: relative; width: 100%; height: 100%; display: grid; grid-template-columns: 10.5em 1fr; border-radius: .9em; overflow: hidden; background: var(--rbg); box-shadow: 0 30px 60px -20px rgba(15,23,42,.6); transform: translateY(14px) scale(.97); transition: transform .4s cubic-bezier(.3, 1.2, .5, 1); }
.ifr-pop.is-on .ifr-pop__win { transform: none; }
.ifr-pop__x { position: absolute; z-index: 2; top: .4em; right: .4em; width: 1.6em; height: 1.6em; border-radius: .4em; display: grid; place-items: center; background: #fff; color: #64748B; font-weight: 400; font-size: .8em; box-shadow: 0 1px 3px rgba(15,23,42,.2); }
.ifr-pop__side .ifr-nav li.is-active { background: var(--rb); color: #fff; font-weight: 600; }
.ifr-pop__side .ifr-nav li { font-size: .78em; padding: .45em .6em; }
.ifr-pop__top { justify-content: space-between; padding-right: 2.4em; }
.ifr-pop__top .ifr-top__mods, .ifr-pop__top .ifr-top__com { display: flex; }
.ifr-pop__top .ifr-top__btns { margin-left: auto; }
.ifr-pop .ifr-body { padding: .7em; overflow: hidden; }
.ifr-pop .ifr-ai { min-height: 0; height: 100%; }
.ifr-pop .ifr-ai__hello { padding: 1.4em 0; }
[data-pop-ia].is-hover { box-shadow: 0 0 0 2px #2563EB; background: #DBEAFE; }
[data-pop-ia].is-sel { background: #DBEAFE; border-color: #93C5FD; color: #1D4ED8; }
.ifr-crumb { margin: 0; font-size: .62em; font-weight: 700; color: #64748B; }
.ifr-folders { display: grid; gap: .35em; }
.ifr-folders span { display: flex; align-items: center; gap: .55em; font-size: .7em; color: #334155; background: #fff; border: 1px solid #E8EDF5; border-radius: .6em; padding: .55em .8em; }
.ifr-folders .ifi { width: 1.3em; height: 1.3em; color: #475569; }
@container (max-width: 760px) {
	.ifr-pop__top .ifr-top__mods .ifr-mod:nth-child(n+4) { display: none; }
	.ifr-pop__top .ifr-top__btns .ifr-top__btn:not([data-pop-ia]):nth-child(n+3) { display: none; }
	.ifr-pop__top .ifr-top__com small:first-of-type { display: none; }
	.ifr-cr { grid-template-columns: auto minmax(0, 1.8fr) minmax(0, 1fr); } .ifr-cr span:last-child { display: none; }
}
@container (max-width: 560px) {
	.ifr-pop { padding: .4em; } .ifr-pop__win { grid-template-columns: 1fr; } .ifr-pop__side { display: none; }
	.ifr-pop__top .ifr-top__mods { display: none; }
}
.ifr-pop__top [data-pop-ia] { display: grid !important; }
