* {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 0;
	margin: 0;
	font-family: 'Ubuntu', sans-serif;
}

img{
	max-width: 300px;
}

form{
	margin-bottom: 20px;
	text-align: center;
}

.campo{
	width: 300px;
    height: 40px;
    text-align: center;
}

button{
	margin-top: 10px;
	padding: 10px 15px;
}

.cartao {
	font-family: 'Ubuntu', sans-serif;
	font-size: 8px;
	width: 312px;
	height: 204px;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 6px;
}

td {
	text-transform: uppercase;
	padding: 2px;
}

.table {
	width: 100%;
	background-color: transparent;
}

.table th,
.table td {
	padding: 0.3rem;
	vertical-align: top;
	border-top: 1px solid #000;
	border-radius: 2px;
	text-align: center;
}

.table thead th {
	vertical-align: bottom;
	border-bottom: 2px solid #000;
}

.table tbody+tbody {
	border-top: 2px solid #000;
}

.table .table {
	background-color: #fff;
}

.table-bordered th,
.table-bordered td {
	border: 1px solid #000;
}

.table-bordered thead th,
.table-bordered thead td {
	border-bottom-width: 2px;
}

@media print
{
    .nao-imprimir
    {
        display: none !important;
	}

	.cartao{
		display: block !important;
		border: none;
	}
}

.rodape
{
	display: flex;
	justify-content: space-between;
}

/* Botoes "Salvar" e "Restaurar" abaixo do cartao. */
.acoes {
	display: flex;
	width: 90%;
	margin-top: 10px;
	justify-content: space-evenly;
	align-items: flex-start;
}

/* Mensagens de retorno das acoes e de erro de leitura do pedido. */
.message span {
	display: block;
}

.message-ok {
	color: #1b6b2f;
}

.message-erro {
	color: #a52121;
}

.aviso-ajuste {
	max-width: 340px;
	font-size: 11px;
	text-align: center;
	color: #6b5300;
}

/* ---------------------------------------------------------------------------
   Aviso do verso do certificado.

   Cobre a tela antes de imprimir quando o cliente usa um verso diferente do
   padrao. Nunca sai na impressao (tem a classe nao-imprimir).
   --------------------------------------------------------------------------- */
.aviso-verso {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 0, 0, 0.65);
	overflow-y: auto;
}

.aviso-verso-caixa {
	width: 100%;
	max-width: 520px;
	max-height: 92vh;
	overflow-y: auto;
	padding: 24px;
	text-align: center;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.aviso-verso-titulo {
	margin: 0 0 14px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: #a52121;
}

.aviso-verso-nome {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 500;
}

.aviso-verso-descricao {
	margin: 0 0 4px;
	font-size: 13px;
	color: #5f6672;
}

.aviso-verso-imagem {
	display: block;
	max-width: 100%;
	max-height: 48vh;
	width: auto;
	margin: 14px auto;
	object-fit: contain;
	border: 1px solid #dcdfe4;
	border-radius: 4px;
}

.aviso-verso-botao {
	width: 100%;
	margin-top: 6px;
	padding: 12px 16px;
	font: inherit;
	font-size: 15px;
	color: #fff;
	background: #1f5fa9;
	border: none;
	border-radius: 6px;
	cursor: pointer;
}

.aviso-verso-botao:hover {
	filter: brightness(0.94);
}

/* Acesso ao painel de admin, discreto e fora da impressao. */
.link-admin {
	margin-top: 18px;
	font-size: 12px;
}

.link-admin a {
	color: #666;
}