/*
 * Madeirense Empregos
 * Usa as cores do tema BuddyBoss (variáveis --bb-*) quando existem, com alternativas próprias.
 */

.mde {
	--mde-cor: var(--bb-primary-color, #015c92);
	--mde-cor-hover: var(--bb-primary-button-background-hover, #01466f);
	--mde-texto: var(--bb-body-text-color, #3f3f3f);
	--mde-titulos: var(--bb-headings-color, #1e2132);
	--mde-suave: var(--bb-alternate-text-color, #6b7280);
	--mde-fundo: var(--bb-content-background-color, #fff);
	--mde-fundo-alt: var(--bb-content-alternate-background-color, #f6f8fa);
	--mde-borda: var(--bb-content-border-color, #e3e6ea);
	--mde-raio: var(--bb-block-radius, 10px);
	--mde-ok: #1b7f4b;
	--mde-erro: #b42318;
	--mde-alerta: #b54708;
	color: var(--mde-texto);
	font-size: 15px;
	line-height: 1.55;
}

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

.mde h2 {
	font-size: 1.2em;
	margin: 0 0 .6em;
	color: var(--mde-titulos);
}

.mde h3 {
	font-size: 1.05em;
	margin: 0;
	color: var(--mde-titulos);
}

.mde a {
	color: var(--mde-cor);
}

.mde-suave {
	color: var(--mde-suave);
	font-size: .92em;
}

.mde .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Botões ---------- */

.mde-btn,
.mde button.mde-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4em;
	padding: .62em 1.15em;
	border: 1px solid var(--mde-cor);
	border-radius: 999px;
	background: var(--mde-cor);
	color: #fff !important;
	font-weight: 600;
	font-size: .95em;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background .15s, border-color .15s;
	white-space: nowrap;
}

.mde-btn:hover,
.mde-btn:focus-visible {
	background: var(--mde-cor-hover);
	border-color: var(--mde-cor-hover);
}

.mde-btn--sec,
.mde button.mde-btn--sec {
	background: transparent;
	color: var(--mde-cor) !important;
}

.mde-btn--sec:hover,
.mde-btn--sec:focus-visible {
	background: var(--mde-fundo-alt);
	color: var(--mde-cor-hover) !important;
}

.mde-btn--peq {
	padding: .4em .85em;
	font-size: .86em;
}

.mde-btn--grande {
	padding: .8em 1.6em;
	font-size: 1.05em;
}

.mde-perigo {
	color: var(--mde-erro) !important;
}

/* ---------- Avisos ---------- */

.mde-aviso {
	padding: .8em 1em;
	border-radius: var(--mde-raio);
	margin: 0 0 1.2em;
	border: 1px solid;
}

.mde-aviso ul {
	margin: .4em 0 0 1.2em;
}

.mde-aviso--sucesso {
	background: #ecfdf3;
	border-color: #a6e9c3;
	color: #05603a;
}

.mde-aviso--erro {
	background: #fef3f2;
	border-color: #fecdca;
	color: var(--mde-erro);
}

.mde-aviso--info {
	background: #eff8ff;
	border-color: #b2ddff;
	color: #175cd3;
}

.mde-login,
.mde-vazio {
	padding: 1.4em;
	border: 1px dashed var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo-alt);
	text-align: center;
	margin: 0 0 1.2em;
}

.mde-login p,
.mde-vazio p {
	margin: 0 0 .6em;
}

.mde-login__botoes {
	display: flex;
	gap: .6em;
	justify-content: center;
	flex-wrap: wrap;
}

/* ---------- Etiquetas e estados ---------- */

.mde-tag {
	display: inline-block;
	padding: .15em .6em;
	border-radius: 999px;
	background: var(--mde-fundo-alt);
	border: 1px solid var(--mde-borda);
	font-size: .8em;
	font-weight: 500;
	color: var(--mde-texto);
	vertical-align: middle;
	white-space: nowrap;
}

.mde-tag--urgente {
	background: #fff4ed;
	border-color: #f9dbaf;
	color: var(--mde-alerta);
	font-weight: 700;
}

.mde-tag--nova {
	background: #ecfdf3;
	border-color: #a6e9c3;
	color: var(--mde-ok);
	font-weight: 700;
}

.mde-tag--mod {
	background: #eff8ff;
	border-color: #b2ddff;
	color: #175cd3;
}

.mde-estado {
	display: inline-block;
	padding: .15em .65em;
	border-radius: 6px;
	font-size: .8em;
	font-weight: 600;
	background: var(--mde-fundo-alt);
	color: var(--mde-suave);
	vertical-align: middle;
	white-space: nowrap;
}

.mde-estado--aberta,
.mde-estado--contratada {
	background: #ecfdf3;
	color: var(--mde-ok);
}

.mde-estado--nova {
	background: #eff8ff;
	color: #175cd3;
}

.mde-estado--analise,
.mde-estado--pendente {
	background: #fffaeb;
	color: var(--mde-alerta);
}

.mde-estado--entrevista {
	background: #f4f3ff;
	color: #5925dc;
}

.mde-estado--recusada,
.mde-estado--expirada,
.mde-estado--fechada,
.mde-estado--retirada {
	background: #f2f4f7;
	color: #475467;
}

.mde-estado--preenchida {
	background: #ecfdf3;
	color: var(--mde-ok);
}

/* ---------- Logótipo ---------- */

.mde-logo {
	flex: 0 0 auto;
	display: inline-flex;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	overflow: hidden;
	background: var(--mde-fundo-alt);
	border: 1px solid var(--mde-borda);
	align-items: center;
	justify-content: center;
	text-decoration: none !important;
}

.mde-logo img,
.mde-logo__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 0;
	margin: 0;
}

.mde-logo--grande {
	width: 84px;
	height: 84px;
}

.mde-logo--peq {
	width: 44px;
	height: 44px;
	vertical-align: middle;
}

.mde-logo__iniciais {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 44px;
	min-height: 44px;
	border-radius: 12px;
	background: var(--mde-cor);
	color: #fff;
	font-weight: 700;
	font-size: 1.1em;
	letter-spacing: .02em;
}

/* ---------- Lista e filtros ---------- */

.mde-lista__topo {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1em;
	margin: 0 0 1em;
	flex-wrap: wrap;
}

.mde-lista__intro {
	margin: 0;
	color: var(--mde-suave);
	max-width: 60ch;
}

.mde-filtros {
	padding: 1em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
	margin: 0 0 1em;
}

.mde-filtros__pesquisa {
	display: flex;
	gap: .5em;
	margin: 0 0 .8em;
}

.mde-filtros__pesquisa input[type="search"] {
	flex: 1;
	min-width: 0;
}

.mde-filtros__grelha {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: .6em;
	align-items: center;
}

.mde-filtro select {
	width: 100%;
}

.mde input[type="text"],
.mde input[type="search"],
.mde input[type="email"],
.mde input[type="tel"],
.mde input[type="url"],
.mde input[type="number"],
.mde input[type="date"],
.mde select,
.mde textarea {
	width: 100%;
	max-width: 100%;
	padding: .55em .75em;
	border: 1px solid var(--mde-borda);
	border-radius: 8px;
	background: var(--mde-fundo);
	color: var(--mde-texto);
	font: inherit;
	min-height: 42px;
}

.mde textarea {
	min-height: 0;
	resize: vertical;
}

.mde input:focus,
.mde select:focus,
.mde textarea:focus {
	outline: 2px solid var(--mde-cor);
	outline-offset: 1px;
	border-color: var(--mde-cor);
}

.mde-lista__resumo {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1em;
	flex-wrap: wrap;
	margin: 0 0 .6em;
}

.mde-lista__total,
.mde-ordem {
	margin: 0;
	font-size: .92em;
	color: var(--mde-suave);
}

.mde-lista__total {
	font-weight: 600;
	color: var(--mde-titulos);
}

/* ---------- Cartões ---------- */

.mde-cards {
	display: grid;
	gap: .8em;
}

.mde-card {
	position: relative;
	display: flex;
	gap: 1em;
	padding: 1em 1.1em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
	transition: border-color .15s, box-shadow .15s;
}

.mde-card:hover {
	border-color: var(--mde-cor);
	box-shadow: 0 2px 10px rgba(16, 24, 40, .06);
}

.mde-card--urgente {
	border-left: 4px solid var(--mde-alerta);
}

.mde-card--inativa {
	opacity: .7;
}

.mde-card__corpo {
	flex: 1;
	min-width: 0;
}

.mde-card__titulo {
	font-size: 1.05em;
	line-height: 1.3;
	padding-right: 2em;
}

.mde-card__titulo a {
	color: var(--mde-titulos);
	text-decoration: none;
}

.mde-card__titulo a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.mde-card__titulo a:hover {
	color: var(--mde-cor);
}

.mde-card__empresa {
	margin: .2em 0 .45em;
	font-weight: 500;
}

.mde-card__tags {
	margin: 0 0 .4em;
	display: flex;
	flex-wrap: wrap;
	gap: .3em;
}

.mde-card__resumo {
	margin: 0 0 .45em;
	color: var(--mde-suave);
	font-size: .93em;
}

.mde-card__meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .3em 1.1em;
	font-size: .86em;
	color: var(--mde-suave);
}

.mde-card__salario {
	color: var(--mde-ok);
	font-weight: 600;
}

/* Guardar */

.mde-guardar {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: .35em;
	color: var(--mde-suave) !important;
	text-decoration: none !important;
	font-size: .9em;
	font-weight: 600;
}

.mde-guardar svg path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.mde-guardar.is-on {
	color: var(--mde-cor) !important;
}

.mde-guardar.is-on svg path {
	fill: currentColor;
}

.mde-guardar--ico {
	position: absolute;
	top: .9em;
	right: .9em;
	padding: .3em;
	border-radius: 8px;
}

.mde-guardar--ico:hover {
	background: var(--mde-fundo-alt);
}

/* Paginação */

.mde-paginacao {
	margin: 1.4em 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: .35em;
	justify-content: center;
}

.mde-paginacao .page-numbers {
	display: inline-block;
	padding: .4em .8em;
	border: 1px solid var(--mde-borda);
	border-radius: 8px;
	text-decoration: none;
}

.mde-paginacao .current {
	background: var(--mde-cor);
	border-color: var(--mde-cor);
	color: #fff;
}

/* ---------- Página da vaga ---------- */

.mde-vaga__cab {
	display: flex;
	gap: 1em;
	align-items: center;
	margin: 0 0 1em;
}

.mde-vaga__cab-txt {
	flex: 1;
	min-width: 0;
}

.mde-vaga__empresa {
	margin: 0 0 .35em;
	font-size: 1.1em;
	font-weight: 600;
	color: var(--mde-titulos);
}

.mde-ficha {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: .8em 1.2em;
	padding: 1em 1.1em;
	margin: 0 0 1.2em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo-alt);
}

.mde-ficha--simples {
	background: transparent;
	border: 0;
	padding: 0;
}

.mde-ficha dt {
	margin: 0;
	font-size: .78em;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--mde-suave);
	font-weight: 600;
}

.mde-ficha dd {
	margin: .1em 0 0;
	font-weight: 600;
	color: var(--mde-titulos);
}

.mde-vaga__cta {
	margin: 0 0 1.4em;
}

.mde-sec {
	margin: 0 0 1.6em;
	padding: 0 0 1.4em;
	border-bottom: 1px solid var(--mde-borda);
}

.mde-sec:last-of-type {
	border-bottom: 0;
}

.mde-lista-simples {
	margin: 0 0 1em 1.2em;
	padding: 0;
}

.mde-lista-simples li {
	margin: 0 0 .25em;
}

.mde-formas {
	list-style: none;
	margin: 0 0 1em;
	padding: 0;
	display: grid;
	gap: .5em;
}

.mde-forma {
	padding: .65em .9em;
	border-radius: 8px;
	background: var(--mde-fundo-alt);
	border: 1px solid var(--mde-borda);
}

.mde-forma--online {
	border-color: var(--mde-cor);
}

.mde-dono {
	padding: 1em;
	border-radius: var(--mde-raio);
	border: 1px solid #b2ddff;
	background: #eff8ff;
	margin: 0 0 1.2em;
}

.mde-dono p {
	margin: 0 0 .5em;
}

.mde-dono__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
	margin: 0 !important;
}

.mde-anunciante__caixa {
	display: flex;
	gap: .9em;
	align-items: center;
}

.mde-anunciante__caixa img {
	border-radius: 50%;
}

.mde-anunciante__caixa p {
	margin: 0 0 .15em;
}

.mde-partilhar p {
	display: flex;
	flex-wrap: wrap;
	gap: .4em;
}

.mde-denunciar {
	margin-top: .8em;
	font-size: .9em;
}

.mde-denunciar summary {
	cursor: pointer;
	color: var(--mde-suave);
}

.mde-voltar {
	margin: 1em 0 0;
}

.mde-ja-candidato {
	padding: 1em;
	border-radius: var(--mde-raio);
	background: #ecfdf3;
	border: 1px solid #a6e9c3;
}

.mde-ja-candidato p {
	margin: 0 0 .4em;
}

/* ---------- Formulários ---------- */

.mde-form {
	margin: 0;
}

.mde-form-candidatura {
	margin-top: 1.2em;
	padding: 1.2em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
}

.mde-form-candidatura h3 {
	margin-bottom: .8em;
}

.mde-bloco {
	margin: 0 0 1.4em;
	padding: 1.2em 1.2em .4em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
	min-width: 0;
}

.mde-bloco legend {
	padding: 0 .4em;
	font-weight: 700;
	font-size: 1.05em;
	color: var(--mde-titulos);
}

.mde-bloco--final {
	padding-bottom: 1em;
}

.mde-campo {
	margin: 0 0 1em;
}

.mde-campo > label,
.mde-label {
	display: block;
	font-weight: 600;
	margin: 0 0 .3em;
	color: var(--mde-titulos);
}

.mde-obrig {
	color: var(--mde-erro);
}

.mde-ajuda {
	display: block;
	margin-top: .3em;
	color: var(--mde-suave);
	font-size: .86em;
}

.mde-grelha {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0 1em;
}

.mde-checks {
	display: flex;
	flex-wrap: wrap;
	gap: .4em 1.2em;
	margin: 0 0 .6em;
}

.mde-checks--col {
	flex-direction: column;
}

.mde-check {
	display: inline-flex;
	align-items: flex-start;
	gap: .45em;
	cursor: pointer;
	font-weight: 400;
}

.mde-check input {
	margin-top: .3em;
	flex: 0 0 auto;
	width: 1.05em;
	height: 1.05em;
	accent-color: var(--mde-cor);
}

.mde-botoes {
	display: flex;
	flex-wrap: wrap;
	gap: .6em;
	align-items: center;
	margin: 1em 0 0;
}

.mde-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mde-topo-links {
	margin: 0 0 1em;
	font-size: .92em;
}

[data-mde-show-if][hidden] {
	display: none !important;
}

.mde-desligado {
	opacity: .45;
	pointer-events: none;
}

/* ---------- Painel ---------- */

.mde-painel__topo {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1em;
	flex-wrap: wrap;
	margin: 0 0 1.2em;
}

.mde-numeros {
	display: grid;
	grid-template-columns: repeat(4, minmax(110px, 1fr));
	gap: .6em;
	flex: 1;
}

.mde-numero {
	padding: .8em 1em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
}

.mde-numero strong {
	display: block;
	font-size: 1.6em;
	line-height: 1.1;
	color: var(--mde-titulos);
}

.mde-numero span {
	font-size: .82em;
	color: var(--mde-suave);
}

.mde-numero--destaque {
	border-color: var(--mde-cor);
	background: #eff8ff;
}

.mde-numero--destaque strong {
	color: var(--mde-cor);
}

.mde-tabela-wrap {
	overflow-x: auto;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
}

.mde-tabela {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	border: 0;
}

.mde-tabela th,
.mde-tabela td {
	padding: .75em .9em;
	text-align: left;
	vertical-align: top;
	border: 0;
	border-bottom: 1px solid var(--mde-borda);
	font-size: .93em;
}

.mde-tabela th {
	background: var(--mde-fundo-alt);
	font-size: .78em;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--mde-suave);
}

.mde-tabela tr:last-child td {
	border-bottom: 0;
}

.mde-acoes {
	text-align: right !important;
	white-space: nowrap;
}

.mde-menu {
	position: relative;
	display: inline-block;
}

.mde-menu summary {
	list-style: none;
}

.mde-menu summary::-webkit-details-marker {
	display: none;
}

.mde-menu ul {
	position: absolute;
	right: 0;
	z-index: 20;
	min-width: 210px;
	margin: .3em 0 0;
	padding: .35em 0;
	list-style: none;
	background: var(--mde-fundo);
	border: 1px solid var(--mde-borda);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .12);
	text-align: left;
}

.mde-menu li a {
	display: block;
	padding: .45em 1em;
	text-decoration: none;
	color: var(--mde-texto);
}

.mde-menu li a:hover {
	background: var(--mde-fundo-alt);
}

.mde-painel__cab {
	display: flex;
	justify-content: space-between;
	gap: 1em;
	flex-wrap: wrap;
	margin: 0 0 1em;
}

.mde-painel__cab h2 {
	margin: 0 0 .2em;
}

.mde-painel__cab-acoes {
	display: flex;
	flex-wrap: wrap;
	gap: .4em;
	margin: 0;
	align-items: flex-start;
}

.mde-separadores {
	display: flex;
	flex-wrap: wrap;
	gap: .4em;
	margin: 0 0 1em;
}

.mde-separadores a {
	padding: .35em .85em;
	border-radius: 999px;
	border: 1px solid var(--mde-borda);
	text-decoration: none;
	font-size: .88em;
	color: var(--mde-texto);
}

.mde-separadores a[aria-current="page"] {
	background: var(--mde-cor);
	border-color: var(--mde-cor);
	color: #fff;
}

.mde-candidaturas {
	display: grid;
	gap: .9em;
}

.mde-cand {
	padding: 1em 1.1em;
	border: 1px solid var(--mde-borda);
	border-radius: var(--mde-raio);
	background: var(--mde-fundo);
}

.mde-cand--nova {
	border-left: 4px solid #2e90fa;
}

.mde-cand--retirada {
	opacity: .65;
}

.mde-cand__cab {
	display: flex;
	gap: .8em;
	align-items: center;
	margin: 0 0 .6em;
}

.mde-cand__cab img,
.mde-cand__cab .mde-logo__iniciais {
	width: 48px;
	height: 48px;
	min-width: 48px;
	border-radius: 50%;
}

.mde-cand__cab p {
	margin: .1em 0 0;
}

.mde-cand__contactos {
	list-style: none;
	margin: 0 0 .7em;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .3em 1.2em;
	font-size: .93em;
}

.mde-cand__msg,
.mde-cand__hist {
	margin: 0 0 .8em;
	font-size: .93em;
}

.mde-cand details summary,
.mde-cand__form details summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--mde-cor);
	margin: 0 0 .4em;
}

.mde-cand__form {
	padding-top: .8em;
	border-top: 1px dashed var(--mde-borda);
}

.mde-cand__form .mde-campo {
	margin-bottom: .6em;
}

/* ---------- Telemóvel ---------- */

@media (max-width: 640px) {
	.mde-card {
		padding: .9em;
		gap: .75em;
	}

	.mde-logo {
		width: 46px;
		height: 46px;
	}

	.mde-logo--grande {
		width: 64px;
		height: 64px;
	}

	.mde-filtros__pesquisa {
		flex-direction: column;
	}

	.mde-filtros__grelha {
		grid-template-columns: 1fr 1fr;
	}

	.mde-numeros {
		grid-template-columns: 1fr 1fr;
	}

	.mde-painel__topo > .mde-btn {
		width: 100%;
	}

	.mde-tabela thead {
		display: none;
	}

	.mde-tabela,
	.mde-tabela tbody,
	.mde-tabela tr,
	.mde-tabela td {
		display: block;
		width: 100%;
	}

	.mde-tabela tr {
		padding: .6em 0;
		border-bottom: 1px solid var(--mde-borda);
	}

	.mde-tabela td {
		border: 0;
		padding: .25em .9em;
	}

	.mde-tabela td[data-label]::before {
		content: attr(data-label);
		display: block;
		font-size: .74em;
		text-transform: uppercase;
		letter-spacing: .04em;
		color: var(--mde-suave);
	}

	.mde-acoes {
		text-align: left !important;
	}

	.mde-menu ul {
		left: 0;
		right: auto;
	}

	.mde-vaga__cab {
		align-items: flex-start;
		flex-wrap: wrap;
	}
}
