/*
 * GMM SSMA — estilos del módulo.
 *
 * Todo va bajo el contenedor .gmm-ssma para no pisar al tema ni a Elementor.
 * Los colores llegan como variables CSS en el atributo style del contenedor
 * (se editan en el panel → SSMA); acá solo hay valores de respaldo.
 * La única excepción está en @media print: oculta el resto de la página
 * (menú lateral, encabezado) para imprimir solo el módulo.
 */

.gmm-ssma {
	--ssma-primario: #1400F0;
	--ssma-acento: #FFE60A;
	--ssma-ok: #16A34A;
	--ssma-alerta: #F59E0B;
	--ssma-critico: #DC2626;
	--ssma-texto: #12123A;
	--ssma-fondo: #F4F4F8;
	--ssma-primario-suave: #1400F01F;
	--ssma-ok-suave: #16A34A1F;
	--ssma-alerta-suave: #F59E0B1F;
	--ssma-critico-suave: #DC26261F;
	--ssma-info: #475569;
	--ssma-nd: #9CA3AF;
	--ssma-borde: #E2E2EC;
	--ssma-suave: #6B6B85;
	--ssma-blanco: #FFFFFF;
	--ssma-radio: 14px;

	box-sizing: border-box;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 0 24px;
	background: var(--ssma-fondo);
	color: var(--ssma-texto);
	font-family: Poppins, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	text-align: left;
}

.gmm-ssma *,
.gmm-ssma *::before,
.gmm-ssma *::after {
	box-sizing: border-box;
}

.gmm-ssma p {
	margin: 0 0 10px;
}

.gmm-ssma a {
	color: var(--ssma-primario);
	text-decoration: none;
}

.gmm-ssma a:hover {
	text-decoration: underline;
}

.gmm-ssma small {
	font-size: 12px;
}

.gmm-ssma :focus-visible {
	outline: 3px solid var(--ssma-acento);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ */
/* Barra superior y pestañas                                          */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-top {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 0 20px;
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
	border-radius: 0 0 var(--ssma-radio) var(--ssma-radio);
}

.gmm-ssma .gmm-ssma-marca {
	flex: 0 0 auto;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .5px;
	color: var(--ssma-acento);
	padding: 14px 0;
}

.gmm-ssma .gmm-ssma-tabs {
	display: flex;
	flex: 1 1 auto;
	gap: 4px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.gmm-ssma .gmm-ssma-tab {
	flex: 0 0 auto;
	padding: 18px 12px 15px;
	color: rgba(255, 255, 255, .82);
	font-weight: 500;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
	text-decoration: none;
}

.gmm-ssma .gmm-ssma-tab:hover {
	color: var(--ssma-blanco);
	text-decoration: none;
}

.gmm-ssma .gmm-ssma-tab.is-activa {
	color: var(--ssma-blanco);
	font-weight: 700;
	border-bottom-color: var(--ssma-acento);
}

.gmm-ssma .gmm-ssma-cuerpo {
	padding: 20px 20px 0;
}

/* ------------------------------------------------------------------ */
/* Cabecera de cada vista                                             */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-cabecera {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 18px;
}

.gmm-ssma .gmm-ssma-cabecera-chica {
	margin-bottom: 10px;
}

.gmm-ssma .gmm-ssma-h {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/* ------------------------------------------------------------------ */
/* Botones, pastillas y menús desplegables                            */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 40px;
	padding: 8px 18px;
	border: 2px solid var(--ssma-primario);
	border-radius: 999px;
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	text-transform: none;
	letter-spacing: normal;
}

.gmm-ssma .gmm-ssma-btn:hover {
	filter: brightness(1.12);
	text-decoration: none;
	color: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-btn-sec {
	background: var(--ssma-blanco);
	color: var(--ssma-primario);
}

.gmm-ssma .gmm-ssma-btn-sec:hover {
	color: var(--ssma-primario);
	background: var(--ssma-primario-suave);
	filter: none;
}

.gmm-ssma .gmm-ssma-btn-acento {
	background: var(--ssma-acento);
	border-color: var(--ssma-acento);
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-btn-acento:hover {
	color: var(--ssma-texto);
	filter: brightness(.96);
}

.gmm-ssma .gmm-ssma-btn-chico {
	min-height: 32px;
	padding: 4px 12px;
	font-size: 13px;
}

.gmm-ssma .gmm-ssma-btn-grande {
	min-height: 50px;
	padding: 12px 28px;
	font-size: 16px;
}

.gmm-ssma .gmm-ssma-btn[disabled] {
	opacity: .6;
	cursor: wait;
}

.gmm-ssma .gmm-ssma-pill {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--ssma-borde);
	border-radius: 999px;
	background: var(--ssma-blanco);
	font-size: 14px;
	font-weight: 600;
}

.gmm-ssma .gmm-ssma-menu {
	position: relative;
}

.gmm-ssma .gmm-ssma-menu > summary {
	list-style: none;
	cursor: pointer;
}

.gmm-ssma .gmm-ssma-menu > summary::-webkit-details-marker {
	display: none;
}

.gmm-ssma .gmm-ssma-menu > summary::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-left: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

.gmm-ssma .gmm-ssma-menu-lista {
	position: absolute;
	z-index: 50;
	top: calc(100% + 6px);
	right: 0;
	min-width: 220px;
	padding: 6px;
	border: 1px solid var(--ssma-borde);
	border-radius: 12px;
	background: var(--ssma-blanco);
	box-shadow: 0 10px 30px rgba(18, 18, 58, .14);
}

.gmm-ssma .gmm-ssma-menu-lista a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--ssma-texto);
	white-space: nowrap;
}

.gmm-ssma .gmm-ssma-menu-lista a:hover,
.gmm-ssma .gmm-ssma-menu-lista a.is-activa {
	background: var(--ssma-primario-suave);
	color: var(--ssma-primario);
	text-decoration: none;
}

.gmm-ssma .gmm-ssma-enlace {
	font-weight: 600;
	font-size: 14px;
}

/* ------------------------------------------------------------------ */
/* Avisos y notas                                                     */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-aviso {
	margin: 16px 20px 0;
	padding: 12px 16px;
	border-radius: 12px;
	border-left: 5px solid;
	font-weight: 500;
}

.gmm-ssma .gmm-ssma-aviso.is-ok {
	background: var(--ssma-ok-suave);
	border-color: var(--ssma-ok);
}

.gmm-ssma .gmm-ssma-aviso.is-error {
	background: var(--ssma-critico-suave);
	border-color: var(--ssma-critico);
}

.gmm-ssma .gmm-ssma-nota {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: 12px;
	border-left: 5px solid var(--ssma-info);
	background: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-nota.is-alerta {
	border-color: var(--ssma-alerta);
	background: var(--ssma-alerta-suave);
}

.gmm-ssma .gmm-ssma-nota.is-critico {
	border-color: var(--ssma-critico);
	background: var(--ssma-critico-suave);
}

.gmm-ssma .gmm-ssma-nota.is-ok {
	border-color: var(--ssma-ok);
	background: var(--ssma-ok-suave);
}

.gmm-ssma .gmm-ssma-nota.is-primario {
	border-color: var(--ssma-primario);
	background: var(--ssma-primario-suave);
}

.gmm-ssma .gmm-ssma-ayuda {
	margin: 8px 0 16px;
	color: var(--ssma-suave);
	font-size: 13px;
}

.gmm-ssma .gmm-ssma-vacio {
	margin: 8px 0;
	color: var(--ssma-suave);
	font-style: italic;
}

.gmm-ssma .gmm-ssma-centro {
	text-align: center;
	margin: 20px 0;
}

/* ------------------------------------------------------------------ */
/* Grillas y tarjetas                                                 */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-grid {
	display: grid;
	gap: 16px;
	margin: 0 0 16px;
}

.gmm-ssma .gmm-ssma-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gmm-ssma .gmm-ssma-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gmm-ssma .gmm-ssma-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gmm-ssma .gmm-ssma-grid-2-1 {
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.gmm-ssma .gmm-ssma-grid-1-2 {
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}

.gmm-ssma .gmm-ssma-grid-interno {
	gap: 12px;
	margin: 0;
}

.gmm-ssma .gmm-ssma-card {
	display: block;
	min-width: 0;
	margin: 0 0 16px;
	padding: 18px 20px;
	border: 1px solid var(--ssma-borde);
	border-radius: var(--ssma-radio);
	background: var(--ssma-blanco);
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-grid > .gmm-ssma-card,
.gmm-ssma .gmm-ssma-grid > div > .gmm-ssma-card:last-child {
	margin-bottom: 0;
}

.gmm-ssma a.gmm-ssma-card {
	transition: border-color .15s, box-shadow .15s, transform .15s;
}

.gmm-ssma a.gmm-ssma-card:hover {
	border-color: var(--ssma-primario);
	box-shadow: 0 6px 20px rgba(20, 0, 240, .12);
	transform: translateY(-2px);
	text-decoration: none;
}

.gmm-ssma .gmm-ssma-card-tit {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-sub-tit {
	margin: 12px 0 8px;
	font-size: 14px;
	font-weight: 700;
}

.gmm-ssma .gmm-ssma-num {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.1;
	margin: 4px 0 2px;
}

.gmm-ssma .gmm-ssma-num-xl {
	font-size: 56px;
}

.gmm-ssma .gmm-ssma-num-md {
	font-size: 32px;
	margin-top: 16px;
}

.gmm-ssma .gmm-ssma-sub {
	color: var(--ssma-suave);
	font-size: 13px;
	margin-bottom: 8px;
}

.gmm-ssma .gmm-ssma-pie {
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-kpi .gmm-ssma-pie {
	color: var(--ssma-suave);
}

/* Colores de texto por estado (títulos, números, celdas). */
.gmm-ssma .is-ok.gmm-ssma-num,
.gmm-ssma .is-ok.gmm-ssma-card-tit,
.gmm-ssma .is-ok.gmm-ssma-sub-tit,
.gmm-ssma .is-ok.gmm-ssma-fila-pct,
.gmm-ssma b.is-ok {
	color: var(--ssma-ok);
}

.gmm-ssma .is-alerta.gmm-ssma-num,
.gmm-ssma .is-alerta.gmm-ssma-card-tit,
.gmm-ssma .is-alerta.gmm-ssma-sub-tit,
.gmm-ssma .is-alerta.gmm-ssma-fila-pct,
.gmm-ssma b.is-alerta {
	color: #B45309;
	color: color-mix(in srgb, var(--ssma-alerta) 70%, #000);
}

.gmm-ssma .is-critico.gmm-ssma-num,
.gmm-ssma .is-critico.gmm-ssma-card-tit,
.gmm-ssma .is-critico.gmm-ssma-sub-tit,
.gmm-ssma .is-critico.gmm-ssma-fila-pct,
.gmm-ssma b.is-critico {
	color: var(--ssma-critico);
}

.gmm-ssma .is-primario.gmm-ssma-num {
	color: var(--ssma-primario);
}

.gmm-ssma .is-info.gmm-ssma-num {
	color: var(--ssma-info);
}

.gmm-ssma .is-nd.gmm-ssma-num,
.gmm-ssma .is-nd.gmm-ssma-fila-pct {
	color: var(--ssma-nd);
}

/* Punto de color. */
.gmm-ssma .gmm-ssma-punto {
	display: inline-block;
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--ssma-nd);
}

.gmm-ssma .gmm-ssma-punto.is-ok { background: var(--ssma-ok); }
.gmm-ssma .gmm-ssma-punto.is-alerta { background: var(--ssma-alerta); }
.gmm-ssma .gmm-ssma-punto.is-critico { background: var(--ssma-critico); }
.gmm-ssma .gmm-ssma-punto.is-info { background: var(--ssma-info); }

/* Listas. */
.gmm-ssma .gmm-ssma-mini {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	font-size: 13px;
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-mini li {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	padding: 2px 0;
}

.gmm-ssma .gmm-ssma-mini b {
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-lista {
	margin: 0 0 8px;
	padding: 0 0 0 20px;
}

.gmm-ssma .gmm-ssma-lista li {
	margin: 0 0 6px;
	padding: 0;
}

/* ------------------------------------------------------------------ */
/* Barras de progreso                                                 */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-barra {
	position: relative;
	width: 100%;
	height: 10px;
	margin: 6px 0;
	border-radius: 999px;
	background: #ECECF3;
	overflow: hidden;
}

.gmm-ssma .gmm-ssma-barra > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--ssma-nd);
}

.gmm-ssma .gmm-ssma-barra > span.is-ok { background: var(--ssma-ok); }
.gmm-ssma .gmm-ssma-barra > span.is-alerta { background: var(--ssma-alerta); }
.gmm-ssma .gmm-ssma-barra > span.is-critico { background: var(--ssma-critico); }
.gmm-ssma .gmm-ssma-barra > span.is-primario { background: var(--ssma-primario); }

.gmm-ssma .gmm-ssma-fila {
	display: grid;
	grid-template-columns: minmax(110px, 1.2fr) minmax(0, 2fr) 54px;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
}

.gmm-ssma .gmm-ssma-fila-et {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}

.gmm-ssma .gmm-ssma-fila-et small {
	display: block;
	color: var(--ssma-suave);
	font-weight: 400;
}

.gmm-ssma .gmm-ssma-fila-pct {
	text-align: right;
	font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* Badges                                                             */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	background: #EEF0F4;
	color: var(--ssma-info);
}

.gmm-ssma .gmm-ssma-badge.is-ok {
	background: var(--ssma-ok-suave);
	color: color-mix(in srgb, var(--ssma-ok) 75%, #000);
}

.gmm-ssma .gmm-ssma-badge.is-alerta {
	background: var(--ssma-alerta-suave);
	color: color-mix(in srgb, var(--ssma-alerta) 60%, #000);
}

.gmm-ssma .gmm-ssma-badge.is-critico {
	background: var(--ssma-critico-suave);
	color: var(--ssma-critico);
}

.gmm-ssma .gmm-ssma-badge.is-primario {
	background: var(--ssma-primario-suave);
	color: var(--ssma-primario);
}

.gmm-ssma .gmm-ssma-aptitud .gmm-ssma-badge {
	font-size: 18px;
	padding: 6px 18px;
	margin: 4px 0 10px;
}

/* ------------------------------------------------------------------ */
/* EPP: columnas y tarjetas de persona                                */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-col-epp {
	max-height: 720px;
	overflow-y: auto;
}

.gmm-ssma .gmm-ssma-item {
	margin: 0 0 8px;
	padding: 10px 12px;
	border: 1px solid var(--ssma-borde);
	border-left: 4px solid var(--ssma-nd);
	border-radius: 10px;
	background: var(--ssma-blanco);
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-item.is-ok { border-left-color: var(--ssma-ok); }
.gmm-ssma .gmm-ssma-item.is-alerta { border-left-color: var(--ssma-alerta); }
.gmm-ssma .gmm-ssma-item.is-critico { border-left-color: var(--ssma-critico); }

.gmm-ssma .gmm-ssma-item-tit {
	font-weight: 700;
}

.gmm-ssma .gmm-ssma-item small {
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-item-pie {
	margin-top: 2px;
	font-size: 12px;
	color: var(--ssma-suave);
}

/* ------------------------------------------------------------------ */
/* Gráficos con HTML y CSS                                            */
/* ------------------------------------------------------------------ */

/* Dona de hallazgos (conic-gradient). */
.gmm-ssma .gmm-ssma-dona {
	position: relative;
	width: 170px;
	height: 170px;
	margin: 8px auto 14px;
	border-radius: 50%;
	background: #ECECF3;
}

.gmm-ssma .gmm-ssma-dona-centro {
	position: absolute;
	inset: 26px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-dona-centro b {
	font-size: 32px;
	line-height: 1;
}

.gmm-ssma .gmm-ssma-dona-centro small {
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-leyenda {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 16px;
	font-size: 13px;
}

.gmm-ssma .gmm-ssma-leyenda span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.gmm-ssma .gmm-ssma-leyenda i {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 3px;
	background: var(--ssma-nd);
}

.gmm-ssma .gmm-ssma-leyenda i.is-ok { background: var(--ssma-ok); }
.gmm-ssma .gmm-ssma-leyenda i.is-alerta { background: var(--ssma-alerta); }
.gmm-ssma .gmm-ssma-leyenda i.is-critico { background: var(--ssma-critico); }
.gmm-ssma .gmm-ssma-leyenda i.is-primario { background: var(--ssma-primario); }

/* Columnas de incidentes por mes. */
.gmm-ssma .gmm-ssma-columnas {
	display: flex;
	align-items: stretch;
	gap: 10px;
	height: 200px;
	margin: 8px 0 12px;
	padding: 0 4px;
	border-bottom: 1px solid var(--ssma-borde);
}

.gmm-ssma .gmm-ssma-columna {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
}

.gmm-ssma .gmm-ssma-columna-barras {
	display: flex;
	flex: 1 1 auto;
	align-items: flex-end;
	justify-content: center;
	gap: 4px;
	padding-top: 18px;
}

.gmm-ssma .gmm-ssma-columna-barras span {
	position: relative;
	display: block;
	width: 38%;
	max-width: 28px;
	min-height: 2px;
	border-radius: 6px 6px 0 0;
	background: var(--ssma-nd);
}

.gmm-ssma .gmm-ssma-columna-barras span.is-critico { background: var(--ssma-critico); }
.gmm-ssma .gmm-ssma-columna-barras span.is-primario { background: var(--ssma-primario); }

.gmm-ssma .gmm-ssma-columna-barras em {
	position: absolute;
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	font-size: 11px;
	font-style: normal;
	font-weight: 600;
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-columna-et {
	padding: 6px 0 0;
	text-align: center;
	font-size: 12px;
	color: var(--ssma-suave);
}

/* Últimos incidentes. */
.gmm-ssma .gmm-ssma-ultimos {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gmm-ssma .gmm-ssma-ultimos li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 9px 0;
	border-bottom: 1px solid var(--ssma-borde);
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-ultimos li:last-child {
	border-bottom: 0;
}

.gmm-ssma .gmm-ssma-ultimos-f {
	flex: 0 0 auto;
	min-width: 44px;
	font-weight: 700;
}

/* Programa del mes. */
.gmm-ssma .gmm-ssma-programa .gmm-ssma-barra {
	height: 14px;
}

/* ------------------------------------------------------------------ */
/* Renglones, tablas, incidentes                                      */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-renglon {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--ssma-borde);
}

.gmm-ssma .gmm-ssma-renglon:last-child {
	border-bottom: 0;
}

.gmm-ssma .gmm-ssma-renglon-txt {
	min-width: 0;
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-renglon-txt small {
	display: block;
	margin-top: 2px;
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-tabla-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.gmm-ssma .gmm-ssma-tabla {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 14px;
	background: transparent;
}

.gmm-ssma .gmm-ssma-tabla th,
.gmm-ssma .gmm-ssma-tabla td {
	padding: 9px 10px;
	border: 0;
	border-bottom: 1px solid var(--ssma-borde);
	text-align: left;
	vertical-align: middle;
	background: transparent;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-tabla th {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: var(--ssma-suave);
	white-space: nowrap;
}

.gmm-ssma .gmm-ssma-tabla tr:last-child td {
	border-bottom: 0;
}

.gmm-ssma .gmm-ssma-inc {
	margin: 0 0 8px;
	border: 1px solid var(--ssma-borde);
	border-radius: 12px;
	background: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-inc > summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	padding: 12px 14px;
	cursor: pointer;
	list-style: none;
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-inc > summary::-webkit-details-marker {
	display: none;
}

.gmm-ssma .gmm-ssma-inc > summary::before {
	content: "+";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--ssma-primario-suave);
	color: var(--ssma-primario);
	font-weight: 700;
}

.gmm-ssma .gmm-ssma-inc[open] > summary::before {
	content: "−";
}

.gmm-ssma .gmm-ssma-inc[open] > summary {
	border-bottom: 1px solid var(--ssma-borde);
}

.gmm-ssma .gmm-ssma-inc-f {
	font-weight: 700;
	white-space: nowrap;
}

.gmm-ssma .gmm-ssma-inc-t {
	flex: 1 1 200px;
	min-width: 0;
}

.gmm-ssma .gmm-ssma-inc-cuerpo {
	padding: 14px;
}

.gmm-ssma .gmm-ssma-inc-desc {
	white-space: normal;
	overflow-wrap: anywhere;
}

.gmm-ssma .gmm-ssma-datos {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 4px 16px;
	margin: 0 0 12px;
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-datos dt {
	margin: 0;
	font-weight: 600;
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-datos dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.gmm-ssma .gmm-ssma-foto {
	display: inline-block;
	margin: 0 0 12px;
}

.gmm-ssma .gmm-ssma-foto img {
	display: block;
	max-width: 100%;
	height: auto;
	max-height: 260px;
	border-radius: 10px;
}

/* Pasos (flechas como en la maqueta). */
.gmm-ssma .gmm-ssma-pasos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: gmm-ssma-paso;
}

.gmm-ssma .gmm-ssma-pasos li {
	position: relative;
	margin: 0;
	padding: 16px 28px 16px 30px;
	counter-increment: gmm-ssma-paso;
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
	clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%, 18px 50%);
}

.gmm-ssma .gmm-ssma-pasos li:nth-child(2) { background: color-mix(in srgb, var(--ssma-primario) 80%, #fff); }
.gmm-ssma .gmm-ssma-pasos li:nth-child(3) { background: color-mix(in srgb, var(--ssma-primario) 62%, #fff); }
.gmm-ssma .gmm-ssma-pasos li:nth-child(4) { background: var(--ssma-acento); color: var(--ssma-texto); }

.gmm-ssma .gmm-ssma-pasos li:first-child {
	clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
	padding-left: 18px;
}

.gmm-ssma .gmm-ssma-pasos b {
	display: block;
	font-size: 15px;
}

.gmm-ssma .gmm-ssma-pasos b::before {
	content: counter(gmm-ssma-paso) ". ";
}

.gmm-ssma .gmm-ssma-pasos small {
	display: block;
	opacity: .9;
}

/* Pasos verticales (pantalla de reporte). */
.gmm-ssma .gmm-ssma-pasos-v {
	grid-template-columns: 1fr;
	gap: 0;
}

.gmm-ssma .gmm-ssma-pasos-v li,
.gmm-ssma .gmm-ssma-pasos-v li:first-child,
.gmm-ssma .gmm-ssma-pasos-v li:nth-child(n) {
	clip-path: none;
	padding: 0 0 14px 40px;
	background: transparent;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-pasos-v li::before {
	content: counter(gmm-ssma-paso);
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
	font-size: 13px;
	font-weight: 700;
}

.gmm-ssma .gmm-ssma-pasos-v li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 13px;
	top: 30px;
	bottom: 2px;
	width: 2px;
	background: var(--ssma-borde);
}

.gmm-ssma .gmm-ssma-pasos-v b::before {
	content: none;
}

.gmm-ssma .gmm-ssma-pasos-v small {
	color: var(--ssma-suave);
	opacity: 1;
}

/* ------------------------------------------------------------------ */
/* Formularios (cómodos en el celular)                                */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-form {
	margin: 0;
}

.gmm-ssma .gmm-ssma-card-form {
	border: 2px solid var(--ssma-primario);
}

.gmm-ssma .gmm-ssma-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
}

.gmm-ssma .gmm-ssma-campo {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 16px;
	min-width: 0;
}

.gmm-ssma .gmm-ssma-campo > label,
.gmm-ssma .gmm-ssma-label {
	display: block;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-campo > small {
	color: var(--ssma-suave);
}

.gmm-ssma .gmm-ssma-oblig {
	color: var(--ssma-critico);
}

.gmm-ssma .gmm-ssma-form input[type="text"],
.gmm-ssma .gmm-ssma-form input[type="search"],
.gmm-ssma .gmm-ssma-form input[type="number"],
.gmm-ssma .gmm-ssma-form input[type="date"],
.gmm-ssma .gmm-ssma-form input[type="datetime-local"],
.gmm-ssma .gmm-ssma-form input[type="file"],
.gmm-ssma .gmm-ssma-form select,
.gmm-ssma .gmm-ssma-form textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid #C9C9D9;
	border-radius: 10px;
	background: var(--ssma-blanco);
	color: var(--ssma-texto);
	font-family: inherit;
	font-size: 16px; /* 16px evita el zoom automático en iPhone */
	line-height: 1.4;
	box-shadow: none;
}

.gmm-ssma .gmm-ssma-form textarea {
	min-height: 96px;
	resize: vertical;
}

.gmm-ssma .gmm-ssma-form input[type="file"] {
	padding: 10px;
	background: var(--ssma-fondo);
}

.gmm-ssma .gmm-ssma-form input:focus,
.gmm-ssma .gmm-ssma-form select:focus,
.gmm-ssma .gmm-ssma-form textarea:focus {
	border-color: var(--ssma-primario);
	outline: 3px solid var(--ssma-primario-suave);
	outline-offset: 0;
}

/* Buscador de personas (se arma con JavaScript sobre el <select> o el campo de texto). */
.gmm-ssma [hidden] {
	display: none !important;
}

.gmm-ssma .gmm-ssma-oculto {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	border: 0 !important;
}

.gmm-ssma .gmm-ssma-combo {
	position: relative;
}

.gmm-ssma .gmm-ssma-combo-lista {
	position: absolute;
	z-index: 30;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	max-height: 320px;
	overflow-y: auto;
	margin: 0;
	padding: 6px;
	list-style: none;
	border: 1px solid var(--ssma-borde);
	border-radius: 12px;
	background: var(--ssma-blanco);
	box-shadow: 0 12px 28px rgba(18, 18, 58, 0.16);
}

.gmm-ssma .gmm-ssma-combo-lista li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 10px 12px;
	border-radius: 8px;
	cursor: pointer;
	line-height: 1.3;
}

.gmm-ssma .gmm-ssma-combo-lista li small {
	color: var(--ssma-suave);
	overflow-wrap: anywhere;
}

.gmm-ssma .gmm-ssma-combo-lista li.is-activa,
.gmm-ssma .gmm-ssma-combo-lista li:hover {
	background: var(--ssma-primario-suave);
}

.gmm-ssma .gmm-ssma-combo-lista li.is-vacio {
	cursor: default;
	color: var(--ssma-suave);
	background: none;
}

.gmm-ssma .gmm-ssma-combo-info {
	margin-top: 4px;
	font-size: 13px;
	color: var(--ssma-primario);
	font-weight: 600;
	overflow-wrap: anywhere;
}

.gmm-ssma .gmm-ssma-combo-info:empty {
	display: none;
}

.gmm-ssma .gmm-ssma-opciones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gmm-ssma .gmm-ssma-opcion {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.gmm-ssma .gmm-ssma-opcion input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.gmm-ssma .gmm-ssma-opcion span {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 8px 20px;
	border: 2px solid #C9C9D9;
	border-radius: 999px;
	background: var(--ssma-blanco);
	font-weight: 600;
	font-size: 15px;
}

.gmm-ssma .gmm-ssma-opcion input:checked + span {
	border-color: var(--ssma-primario);
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-opcion.is-baja input:checked + span {
	border-color: var(--ssma-ok);
	background: var(--ssma-ok);
}

.gmm-ssma .gmm-ssma-opcion.is-media input:checked + span {
	border-color: var(--ssma-alerta);
	background: var(--ssma-alerta);
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-opcion.is-alta input:checked + span {
	border-color: var(--ssma-critico);
	background: var(--ssma-critico);
}

.gmm-ssma .gmm-ssma-opcion input:focus-visible + span {
	outline: 3px solid var(--ssma-acento);
	outline-offset: 2px;
}

.gmm-ssma .gmm-ssma-reporta {
	margin: 0 0 16px;
	padding: 10px 14px;
	border-radius: 10px;
	background: var(--ssma-fondo);
	font-size: 14px;
}

.gmm-ssma .gmm-ssma-hallazgo {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(140px, 1fr);
	gap: 0 12px;
}

.gmm-ssma .gmm-ssma-form-botones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 4px;
}

.gmm-ssma .gmm-ssma-form-linea {
	flex: 0 0 auto;
}

.gmm-ssma .gmm-ssma-form-gestion {
	padding: 14px;
	border-radius: 12px;
	background: var(--ssma-fondo);
}

.gmm-ssma .gmm-ssma-form-gestion .gmm-ssma-form-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gmm-ssma .gmm-ssma-login {
	max-width: 560px;
	margin: 24px auto;
	text-align: center;
}

/* ------------------------------------------------------------------ */
/* Filtros de las listas                                              */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-filtros {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 12px;
	margin: 0 0 16px;
	padding: 14px 16px;
	border: 1px solid var(--ssma-borde);
	border-radius: var(--ssma-radio);
	background: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-filtro {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1 1 150px;
	min-width: 0;
}

.gmm-ssma .gmm-ssma-filtro-texto {
	flex: 2 1 220px;
}

.gmm-ssma .gmm-ssma-filtro-fecha {
	flex: 0 1 160px;
}

.gmm-ssma .gmm-ssma-filtro label {
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--ssma-suave);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.gmm-ssma .gmm-ssma-filtros input,
.gmm-ssma .gmm-ssma-filtros select {
	width: 100%;
	min-height: 42px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid #C9C9D9;
	border-radius: 10px;
	background: var(--ssma-blanco);
	color: var(--ssma-texto);
	font-family: inherit;
	font-size: 16px;
}

.gmm-ssma .gmm-ssma-filtros input:focus,
.gmm-ssma .gmm-ssma-filtros select:focus {
	border-color: var(--ssma-primario);
	outline: 3px solid var(--ssma-primario-suave);
}

.gmm-ssma .gmm-ssma-filtro-botones {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 auto;
}

/* ------------------------------------------------------------------ */
/* Ajustes e importación                                              */
/* ------------------------------------------------------------------ */

.gmm-ssma .gmm-ssma-subnav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 16px;
}

.gmm-ssma .gmm-ssma-subnav .gmm-ssma-pill {
	text-decoration: none;
	color: var(--ssma-texto);
}

.gmm-ssma .gmm-ssma-subnav .gmm-ssma-pill.is-activa {
	border-color: var(--ssma-primario);
	background: var(--ssma-primario);
	color: var(--ssma-blanco);
}

.gmm-ssma .gmm-ssma-filas {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 12px;
}

.gmm-ssma .gmm-ssma-fila-edit {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
}

.gmm-ssma .gmm-ssma-filas-2 .gmm-ssma-fila-edit {
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) auto;
}

.gmm-ssma .gmm-ssma-filas-2#gmm-ssma-filas-epp .gmm-ssma-fila-edit {
	grid-template-columns: minmax(0, 3fr) minmax(110px, 1fr) auto;
}

.gmm-ssma .gmm-ssma-fila-cab {
	font-size: 12px;
	font-weight: 600;
	color: var(--ssma-suave);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.gmm-ssma .gmm-ssma-form .gmm-ssma-fila-edit input {
	min-height: 44px;
}

.gmm-ssma .gmm-ssma-lista-pasos {
	margin: 0 0 14px;
	padding-left: 22px;
}

.gmm-ssma .gmm-ssma-lista-pasos li {
	margin: 0 0 6px;
}

.gmm-ssma .gmm-ssma-detalle {
	margin: 0 0 16px;
}

.gmm-ssma .gmm-ssma-detalle > summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--ssma-primario);
	margin-bottom: 8px;
}

/* ------------------------------------------------------------------ */
/* Responsive                                                         */
/* ------------------------------------------------------------------ */

@media (max-width: 1100px) {
	.gmm-ssma .gmm-ssma-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.gmm-ssma .gmm-ssma-grid-3,
	.gmm-ssma .gmm-ssma-grid-2,
	.gmm-ssma .gmm-ssma-grid-2-1,
	.gmm-ssma .gmm-ssma-grid-1-2,
	.gmm-ssma .gmm-ssma-form-grid,
	.gmm-ssma .gmm-ssma-form-gestion .gmm-ssma-form-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gmm-ssma .gmm-ssma-pasos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gmm-ssma .gmm-ssma-pasos-v {
		grid-template-columns: 1fr;
	}

	.gmm-ssma .gmm-ssma-col-epp {
		max-height: none;
	}
}

@media (max-width: 600px) {
	.gmm-ssma .gmm-ssma-filas-2 .gmm-ssma-fila-edit,
	.gmm-ssma .gmm-ssma-filas-2#gmm-ssma-filas-epp .gmm-ssma-fila-edit {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.gmm-ssma .gmm-ssma-filas-2 .gmm-ssma-fila-edit input:nth-of-type(2) {
		grid-column: 1;
	}

	.gmm-ssma .gmm-ssma-filas-2 .gmm-ssma-fila-edit button {
		grid-column: 2;
		grid-row: 1;
	}

	.gmm-ssma .gmm-ssma-filas-2 .gmm-ssma-fila-edit {
		padding: 10px;
		border: 1px solid var(--ssma-borde);
		border-radius: 12px;
	}

	.gmm-ssma .gmm-ssma-fila-cab {
		display: none;
	}

	/* En el celular, los filtros van de a dos por fila; el buscador ocupa todo el ancho. */
	.gmm-ssma .gmm-ssma-filtro,
	.gmm-ssma .gmm-ssma-filtro-fecha {
		flex: 1 1 calc(50% - 6px);
	}

	.gmm-ssma .gmm-ssma-filtro-texto,
	.gmm-ssma .gmm-ssma-filtro-botones {
		flex: 1 1 100%;
	}

	.gmm-ssma {
		font-size: 14px;
	}

	.gmm-ssma .gmm-ssma-top {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0 12px;
		border-radius: 0;
	}

	.gmm-ssma .gmm-ssma-marca {
		padding: 10px 0 0;
	}

	.gmm-ssma .gmm-ssma-tab {
		padding: 12px 10px;
	}

	.gmm-ssma .gmm-ssma-cuerpo {
		padding: 16px 12px 0;
	}

	.gmm-ssma .gmm-ssma-aviso {
		margin: 12px 12px 0;
	}

	.gmm-ssma .gmm-ssma-h {
		font-size: 22px;
	}

	.gmm-ssma .gmm-ssma-grid-4 {
		grid-template-columns: minmax(0, 1fr);
	}

	.gmm-ssma .gmm-ssma-card {
		padding: 16px;
	}

	.gmm-ssma .gmm-ssma-num-xl {
		font-size: 44px;
	}

	.gmm-ssma .gmm-ssma-fila {
		grid-template-columns: minmax(0, 1fr) 54px;
		gap: 2px 10px;
	}

	.gmm-ssma .gmm-ssma-fila .gmm-ssma-barra {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.gmm-ssma .gmm-ssma-pasos {
		grid-template-columns: minmax(0, 1fr);
	}

	.gmm-ssma .gmm-ssma-pasos li,
	.gmm-ssma .gmm-ssma-pasos li:first-child {
		clip-path: none;
		border-radius: 10px;
		padding: 12px 16px;
	}

	.gmm-ssma .gmm-ssma-pasos-v li,
	.gmm-ssma .gmm-ssma-pasos-v li:first-child {
		padding: 0 0 14px 40px;
	}

	.gmm-ssma .gmm-ssma-hallazgo {
		grid-template-columns: minmax(0, 1fr);
		padding-bottom: 8px;
		border-bottom: 1px dashed var(--ssma-borde);
		margin-bottom: 12px;
	}

	.gmm-ssma .gmm-ssma-renglon {
		flex-direction: column;
		align-items: flex-start;
	}

	.gmm-ssma .gmm-ssma-form-botones .gmm-ssma-btn {
		width: 100%;
	}

	.gmm-ssma .gmm-ssma-menu-lista {
		right: auto;
		left: 0;
	}

	.gmm-ssma .gmm-ssma-datos {
		grid-template-columns: 1fr;
	}

	.gmm-ssma .gmm-ssma-datos dd {
		margin-bottom: 6px;
	}
}

/* ------------------------------------------------------------------ */
/* Impresión / PDF                                                    */
/* ------------------------------------------------------------------ */

@media print {
	/* Única regla fuera de .gmm-ssma: oculta menú lateral, encabezado y pie del sitio. */
	body * {
		visibility: hidden !important;
	}

	.gmm-ssma,
	.gmm-ssma * {
		visibility: visible !important;
	}

	.gmm-ssma {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
		background: #fff;
		font-size: 12px;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.gmm-ssma .gmm-ssma-top,
	.gmm-ssma .gmm-ssma-acciones,
	.gmm-ssma .gmm-ssma-btn,
	.gmm-ssma .gmm-ssma-aviso,
	.gmm-ssma .gmm-ssma-form,
	.gmm-ssma .gmm-ssma-card-form,
	.gmm-ssma .gmm-ssma-enlace,
	.gmm-ssma .gmm-ssma-centro,
	.gmm-ssma .gmm-ssma-filtros,
	.gmm-ssma .gmm-ssma-subnav,
	.gmm-ssma .gmm-ssma-menu {
		display: none !important;
	}

	.gmm-ssma .gmm-ssma-cuerpo {
		padding: 0;
	}

	.gmm-ssma .gmm-ssma-card {
		break-inside: avoid;
		page-break-inside: avoid;
		box-shadow: none;
		transform: none;
	}

	.gmm-ssma .gmm-ssma-grid-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.gmm-ssma .gmm-ssma-grid-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gmm-ssma .gmm-ssma-grid-2,
	.gmm-ssma .gmm-ssma-grid-2-1,
	.gmm-ssma .gmm-ssma-grid-1-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gmm-ssma .gmm-ssma-col-epp {
		max-height: none;
		overflow: visible;
	}

	.gmm-ssma .gmm-ssma-num-xl {
		font-size: 40px;
	}

	.gmm-ssma a {
		color: inherit;
	}
}
