/*
 * El marco de la aplicación: cabecera, ruta, menú lateral y pie.
 *
 * Reemplaza al que armaba PortalPanel, que era una cabecera de 180 px fija, un
 * cuerpo con margin-right de 350 y un menú de 340 flotado a la derecha, con la
 * ruta pegada por un handler de scroll. Acá el marco es un grid de cinco áreas
 * y la ruta se pega sola con position: sticky.
 *
 * Va como hoja aparte y no como CssResource por el mismo motivo que botones.css
 * y dialogos.css: usa grid, flex, calc y máscaras, que el parser de CssResource
 * de GWT no entiende, y así se ajusta el marco sin recompilar el módulo.
 *
 * Se engancha después de Donasur.css a propósito: hay reglas viejas con
 * !important que hay que ganarles, y entre dos !important de igual peso gana la
 * última.
 *
 * La tipografía se pone pieza por pieza —cabecera, ruta, menú, pie— y no sobre
 * .dsr-shell: adentro del cuerpo viven las pantallas de siempre, que heredan la
 * Tahoma de 12 que Donasur.css le pone al body, y no es esta etapa la que las
 * cambia.
 *
 * El diseño y la decisión de cada medida están en HOME_Y_MENU.md.
 */

/* ---------------------------------------------------------------- tokens */

:root {
	--dsr-tinta: #26303f;
	--dsr-tinta-suave: #5d6879;
	--dsr-linea: #d7deea;
	--dsr-linea-suave: #edf0f5;
	--dsr-fondo: #f4f6fa;
	--dsr-tarjeta: #ffffff;
	--dsr-principal: #1a4f9c;
	--dsr-principal-tinte: #eaeff6;
	--dsr-ok: #1c7a44;
	--dsr-ok-tinte: #ebf3ee;
	--dsr-atencion: #b45309;
	--dsr-atencion-tinte: #f8f0e9;
	--dsr-peligro: #a81f14;
	--dsr-peligro-tinte: #f7ebea;
	--dsr-acento: #C13100;
	--dsr-acento-tinte: #fbe6df;
	--dsr-sombra: 0 14px 38px rgba(16, 32, 64, .22), 0 2px 6px rgba(16, 32, 64, .10);

	--dsr-letra: "Segoe UI", "Helvetica Neue", Arial, sans-serif;

	/* 272 y no 260: «Países miembro de DONASUR» y «Auditoría y monitoreo
	   general» miden 178 px y a 260 se partían en dos renglones. */
	--dsr-pagina-ancho: 1400px;
	--dsr-pagina-margen: 24px;
	--dsr-sidebar-ancho: 272px;
	--dsr-riel-ancho: 56px;
	--dsr-drawer-ancho: 280px;
	--dsr-cabecera-alto: 60px;
	--dsr-ruta-alto: 36px;

	/* el sidebar va entintado: variante B, elegida el 10-sep-2026 */
	--dsr-menu-fondo: #16305c;
	--dsr-menu-tinta: #e3eaf6;
	--dsr-menu-tinta-suave: #9db0d3;
	--dsr-menu-linea: rgba(255, 255, 255, .12);
	--dsr-menu-hover: rgba(255, 255, 255, .08);
	--dsr-menu-activo-fondo: rgba(255, 255, 255, .16);
	--dsr-menu-activo-tinta: #ffffff;
	--dsr-menu-fuente: 13px;
	--dsr-menu-opcion-alto: 32px;
	--dsr-menu-grupo-alto: 38px;
}

/*
 * Las piezas del marco miden con el borde adentro. Va enumerado y no con un
 * selector universal a propósito: adentro del cuerpo viven las pantallas de
 * siempre, que están dibujadas midiendo como se medía antes.
 */
.dsr-shell__cabecera, .dsr-shell__cabecera *,
.dsr-ruta, .dsr-ruta *,
.dsr-shell__menu, .dsr-shell__menu *,
.dsr-shell__pie, .dsr-shell__pie *,
.dsr-cuenta, .dsr-cuenta * {
	box-sizing: border-box;
}

/* ------------------------------------------------------------------ íconos */

/*
 * Máscaras data-URI de Lucide, como en dialogos.css: el dibujo lo trae la
 * variable --dsr-ico y el color lo pone el texto de alrededor. El bloque de
 * abajo de todo lo escribe scripts/iconos_lucide.py.
 */
.dsr-ico {
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-image: var(--dsr-ico);
	mask-image: var(--dsr-ico);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.dsr-ico--14 { width: 14px; height: 14px; }
.dsr-ico--16 { width: 16px; height: 16px; }
.dsr-ico--20 { width: 20px; height: 20px; }
.dsr-ico--24 { width: 24px; height: 24px; }
.dsr-ico--32 { width: 32px; height: 32px; }

/* ------------------------------------------------------------ ayuda en línea */

/*
 * El signo de pregunta que abre la ayuda: la misma chapita en los dos homes, en
 * el encabezado de cada lista y adentro de un panel plegable. Vive acá y no en
 * la hoja de una pantalla porque aparece en todas.
 *
 * Las pseudo-clases van enumeradas para ganarle al `a, a:visited, a:hover` que
 * el tema estándar de GWT inyecta después de estas hojas: una pseudo-clase pesa
 * como una clase, así que `a:hover` le empata a `.dsr-ayuda` y, por venir
 * después, le gana.
 */
.dsr-ayuda,
.dsr-ayuda:link,
.dsr-ayuda:visited,
.dsr-ayuda:hover {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--dsr-principal);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

/* ------------------------------------------------------------------- shell */

/*
 * Un grid de cinco áreas. Los cinco paneles que reciben los ActivityManager
 * —cabecera, ruta, cuerpo, menú y pie— siguen siendo los mismos: cambia el
 * marco, no el cableado.
 *
 * La columna del contenido es minmax(0, 1fr) y no 1fr para que una pantalla
 * ancha desborde hacia afuera en vez de ensanchar la columna y correr el menú.
 *
 * El marco es contexto de apilamiento aparte para que su escala de z-index
 * —ruta, riel, flyout, cajón— no se le escape a la página. El velo gris de los
 * diálogos y del cartel de espera es un div que GWT cuelga del body sin z-index
 * propio, así que cualquier número suelto le gana: la ruta quedaba nítida, y
 * además clickeable, por encima del velo. Aislado, el marco entero se va atrás
 * del velo de una pieza.
 */
.dsr-shell {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: 100vh;
	grid-template-columns: var(--dsr-sidebar-ancho) minmax(0, 1fr);
	grid-template-rows: var(--dsr-cabecera-alto) 1fr auto;
	grid-template-areas:
		"cabecera cabecera"
		"menu principal"
		"pie pie";
	background: var(--dsr-fondo);
	text-align: left;
}

.dsr-shell--riel {
	--dsr-sidebar-ancho: var(--dsr-riel-ancho);
}

/*
 * Modo página: lo pide el home público, que muestra las herramientas como
 * tarjetas y no tiene otra cosa adónde ir. Se va la columna del menú y con ella
 * el botón del cajón, que abriría una columna vacía. Van con dos clases para
 * ganarle a la media query del cajón, que los vuelve a mostrar.
 */
.dsr-shell--pagina {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"cabecera"
		"principal"
		"pie";
}

.dsr-shell--pagina .dsr-shell__menu,
.dsr-shell--pagina .dsr-cab__hamb {
	display: none;
}

/*
 * Y se va la ruta, que es la otra pieza de navegación del marco. En el home
 * público no dice nada: o está vacía —es el primer paso, no hay por dónde
 * volver— y queda una franja con una línea abajo, o peor, quien entró sin
 * sesión a una dirección privada ve las migas de una pantalla que no se le
 * está mostrando.
 */
.dsr-shell--pagina .dsr-ruta {
	display: none;
}

/*
 * Sin menú las tres bandas se alinean con el cuerpo: el fondo sigue yendo de
 * borde a borde y lo de adentro entra en el mismo ancho centrado que el
 * contenido, así el logo, las tarjetas y el pie arrancan en la misma línea. Es
 * lo que hace cualquier sitio, y hace falta acá porque el home público es una
 * página; con menú la cabecera es la de una aplicación y manda la columna.
 */
.dsr-shell--pagina .dsr-shell__cabecera {
	padding: 0;
}

.dsr-shell--pagina .dsr-shell__cabmontaje,
.dsr-shell--pagina .dsr-pie {
	max-width: var(--dsr-pagina-ancho);
	margin-inline: auto;
	padding-inline: var(--dsr-pagina-margen);
}

/* el mismo escalón que baja el cuerpo, para que sigan arrancando juntos */
@media (max-width: 700px) {
	:root {
		--dsr-pagina-margen: 14px;
	}
}

/* el pie le presta la banda al marco para poder centrar lo de adentro */
.dsr-shell--pagina .dsr-shell__pie {
	background: var(--dsr-tarjeta);
	border-top: 1px solid var(--dsr-linea);
}

.dsr-shell--pagina .dsr-pie {
	background: none;
	border-top: 0;
}

.dsr-shell__principal {
	grid-area: principal;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

/*
 * El aire alrededor de la pantalla lo pone el marco y no cada pantalla: así
 * todas arrancan en la misma línea, las de siempre incluidas, que se dibujaban
 * pegadas al menú y al borde derecho de la ventana.
 *
 * Es la misma medida que usan la cabecera y el pie cuando el marco va sin menú,
 * para que en el home público las tres bandas sigan alineadas.
 */
.dsr-shell__cuerpo {
	flex: 1 1 auto;
	min-width: 0;
	padding: 20px var(--dsr-pagina-margen) 32px;
}

.dsr-shell__pie {
	grid-area: pie;
}

/* el fondo oscuro del cajón; sólo existe abajo de 1100 px y con el menú abierto */
.dsr-shell__fondo {
	display: none;
}

/* ----------------------------------------------------------------- cabecera */

/*
 * La fila entera es la cabecera: el botón del cajón lo dibuja el marco, porque
 * es él quien tiene el estado del menú, y el resto —logo, entorno, idiomas y
 * sesión— lo trae la vista de la cabecera adentro de .dsr-cab.
 */
.dsr-shell__cabecera {
	grid-area: cabecera;
	display: flex;
	align-items: center;
	gap: 6px;
	height: var(--dsr-cabecera-alto);
	padding: 0 16px 0 12px;
	background: var(--dsr-tarjeta);
	border-bottom: 1px solid var(--dsr-linea);
	font-family: var(--dsr-letra);
	font-size: 13px;
	color: var(--dsr-tinta);
}

.dsr-shell__cabmontaje {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
}

.dsr-cab {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 14px;
}

/* los links de la cabecera, menos el botón de entrar, que trae su color */
.dsr-cab a:not(.dsr-btn) {
	color: var(--dsr-principal);
	text-decoration: none;
}

.dsr-cab a:not(.dsr-btn):hover {
	text-decoration: underline;
}

.dsr-cab__hamb {
	display: none;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 5px;
	background: none;
	color: var(--dsr-tinta);
	cursor: pointer;
}

.dsr-cab__hamb:hover {
	background: var(--dsr-fondo);
}

.dsr-cab__logo {
	display: block;
	flex: none;
	height: 40px;
	width: auto;
	cursor: pointer;
}

/*
 * El rótulo de la plataforma, al lado del logo. Va con una línea divisoria y no
 * con una cápsula como la del entorno: la cápsula es el aviso de que ahí no se
 * carga en serio, y dos cápsulas seguidas dejan de avisar nada. Se achica y se
 * corta con puntos suspensivos antes que empujar al resto de la cabecera.
 */
.dsr-cab__titulo {
	flex: 0 1 auto;
	min-width: 0;
	padding: 2px 0 2px 14px;
	border-left: 1px solid var(--dsr-linea);
	font-size: 15px;
	font-weight: 600;
	color: var(--dsr-tinta);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dsr-cab__entorno {
	flex: none;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 3px;
	background: var(--dsr-acento-tinte);
	color: var(--dsr-acento);
	border: 1px solid #f0c3b5;
	white-space: nowrap;
}

.dsr-cab__derecha {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 18px;
}

.dsr-cab__idiomas {
	display: flex;
	align-items: center;
}

.dsr-cab__idiomas a {
	font-size: 12px;
	font-weight: 600;
	color: var(--dsr-tinta-suave);
	padding: 4px 7px;
	line-height: 1;
}

.dsr-cab__idiomas a + a {
	border-left: 1px solid var(--dsr-linea);
}

/* El idioma en el que ya está la pantalla se muestra sin link: es donde está
   el visitante, no un lugar al que ir. */
.dsr-cab__idiomas a.selectorIdiomaActivo {
	color: var(--dsr-tinta);
	cursor: default;
	text-decoration: none;
}

/* sin sesión */
.dsr-cab__sesion {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 12px;
}

/* los 12 del bloque, no los 11 que .gwt-Anchor le pone a todo Anchor */
.dsr-cab__sesion a:not(.dsr-btn) {
	font-size: inherit;
}

/*
 * Los dos links van uno abajo del otro: en fila medían casi 300 px de cabecera
 * y apilados ocupan lo que mide el más largo.
 */
.dsr-cab__sesionlinks {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	line-height: 1.3;
}

/* con sesión: el botón que abre el menú de cuenta */
.dsr-cab__cuenta {
	display: flex;
	align-items: center;
	padding: 4px 8px 4px 4px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: none;
	cursor: pointer;
	text-align: left;
}

.dsr-cab__cuentafila {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.dsr-cab__cuenta:hover,
.dsr-cab__cuenta[aria-expanded="true"] {
	background: var(--dsr-fondo);
	border-color: var(--dsr-linea);
}

.dsr-cab__avatarcaja {
	position: relative;
	flex: none;
	display: block;
}

.dsr-cab__avatar {
	display: grid;
	place-items: center;
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--dsr-principal);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	overflow: hidden;
}

.dsr-cab__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * El país del organismo, prendido al avatar como una chapa. El aro del color
 * del fondo la despega del azul del círculo, que es el que la recorta.
 */
.dsr-cab__bandera {
	position: absolute;
	left: -3px;
	bottom: -2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	/* el original trae un pixel de margen transparente: el mismo color atras
	   que en el aro, para que no quede una hendija entre el disco y el filo */
	background: var(--dsr-tarjeta);
	box-shadow: 0 0 0 2px var(--dsr-tarjeta);
}

.dsr-cab__cuenta:hover .dsr-cab__bandera,
.dsr-cab__cuenta[aria-expanded="true"] .dsr-cab__bandera {
	background: var(--dsr-fondo);
	box-shadow: 0 0 0 2px var(--dsr-fondo);
}

.dsr-cab__quien {
	line-height: 1.25;
	min-width: 0;
}

.dsr-cab__nombre {
	display: block;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dsr-cab__detalle {
	display: block;
	font-size: 11px;
	color: var(--dsr-tinta-suave);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dsr-cab__cuenta .dsr-ico {
	color: var(--dsr-tinta-suave);
}

/* ---------------------------------------------------------- menú de cuenta */

/*
 * Un PopupPanel con autohide colgado del avatar, no un diálogo: no es modal y
 * no tapa la pantalla. GWT le pone la posición, así que acá sólo va el aspecto.
 */
.gwt-PopupPanel.dsr-cuenta {
	border: 0 !important;
	background: none;
	padding: 0;
}

.dsr-cuenta .popupContent {
	border: 0;
	padding: 0;
	background: none;
}

.dsr-cuenta__caja {
	width: 300px;
	padding: 6px;
	background: var(--dsr-tarjeta);
	border: 1px solid var(--dsr-linea);
	border-radius: 6px;
	box-shadow: var(--dsr-sombra);
	font-family: var(--dsr-letra);
	font-size: 13px;
	color: var(--dsr-tinta);
	text-align: left;
}

.dsr-cuenta__cab {
	padding: 8px 10px 10px;
	border-bottom: 1px solid var(--dsr-linea-suave);
	margin-bottom: 4px;
}

.dsr-cuenta__nombre {
	font-weight: 600;
}

.dsr-cuenta__dato {
	font-size: 12px;
	color: var(--dsr-tinta-suave);
}

.dsr-cuenta__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: 4px;
	color: var(--dsr-tinta);
	font-size: 12.5px;
	text-decoration: none;
	cursor: pointer;
}

.dsr-cuenta__item:hover {
	background: var(--dsr-fondo);
	text-decoration: none;
}

.dsr-cuenta__item .dsr-ico {
	width: 16px;
	height: 16px;
	color: var(--dsr-tinta-suave);
}

.dsr-cuenta__item--salir {
	color: var(--dsr-peligro);
}

.dsr-cuenta__item--salir .dsr-ico {
	color: var(--dsr-peligro);
}

/* --------------------------------------------------------------------- ruta */

/*
 * Sticky por CSS en lugar del handler de scroll que había. Vive adentro de la
 * columna del contenido y no como fila del grid: sticky sólo pega mientras se
 * ve el contenedor del elemento, y el que scrollea es la columna.
 */
.dsr-ruta {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	height: var(--dsr-ruta-alto);
	padding: 0 24px;
	background: var(--dsr-tarjeta);
	border-bottom: 1px solid var(--dsr-linea);
	font-family: var(--dsr-letra);
	font-size: 12px;
	color: var(--dsr-tinta);
	white-space: nowrap;
	overflow: hidden;
}

.dsr-ruta__pasos {
	display: flex;
	align-items: center;
	min-width: 0;
}

.dsr-ruta__paso {
	display: inline-flex;
	align-items: center;
	min-width: 0;
}

/* el primer paso es siempre el inicio, y lo dice el ícono */
.dsr-ruta__casa {
	display: none;
	width: 14px;
	height: 14px;
	margin-right: 5px;
	color: var(--dsr-tinta-suave);
}

.dsr-ruta__pasos > .dsr-ruta__paso:first-child .dsr-ruta__casa {
	display: inline-block;
}

.dsr-ruta__actual {
	color: var(--dsr-tinta);
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
}

/*
 * El font-size va dicho y no heredado a secas: .gwt-Anchor de Donasur.css le
 * pone 11 px a todo Anchor, y un paso de la ruta salía más chico que el paso
 * actual, que es un span. Lo mismo pasa en los links de sesión y en los homes.
 */
.dsr-ruta__item {
	color: var(--dsr-principal);
	font-size: inherit;
	text-decoration: none;
	cursor: pointer;
}

.dsr-ruta__item:hover {
	color: var(--dsr-principal);
	text-decoration: underline;
}

.dsr-ruta__sep {
	width: 14px;
	height: 14px;
	margin: 0 6px;
	color: #a4adbb;
}

/* ------------------------------------------------------------------ sidebar */

/*
 * La columna entintada. El tinte va acá, sobre el área del grid, para que llegue
 * hasta el pie aunque el menú sea corto; adentro, el panel se pega solo y
 * scrollea aparte cuando no entra en la ventana.
 */
.dsr-shell__menu {
	grid-area: menu;
	min-width: 0;
	background: var(--dsr-menu-fondo);
	color: var(--dsr-menu-tinta);
	font-family: var(--dsr-letra);
	font-size: var(--dsr-menu-fuente);
}

/*
 * Alto completo de la columna y no el del menú: así el pie con la ayuda queda
 * abajo de todo aunque el menú sea corto.
 *
 * El que scrollea es la lista y no el panel: el rótulo y la ayuda se quedan
 * quietos arriba y abajo, que es de lo que se trata tener la ayuda a mano.
 */
.dsr-menu__panel {
	position: sticky;
	top: 0;
	height: 100%;
	max-height: 100vh;
	display: flex;
	flex-direction: column;
}

.dsr-menu__cab {
	display: flex;
	align-items: center;
	flex: none;
	height: var(--dsr-ruta-alto);
	padding: 0 8px 0 18px;
	border-bottom: 1px solid var(--dsr-menu-linea);
}

.dsr-menu__rotulo {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dsr-menu-tinta-suave);
}

.dsr-menu__plegar,
.dsr-menu__cerrar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 28px;
	height: 28px;
	margin-left: auto;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: none;
	color: var(--dsr-menu-tinta-suave);
	cursor: pointer;
}

.dsr-menu__plegar:hover,
.dsr-menu__cerrar:hover {
	background: var(--dsr-menu-hover);
	color: var(--dsr-menu-tinta);
}

.dsr-menu__plegar .dsr-ico,
.dsr-menu__cerrar .dsr-ico {
	width: 16px;
	height: 16px;
}

/* la equis es del cajón; el doble chevrón, de la columna */
.dsr-menu__cerrar {
	display: none;
}

.dsr-menu__plegar .dsr-ico--chevrons-right {
	display: none;
}

.dsr-shell--riel .dsr-menu__plegar .dsr-ico--chevrons-left {
	display: none;
}

.dsr-shell--riel .dsr-menu__plegar .dsr-ico--chevrons-right {
	display: inline-block;
}

.dsr-menu__montaje {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 0;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

/*
 * La ayuda en línea, abajo de todo. Es del marco y no del menú a propósito: no
 * depende de la pantalla ni de si hay sesión, y es lo primero que se busca
 * cuando algo no se entiende. Va pegada con sticky para que un menú largo no se
 * la lleve al scrollear.
 */
.dsr-menu__pie {
	position: sticky;
	bottom: 0;
	flex: none;
	padding: 8px;
	background: var(--dsr-menu-fondo);
	border-top: 1px solid var(--dsr-menu-linea);
}

.dsr-menu__ayuda {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: var(--dsr-menu-opcion-alto);
	padding: 4px 10px;
	border-radius: 5px;
	color: var(--dsr-menu-tinta);
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}

.dsr-menu__ayuda:hover {
	background: var(--dsr-menu-hover);
	color: var(--dsr-menu-activo-tinta);
	text-decoration: none;
}

.dsr-menu__ayuda .dsr-ico {
	color: var(--dsr-menu-tinta-suave);
}

/* ------------------------------------------------------------------ el menú */

.dsr-menu {
	flex: 1 1 auto;
	min-width: 0;
}

.dsr-menu__grupos,
.dsr-menu__opciones {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dsr-menu__grupos {
	padding: 8px;
}

.dsr-menu__grupo {
	position: relative;
}

.dsr-menu__grupo + .dsr-menu__grupo {
	margin-top: 2px;
}

.dsr-menu__cabgrupo {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: var(--dsr-menu-grupo-alto);
	padding: 4px 8px 4px 10px;
	border: 0;
	border-radius: 5px;
	background: none;
	color: var(--dsr-menu-tinta);
	font: inherit;
	font-weight: 600;
	line-height: 1.25;
	text-align: left;
	cursor: pointer;
}

.dsr-menu__cabgrupo:hover {
	background: var(--dsr-menu-hover);
}

.dsr-menu__cabgrupo .dsr-ico {
	color: var(--dsr-menu-tinta-suave);
}

.dsr-menu__titulo {
	flex: 1 1 auto;
	min-width: 0;
}

.dsr-menu__flecha {
	width: 14px;
	height: 14px;
	margin-left: auto;
	transition: transform .15s ease;
}

.dsr-menu__grupo--abierto > .dsr-menu__cabgrupo,
.dsr-menu__grupo--abierto > .dsr-menu__cabgrupo .dsr-ico {
	color: var(--dsr-menu-activo-tinta);
}

.dsr-menu__grupo--abierto > .dsr-menu__cabgrupo > .dsr-menu__flecha {
	transform: rotate(90deg);
}

.dsr-menu__grupo--activo:not(.dsr-menu__grupo--abierto) > .dsr-menu__cabgrupo {
	color: var(--dsr-menu-activo-tinta);
}

.dsr-menu__opciones {
	display: none;
	padding: 2px 0 6px;
}

.dsr-menu__grupo--abierto > .dsr-flyout > .dsr-menu__opciones {
	display: block;
}

.dsr-menu__opcion,
.dsr-menu__subcab {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: var(--dsr-menu-opcion-alto);
	padding: 4px 10px 4px 38px;
	border: 0;
	border-radius: 5px;
	background: none;
	color: var(--dsr-menu-tinta);
	font: inherit;
	line-height: 1.3;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

/*
 * El color va repetido acá, como en las variantes de botones.css: el tema
 * estándar de GWT trae `a, a:visited, a:hover { color: #0000AA }` y al pasar el
 * mouse le gana a la clase, así que la opción se ponía azul oscuro sobre el
 * azul del menú.
 */
.dsr-menu__opcion:hover,
.dsr-menu__subcab:hover {
	background: var(--dsr-menu-hover);
	color: var(--dsr-menu-tinta);
	text-decoration: none;
}

.dsr-menu__opcion--activa,
.dsr-menu__opcion--activa:hover {
	background: var(--dsr-menu-activo-fondo);
	color: var(--dsr-menu-activo-tinta);
	font-weight: 600;
}

.dsr-menu__subcab .dsr-menu__flecha {
	color: var(--dsr-menu-tinta-suave);
}

.dsr-menu__sub > .dsr-menu__opciones {
	display: none;
	padding: 0 0 2px;
}

.dsr-menu__sub--abierto > .dsr-menu__opciones {
	display: block;
}

.dsr-menu__sub--abierto > .dsr-menu__subcab > .dsr-menu__flecha {
	transform: rotate(90deg);
}

/* el tercer y cuarto nivel se conservan como disclosure anidado */
.dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opcion,
.dsr-menu__opciones .dsr-menu__opciones .dsr-menu__subcab {
	padding-left: 52px;
}

.dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opcion,
.dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__subcab {
	padding-left: 66px;
}

.dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opcion {
	padding-left: 80px;
}

/* -------------------------------------------------------------------- riel */

/*
 * Contraído a los íconos. El flyout necesita salirse de la columna, así que la
 * lista deja de scrollear y el z-index sube: las máscaras de los íconos crean
 * contexto de apilado y sin esto pintan por encima del flyout.
 */
.dsr-shell--riel .dsr-menu__panel {
	z-index: 10;
}

.dsr-shell--riel .dsr-menu__montaje {
	overflow: visible;
}

.dsr-shell--riel .dsr-menu__cab {
	padding: 0;
	justify-content: center;
}

.dsr-shell--riel .dsr-menu__rotulo {
	display: none;
}

.dsr-shell--riel .dsr-menu__plegar {
	margin: 0;
}

.dsr-shell--riel .dsr-menu__grupos {
	padding: 8px 6px;
}

.dsr-shell--riel .dsr-menu__cabgrupo {
	justify-content: center;
	padding: 0;
	height: 40px;
}

.dsr-shell--riel .dsr-menu__cabgrupo .dsr-ico {
	width: 20px;
	height: 20px;
}

.dsr-shell--riel .dsr-menu__cabgrupo > .dsr-menu__titulo,
.dsr-shell--riel .dsr-menu__cabgrupo > .dsr-menu__flecha {
	display: none;
}

.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-menu__cabgrupo,
.dsr-shell--riel .dsr-menu__grupo--activo > .dsr-menu__cabgrupo {
	background: var(--dsr-menu-activo-fondo);
}

/* contraída, la ayuda queda en el ícono, como los grupos */
.dsr-shell--riel .dsr-menu__pie {
	padding: 6px;
}

.dsr-shell--riel .dsr-menu__ayuda {
	justify-content: center;
	padding: 0;
	height: 40px;
}

.dsr-shell--riel .dsr-menu__ayuda .dsr-ico {
	width: 20px;
	height: 20px;
}

.dsr-shell--riel .dsr-menu__ayudatexto {
	display: none;
}

/*
 * El flyout. En columna el envoltorio no pinta nada; contraída, la lista del
 * grupo abierto se despega y se dibuja como una tarjeta al lado del ícono, con
 * el título y la descripción del grupo arriba, que es lo único que el riel no
 * puede mostrar.
 */
.dsr-flyout__cab {
	display: none;
	padding: 8px 10px 10px;
	border-bottom: 1px solid var(--dsr-linea-suave);
	margin-bottom: 4px;
}

.dsr-flyout__titulo {
	font-weight: 600;
	color: var(--dsr-principal);
}

.dsr-flyout__desc {
	font-size: 12px;
	color: var(--dsr-tinta-suave);
	margin-top: 2px;
}

.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-flyout {
	position: absolute;
	left: calc(100% + 6px);
	top: 0;
	width: 300px;
	max-height: calc(100vh - 24px);
	overflow-y: auto;
	padding: 6px;
	background: var(--dsr-tarjeta);
	color: var(--dsr-tinta);
	border: 1px solid var(--dsr-linea);
	border-radius: 6px;
	box-shadow: var(--dsr-sombra);
	z-index: 30;
}

.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-flyout > .dsr-flyout__cab {
	display: block;
}

.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-flyout > .dsr-menu__opciones {
	padding: 0;
}

.dsr-shell--riel .dsr-flyout .dsr-menu__opcion,
.dsr-shell--riel .dsr-flyout .dsr-menu__subcab {
	padding-left: 12px;
	color: var(--dsr-tinta);
}

.dsr-shell--riel .dsr-flyout .dsr-menu__opcion:hover,
.dsr-shell--riel .dsr-flyout .dsr-menu__subcab:hover {
	background: var(--dsr-fondo);
}

.dsr-shell--riel .dsr-flyout .dsr-menu__opcion--activa,
.dsr-shell--riel .dsr-flyout .dsr-menu__opcion--activa:hover {
	background: var(--dsr-principal-tinte);
	color: var(--dsr-principal);
}

.dsr-shell--riel .dsr-flyout .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opcion,
.dsr-shell--riel .dsr-flyout .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__subcab {
	padding-left: 28px;
}

.dsr-shell--riel .dsr-flyout .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opcion,
.dsr-shell--riel .dsr-flyout .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__opciones .dsr-menu__subcab {
	padding-left: 44px;
}

.dsr-shell--riel .dsr-flyout .dsr-menu__subcab .dsr-menu__flecha {
	color: var(--dsr-tinta-suave);
}

/* ------------------------------------------------------------------- cajón */

/*
 * Abajo de 1100 px el menú no cabe al lado de un contenido que pide 1000: se
 * esconde y sale con el botón de la cabecera, sobre un fondo oscuro. Es una
 * media query y no una clase a propósito: así el Java no tiene que escuchar el
 * resize, sólo abrir y cerrar.
 */
@media (max-width: 1099px) {
	.dsr-shell {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"cabecera"
			"principal"
			"pie";
	}

	.dsr-cab__hamb {
		display: inline-flex;
	}

	.dsr-shell__menu {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		width: var(--dsr-drawer-ancho);
		z-index: 60;
		transform: translateX(-100%);
		transition: transform .18s ease-out;
	}

	.dsr-shell--menu-abierto .dsr-shell__menu {
		transform: none;
		box-shadow: var(--dsr-sombra);
	}

	.dsr-menu__panel {
		position: static;
		height: 100%;
		max-height: none;
	}

	.dsr-shell__fondo {
		position: fixed;
		inset: 0;
		z-index: 59;
		background: rgba(11, 21, 36, .38);
	}

	.dsr-shell--menu-abierto .dsr-shell__fondo {
		display: block;
	}

	.dsr-menu__cab {
		height: var(--dsr-cabecera-alto);
	}

	.dsr-menu__plegar {
		display: none;
	}

	.dsr-menu__cerrar {
		display: inline-flex;
	}

	/* en el cajón el menú siempre va expandido, elija lo que elija el usuario */
	.dsr-shell--riel .dsr-menu__panel {
		overflow-y: auto;
	}

	.dsr-shell--riel .dsr-menu__rotulo,
	.dsr-shell--riel .dsr-menu__ayudatexto {
		display: inline;
	}

	.dsr-shell--riel .dsr-menu__pie {
		padding: 8px;
	}

	.dsr-shell--riel .dsr-menu__ayuda {
		justify-content: flex-start;
		padding: 4px 10px;
		height: auto;
	}

	.dsr-shell--riel .dsr-menu__ayuda .dsr-ico {
		width: 18px;
		height: 18px;
	}

	.dsr-shell--riel .dsr-menu__cab {
		padding: 0 8px 0 18px;
		justify-content: flex-start;
	}

	.dsr-shell--riel .dsr-menu__grupos {
		padding: 8px;
	}

	.dsr-shell--riel .dsr-menu__cabgrupo {
		justify-content: flex-start;
		padding: 4px 8px 4px 10px;
		height: auto;
	}

	.dsr-shell--riel .dsr-menu__cabgrupo .dsr-ico {
		width: 18px;
		height: 18px;
	}

	.dsr-shell--riel .dsr-menu__cabgrupo > .dsr-menu__titulo,
	.dsr-shell--riel .dsr-menu__cabgrupo > .dsr-menu__flecha {
		display: block;
	}

	.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-flyout {
		position: static;
		width: auto;
		max-height: none;
		padding: 0;
		background: none;
		color: inherit;
		border: 0;
		box-shadow: none;
	}

	.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-flyout > .dsr-flyout__cab {
		display: none;
	}

	.dsr-shell--riel .dsr-flyout .dsr-menu__opcion,
	.dsr-shell--riel .dsr-flyout .dsr-menu__subcab {
		padding-left: 38px;
		color: var(--dsr-menu-tinta);
	}

	.dsr-shell--riel .dsr-flyout .dsr-menu__opcion:hover,
	.dsr-shell--riel .dsr-flyout .dsr-menu__subcab:hover {
		background: var(--dsr-menu-hover);
	}

	.dsr-shell--riel .dsr-menu__grupo--abierto > .dsr-menu__cabgrupo {
		background: none;
	}
}

@media (max-width: 600px) {
	.dsr-shell__cabecera {
		gap: 4px;
		padding: 0 10px 0 6px;
	}

	.dsr-cab {
		gap: 10px;
	}

	.dsr-cab__logo img {
		height: 32px;
	}

	.dsr-cab__titulo,
	.dsr-cab__entorno,
	.dsr-cab__quien,
	.dsr-cab__cuenta > .dsr-ico,
	.dsr-cab__sesionlinks {
		display: none;
	}

	.dsr-cab__derecha {
		gap: 10px;
	}

	.dsr-ruta {
		padding: 0 14px;
	}
}

/* ---------------------------------------------------------------------- pie */

.dsr-pie {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 24px;
	background: var(--dsr-tarjeta);
	border-top: 1px solid var(--dsr-linea);
	font-family: var(--dsr-letra);
	font-size: 12px;
	color: var(--dsr-tinta-suave);
}

.dsr-pie img {
	flex: none;
	width: 36px;
	height: auto;
}

.dsr-pie b {
	display: block;
	color: var(--dsr-tinta);
	font-weight: 600;
}

.dsr-pie a {
	color: var(--dsr-principal);
	text-decoration: none;
}

/* el color repetido, por lo mismo que en el menú y en los botones */
.dsr-pie a:hover {
	color: var(--dsr-principal);
	text-decoration: underline;
}

/* ------------------------------------------------- el menú de siempre, mientras */

/*
 * El menú viejo vive adentro del sidebar hasta que lo reemplace el nuevo, y está
 * pintado para fondo blanco. Sus dos encabezados van directo sobre el tinte, así
 * que ahí la tinta se aclara; las opciones traen su propio fondo claro y ahí
 * vuelve a ser oscura. Estas dos reglas se van con MenuUser.
 */
.dsr-shell__menu .gwt-DisclosurePanel .header,
.dsr-shell__menu .gwt-DisclosurePanel .header a,
.dsr-shell__menu .gwt-DisclosurePanel .header td {
	color: var(--dsr-menu-tinta);
}

.dsr-shell__menu .gwt-StackPanelItem,
.dsr-shell__menu .gwt-StackPanelContent {
	color: var(--dsr-tinta);
}

/* >>> iconos de Lucide: generados por scripts/iconos_lucide.py, no editar a mano */

/*
 * Iconos de Lucide 1.43.0 (https://lucide.dev), licencia ISC:
 * Copyright (c) Lucide Contributors. Se conserva el aviso, que es lo unico
 * que la licencia pide.
 *
 * Del SVG de Lucide se copia solo el dibujo; el envoltorio y el grosor los
 * pone este bloque, y el color lo pone la tinta de alrededor.
 */

/* el boton que abre el menu cuando es cajon */
.dsr-ico--menu {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 19h16'/%3E%3C/svg%3E");
}

/* cerrar el cajon */
.dsr-ico--x {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
}

/* contraer el sidebar */
.dsr-ico--chevrons-left {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17-5-5 5-5'/%3E%3Cpath d='m18 17-5-5 5-5'/%3E%3C/svg%3E");
}

/* expandirlo de vuelta */
.dsr-ico--chevrons-right {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 17 5-5-5-5'/%3E%3Cpath d='m13 17 5-5-5-5'/%3E%3C/svg%3E");
}

/* el menu de cuenta, cerrado */
.dsr-ico--chevron-down {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* separador de la ruta y flecha de los grupos */
.dsr-ico--chevron-right {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}

/* el primer paso de la ruta */
.dsr-ico--house {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8'/%3E%3Cpath d='M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3C/svg%3E");
}

/* iniciar sesion */
.dsr-ico--log-in {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10 17 5-5-5-5'/%3E%3Cpath d='M15 12H3'/%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3C/svg%3E");
}

/* cerrar sesion */
.dsr-ico--log-out {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16 17 5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E");
}

/* ver mis datos de usuario */
.dsr-ico--id-card {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 19a4 4 0 00-8 0'/%3E%3Cpath d='M16 10h2'/%3E%3Cpath d='M16 14h2'/%3E%3Ccircle cx='9' cy='12' r='3'/%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3C/svg%3E");
}

/* cambiar contrasena y datos personales */
.dsr-ico--user-pen {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.5 15H7a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3Ccircle cx='10' cy='7' r='4'/%3E%3C/svg%3E");
}

/* grupo: usuarios */
.dsr-ico--users {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E");
}

/* grupo: paises miembro */
.dsr-ico--globe {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E");
}

/* grupo: informacion del pais */
.dsr-ico--landmark {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 18v-7'/%3E%3Cpath d='M11.119 2.205a2 2 0 0 1 1.762 0l7.84 3.846A.5.5 0 0 1 20.5 7h-17a.5.5 0 0 1-.22-.949z'/%3E%3Cpath d='M14 18v-7'/%3E%3Cpath d='M18 18v-7'/%3E%3Cpath d='M3 22h18'/%3E%3Cpath d='M6 18v-7'/%3E%3C/svg%3E");
}

/* grupo: gestion de registros */
.dsr-ico--clipboard-list {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4'/%3E%3Cpath d='M12 16h4'/%3E%3Cpath d='M8 11h.01'/%3E%3Cpath d='M8 16h.01'/%3E%3C/svg%3E");
}

/* grupo: auditoria y monitoreo general */
.dsr-ico--activity {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2'/%3E%3C/svg%3E");
}

/* grupo: glosario */
.dsr-ico--book-open {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v16'/%3E%3Cpath d='M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z'/%3E%3C/svg%3E");
}

/* grupo: control de cambios, y la accion de fila CAMBIOS_CUENTA */
.dsr-ico--history {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3Cpath d='M12 7v5l4 2'/%3E%3C/svg%3E");
}

/* grupo: traducciones */
.dsr-ico--languages {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 6 6'/%3E%3Cpath d='m4 14 6-6 2-3'/%3E%3Cpath d='M2 5h12'/%3E%3Cpath d='M7 2h1'/%3E%3Cpath d='m22 22-5-10-5 10'/%3E%3Cpath d='M14 18h6'/%3E%3C/svg%3E");
}

/* grupo: certificaciones */
.dsr-ico--award {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526'/%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3C/svg%3E");
}

/* grupo: documentacion, y la accion de fila VER_DOCUMENTOS_NO */
.dsr-ico--folder {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E");
}

/* grupo: soporte tecnico */
.dsr-ico--life-buoy {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m4.93 4.93 4.24 4.24'/%3E%3Cpath d='m14.83 9.17 4.24-4.24'/%3E%3Cpath d='m14.83 14.83 4.24 4.24'/%3E%3Cpath d='m9.17 14.83-4.24 4.24'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");
}

/* grupo: mi menu */
.dsr-ico--user {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}

/* grupo: herramientas publicas */
.dsr-ico--layout-grid {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='14' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3C/svg%3E");
}

/* home: mensajes y alertas */
.dsr-ico--bell {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.268 21a2 2 0 0 0 3.464 0'/%3E%3Cpath d='M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326'/%3E%3C/svg%3E");
}

/* home: ultimo ingreso */
.dsr-ico--clock {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
}

/* home: vencimientos de la cuenta */
.dsr-ico--calendar-clock {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 14v2.2l1.6 1'/%3E%3Cpath d='M16 2v3'/%3E%3Cpath d='M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338'/%3E%3Cpath d='M3 9h5.859'/%3E%3Cpath d='M8 2v3'/%3E%3Ccircle cx='16' cy='16' r='6'/%3E%3C/svg%3E");
}

/* home: herramientas publicas */
.dsr-ico--external-link {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
}

/* central de reportes */
.dsr-ico--chart-column {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v16a2 2 0 0 0 2 2h16'/%3E%3Cpath d='M18 17V9'/%3E%3Cpath d='M13 17V5'/%3E%3Cpath d='M8 17v-3'/%3E%3C/svg%3E");
}

/* acerca de DONASUR */
.dsr-ico--info {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
}

/* home publico: novedades */
.dsr-ico--newspaper {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18h-5'/%3E%3Cpath d='M18 14h-8'/%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2'/%3E%3Crect width='8' height='4' x='10' y='6' rx='1'/%3E%3C/svg%3E");
}

/* home publico: los paises actualizan sus registros */
.dsr-ico--refresh-cw {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16'/%3E%3Cpath d='M8 16H3v5'/%3E%3C/svg%3E");
}

/* home publico: no incluye identificacion de las personas */
.dsr-ico--eye-off {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49'/%3E%3Cpath d='M14.084 14.158a3 3 0 0 1-4.242-4.242'/%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143'/%3E%3Cpath d='m2 2 20 20'/%3E%3C/svg%3E");
}

/* ayuda en linea */
.dsr-ico--circle-question-mark {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}

/* listas: volver a la pantalla anterior */
.dsr-ico--arrow-left {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E");
}

/* listas: columna ordenada de menor a mayor */
.dsr-ico--arrow-up {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 7-7 7 7'/%3E%3Cpath d='M12 19V5'/%3E%3C/svg%3E");
}

/* listas: columna ordenada de mayor a menor */
.dsr-ico--arrow-down {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m19 12-7 7-7-7'/%3E%3C/svg%3E");
}

/* listas: pagina anterior */
.dsr-ico--chevron-left {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
}

/* listas: sumar un filtro */
.dsr-ico--plus {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
}

/* listas: quitar el ultimo filtro */
.dsr-ico--minus {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}

/* listas: la ruedita que abre el elegir columnas */
.dsr-ico--settings {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

/* listas: bajar la lista a un archivo, y la accion DESCARGAR */
.dsr-ico--download {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V3'/%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}

/* listas: la lupa del filtro que abre un buscador */
.dsr-ico--search {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 21-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/svg%3E");
}

/* accion de fila: ELIMINAR */
.dsr-ico--trash-2 {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
}

/* accion de fila: DESHABILITAR */
.dsr-ico--ban {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M4.929 4.929 19.07 19.071'/%3E%3C/svg%3E");
}

/* accion de fila: HABILITAR */
.dsr-ico--circle-check {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16 9-5.5 5.5L8 12'/%3E%3C/svg%3E");
}

/* accion de fila: APROBAR; no puede ser otro visto bueno porque circle-check ya es HABILITAR */
.dsr-ico--thumbs-up {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z'/%3E%3Cpath d='M7 10v12'/%3E%3C/svg%3E");
}

/* accion de fila: ARCHIVAR */
.dsr-ico--archive {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='5' x='2' y='3' rx='1'/%3E%3Cpath d='M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8'/%3E%3Cpath d='M10 12h4'/%3E%3C/svg%3E");
}

/* accion de fila: RESETEAR */
.dsr-ico--key {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 21 9.6-9.6'/%3E%3Cpath d='m7.5 15.5 2.3 2.3a1 1 0 0 1 0 1.4l-2.1 2.1a1 1 0 0 1-1.4 0L4 19'/%3E%3Ccircle cx='15.5' cy='7.5' r='5.5'/%3E%3C/svg%3E");
}

/* accion de fila: DIAGRAMA_TRAZABILIDAD */
.dsr-ico--network {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='16' y='16' width='6' height='6' rx='1'/%3E%3Crect x='2' y='16' width='6' height='6' rx='1'/%3E%3Crect x='9' y='2' width='6' height='6' rx='1'/%3E%3Cpath d='M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3'/%3E%3Cpath d='M12 12V8'/%3E%3C/svg%3E");
}

/* accion de fila: IMPRIMIR_CONSTANCIA */
.dsr-ico--printer {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6'/%3E%3Crect x='6' y='14' width='12' height='8' rx='1'/%3E%3C/svg%3E");
}

/* accion de fila: EJECUTAR */
.dsr-ico--play {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z'/%3E%3C/svg%3E");
}

/* accion de fila: COMPARTIR y COMPARTIR_DOCUMENTO */
.dsr-ico--share-2 {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' x2='15.42' y1='13.51' y2='17.49'/%3E%3Cline x1='15.41' x2='8.59' y1='6.51' y2='10.49'/%3E%3C/svg%3E");
}

/* accion de fila: VER_DOCUMENTOS_SI */
.dsr-ico--folder-check {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3Cpath d='m9 13 2 2 4-4'/%3E%3C/svg%3E");
}

/* accion de fila: RECUPERAR, en blanco sobre el disco verde, y la que no reconoce ninguna */
.dsr-ico--arrow-right {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
}

/* accion de fila: RECUPERAR_SECUNDARIO y RECUPERAR_VERSION */
.dsr-ico--file-diff {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M9 10h6'/%3E%3Cpath d='M12 13V7'/%3E%3Cpath d='M9 17h6'/%3E%3C/svg%3E");
}

/* accion de fila: RECUPERAR_MAPA */
.dsr-ico--map-pin {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

/* accion de fila: RECUPERAR_UBICACION */
.dsr-ico--map-pin-off {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.75 7.09a3 3 0 0 1 2.16 2.16'/%3E%3Cpath d='M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568'/%3E%3Cpath d='m2 2 20 20'/%3E%3Cpath d='M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533'/%3E%3Cpath d='M9.13 9.13a3 3 0 0 0 3.74 3.74'/%3E%3C/svg%3E");
}

/* accion de fila: ST_VER_TICKETS */
.dsr-ico--ticket {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z'/%3E%3Cpath d='M13 5v2'/%3E%3Cpath d='M13 17v2'/%3E%3Cpath d='M13 11v2'/%3E%3C/svg%3E");
}

/* accion de fila: ST_VER_RESPUESTA */
.dsr-ico--message-square-reply {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z'/%3E%3Cpath d='m10 8-3 3 3 3'/%3E%3Cpath d='M17 14v-1a2 2 0 0 0-2-2H7'/%3E%3C/svg%3E");
}

/* accion de fila: ACTUALIZAR_SEGUIMIENTO */
.dsr-ico--calendar-check {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E");
}

/* celda: alerta de categoria ADVERTENCIA */
.dsr-ico--triangle-alert {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}

/* celda: alerta de categoria SITUACION CRITICA */
.dsr-ico--circle-alert {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E");
}

/* celda: alerta de despliegue, una version nueva */
.dsr-ico--package {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z'/%3E%3Cpath d='M12 22V12'/%3E%3Cpolyline points='3.29 7 12 12 20.71 7'/%3E%3Cpath d='m7.5 4.27 9 5.15'/%3E%3C/svg%3E");
}

/* celda: un PDF o un texto plano */
.dsr-ico--file-text {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3Cpath d='M10 9H8'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E");
}

/* celda: un documento de Word */
.dsr-ico--file-type {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3Cpath d='M11 18h2'/%3E%3Cpath d='M12 12v6'/%3E%3Cpath d='M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5'/%3E%3C/svg%3E");
}

/* celda: una planilla */
.dsr-ico--file-spreadsheet {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3Cpath d='M8 13h2'/%3E%3Cpath d='M14 13h2'/%3E%3Cpath d='M8 17h2'/%3E%3Cpath d='M14 17h2'/%3E%3C/svg%3E");
}

/* celda: una presentacion */
.dsr-ico--presentation {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h20'/%3E%3Cpath d='M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3'/%3E%3Cpath d='m7 21 5-5 5 5'/%3E%3C/svg%3E");
}

/* celda: una imagen */
.dsr-ico--file-image {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Cpath d='m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22'/%3E%3C/svg%3E");
}

/* celda: un comprimido */
.dsr-ico--file-archive {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3Cpath d='M8 12v-1'/%3E%3Cpath d='M8 18v-2'/%3E%3Cpath d='M8 7V6'/%3E%3Ccircle cx='8' cy='20' r='2'/%3E%3C/svg%3E");
}

/* celda: la extension que no cae en ninguna familia */
.dsr-ico--file {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3C/svg%3E");
}

/* celda: la traduccion de ese idioma esta completa */
.dsr-ico--check {
	--dsr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

/* <<< iconos de Lucide */
