/*================================================================================================================================
FICHAS DE IMPRESSÃO DAS VIATURAS — base partilhada pelos modelos de print/modelos/
Prefixo de classes exclusivo: .fp-   — não reutilizar fora de /print.

A folha é auto-suficiente: não depende do framework da plataforma nem de CSS externo, para a ficha imprimir
igual em qualquer máquina (inclusive sem Internet). Medidas em mm, pensadas para A4 vertical.
================================================================================================================================*/

/* --- Página --- */
@page {
	size: A4 portrait;
	margin: 10mm 10mm 8mm 10mm;
}

:root {
	--fp-cor1: #111827;   /* títulos / texto forte */
	--fp-cor2: #1babbf;   /* cor de destaque do modelo */
	--fp-cor3: #6b7280;   /* texto secundário */
	--fp-linha: #e5e7eb;
	--fp-fundo: #f8fafc;
}

* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	background: #e5e7eb;
}

body {
	font-family: "Poppins", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 9.5pt;
	line-height: 1.35;
	color: var(--fp-cor1);
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

/* Folha A4: no ecrã aparece como uma página branca centrada; na impressão ocupa a página toda. */
.fp-folha {
	width: 190mm;
	min-height: 277mm;
	margin: 12mm auto;
	padding: 0;
	background: #fff;
	position: relative;
	display: flex;
	flex-direction: column;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.fp-corpo {
	flex: 1 1 auto;
}

/* --- Cabeçalho --- */
.fp-topo {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8mm;
	padding-bottom: 4mm;
	border-bottom: 2px solid var(--fp-cor2);
}

.fp-logotipo img {
	max-height: 18mm;
	max-width: 60mm;
	object-fit: contain;
}

.fp-logotipo-texto {
	font-size: 14pt;
	font-weight: 700;
	letter-spacing: -0.2px;
}

.fp-topo-contacto {
	font-size: 7.5pt;
	color: var(--fp-cor3);
	text-align: right;
	line-height: 1.5;
}

.fp-qr {
	width: 20mm;
	height: 20mm;
	flex: 0 0 auto;
}

.fp-qr img {
	width: 100%;
	height: 100%;
	image-rendering: pixelated;
}

/* --- Identificação da viatura --- */
.fp-identificacao {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8mm;
	margin-top: 5mm;
}

.fp-nome {
	font-size: 19pt;
	font-weight: 700;
	line-height: 1.1;
	margin: 0;
}

.fp-versao {
	font-size: 11pt;
	font-weight: 400;
	color: var(--fp-cor3);
	margin-top: 1mm;
}

.fp-detalhes {
	font-size: 8pt;
	color: var(--fp-cor3);
	margin-top: 1.5mm;
}

/* --- Preço --- */
.fp-preco {
	text-align: right;
	flex: 0 0 auto;
}

.fp-preco-valor {
	font-size: 22pt;
	font-weight: 700;
	color: var(--fp-cor2);
	line-height: 1;
	white-space: nowrap;
}

.fp-preco-antes {
	font-size: 10pt;
	color: var(--fp-cor3);
	text-decoration: line-through;
}

.fp-preco-nota,
.fp-preco-mes {
	font-size: 8pt;
	color: var(--fp-cor3);
	margin-top: 1mm;
}

.fp-preco-pilula {
	display: inline-block;
	padding: 3mm 8mm;
	border-radius: 999px;
	background: var(--fp-cor2);
	color: #fff;
	font-size: 20pt;
	font-weight: 700;
}

/* --- Fotografias --- */
.fp-fotos {
	display: grid;
	gap: 2mm;
	margin-top: 5mm;
}

.fp-fotos--3 { grid-template-columns: repeat(3, 1fr); }
.fp-fotos--2 { grid-template-columns: repeat(2, 1fr); }
.fp-fotos--1 { grid-template-columns: 1fr; }

.fp-foto {
	background-color: var(--fp-fundo);
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	border-radius: 3mm;
}

.fp-fotos--3 .fp-foto { height: 38mm; }
.fp-fotos--2 .fp-foto { height: 50mm; }
.fp-fotos--1 .fp-foto { height: 80mm; }

.fp-foto--destaque { height: 92mm; }

/* --- Blocos de dados --- */
.fp-seccao {
	margin-top: 6mm;
}

.fp-seccao-titulo {
	font-size: 8pt;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--fp-cor3);
	padding-bottom: 1.5mm;
	margin-bottom: 3mm;
	border-bottom: 1px solid var(--fp-linha);
}

.fp-dados {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 3mm 4mm;
}

.fp-dados--3 { grid-template-columns: repeat(3, 1fr); }
.fp-dados--2 { grid-template-columns: repeat(2, 1fr); }

.fp-dado-rotulo {
	font-size: 7pt;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--fp-cor3);
}

.fp-dado-valor {
	font-size: 10pt;
	font-weight: 600;
}

/* --- Cartões com ícone (modelos 02 e 05) --- */
.fp-cartoes {
	display: grid;
	gap: 2.5mm;
	margin-top: 5mm;
}

.fp-cartoes--5 { grid-template-columns: repeat(5, 1fr); }
.fp-cartoes--4 { grid-template-columns: repeat(4, 1fr); }

.fp-cartao {
	padding: 3mm 2mm;
	border-radius: 3mm;
	background: var(--fp-fundo);
	text-align: center;
}

.fp-cartao-icone {
	display: block;
	margin: 0 auto 1.5mm;
	width: 7mm;
	height: 7mm;
	color: var(--fp-cor2);
}

.fp-cartao-rotulo {
	font-size: 6.5pt;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--fp-cor3);
}

.fp-cartao-valor {
	font-size: 10pt;
	font-weight: 700;
	margin-top: 0.5mm;
}

/* --- Equipamento --- */
.fp-equipamento {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1mm 4mm;
	font-size: 8.5pt;
}

.fp-equipamento li {
	list-style: none;
	display: flex;
	align-items: flex-start;
	gap: 1.5mm;
}

.fp-equipamento ul,
.fp-equipamento {
	margin: 0;
	padding: 0;
}

.fp-equipamento-check {
	flex: 0 0 auto;
	width: 3mm;
	height: 3mm;
	margin-top: 0.8mm;
	color: var(--fp-cor2);
}

.fp-equipamento-texto {
	font-size: 8.5pt;
	line-height: 1.7;
	color: var(--fp-cor1);
}

/* --- Observações / notas --- */
.fp-observacoes {
	font-size: 8.5pt;
	line-height: 1.5;
	color: var(--fp-cor1);
	white-space: pre-line;
}

.fp-destaque-barra {
	margin-top: 4mm;
	padding: 3mm 4mm;
	border-radius: 2mm;
	background: var(--fp-fundo);
	font-size: 7.5pt;
	line-height: 1.5;
	color: var(--fp-cor3);
}

/* --- Assinaturas --- */
.fp-assinaturas {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12mm;
	margin-top: 8mm;
	font-size: 8pt;
	color: var(--fp-cor3);
	text-align: center;
}

.fp-assinatura-linha {
	border-top: 1px solid var(--fp-cor1);
	padding-top: 1.5mm;
}

/* --- Rodapé --- */
.fp-rodape {
	margin-top: 6mm;
	padding-top: 3mm;
	border-top: 1px solid var(--fp-linha);
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 6mm;
	font-size: 6.5pt;
	line-height: 1.5;
	color: var(--fp-cor3);
}

.fp-rodape-legal {
	max-width: 130mm;
}

.fp-rodape-stand {
	text-align: right;
	white-space: nowrap;
}

/* --- Barra de acções (só no ecrã) --- */
.fp-barra {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px;
	background: #111827;
	color: #fff;
	font-size: 13px;
}

.fp-barra button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	border: 0;
	border-radius: 20px;
	background: #1babbf;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
}

.fp-barra button.fp-barra-secundario {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
}

.fp-barra + .fp-folha {
	margin-top: 22mm;
}

/* --- Impressão --- */
@media print {
	html,
	body {
		background: #fff;
	}

	.fp-barra {
		display: none !important;
	}

	/* A margem existe por causa da barra de acções (fixa no ecrã) — na impressão sairia como
	   um espaço vazio no topo da página. */
	.fp-folha,
	.fp-barra + .fp-folha {
		width: auto;
		min-height: 0;
		margin: 0;
		box-shadow: none;
		page-break-after: avoid;
	}

	.fp-seccao,
	.fp-fotos,
	.fp-cartoes {
		page-break-inside: avoid;
	}
}
