/**
 * v1.0.57
 */
.Form {
	/**
	 * Formulário.
	 */
	display:table;
	margin:1em auto;
	padding:0 .5rem 0 9rem;
}
.Form > * {
	margin-left:-9rem;
	clear:both;
}

.Form > .cxBts {
	/**
	 * Contentor dos botões.
	 */
	float:none;
	overflow:hidden;
	margin-left:0;
	padding:.5em 0 0 0;
	clear:both
}
.Form > .cxBts.esq {
	margin-left:-9rem;
	padding-top:1em
}
.cxBts > button,
.cxBts > a.bt
{
	float:left;
	cursor:pointer;
}
label,
.Form .campo
{
	/**
	 * Campo.
	 */
	position:relative;
	display:table;
	margin-top:.1em;
	margin-bottom:.1em;
	padding:.2em .5rem;
	white-space:nowrap;	/* O Chrome por vezes lembra-se de passar o controlo para baixo do rótulo */
	z-index:1;
}
label > em,
fieldset > legend,
fieldset > h3,
.Form .campo > em,
.Form section > h3
{
	/**
	 * Rótulo do campo.
	 */
	display:inline-block;
	width:8rem;
	padding:0 1rem 0 0;
	font-style:normal;
	vertical-align:middle;
	white-space:normal;
}
label > em > span,
	.Form .campo > em > span,
	.Form h3 > span,
	.Form legend > span
{
	/**
	 * Indicação de campo obrigatório.
	 */
	position:absolute;
	padding:0 0 0 .2em;
	color:#f00;
	font-size:120%
}
label > em > span.um,
	.Form .campo > em > span.um
{
	color:#f3a2a2
}
label.obrigatorioComJS > em > span {	display:none	}
.JS label.obrigatorioComJS > em > span {	display:inline-block	}

.Form .campo {	clear:none	}
.Form .campo+.campo {	clear:both	}
.Form .campo > label {	padding:0	}


.Form input,
	.Form textarea,
	.Form select
{
	/**
	 * Formatação do controlo.
	 */
	display:inline-block;
	width:22em;
	font-size:inherit;	/* Evita bugs no <TEXTAREA>. */
	vertical-align:middle;
}

.peq input,
.peq select
{
	width:10em
}


/**
 * GRUPOS DE CAMPOS
 */
.Form > h2 {
	/**
	 * Rótulo de grupos.
	 */
	margin:0 0 0 -9rem;
	padding:1.3em 0 .5em 0;
	font-weight:bold;
	clear:both;
}
.Form h2:first-child,
.Form #foco-form:first-child+h2
	{	padding-top:0	}
fieldset {
	position:relative;
	margin:0;
	padding:.2em 0 .2em 9rem;
	border:none;
}
.Form > section
{
	position:relative;
	padding:.2em 0;
	border:none;
}
fieldset > legend,
fieldset > h3,
.Form > section > h3
{
	float:left;
	width:8rem;
	margin:0 0 0 -9rem;
	padding:.2em .5rem .2em .5rem;
	font-size:100%;
	font-weight:normal;
	clear:none
}
.Form > section > h3 {	margin-left:0	}


.cxGrupoCampos > label.chk {	margin-left:0	}
.cxGrupoCampos > div {	margin-left:2.4em	}


/**
 * GRUPOS EM QUE OS CAMPOS TÊM O RÓTULO POR BAIXO
 */
.Form .emBaixo {
	display:table;
	margin-left:0;
	padding:0 0 0 .5rem;
	clear:both;
}
Form .emBaixo > h3,
Form .emBaixo > legend {
	padding:0 1rem 0 0
}
.Form > section > .emBaixo {	margin-left:9rem	}
.Form > section > .emBaixo > h3 {
	position:absolute;
	margin:.5em 0 0 -9rem;
	padding:0;
}

.Form .emBaixo label,
	.Form .emBaixo .campo
{
	float:left;
	padding-left:0;
	padding-right:.5em;
	clear:none;
}
.Form .emBaixo label > em,
	.Form .emBaixo .campo > em
{
	position:absolute;
	top:-9999em;
	overflow:hidden;
	width:1px; /* //! */
	padding:0;
}
.Form .emBaixo label > input+em,
.Form .emBaixo label > select+em,
	.Form .emBaixo .campo > input+em,
	.Form .emBaixo .campo > select+em
{
	position:static;
	display:block;
	padding:.1em 0 0 .3em;
	width:auto;
	font-size:85%;
}


/**
 * CAMPOS QUE SÃO LISTAS DE VALORES
 */
 .itens {
	 display:inline-block;
 }
 .itens > .campo {
	 overflow:hidden;
}
 .itens > .campo > label {
	 float:none;
	 display:inline-block;
	 clear:none;
	 vertical-align:middle;
 }
.itens > div.campo > label > em {
	position:absolute;
	top:-9999cm
}


/**
 * CHECKBOXES e RADIO BUTTONS
 */
.grupoOps label {
	float:none;
	display:table;
	margin:0 1em 0 0;
	cursor:pointer;
	clear:none;
}
.Form fieldset > .chk {	padding-left:.5em	}
.Form section > .chk {
	margin-left:9rem;
	padding-left:.5em
}
.grupoOps label.chk,
.Form > label.chk
{
	margin-left:0;
	padding-left:.6em;
	cursor:pointer
}
label.chk {	cursor:pointer	}

.grupoOps > label > *,
.grupoOps > .campo > *
{
	display:inline-block;
	margin:0;
	padding:0;
	vertical-align:middle;
	line-height:normal;
}

.grupoOps > .campo {
	float:none;
	padding:0;
}
.grupoOps.horizontal > * {
	float:none;
	display:inline-block;
	margin-top:0;
	line-height:100%;
	vertical-align:middle;
	clear:none;
}

.chk > input,
	.grupoOps > label > input,
	.grupoOps > .campo > input
{
	width:auto;
	margin:0 6px 0 0;
	padding:0;
	border:none;
}

.chk.textoLongo > * {	vertical-align:top	}
.chk.textoLongo > input {	margin-top:.3em	}


/**
 * CAMPOS COM DICAS POR BAIXO
 */
 label > span {
	display:inline-block;
	max-width:22em;
	vertical-align:middle;
	white-space:normal;
}
label > small,
label.chk > small,
label > span > small
{
	 display:block;
	 max-width:30em;
	 padding:.2em 0 0 .3em;
	 color:#666;
	 white-space:normal;
	 line-height:105%;
	 clear:both;
}
label.chk > small {	padding-left:1.7em	}


/**
 * CAMPOS COM BOTÃO AO LADO
 */
.comBotao {	margin-right:-2em	}


/**
 * FORMATAÇÃO DE MENSAGENS DE ERRO
 */
ins.err {
	/**
	 * Mensagem de erro.
	 */
	display:block;
	margin:.4em 0 1px 9.3rem;
	color:#722;
	font-size:85%;
	text-align:left;
	text-decoration:none;
	clear:both;
}
ins.err > em:first-child {
	/**
	 * Esconder visualmente o nome dos campos nas mensagens de erro, que são
	 * úteis só para os leitores de ecrã.
	 */
	position:absolute;
	left:-9999em;
}
html.JS ins.err {
	display:none;
	position:absolute;
}
html.JS ins.err > em:first-child {	display:none	}
.err input,
	.err textarea,
	.err select
{
	margin:0;
	background-color:#fbe6e6;
	border:2px solid #bf0e0e
}
.err.chk input,
.err .chk input
{
	margin:3px 6px 0 0
}
.err input:invalid,
	.err textarea:invalid,
	.err select:invalid
{
	/**
	 * Não pode ser fundido com o grupo anterior, porque os browsers que não
	 * suportem a pseudo-classe ":invalid", iriam ignorar todo o grupo.
	 */
	margin:0;
	background-color:#fff8f8;
	border:2px solid #bf0e0e
}
.err.chk input:invalid {
	margin:3px 6px 0 0;
	border:none;
}


/**
 * ERROS DE GRUPO
 */
.Form .gerr ins.err {	margin:1em 0 1px 9rem	}
.Form h2+* > ins.err,
.Form fieldset.gerr > ins:not(:first-child).err {
	/**
	 * Anular a margem de topo da mensagem de erro para grupos com rótulo.
	 */
	margin-top:0
}
.Form .gerr {
	margin-right:-5px;
	padding-right:5px;
	border-right:3px solid #bf0e0e;
	border-top-right-radius:15px;
	border-bottom-right-radius:15px;
}
.Form .gerr input,
	.Form .gerr textarea,
	.Form .gerr select
{
	background-color:#fff8f8;
}


/**
 * FOCO
 * (Elemento colocado pelo Javascript por baixo da <LABEL> activa, para assinalar o campo
 * actual).
 */
#foco-form {
	display:block;
	position:absolute;
	background:#fefae2;
	border:1px solid #ccc;
	opacity:.6;
	border-radius:6px;
	z-index:0;
	box-sizing:border-box;
	-moz-box-sizing:border-box
}


/**
 * Desactivar "spin buttons" automáticos no Webkit.
 */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button
	{	-webkit-appearance:none	}
input.seqNum::-webkit-inner-spin-button {	-webkit-appearance:inner-spin-button	}
input.seqNum::-webkit-outer-spin-button {	-webkit-appearance:outer-spin-button	}


/**
 * Destacar campos só-de-leitura ou desactivados.
 */
input[readonly],
	input[disabled],
	textarea[disabled],
	textarea[readonly],
	.JS input.disabled,
	.JS .gerr input.disabled
{
	color:#333;
	background-color:#e3e3e3;
	border-color:#333;
	pointer-events:none;
}



@media (max-width:30em) {

.Form {
	padding-left:.5rem;
}
.Form > * {
	margin-left:0;
}
.Form > h2 {
	margin-left:0;
}
label > em,
	fieldset > h3,
	fieldset > legend,
	.Form .campo > em,
	.Form section > h3
{
	display:block;
	width:auto;
	padding:0 0 .2em .1em;
	clear:both;
}

}



/*
 * == // ==
 */

.m_rua > input {	width:12.2em	}
.m_porta > input {	width:2.2em	}
.m_andar > input {	width:1.9em	}
.m_lado > input {	width:2.7em	}
.m_lado > em {
	margin-right:.3em;
	text-align:right
}
.m_localizador > select {	width:5.2em	}
.m_numero > input {	width:2.5em	}
.m_refs > input {	width:11.5em	}
.m_cp > input {	width:5em	}
.m_localidade > input {	width:15.5em	}
.Form > section > .emBaixo > .m_rua {	padding-right:0	}
.Form > section > .emBaixo > .m_porta {	padding-left:0	}
.Form > section > .emBaixo > .m_andar {	padding-right:0	}
.Form > section > .emBaixo > .m_lado {	padding-left:0	}


.campo > input {	float:left	}
.campo > .btRemover {
	float:left;
	display:none;
	width:22px;
	height:22px;
	margin:0 1px 1px .4em;
	padding:.1em;
	background:url(remover.png) 0 center no-repeat;
	border:none;
	clear:none;
	-moz-box-shadow:none;
	-webkit-box-shadow:none;
	box-shadow:none;
	cursor:pointer
}
.campo > .btRemover:hover,
	.campo > .btRemover:focus
{
	background-position:right
}
.campo > .btRemover:active {	margin:6px 0 0 4px	}

.JS .campo > .btRemover {	display:inline-block	}
.JS .campo > .btRemover > * {	display:none	}

.JS .campo.extra {	display:none	}
.JS .campo.extra.novo {	display:block	}
.JS .campo.novo > .btRemover {	display:none	}

.JS .jsInvisivel {	display:none	!IMPORTANT	}

.cxBts > .eliminar {
	color:#fff;
	background:#830000;
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ef1313), color-stop(1, #9a2121));
	background:-moz-linear-gradient(top, #ef1313 5%, #9a2121 100%);
	background:-webkit-linear-gradient(top, #ef1313 5%, #9a2121 100%);
	background:-o-linear-gradient(top, #ef1313 5%, #9a2121 100%);
	background:-ms-linear-gradient(top, #ef1313 5%, #9a2121 100%);
	background:linear-gradient(to bottom, #ef1313 5%, #9a2121 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9a2121', endColorstr='#ef1313',GradientType=0);
	border-color:#c31515;
	-moz-box-shadow:0px 0px 0px 1px #d24141;
	-webkit-box-shadow:0px 0px 0px 1px #d24141;
	box-shadow:0px 0px 0px 1px #d24141;
}

#notaForm {
	display:table;
	max-width:40em;
	min-height:40px;
	margin:0 auto 2em auto;
	padding:1em 2em 1em 90px;
	font-size:90%;
	background:#f6f6ef url(sinais/info.png) 20px center no-repeat;
	border-top:2px solid #ccc;
	border-bottom:2px solid #ccc;
}
#notaForm > div {
	display:inline-block;
	vertical-align:middle
}
#notaForm > div > p {	margin:.3em 0	}
