/*
 * Efficiency-Social.
 *
 * Todo cuelga de .efs para no tocar el tema. La primera seccion "blinda" los
 * elementos contra estilos globales agresivos de temas y constructores
 * (Elementor y otros suelen poner botones en mayusculas, textareas de 150px,
 * imagenes con height:auto o bordes y sombras propias).
 */

/* ------------------------------------------------------------------ */
/* Variables                                                           */
/* ------------------------------------------------------------------ */
.efs {
	--efs-primario: #1a7f37;
	--efs-sobre-primario: #fff;
	--efs-fondo: #f0f2f5;
	--efs-tarjeta: #fff;
	--efs-texto: #1c1e21;
	--efs-suave: #65676b;
	--efs-tenue: #8a8d91;
	--efs-borde: #e4e6eb;
	--efs-gris: #f0f2f5;
	--efs-gris-2: #e4e6eb;
	--efs-peligro: #d93025;
	--efs-me-gusta: #1877f2;
	--efs-radio: 12px;
	--efs-sombra: 0 1px 2px rgba(0, 0, 0, .1), 0 2px 8px rgba(0, 0, 0, .04);
	--efs-sombra-alta: 0 8px 30px rgba(0, 0, 0, .18);
	--efs-fuente: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-family: var(--efs-fuente) !important;
	color: var(--efs-texto);
	font-size: 15px;
	line-height: 1.45;
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}

/* ------------------------------------------------------------------ */
/* Blindaje contra el tema                                             */
/* ------------------------------------------------------------------ */
.efs *, .efs *::before, .efs *::after { box-sizing: border-box; }
.efs * { font-family: inherit; }
/* Algunos temas (Twenty Twenty) dan width:100% a section/form/label y margenes a label. */
.efs section, .efs form, .efs article, .efs figure, .efs header, .efs footer, .efs nav { width: auto; max-width: none; }
.efs label { margin-top: 0; margin-bottom: 0; }
.efs .efs-icono-btn, .efs .efs-caja-comentario label { margin: 0 !important; }
.efs [hidden] { display: none !important; }

.efs button, .efs input, .efs select, .efs textarea, .efs label, .efs .efs-btn {
	text-transform: none !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	text-shadow: none !important;
}

.efs button {
	min-height: 0 !important;
	min-width: 0;
	margin: 0;
	box-shadow: none;
	line-height: 1.2 !important;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.efs button:focus-visible, .efs a:focus-visible, .efs input:focus-visible, .efs textarea:focus-visible, .efs select:focus-visible {
	outline: 2px solid var(--efs-primario) !important;
	outline-offset: 2px;
}

.efs textarea {
	min-height: 0 !important;
	max-width: 100%;
	box-shadow: none !important;
	resize: none;
}

.efs input, .efs select { min-height: 0 !important; box-shadow: none !important; margin: 0; }
.efs img { max-width: 100%; border: 0 !important; box-shadow: none !important; }
.efs a { text-decoration: none; box-shadow: none !important; }
.efs p { margin: 0 0 8px; }
.efs ul, .efs ol { margin: 0; }
.efs .efs-icono { display: inline-block; flex: none; vertical-align: middle; width: auto; height: auto; }

/* Avatares siempre cuadrados y redondos, con el tamano exacto pedido. */
.efs img.efs-avatar,
.efs .efs-avatar {
	border-radius: 50% !important;
	object-fit: cover !important;
	flex: none !important;
	display: block;
	max-width: none !important;
	aspect-ratio: 1 / 1;
	background: var(--efs-gris);
}
.efs .efs-avatar.avatar-24, .efs .efs-avatar[width="24"] { width: 24px !important; height: 24px !important; }
.efs .efs-avatar.avatar-28, .efs .efs-avatar[width="28"] { width: 28px !important; height: 28px !important; }
.efs .efs-avatar.avatar-32, .efs .efs-avatar[width="32"] { width: 32px !important; height: 32px !important; }
.efs .efs-avatar.avatar-36, .efs .efs-avatar[width="36"] { width: 36px !important; height: 36px !important; }
.efs .efs-avatar.avatar-40, .efs .efs-avatar[width="40"] { width: 40px !important; height: 40px !important; }
.efs .efs-avatar.avatar-44, .efs .efs-avatar[width="44"] { width: 44px !important; height: 44px !important; }
.efs .efs-avatar.avatar-48, .efs .efs-avatar[width="48"] { width: 48px !important; height: 48px !important; }
.efs .efs-avatar-enlace { flex: none; display: block; line-height: 0; }

/* ------------------------------------------------------------------ */
/* Botones                                                             */
/* ------------------------------------------------------------------ */
.efs .efs-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 0 !important;
	border-radius: 8px !important;
	padding: 9px 16px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background-color .15s, filter .15s;
}
.efs .efs-btn-primario { background: var(--efs-primario) !important; color: var(--efs-sobre-primario) !important; }
.efs .efs-btn-primario:hover { filter: brightness(1.06); }
.efs .efs-btn-primario:disabled { opacity: .5; cursor: default; }
.efs .efs-btn-suave { background: var(--efs-gris) !important; color: var(--efs-texto) !important; }
.efs .efs-btn-suave:hover { background: var(--efs-gris-2) !important; }
.efs .efs-link {
	background: none !important; border: 0 !important; padding: 0 !important;
	color: var(--efs-suave) !important; font-weight: 700 !important; font-size: 12px !important;
}
.efs .efs-link:hover { text-decoration: underline; }
.efs .efs-peligro { color: var(--efs-peligro) !important; }
.efs .efs-icono-btn {
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 32px; height: 32px; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	background: transparent !important; color: var(--efs-suave) !important; cursor: pointer; flex: none;
}
.efs .efs-icono-btn:hover { background: var(--efs-gris-2) !important; color: var(--efs-texto) !important; }
.efs .efs-acciones { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

/* ------------------------------------------------------------------ */
/* Contenedor y tarjetas                                               */
/* ------------------------------------------------------------------ */
.efs-muro { max-width: 680px; margin: 0 auto; }
.efs .efs-tarjeta {
	background: var(--efs-tarjeta);
	border-radius: var(--efs-radio);
	box-shadow: var(--efs-sombra);
	margin: 0 0 16px;
	padding: 12px 16px;
}

/* ------------------------------------------------------------------ */
/* Buscador                                                            */
/* ------------------------------------------------------------------ */
.efs .efs-buscador { margin: 0 0 16px; }
.efs .efs-buscador-fila { display: flex; gap: 8px; align-items: stretch; }
.efs .efs-campo-busqueda {
	flex: 1; min-width: 0; position: relative; display: flex; align-items: center; margin: 0;
	background: var(--efs-tarjeta); border-radius: 999px; box-shadow: var(--efs-sombra);
}
.efs .efs-campo-busqueda .efs-icono { position: absolute; left: 14px; color: var(--efs-tenue); pointer-events: none; }
.efs .efs-campo-busqueda input {
	width: 100%; border: 0 !important; background: transparent !important; border-radius: 999px !important;
	padding: 11px 16px 11px 42px !important; font-size: 15px !important; color: var(--efs-texto) !important; height: auto !important;
}
.efs .efs-campo-busqueda input:focus { outline: none !important; }
.efs .efs-campo-busqueda:focus-within { box-shadow: 0 0 0 2px var(--efs-primario); }
.efs .efs-buscador .efs-btn { border-radius: 999px !important; }
.efs .efs-btn-filtros { background: var(--efs-tarjeta) !important; box-shadow: var(--efs-sombra); }
.efs .efs-filtros {
	display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; padding: 12px 14px;
	background: var(--efs-tarjeta); border-radius: var(--efs-radio); box-shadow: var(--efs-sombra);
}
.efs .efs-filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--efs-suave); margin: 0; }
.efs .efs-filtros select, .efs .efs-filtros input { padding: 7px 10px !important; border: 1px solid var(--efs-borde) !important; border-radius: 8px !important; background: #fff !important; font-size: 14px !important; height: auto !important; }
.efs .efs-resultados { color: var(--efs-suave); font-size: 14px; }

/* ------------------------------------------------------------------ */
/* Caja "¿Qué querés compartir?"                                       */
/* ------------------------------------------------------------------ */
.efs .efs-disparador { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 16px 8px; }
.efs .efs-disparador-btn {
	flex: 1; min-width: 160px; text-align: left !important; border: 0 !important; border-radius: 999px !important;
	background: var(--efs-gris) !important; color: var(--efs-suave) !important; padding: 11px 16px !important;
	font-size: 16px !important; font-weight: 400 !important;
}
.efs .efs-disparador-btn:hover { background: var(--efs-gris-2) !important; }
.efs .efs-disparador-atajos { display: flex; gap: 4px; width: 100%; padding-top: 8px; border-top: 1px solid var(--efs-borde); }
.efs .efs-disparador-atajos .efs-btn {
	flex: 1; background: transparent !important; color: var(--efs-suave) !important;
	font-size: 14px !important; padding: 8px 6px !important;
}
.efs .efs-disparador-atajos .efs-btn:hover { background: var(--efs-gris) !important; }
@media (hover: none) {
	.efs .efs-disparador-atajos .efs-btn:hover, .efs .efs-accion:hover, .efs .efs-icono-btn:hover, .efs .efs-btn-suave:hover { background: transparent !important; }
	.efs .efs-btn-suave:hover { background: var(--efs-gris) !important; }
}
.efs .efs-atajo-icono { display: inline-flex; }
.efs .efs-atajo-foto { color: #45bd62; }
.efs .efs-atajo-video { color: #f3425f; }
.efs .efs-atajo-archivo { color: #1877f2; }
.efs .efs-atajo-encuesta { color: #f7b928; }

/* ------------------------------------------------------------------ */
/* Archivo por mes y paginacion                                        */
/* ------------------------------------------------------------------ */
.efs .efs-meses { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 2px 12px; }
.efs .efs-meses-titulo { font-size: 18px; font-weight: 700; }
.efs .efs-meses-selector { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--efs-suave); margin: 0; }
.efs .efs-meses-selector select {
	padding: 7px 30px 7px 12px !important; border: 0 !important; border-radius: 999px !important; height: auto !important;
	background-color: var(--efs-tarjeta) !important; box-shadow: var(--efs-sombra) !important; font-size: 14px !important; color: var(--efs-texto) !important;
}
.efs .efs-paginacion { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 20px 0; }
.efs .efs-paginacion .page-numbers {
	min-width: 40px; padding: 9px 13px; text-align: center; border-radius: 8px;
	background: var(--efs-tarjeta); box-shadow: var(--efs-sombra); color: var(--efs-texto); font-weight: 600; font-size: 14px;
}
.efs .efs-paginacion .page-numbers.current { background: var(--efs-primario); color: var(--efs-sobre-primario); }
.efs .efs-paginacion a.page-numbers:hover { background: var(--efs-gris-2); }
.efs .efs-paginacion .dots { background: none; box-shadow: none; }

/* ------------------------------------------------------------------ */
/* Publicacion                                                         */
/* ------------------------------------------------------------------ */
.efs .efs-post { padding: 0; overflow: hidden; }
.efs .efs-post > .efs-fijado-etiqueta,
.efs .efs-post > .efs-post-cabecera,
.efs .efs-post > .efs-texto,
.efs .efs-post > .efs-encuesta,
.efs .efs-post > .efs-archivos,
.efs .efs-post > .efs-leyenda,
.efs .efs-post > .efs-estadisticas,
.efs .efs-post > .efs-acciones-post,
.efs .efs-post > .efs-comentarios { margin-left: 16px; margin-right: 16px; }
.efs .efs-post-fijado { box-shadow: 0 0 0 2px color-mix(in srgb, var(--efs-primario) 45%, transparent), var(--efs-sombra); }
.efs .efs-fijado-etiqueta { display: flex; align-items: center; gap: 4px; padding-top: 10px; font-size: 12px; font-weight: 700; color: var(--efs-suave); }
.efs .efs-post-cabecera { display: flex; align-items: center; gap: 10px; padding-top: 12px; }
.efs .efs-post-meta { flex: 1; min-width: 0; }
.efs .efs-autor { font-weight: 700 !important; color: var(--efs-texto) !important; font-size: 15px; }
.efs .efs-autor:hover { text-decoration: underline; }
.efs .efs-en-grupo { font-weight: 600; font-size: 15px; color: var(--efs-texto); }
.efs .efs-en-grupo a { color: var(--efs-texto) !important; font-weight: 700; }
.efs .efs-fecha { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; font-size: 13px; color: var(--efs-suave); margin-top: 1px; }
.efs .efs-fecha a { color: inherit !important; }
.efs .efs-fecha a:hover { text-decoration: underline; }
.efs .efs-privacidad { display: inline-flex; align-items: center; gap: 4px; }
.efs .efs-programada { display: inline-flex; align-items: center; gap: 3px; color: #b26a00; font-weight: 600; }
.efs .efs-texto { margin-top: 10px; margin-bottom: 12px; overflow-wrap: anywhere; font-size: 15px; line-height: 1.5; }
.efs .efs-texto a, .efs .efs-comentario-texto a { color: var(--efs-enlace, #216fdb) !important; }
.efs .efs-texto a:hover, .efs .efs-comentario-texto a:hover { text-decoration: underline; }
.efs .efs-hashtag, .efs .efs-mencion { font-weight: 600; }

/* Menu de opciones */
.efs .efs-menu { position: relative; align-self: flex-start; }
.efs .efs-copiar-enlace {
	align-self: flex-start; width: 36px; height: 36px; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	background: transparent !important; color: var(--efs-suave) !important; display: inline-flex !important; align-items: center; justify-content: center;
	transition: color .15s, background-color .15s;
}
.efs .efs-copiar-enlace:hover { background: var(--efs-gris) !important; color: var(--efs-primario) !important; }
.efs .efs-copiar-enlace.efs-copiado { color: #1a7f37 !important; background: color-mix(in srgb, #1a7f37 12%, transparent) !important; }
.efs .efs-menu-btn {
	width: 36px; height: 36px; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	background: transparent !important; color: var(--efs-suave) !important; display: inline-flex !important; align-items: center; justify-content: center;
}
.efs .efs-menu-btn:hover { background: var(--efs-gris) !important; }
.efs .efs-menu-lista {
	position: absolute; right: 0; top: 40px; z-index: 30; min-width: 230px; padding: 8px;
	background: #fff; border-radius: 10px; box-shadow: var(--efs-sombra-alta);
}
.efs .efs-menu-lista button {
	display: block; width: 100%; text-align: left !important; border: 0 !important; background: none !important;
	padding: 10px 12px !important; border-radius: 6px !important; font-size: 15px !important; font-weight: 500 !important; color: var(--efs-texto) !important;
}
.efs .efs-menu-lista button:hover { background: var(--efs-gris) !important; }
.efs .efs-menu-lista .efs-peligro { color: var(--efs-peligro) !important; }

/* ------------------------------------------------------------------ */
/* Fotos                                                               */
/* ------------------------------------------------------------------ */
.efs .efs-galeria { display: grid; gap: 4px; margin: 0 auto; background: var(--efs-tarjeta); }
.efs .efs-galeria-1 { grid-template-columns: 1fr; }
/* Varias fotos: todas iguales y con ancho maximo, para que no se agiganten con el muro ancho. */
.efs .efs-columnas-2 { grid-template-columns: repeat(2, 1fr); max-width: 680px; }
.efs .efs-columnas-3 { grid-template-columns: repeat(3, 1fr); max-width: 900px; }
.efs .efs-foto { position: relative; margin: 0 !important; overflow: hidden; background: var(--efs-gris); }
.efs .efs-foto a { display: block; height: 100%; line-height: 0; }
.efs .efs-foto img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center top; display: block; aspect-ratio: 1 / 1; transition: filter .2s; }
.efs .efs-foto:hover img { filter: brightness(.94); }

/* Una sola foto: entera, sin recortar, y los costados con la misma foto difuminada. */
.efs .efs-galeria-1 .efs-foto { background: #e9ebee; isolation: isolate; }
.efs .efs-galeria-1 .efs-foto::before {
	content: ""; position: absolute; inset: -30px; z-index: -1;
	background: var(--efs-fondo, none) center / cover no-repeat;
	filter: blur(28px) saturate(1.2) brightness(1.05);
	opacity: .9;
}
.efs .efs-galeria-1 .efs-foto img {
	width: auto !important; max-width: 100% !important; height: auto !important; max-height: min(78vh, 760px) !important;
	aspect-ratio: auto; object-fit: contain; margin: 0 auto;
}
.efs .efs-galeria-1 .efs-foto a { display: flex; justify-content: center; }

.efs .efs-mas {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, .45); color: #fff; font-size: 32px; font-weight: 700; pointer-events: none;
}
.efs .efs-insignia-enlace, .efs .efs-lupa {
	position: absolute; top: 10px; width: 34px; height: 34px; border-radius: 50% !important; z-index: 1;
	display: flex !important; align-items: center; justify-content: center; padding: 0 !important;
	background: rgba(255, 255, 255, .94) !important; border: 0 !important; color: var(--efs-texto) !important;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .25) !important;
}
.efs .efs-insignia-enlace { left: 10px; pointer-events: none; }
.efs .efs-lupa { right: 10px; }

/* ------------------------------------------------------------------ */
/* Video, embeds y archivos                                            */
/* ------------------------------------------------------------------ */
/* El video toma su forma real (vertical u horizontal) y queda centrado: sin barras negras a los costados. */
.efs .efs-video { margin: 0; background: #e9ebee; line-height: 0; display: flex; justify-content: center; }
.efs .efs-video video { width: auto !important; max-width: 100% !important; height: auto !important; max-height: min(78vh, 760px) !important; display: block; background: #000; }
.efs .efs-embed { background: #000; display: block; }
.efs .efs-embed iframe { width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; display: block; border: 0; }
.efs .efs-audio { padding: 8px 16px; }
.efs .efs-audio audio { width: 100%; }
.efs .efs-leyenda { font-size: 14px; color: var(--efs-suave); margin-top: 8px; }
.efs .efs-archivos { list-style: none !important; margin-top: 4px; margin-bottom: 12px; padding: 0 !important; display: grid; gap: 8px; }
.efs .efs-archivos-mini { margin: 6px 0 0 !important; }
.efs .efs-archivo {
	display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin: 0 !important;
	border: 1px solid var(--efs-borde); border-radius: 10px; background: #fafbfc; list-style: none !important;
}
.efs .efs-archivo-icono {
	flex: none; width: 44px; height: 52px; border-radius: 6px; display: flex; align-items: flex-end; justify-content: center;
	padding-bottom: 7px; font-size: 11px; font-weight: 800; color: #fff; background: #5f6b7a; letter-spacing: .02em;
	clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%);
}
.efs .efs-ext-pdf { background: #e5322d; }
.efs .efs-ext-doc { background: #2b579a; }
.efs .efs-ext-xls { background: #1f7244; }
.efs .efs-ext-ppt { background: #d24726; }
.efs .efs-ext-zip { background: #7a5c00; }
.efs .efs-archivo-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.efs .efs-archivo-nombre { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.efs .efs-archivo-tamano, .efs .efs-archivo-leyenda { font-size: 12px; color: var(--efs-suave); }
.efs .efs-archivo .efs-btn { padding: 7px 12px !important; font-size: 14px !important; }

/* ------------------------------------------------------------------ */
/* Encuesta                                                            */
/* ------------------------------------------------------------------ */
.efs .efs-encuesta { margin-top: 4px; margin-bottom: 12px; display: grid; gap: 8px; }
.efs .efs-opcion {
	position: relative; display: flex !important; align-items: center; gap: 10px; padding: 11px 14px; margin: 0;
	border: 1px solid var(--efs-borde); border-radius: 10px; overflow: hidden; cursor: pointer; font-size: 15px;
}
.efs .efs-opcion:hover { border-color: var(--efs-tenue); }
.efs .efs-opcion-barra { position: absolute; inset: 0 auto 0 0; background: color-mix(in srgb, var(--efs-primario) 18%, transparent); z-index: 0; transition: width .5s; }
.efs .efs-opcion > *:not(.efs-opcion-barra) { position: relative; z-index: 1; }
.efs .efs-opcion input { accent-color: var(--efs-primario); width: 18px; height: 18px; }
.efs .efs-opcion-texto { flex: 1; }
.efs .efs-opcion-pct { font-weight: 700; font-size: 14px; }
.efs .efs-opcion-mia { border-color: var(--efs-primario); }
.efs .efs-otro-texto { padding: 10px 14px !important; border: 1px solid var(--efs-borde) !important; border-radius: 10px !important; font-size: 15px !important; height: auto !important; }
.efs .efs-encuesta-pie { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.efs .efs-encuesta-info { font-size: 13px; color: var(--efs-suave); }

/* ------------------------------------------------------------------ */
/* Numeros y acciones (Me gusta | Comentar)                            */
/* ------------------------------------------------------------------ */
.efs .efs-estadisticas { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; min-height: 20px; }
.efs .efs-estadisticas:has(.efs-resumen-vacio):not(:has(.efs-contador)) { padding: 2px 0; }
.efs .efs-contadores { display: flex; gap: 14px; align-items: center; margin-left: auto; }
.efs .efs-contador {
	display: inline-flex !important; align-items: center; gap: 5px; background: none !important; border: 0 !important;
	padding: 0 !important; color: var(--efs-suave) !important; font-size: 14px !important; font-weight: 400 !important;
}
.efs button.efs-contador:hover { text-decoration: underline; }
.efs .efs-resumen {
	display: inline-flex !important; align-items: center; gap: 6px; background: none !important; border: 0 !important;
	padding: 0 !important; color: var(--efs-suave) !important; font-size: 14px !important; font-weight: 400 !important;
}
.efs button.efs-resumen:hover { text-decoration: underline; }
.efs .efs-emojis { display: inline-flex; }
.efs .efs-burbuja-emoji {
	display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%;
	background: #fff; box-shadow: 0 0 0 2px #fff; font-size: 13px; line-height: 1; margin-left: -4px;
}
.efs .efs-burbuja-emoji:first-child { margin-left: 0; }

.efs .efs-acciones-post { display: flex; gap: 4px; border-top: 1px solid var(--efs-borde); border-bottom: 1px solid var(--efs-borde); padding: 4px 0; }
.efs .efs-acciones-post > * { flex: 1; }
.efs .efs-accion {
	display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100%;
	background: transparent !important; border: 0 !important; border-radius: 8px !important;
	padding: 8px 6px !important; color: var(--efs-suave) !important; font-size: 15px !important; font-weight: 600 !important;
}
.efs .efs-accion:hover { background: var(--efs-gris) !important; }
.efs .efs-reaccionar-btn.efs-activa { color: var(--efs-me-gusta) !important; }
.efs .efs-reaccion-me_encanta, .efs .efs-reaccion-me_enoja { color: #f33e58 !important; }
.efs .efs-reaccion-me_divierte, .efs .efs-reaccion-me_asombra, .efs .efs-reaccion-me_entristece, .efs .efs-reaccion-gracias { color: #e7a10d !important; }
.efs .efs-reaccion-celebrar { color: #45bd62 !important; }
.efs .efs-emoji-reaccion { font-size: 18px; line-height: 1; }

.efs .efs-reaccionar { position: relative; }
.efs .efs-reacciones-menu {
	position: absolute; bottom: calc(100% + 4px); left: 0; z-index: 40; display: none; gap: 2px; padding: 6px 8px;
	background: #fff; border-radius: 999px; box-shadow: var(--efs-sombra-alta); white-space: nowrap;
}
/* Puente invisible sobre el hueco entre boton y menu: sin el, el menu se cierra al subir el mouse. */
.efs .efs-reacciones-menu::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 8px; }
.efs .efs-reaccionar.efs-abierto .efs-reacciones-menu { display: flex; animation: efs-aparece .15s ease-out; }
/* Abrir al pasar por encima solo con mouse: en iPhone un :hover que muestra contenido se come el toque. */
@media (hover: hover) and (pointer: fine) {
	.efs .efs-reaccionar:hover .efs-reacciones-menu,
	.efs .efs-reaccionar:focus-within .efs-reacciones-menu { display: flex; animation: efs-aparece .15s ease-out; }
	.efs .efs-reacciones-menu button:hover { transform: scale(1.3) translateY(-3px); }
}
.efs .efs-reacciones-menu button {
	border: 0 !important; background: none !important; font-size: 28px !important; line-height: 1 !important;
	padding: 3px 4px !important; transition: transform .12s; width: auto; height: auto;
}
.efs .efs-reacciones-menu button:focus-visible { transform: scale(1.3) translateY(-3px); }
.efs .efs-reaccionar-btn { -webkit-touch-callout: none; user-select: none; }
@keyframes efs-aparece { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ */
/* Comentarios                                                         */
/* ------------------------------------------------------------------ */
.efs .efs-comentarios { padding: 6px 0 12px; }
.efs .efs-ver-mas {
	background: none !important; border: 0 !important; padding: 4px 0 !important; color: var(--efs-suave) !important;
	font-weight: 600 !important; font-size: 14px !important;
}
.efs .efs-ver-mas:hover { text-decoration: underline; }
.efs .efs-comentario { display: flex; gap: 8px; margin: 8px 0; }
.efs .efs-comentario-cuerpo { flex: 1; min-width: 0; }
.efs .efs-burbuja { display: inline-block; max-width: 100%; background: var(--efs-gris); border-radius: 18px; padding: 8px 12px; }
.efs .efs-burbuja .efs-autor { font-size: 13px; display: block; }
.efs .efs-comentario-texto { font-size: 15px; overflow-wrap: anywhere; line-height: 1.4; }
.efs .efs-comentario-img { display: block; margin-top: 6px; line-height: 0; }
.efs .efs-comentario-img img { border-radius: 12px; max-height: 240px; width: auto !important; height: auto !important; }
.efs .efs-comentario-pie { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 3px 12px 0; font-size: 12px; color: var(--efs-suave); }
.efs .efs-comentario-pie time { color: var(--efs-tenue); }
.efs .efs-comentario-pie .efs-reacciones { display: inline-flex; align-items: center; gap: 8px; }
.efs .efs-comentario-pie .efs-reaccionar-btn {
	background: none !important; border: 0 !important; padding: 0 !important; color: var(--efs-suave) !important;
	font-size: 12px !important; font-weight: 700 !important; display: inline-flex !important; gap: 3px; align-items: center;
}
.efs .efs-comentario-pie .efs-reaccionar-btn:hover { text-decoration: underline; }
.efs .efs-comentario-pie .efs-reaccionar-btn.efs-activa { color: var(--efs-me-gusta) !important; }
.efs .efs-comentario-pie .efs-emoji-reaccion { font-size: 13px; }
.efs .efs-comentario-pie .efs-resumen { font-size: 12px !important; }
.efs .efs-comentario-pie .efs-burbuja-emoji { width: 16px; height: 16px; font-size: 11px; }
.efs .efs-respuestas { margin-left: 4px; }
.efs .efs-respuestas .efs-comentario { margin: 6px 0; }
.efs .efs-cerrados { color: var(--efs-suave); font-size: 13px; }

/* Caja de comentario: una sola linea tipo burbuja, crece al escribir. */
.efs .efs-form-comentario { display: flex; align-items: flex-start; gap: 8px; margin: 8px 0 0; }
.efs .efs-form-comentario > .efs-avatar { margin-top: 2px; }
.efs .efs-caja-comentario {
	flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: flex-end;
	background: var(--efs-gris); border-radius: 20px; padding: 2px 4px 2px 14px;
}
.efs .efs-caja-comentario:focus-within { box-shadow: 0 0 0 1px var(--efs-gris-2); }
.efs .efs-caja-comentario textarea,
.efs .efs-editar-comentario textarea {
	flex: 1; min-width: 0; width: auto !important;
	height: 22px !important; min-height: 22px !important; max-height: 200px !important;
	margin: 8px 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
	background: transparent !important; color: var(--efs-texto) !important;
	font-size: 15px !important; line-height: 22px !important; overflow-y: auto;
}
.efs .efs-caja-comentario textarea:focus { outline: none !important; }
.efs .efs-caja-comentario textarea::placeholder { color: var(--efs-tenue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.efs .efs-caja-comentario-iconos { display: flex; align-items: center; gap: 0; padding: 3px 0; }
.efs .efs-enviar { color: var(--efs-primario) !important; }
.efs .efs-form-comentario-adjunto { flex-basis: 100%; display: flex; align-items: center; gap: 8px; padding: 0 0 8px; font-size: 13px; }
.efs .efs-form-comentario-adjunto img { height: 48px !important; width: auto !important; border-radius: 8px; }
.efs .efs-editar-comentario textarea {
	width: 100% !important; height: auto !important; min-height: 60px !important; padding: 8px 12px !important;
	border: 1px solid var(--efs-borde) !important; border-radius: 12px !important; background: #fff !important;
}

/* ------------------------------------------------------------------ */
/* Estados                                                             */
/* ------------------------------------------------------------------ */
.efs .efs-aviso, .efs .efs-vacio { padding: 28px 20px; text-align: center; color: var(--efs-suave); background: var(--efs-tarjeta); border-radius: var(--efs-radio); box-shadow: var(--efs-sombra); }
.efs .efs-panel .efs-vacio, .efs .efs-dialogo .efs-vacio { box-shadow: none; }
.efs .efs-volver a { font-weight: 600; color: var(--efs-primario) !important; }
.efs .efs-cargando { width: 26px; height: 26px; margin: 16px auto; border: 3px solid var(--efs-borde); border-top-color: var(--efs-primario); border-radius: 50%; animation: efs-gira .8s linear infinite; }
@keyframes efs-gira { to { transform: rotate(360deg); } }
.efs-avisos { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100000; display: grid; gap: 8px; }
.efs .efs-aviso-flotante { padding: 11px 18px; border-radius: 10px; color: #fff; background: #323232; box-shadow: var(--efs-sombra-alta); font-size: 14px; }
.efs .efs-aviso-error { background: var(--efs-peligro); }

/* ------------------------------------------------------------------ */
/* Dialogos                                                            */
/* ------------------------------------------------------------------ */
.efs.efs-dialogo {
	width: min(600px, calc(100vw - 24px)); max-height: calc(100vh - 32px); padding: 0; border: 0;
	border-radius: 14px; box-shadow: var(--efs-sombra-alta); overflow: hidden; background: #fff; color: var(--efs-texto);
}
.efs.efs-dialogo[open] { display: flex; flex-direction: column; }
.efs.efs-dialogo-ancho { width: min(860px, calc(100vw - 24px)); }
.efs.efs-dialogo::backdrop { background: rgba(255, 255, 255, .75); backdrop-filter: blur(2px); }
.efs.efs-dialogo > form { display: flex; flex-direction: column; min-height: 0; flex: 1; margin: 0; }
.efs .efs-dialogo-cabecera { display: flex; align-items: center; justify-content: center; position: relative; padding: 14px 56px; border-bottom: 1px solid var(--efs-borde); }
.efs .efs-dialogo-cabecera h2 { margin: 0 !important; font-size: 19px !important; font-weight: 700 !important; text-align: center; color: var(--efs-texto) !important; text-transform: none !important; }
.efs .efs-cerrar {
	position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
	width: 36px; height: 36px; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	background: var(--efs-gris) !important; color: var(--efs-suave) !important; font-size: 22px !important; line-height: 1 !important;
	display: inline-flex !important; align-items: center; justify-content: center;
}
.efs .efs-cerrar:hover { background: var(--efs-gris-2) !important; }
.efs .efs-dialogo-cuerpo { padding: 14px 16px; overflow-y: auto; flex: 1; }
.efs .efs-dialogo-pie { display: flex; align-items: center; gap: 8px; justify-content: flex-end; padding: 12px 16px; border-top: 1px solid var(--efs-borde); }
.efs.efs-dialogo label { display: block; margin: 8px 0; font-size: 14px; }
.efs.efs-dialogo input[type="text"], .efs.efs-dialogo input[type="url"], .efs.efs-dialogo input[type="search"], .efs.efs-dialogo input:not([type]),
.efs.efs-dialogo textarea, .efs.efs-dialogo select, .efs.efs-dialogo input[type="datetime-local"] {
	width: 100%; padding: 9px 12px !important; border: 1px solid var(--efs-borde) !important; border-radius: 8px !important;
	font-size: 15px !important; background: #fff !important; color: var(--efs-texto) !important; height: auto !important;
}
.efs.efs-dialogo input[type="checkbox"], .efs.efs-dialogo input[type="radio"] { width: auto; accent-color: var(--efs-primario); }

/* Composer */
.efs .efs-c-autor { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.efs .efs-c-autor strong { display: block; font-size: 15px; }
.efs .efs-c-autor select { width: auto !important; padding: 3px 26px 3px 10px !important; font-size: 13px !important; margin-top: 3px; border-radius: 6px !important; background-color: var(--efs-gris) !important; border: 0 !important; font-weight: 600; }
.efs.efs-composer textarea[name="texto"] { min-height: 110px !important; height: auto !important; resize: vertical; font-size: 18px !important; border: 0 !important; padding: 4px 0 !important; outline: none; }
.efs .efs-c-herramientas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 10px; }
.efs .efs-ayuda { font-size: 12px; color: var(--efs-suave); }
.efs .efs-c-media { list-style: none !important; margin: 0 0 10px !important; padding: 0 !important; display: grid; gap: 8px; }
.efs .efs-c-item { display: flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid var(--efs-borde); border-radius: 10px; background: #fafbfc; list-style: none !important; margin: 0; }
.efs .efs-c-item[draggable="true"] { cursor: grab; }
.efs .efs-c-asa { color: var(--efs-tenue); font-size: 18px; }
.efs .efs-c-vista { width: 72px; height: 72px; flex: none; border-radius: 8px; overflow: hidden; background: var(--efs-gris); display: flex; align-items: center; justify-content: center; }
.efs .efs-c-vista img { width: 100% !important; height: 100% !important; object-fit: cover; }
.efs .efs-c-icono { font-size: 30px; }
.efs .efs-c-campos { flex: 1; min-width: 0; display: grid; gap: 4px; }
.efs.efs-dialogo .efs-c-campos input { padding: 6px 9px !important; font-size: 13px !important; }
.efs .efs-c-nombre { font-size: 12px; color: var(--efs-suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.efs .efs-c-campos progress { width: 100%; accent-color: var(--efs-primario); }
.efs .efs-c-botones { display: grid; grid-template-columns: repeat(2, 30px); gap: 4px; }
.efs .efs-c-botones button { width: 30px; height: 30px; padding: 0 !important; border: 1px solid var(--efs-borde) !important; border-radius: 6px !important; background: #fff !important; color: var(--efs-texto) !important; font-size: 14px !important; }
.efs .efs-c-botones button:disabled { opacity: .35; cursor: default; }
.efs .efs-subiendo { opacity: .75; }
.efs .efs-c-drop {
	display: flex !important; flex-direction: column; align-items: center; gap: 4px; padding: 18px; cursor: pointer; margin: 0 !important;
	border: 2px dashed var(--efs-borde); border-radius: 12px; text-align: center; color: var(--efs-suave); background: #fafbfc;
}
.efs .efs-c-drop:hover, .efs .efs-c-drop.efs-sobre { border-color: var(--efs-primario); background: color-mix(in srgb, var(--efs-primario) 6%, #fff); }
.efs .efs-c-drop small { font-size: 12px; }
.efs .efs-c-embed { display: flex; gap: 8px; margin: 10px 0; }
.efs .efs-c-encuesta { border: 1px solid var(--efs-borde); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.efs .efs-c-opciones { margin: 0 0 8px; padding-left: 20px; }
.efs .efs-c-opciones li { display: flex; align-items: center; gap: 6px; margin: 6px 0; }
.efs .efs-c-opciones button { border: 0 !important; background: none !important; color: var(--efs-peligro) !important; padding: 4px !important; }
.efs .efs-c-encuesta-config { display: grid; gap: 2px; margin-top: 8px; }
.efs .efs-c-opciones-extra summary { cursor: pointer; color: var(--efs-suave); font-weight: 600; margin-top: 8px; }
.efs .efs-c-error { color: var(--efs-peligro); font-weight: 600; }
.efs .efs-c-progreso { color: var(--efs-suave); font-size: 13px; margin-right: auto; }
.efs.efs-composer .efs-dialogo-pie .efs-btn-primario { min-width: 140px; }

/* Visor de fotos */
.efs.efs-visor { width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; margin: 0; padding: 0; border: 0; background: rgba(0, 0, 0, .94); }
.efs.efs-visor[open] { display: flex; align-items: center; justify-content: center; }
.efs.efs-visor::backdrop { background: rgba(0, 0, 0, .9); }
.efs.efs-visor figure { margin: 0; max-width: 92vw; max-height: 88vh; text-align: center; }
.efs.efs-visor img { max-width: 92vw !important; max-height: 82vh !important; width: auto !important; height: auto !important; object-fit: contain; }
.efs.efs-visor figcaption { color: #eee; margin-top: 8px; }
.efs .efs-visor-cerrar, .efs .efs-visor-nav {
	position: absolute; border: 0 !important; background: rgba(255, 255, 255, .15) !important; color: #fff !important;
	border-radius: 50% !important; width: 48px; height: 48px; font-size: 28px !important; padding: 0 !important;
}
.efs .efs-visor-cerrar:hover, .efs .efs-visor-nav:hover { background: rgba(255, 255, 255, .28) !important; }
.efs .efs-visor-cerrar { top: 16px; right: 16px; }
.efs .efs-visor-ant { left: 16px; top: 50%; }
.efs .efs-visor-sig { right: 16px; top: 50%; }
.efs .efs-visor-pie { position: absolute; bottom: 16px; left: 0; right: 0; display: flex; justify-content: center; gap: 20px; color: #ddd; font-size: 14px; }
.efs .efs-visor-pie a { color: #fff !important; }

/* Listas en dialogos */
.efs .efs-lista-usuarios { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.efs .efs-lista-usuarios li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--efs-gris); list-style: none !important; margin: 0; }
.efs .efs-lista-usuarios li > span { flex: 1; }
.efs .efs-lista-usuarios li a { color: var(--efs-texto) !important; font-weight: 600; }
.efs .efs-lista-usuarios button[data-elegir] { display: flex !important; align-items: center; gap: 8px; width: 100%; border: 0 !important; background: none !important; padding: 6px !important; text-align: left !important; border-radius: 8px !important; color: var(--efs-texto) !important; font-size: 15px !important; }
.efs .efs-lista-usuarios button[data-elegir]:hover { background: var(--efs-gris) !important; }
.efs .efs-emoji { font-size: 20px; margin-left: auto; }
.efs .efs-tabla-envoltura { overflow-x: auto; }
.efs .efs-tabla { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.efs .efs-tabla th, .efs .efs-tabla td { padding: 8px; border: 0; border-bottom: 1px solid var(--efs-borde); text-align: left; vertical-align: middle; background: none; }
.efs .efs-tabla td img { display: inline-block; vertical-align: middle; margin-right: 6px; }
.efs .efs-tabla small { color: var(--efs-suave); display: block; }
.efs .efs-vistas-barra { display: flex; gap: 8px; margin-bottom: 10px; }
.efs .efs-vistas-barra input { flex: 1; }
.efs .efs-vistas-pag { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 10px; }
.efs .efs-version { border-bottom: 1px solid var(--efs-borde); padding: 10px 0; }
.efs .efs-version-media { display: flex; flex-wrap: wrap; gap: 6px; }
.efs .efs-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.efs .efs-chip { background: var(--efs-gris); border-radius: 14px; padding: 3px 4px 3px 10px; font-size: 13px; }
.efs .efs-chip button { border: 0 !important; background: none !important; padding: 0 4px !important; }

/* Menciones */
.efs-menciones {
	position: absolute; z-index: 100001; list-style: none; margin: 4px 0 0; padding: 4px;
	background: #fff; border-radius: 10px; box-shadow: var(--efs-sombra-alta); max-width: 320px;
}
.efs-menciones li { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.efs-menciones li[aria-selected="true"], .efs-menciones li:hover { background: var(--efs-gris); }

/* ------------------------------------------------------------------ */
/* Grupos                                                              */
/* ------------------------------------------------------------------ */
.efs .efs-grupo-cabecera { padding: 0; overflow: hidden; }
.efs .efs-grupo-portada { height: 170px; background: linear-gradient(135deg, var(--efs-primario), color-mix(in srgb, var(--efs-primario) 55%, #000)) center / cover; }
.efs .efs-grupo-datos { padding: 12px 16px 16px; }
.efs .efs-grupo-datos h2 { margin: 0 0 4px !important; font-size: 24px !important; }
.efs .efs-grupo-sub { color: var(--efs-suave); margin: 0 0 8px; }
.efs .efs-grupos-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.efs .efs-grupo-item { display: flex; align-items: center; gap: 12px; color: var(--efs-texto) !important; margin: 0; }
.efs .efs-grupo-img { width: 56px !important; height: 56px !important; border-radius: 12px; object-fit: cover; flex: none; }
.efs .efs-grupo-img-vacia { display: flex; align-items: center; justify-content: center; background: var(--efs-gris); color: var(--efs-suave); }

/* ------------------------------------------------------------------ */
/* Botonera flotante: notificaciones y chat                            */
/* ------------------------------------------------------------------ */
.efs.efs-dock { position: fixed; right: 16px; bottom: 16px; z-index: 99990; display: flex; align-items: flex-end; gap: 10px; pointer-events: none; }
.efs.efs-dock > * { pointer-events: auto; }
.efs .efs-dock-botones { display: flex; flex-direction: column; gap: 10px; }
.efs .efs-dock-btn {
	position: relative; width: 52px; height: 52px; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	display: inline-flex !important; align-items: center; justify-content: center;
	background: #fff !important; color: var(--efs-texto) !important; box-shadow: 0 4px 14px rgba(0, 0, 0, .2) !important;
	transition: transform .15s;
}
.efs .efs-dock-btn:hover { transform: scale(1.06); }
.efs .efs-dock-btn[aria-expanded="true"] { background: var(--efs-primario) !important; color: var(--efs-sobre-primario) !important; }
.efs .efs-burbuja-num {
	min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: #e41e3f; color: #fff;
	font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; display: inline-block;
}
.efs .efs-dock-btn .efs-burbuja-num { position: absolute; top: -4px; right: -4px; box-shadow: 0 0 0 2px #fff; }
.efs .efs-panel {
	position: fixed; right: 80px; bottom: 16px; width: min(380px, calc(100vw - 100px)); max-height: min(560px, calc(100vh - 32px));
	display: flex; flex-direction: column; background: #fff; border-radius: 14px; box-shadow: var(--efs-sombra-alta); overflow: hidden;
}
.efs .efs-panel-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--efs-borde); }
.efs .efs-panel-cabecera strong { font-size: 20px; }
.efs .efs-panel-cabecera span { display: flex; gap: 12px; }
.efs .efs-panel-cabecera .efs-link { color: var(--efs-primario) !important; font-size: 13px !important; }
.efs .efs-panel-opcion { display: block; padding: 8px 16px; font-size: 13px; color: var(--efs-suave); border-bottom: 1px solid var(--efs-gris); margin: 0; }
.efs .efs-panel-lista { overflow-y: auto; flex: 1; padding: 4px; }
.efs .efs-notif { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; color: var(--efs-texto) !important; }
.efs .efs-notif:hover { background: var(--efs-gris); }
.efs .efs-notif small { display: block; color: var(--efs-suave); }
.efs .efs-notif-nueva .efs-notif-texto { font-weight: 600; }
.efs .efs-notif-nueva small { color: var(--efs-me-gusta); font-weight: 600; }
.efs .efs-notif-nueva::after { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--efs-me-gusta); margin-left: auto; }

.efs .efs-conv {
	display: flex !important; align-items: center; gap: 10px; width: 100%; padding: 8px 10px !important;
	border: 0 !important; background: none !important; text-align: left !important; border-radius: 8px !important; color: var(--efs-texto) !important;
}
.efs .efs-conv:hover, .efs .efs-conv.efs-actual { background: var(--efs-gris) !important; }
.efs .efs-conv-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.efs .efs-conv-datos strong, .efs .efs-conv-datos small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.efs .efs-conv-datos strong { font-size: 15px; font-weight: 600; }
.efs .efs-conv-datos small { color: var(--efs-suave); font-size: 13px; }
.efs .efs-conv-nueva strong, .efs .efs-conv-nueva .efs-conv-datos small { color: var(--efs-texto); font-weight: 700; }
.efs .efs-conv-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: 11px; color: var(--efs-suave); }

/* Ventanas de chat */
.efs .efs-chat-ventanas { display: flex; align-items: flex-end; gap: 10px; }
.efs .efs-chat-ventana { display: flex; flex-direction: column; background: #fff; overflow: hidden; }
.efs .efs-flotante { width: 330px; height: 450px; border-radius: 12px 12px 0 0; box-shadow: var(--efs-sombra-alta); }
.efs .efs-flotante.efs-minimizada { height: auto; }
.efs .efs-minimizada .efs-chat-mensajes, .efs .efs-minimizada .efs-chat-estado, .efs .efs-minimizada .efs-chat-form { display: none; }
.efs .efs-chat-cabecera { position: relative; display: flex; align-items: center; gap: 6px; padding: 8px 8px 8px 12px; background: #fff; border-bottom: 1px solid var(--efs-borde); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.efs .efs-chat-titulo {
	flex: 1; min-width: 0; display: flex !important; align-items: center; gap: 6px; border: 0 !important;
	background: none !important; color: var(--efs-texto) !important; font-weight: 700 !important; font-size: 15px !important; text-align: left !important; padding: 0 !important;
}
.efs .efs-chat-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.efs .efs-chat-acciones { display: flex; }
.efs .efs-chat-acciones button {
	border: 0 !important; background: none !important; color: var(--efs-primario) !important; width: 32px; height: 32px;
	border-radius: 50% !important; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center;
}
.efs .efs-chat-acciones button:hover { background: var(--efs-gris) !important; }
.efs .efs-chat-menu {
	position: absolute; top: 100%; right: 6px; z-index: 5; min-width: 230px; padding: 6px; display: grid;
	background: #fff; color: var(--efs-texto); border-radius: 10px; box-shadow: var(--efs-sombra-alta);
}
.efs .efs-chat-menu button, .efs .efs-chat-menu a, .efs .efs-chat-menu span {
	display: block; padding: 8px 10px !important; border: 0 !important; background: none !important; text-align: left !important;
	border-radius: 6px !important; font-size: 14px !important; color: inherit !important;
}
.efs .efs-chat-menu span { color: var(--efs-suave) !important; font-size: 12px !important; }
.efs .efs-chat-menu button:hover, .efs .efs-chat-menu a:hover { background: var(--efs-gris) !important; }
.efs .efs-chat-mensajes { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 4px; background: #fff; }
.efs .efs-chat-msj { position: relative; display: flex; align-items: flex-end; gap: 6px; max-width: 85%; }
.efs .efs-chat-msj.efs-mio { align-self: flex-end; flex-direction: row-reverse; }
.efs .efs-chat-globo { background: var(--efs-gris); border-radius: 18px; padding: 8px 12px; font-size: 15px; overflow-wrap: anywhere; line-height: 1.35; }
.efs .efs-mio .efs-chat-globo { background: var(--efs-primario); color: var(--efs-sobre-primario); }
.efs .efs-mio .efs-chat-globo a { color: var(--efs-sobre-primario) !important; text-decoration: underline; }
.efs .efs-chat-globo img { display: block; max-width: 220px !important; border-radius: 12px; margin-top: 4px; height: auto !important; }
.efs .efs-chat-autor { display: block; font-weight: 700; font-size: 11px; color: var(--efs-suave); }
.efs .efs-chat-hora { display: none; font-size: 10px; opacity: .75; }
.efs .efs-chat-msj:hover .efs-chat-hora { display: block; }
.efs .efs-chat-borrar { display: none; border: 0 !important; background: none !important; color: var(--efs-suave) !important; font-size: 11px !important; padding: 2px !important; }
.efs .efs-chat-msj:hover .efs-chat-borrar { display: block; }
.efs .efs-visto { position: absolute; right: 0; bottom: -16px; font-size: 10px; color: var(--efs-suave); white-space: nowrap; }
.efs .efs-chat-msj.efs-mio:has(.efs-visto) { margin-bottom: 14px; }
.efs .efs-chat-aviso { align-self: center; font-size: 12px; color: var(--efs-suave); text-align: center; margin: 4px 0; }
.efs .efs-chat-archivo { color: inherit !important; }
.efs .efs-chat-estado { min-height: 18px; padding: 0 12px; font-size: 12px; color: var(--efs-suave); font-style: italic; }
.efs .efs-chat-form { display: flex; align-items: flex-end; gap: 4px; padding: 8px; margin: 0; }
.efs .efs-chat-form textarea {
	flex: 1; min-width: 0; height: 38px !important; max-height: 120px !important; border: 0 !important; border-radius: 20px !important;
	padding: 9px 14px !important; font-size: 15px !important; line-height: 20px !important; background: var(--efs-gris) !important; color: var(--efs-texto) !important;
}
.efs .efs-chat-form .efs-icono-btn { width: 38px; height: 38px; color: var(--efs-primario) !important; }

/* Pagina de mensajes */
.efs.efs-mensajes { display: grid; grid-template-columns: 340px 1fr; height: min(75vh, 720px); background: #fff; border-radius: var(--efs-radio); box-shadow: var(--efs-sombra); overflow: hidden; }
.efs .efs-mensajes-lista { display: flex; flex-direction: column; border-right: 1px solid var(--efs-borde); min-height: 0; }
.efs .efs-mensajes-lista header { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-bottom: 1px solid var(--efs-borde); }
.efs .efs-mensajes-lista header input { padding: 9px 14px !important; border: 0 !important; border-radius: 999px !important; background: var(--efs-gris) !important; font-size: 15px !important; height: auto !important; }
.efs .efs-mensajes-lista [data-efs-chat-lista] { overflow-y: auto; flex: 1; padding: 4px; }
.efs .efs-mensajes-vista { display: flex; flex-direction: column; min-height: 0; }
.efs .efs-mensajes-vista .efs-chat-ventana { height: 100%; }
.efs .efs-mensajes-vacia { margin: auto; color: var(--efs-suave); }
.efs .efs-volver-lista { display: none !important; }

/* ------------------------------------------------------------------ */
/* Celular                                                             */
/* ------------------------------------------------------------------ */
@media (max-width: 720px) {
	.efs .efs-tarjeta { border-radius: 0; margin-left: -12px; margin-right: -12px; }
	.efs .efs-post > .efs-fijado-etiqueta, .efs .efs-post > .efs-post-cabecera, .efs .efs-post > .efs-texto,
	.efs .efs-post > .efs-encuesta, .efs .efs-post > .efs-archivos, .efs .efs-post > .efs-leyenda,
	.efs .efs-post > .efs-estadisticas, .efs .efs-post > .efs-acciones-post, .efs .efs-post > .efs-comentarios { margin-left: 12px; margin-right: 12px; }
	.efs .efs-disparador-atajos .efs-btn { font-size: 13px !important; gap: 4px; }
	.efs .efs-btn-filtros span { display: none; }
	.efs .efs-btn-filtros { padding: 9px 12px !important; }
	.efs .efs-flotante:not(:last-child) { display: none; }
	.efs .efs-flotante { width: calc(100vw - 90px); height: 70vh; }
	.efs .efs-panel { right: 8px; left: 8px; width: auto; bottom: 76px; }
	.efs.efs-dock { right: 10px; bottom: 10px; }
	.efs .efs-dock-botones { flex-direction: row; }
	.efs .efs-dock-btn { width: 48px; height: 48px; }
	.efs .efs-chat-ventanas { position: fixed; left: 8px; right: 8px; bottom: 66px; justify-content: flex-end; }
	.efs.efs-mensajes { grid-template-columns: 1fr; height: calc(100vh - 140px); }
	.efs.efs-mensajes.efs-con-conversacion .efs-mensajes-lista { display: none; }
	.efs.efs-mensajes:not(.efs-con-conversacion) .efs-mensajes-vista { display: none; }
	.efs .efs-volver-lista { display: inline-flex !important; }
	.efs .efs-c-botones { grid-template-columns: 30px; }
	.efs .efs-reacciones-menu button { font-size: 26px !important; }
}
