.ir-mapa {
	display: flex;
	gap: 16.2px;
	align-items: stretch;
	margin-block: 5.4px 21.6px;
}

.ir-mapa__canvas-wrap {
	flex: 1 1 60%;
	min-width: 0;
	border: 1px solid var(--c-border-footer, rgba(10, 45, 77, 0.1));
	border-radius: var(--radius-lg, 12.6px);
	box-shadow: var(--sh-card-lg, 0 7.2px 21.6px rgba(10, 45, 77, 0.07));
	overflow: hidden;
}

.ir-mapa__canvas {
	width: 100%;
	height: 522px;
	background: #f4f9fc;
}

.ir-mapa__side {
	flex: 0 0 300px;
	display: flex;
	flex-direction: column;
	gap: 12.6px;
}

#ir-card {
	display: flex;
	flex-direction: column;
	gap: 10.8px;
	padding: 18px 19.8px;
	border: 1px solid var(--c-border-footer, rgba(10, 45, 77, 0.1));
	border-radius: var(--radius-lg, 12.6px);
	background: var(--c-white, #fff);
	box-shadow: var(--sh-card, 0 7.2px 10.8px rgba(10, 45, 77, 0.07));
	min-height: 220px;
}

.ir-card__placeholder,
.ir-card__vazio {
	font-size: 13.5px;
	line-height: 20.7px;
	color: var(--c-slate, #465b6e);
}

.ir-card__titulo {
	font-size: 16.2px;
	font-weight: 600;
	line-height: 21.6px;
	color: var(--c-ink, #0a2d4d);
}

.ir-card__score {
	font-size: 39.6px;
	font-weight: 700;
	line-height: 1;
}

.ir-card__score-max {
	font-size: 16.2px;
	font-weight: 500;
	color: var(--c-slate, #465b6e);
}

.ir-card__linhas {
	display: flex;
	flex-direction: column;
	gap: 6.3px;
}

.ir-card__linha {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10.8px;
	padding-block: 3.6px;
	border-bottom: 1px solid var(--c-border-footer, rgba(10, 45, 77, 0.08));
}

.ir-card__label {
	font-size: 12.15px;
	font-weight: 500;
	color: var(--c-slate, #465b6e);
}

.ir-card__valor {
	font-size: 13.05px;
	font-weight: 600;
	color: var(--c-ink, #0a2d4d);
	text-align: right;
}

.ir-legenda {
	display: flex;
	flex-direction: column;
	gap: 7.2px;
	padding: 14.4px 16.2px;
	border: 1px solid var(--c-border-footer, rgba(10, 45, 77, 0.1));
	border-radius: var(--radius-lg, 12.6px);
	background: var(--c-blue-soft, #e6f4fa);
	list-style: none;
	margin: 0;
}

.ir-legenda li {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 12.15px;
	color: var(--c-ink, #0a2d4d);
}

.ir-legenda-swatch {
	width: 14.4px;
	height: 14.4px;
	border-radius: 3.6px;
	flex-shrink: 0;
}

.ir-legenda-swatch--baixo { background: #1e8f5f; }
.ir-legenda-swatch--medio { background: #d4ac0d; }
.ir-legenda-swatch--alto { background: #c0392b; }
.ir-legenda-swatch--vazio { background: #d7e2ea; }

.ir-region-label { pointer-events: none; }

.ir-region-label span {
	display: block;
	transform: translate(-50%, -100%);
	font-size: 11.7px;
	font-weight: 600;
	letter-spacing: 0.36px;
	text-transform: uppercase;
	color: var(--c-slate, #465b6e);
	white-space: nowrap;
}

.leaflet-control-attribution { display: none; }

.leaflet-tooltip.ir-tooltip {
	padding: 6.3px 10.8px;
	border: 1px solid var(--c-border-footer, rgba(10, 45, 77, 0.1));
	border-radius: var(--radius-md, 7.2px);
	background: var(--c-white, #fff);
	box-shadow: var(--sh-card-lg, 0 7.2px 21.6px rgba(10, 45, 77, 0.14));
	font-size: 12.15px;
	font-weight: 600;
	color: var(--c-ink, #0a2d4d);
}

/* ---------------------------------------------------------------
   Secção explicativa (mesmo estilo do Mapa de Zonas de Contenção,
   assets/css/zonas-contencao.css — reutilizado aqui com prefixo ir-
   por este ficheiro ser carregado sozinho nesta página).
   --------------------------------------------------------------- */
.ir-explica {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ir-explica__item {
	display: flex;
	gap: 14.4px;
	padding: 16.2px 18px;
	border: 1px solid var(--c-svc-card-border, #d7ecf5);
	border-radius: var(--radius-lg, 12.6px);
	background: var(--c-svc-card-bg, #f4f9fc);
}

.ir-explica__num {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 28.8px;
	height: 28.8px;
	border-radius: 50%;
	background: var(--c-blue, #008bbd);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
}

.ir-explica__corpo h3 {
	font-size: 14.85px;
	font-weight: 600;
	line-height: 20.7px;
	color: var(--c-ink, #0a2d4d);
	margin-bottom: 4.5px;
}

.ir-explica__corpo p {
	font-size: 13.05px;
	line-height: 20.7px;
	color: var(--c-body, #536373);
}

.ir-disclaimer {
	margin-top: 5.4px;
	padding: 14.4px 16.2px;
	border-radius: var(--radius-lg, 12.6px);
	background: #fdf3e3;
	color: #7a5a10;
	font-size: 12.6px;
	line-height: 19.8px;
}

@media (max-width: 900px) {
	.ir-mapa {
		flex-direction: column;
	}

	.ir-mapa__side {
		flex: none;
	}

	.ir-mapa__canvas {
		height: 396px;
	}
}

@media (max-width: 560px) {
	.ir-mapa__canvas {
		height: 342px;
	}

	.ir-explica__item {
		flex-direction: column;
		gap: 7.2px;
	}
}
