/**
 * Forum Sailor Moon Portugal.
 *
 * Herda do tema o que o tema tem: tipografia, cores de ligacao e o cartao. Aqui
 * esta so o que e proprio do forum — as grelhas, os selos de estado e os icones.
 *
 * As grelhas sao CSS Grid, nao <ul> a simular tabelas: no telefone cada linha
 * passa a duas zonas em vez de gerar scroll horizontal.
 */

.smpt-forum {
	--smpt-forum-faixa: #14213f;
	--smpt-forum-faixa-tinta: #ffffff;
	--smpt-forum-linha: #e3e9f1;
	--smpt-forum-borda: #c6ced8;
	--smpt-forum-fumo: #5a6472;
	--smpt-forum-papel: #f5f8fc;
	--smpt-forum-staff: #7a1f1f;
	--smpt-forum-ouro: #a36b00;
	--smpt-forum-ouro-luz: #f5c518;

	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* O conteúdo do fórum precisa da largura útil antes de chegar ao telefone.
   O GeneratePress conserva 70% para `#primary` quando há sidebar, portanto
   esconder só a coluna deixaria uma faixa vazia à direita. */
@media (max-width: 999px) {
	body.smpt-forum-layout #left-sidebar,
	body.smpt-forum-layout #right-sidebar {
		display: none;
	}

	body.smpt-forum-layout .content-area {
		width: 100%;
	}
}

/* As mesmas variáveis, outra vez — `.smpt-forum-perfil` (perfil Moonies e
   `/forum/membro/`) nunca está dentro de `.smpt-forum` (só as páginas
   `/forum/*` têm essa moldura), mas reutiliza componentes do fórum (a
   tabela de tópicos, agora também uma mensagem inteira em "Últimas
   mensagens no fórum") que dependem destas variáveis sem `var(…, fallback)`
   — sem isto, `var(--smpt-forum-linha)` fica inválida em tempo de cálculo e
   `border: 1px solid var(--smpt-forum-linha)` desaparecia por inteiro. */
.smpt-forum-perfil,
.smpt-forum-membro {
	--smpt-forum-faixa: #14213f;
	--smpt-forum-faixa-tinta: #ffffff;
	--smpt-forum-linha: #e3e9f1;
	--smpt-forum-borda: #c6ced8;
	--smpt-forum-fumo: #5a6472;
	--smpt-forum-papel: #f5f8fc;
	--smpt-forum-staff: #7a1f1f;
	--smpt-forum-ouro: #a36b00;
	--smpt-forum-ouro-luz: #f5c518;
}

/* ------------------------------------------------------------------ cabeca */

.smpt-forum__cabeca {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.smpt-forum__cabeca h1 {
	margin: 0;
}

/* O título é a referência central da leitura do tópico. Não usa o gradiente
   reservado aos títulos editoriais gerais; a engrenagem fica imediatamente ao
   lado, dentro do mesmo grupo de título. */
body:not(.wp-admin) .smpt-forum__cabeca--topico h1 {
	min-width: 0;
	background-image: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	color: var(--contrast);
	-webkit-text-fill-color: currentcolor;
	text-align: center;
}

.smpt-forum__cabeca--topico .smpt-forum__titulo--topico {
	align-items: center;
	justify-content: center;
	gap: .35rem;
}

.smpt-forum__titulo,
.smpt-forum__ferramentas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}

.smpt-forum__titulo {
	width: 100%;
}

.smpt-forum__ferramentas {
	width: 100%;
}

/* `display: flex` acima já é mais específico do que a regra do browser
   para `[hidden]` (que só existe na folha de estilo do próprio browser, a
   prioridade mais baixa de todas) — sem isto, esconder a linha de
   "Selecionar tudo" por atributo não fazia nada, via JavaScript ou não. */
.smpt-forum__ferramentas[hidden] {
	display: none;
}

.smpt-forum__ferramentas .smpt-forum-lido {
	margin: 0;
}

.smpt-forum__ferramentas .smpt-forum-lista__selecao-multipla {
	margin: 0;
}

/* A caixa "selecionar tudo" do índice — fora de qualquer `.smpt-forum-lista`
   (há uma por categoria, esta é uma só para a árvore inteira), por isso não
   herda a regra que esconde a mesma caixa dentro das tabelas antes da
   seleção estar activa. A linha à volta dela (`hidden` por omissão) é que
   trata disso, por JavaScript (`moderacao.js`, `data-smpt-lote-selecao-
   linha`) — o mesmo `activar`/`desactivar` que liga e desliga a seleção
   nas tabelas. */
.smpt-forum-lista__selecao--ferramentas {
	display: flex;
	align-items: center;
	gap: .35rem;
	font-size: .85rem;
}

.smpt-forum-lista__selecao--ferramentas input {
	margin: 0;
}

/* Toda a barra de ferramentas é secundária ao conteúdo — nunca devia pesar
   como um título ou um link de tópico. Contorno claro em vez da faixa a
   papel-cheio, mais pequena, texto na cor do texto normal: chama-se a
   atenção por estar alinhada e agrupada, não por gritar em azul-marinho. */
.smpt-forum__ferramentas .smpt-forum__botao,
.smpt-forum__ferramentas .smpt-forum-lido__botao,
.smpt-forum__ferramentas .smpt-forum-seguir__botao,
.smpt-mod-lote .smpt-forum__botao {
	box-sizing: border-box;
	align-self: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	min-height: 1.9rem;
	padding: .2rem .6rem;
	border: 1px solid var(--smpt-forum-borda);
	border-radius: 8px;
	background: transparent;
	color: var(--smpt-forum-fumo);
	font: inherit;
	font-size: .85rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.smpt-forum__ferramentas .smpt-forum__botao:hover,
.smpt-forum__ferramentas .smpt-forum__botao:focus-visible,
.smpt-forum__ferramentas .smpt-forum-lido__botao:hover,
.smpt-forum__ferramentas .smpt-forum-lido__botao:focus-visible,
.smpt-forum__ferramentas .smpt-forum-seguir__botao:hover,
.smpt-forum__ferramentas .smpt-forum-seguir__botao:focus-visible,
.smpt-mod-lote .smpt-forum__botao:hover,
.smpt-mod-lote .smpt-forum__botao:focus-visible {
	background: var(--smpt-forum-papel);
	color: var(--smpt-forum-fumo);
}

.smpt-mod-lote .smpt-forum__botao:disabled {
	opacity: .55;
	cursor: not-allowed;
}

/* "Seleção múltipla" fica destacada só enquanto activa — é a única coisa
   nesta barra que muda de estado, e precisa de se notar que está ligada. */
.smpt-forum-lista__selecao-multipla[aria-pressed="true"] {
	background: var(--smpt-forum-papel);
	border-color: var(--smpt-forum-faixa);
	color: var(--smpt-forum-faixa);
}

.smpt-forum__descricao,
.smpt-forum__vazio {
	color: var(--smpt-forum-fumo);
	margin: 0;
}

.smpt-forum__descricao {
	font-family: "Caveat", cursive;
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.35;
}

.smpt-forum__pesquisa {
	display: flex;
	gap: .4rem;
}

.smpt-forum__resultado-pesquisa {
	color: var(--smpt-forum-fumo);
	margin: 0 0 1rem;
}

.smpt-forum__resultado-pesquisa a {
	margin-left: .5rem;
}

.smpt-forum__pesquisa input {
	min-width: 12rem;
}

/* ---------------------------------------------------------- menu do fórum */
/* Não há navegação contextual equivalente no tema. Esta barra só compõe os
   links, formulários POST e modal já existentes, sem lhes criar outra lógica. */

.smpt-forum-menu {
	display: flex;
	flex-direction: column;
	gap: .65rem;
}

.smpt-forum-menu__barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .25rem .5rem;
	padding: .45rem .65rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
	background: var(--smpt-forum-papel);
}

.smpt-forum-menu__item,
.smpt-forum-menu .smpt-forum-lido__botao,
.smpt-forum-menu .smpt-forum-seguir__botao {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	min-height: 2rem;
	padding: .25rem .4rem;
	border: 0;
	border-radius: 5px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: .82rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.smpt-forum-menu__item:hover,
.smpt-forum-menu__item:focus-visible,
.smpt-forum-menu .smpt-forum-lido__botao:hover,
.smpt-forum-menu .smpt-forum-lido__botao:focus-visible,
.smpt-forum-menu .smpt-forum-seguir__botao:hover,
.smpt-forum-menu .smpt-forum-seguir__botao:focus-visible {
	background: var(--base-3, #fff);
	color: var(--contrast-2);
}

.smpt-forum-menu__item img {
	flex: 0 0 18px;
}

.smpt-forum-menu .smpt-forum-lido,
.smpt-forum-menu .smpt-forum-seguir {
	margin: 0;
}

.smpt-forum-menu .smpt-forum-lido__botao,
.smpt-forum-menu .smpt-forum-seguir__botao {
	border: 0;
}

.smpt-forum-menu .smpt-forum-lido__botao img,
.smpt-forum-menu .smpt-forum-seguir__botao img {
	flex: 0 0 18px;
}

/* Confirmação de uma subscrição após o POST/redirect. Sem JavaScript continua
   legível; com JavaScript desaparece sozinha, sem ficar no histórico do URL. */
.smpt-forum-toast {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 1000;
	display: flex;
	align-items: center;
	gap: .75rem;
	max-width: min(26rem, calc(100vw - 2rem));
	padding: .75rem 1rem;
	border: 1px solid var(--smpt-forum-borda);
	border-left: 3px solid var(--smpt-forum-faixa);
	border-radius: 8px;
	background: var(--base-3, #fff);
	box-shadow: 0 .25rem .75rem rgb(0 0 0 / .18);
}

.smpt-forum-toast button {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

.smpt-forum-toast.is-a-sair {
	opacity: 0;
	transition: opacity .2s ease;
}

.smpt-forum-toast--erro {
	border-left-color: #c0392b;
}

/* Duas mini-janelas ao mesmo tempo (erro do avatar + confirmação de
   subscrição, por exemplo) — a pilha é que fica ancorada ao canto, e cada
   `.smpt-forum-toast` lá dentro deixa de o estar, para empilharem em vez de
   ficarem uma em cima da outra. */
.smpt-forum-toast-pilha {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.smpt-forum-toast-pilha .smpt-forum-toast {
	position: static;
	right: auto;
	bottom: auto;
}

/* --------------------------------------------------------------- migalhas */

.smpt-forum-migalhas {
	font-size: .85rem;
	color: var(--smpt-forum-fumo);
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	align-items: center;
}

.smpt-forum-migalhas__sep {
	opacity: .5;
}

/* ------------------------------------------------------------- categorias */

.smpt-forum-categoria {
	display: flex;
	flex-direction: column;
}

.smpt-forum-categoria__nome {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: .5rem .85rem;
	border-radius: 10px 10px 0 0;
	background: var(--smpt-forum-faixa);
	color: var(--smpt-forum-faixa-tinta);
	font-size: 1.05rem;
	line-height: 1.3;
}

/* A engrenagem da categoria empurrada para a direita — a mesma margem
   (.85rem) do cabeçalho e das linhas por baixo poe-la quase exactamente por
   cima da coluna de moderacao das salas, em vez de logo depois do nome. */
.smpt-forum-categoria__nome .smpt-mod {
	margin-left: auto;
}

/* ------------------------------------------------------------------ listas */

.smpt-forum-lista {
	border: 1px solid var(--smpt-forum-linha);
	border-top: 0;
	border-radius: 0 0 10px 10px;
	background: var(--base-3, #fff);
}

.smpt-forum-lista--topicos {
	border-top: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
}

/* Indice: estado, sala, topicos, mensagens, ultima mensagem. A coluna de
   moderacao nao entra na grelha por omissao — so quem modera a tem para ver,
   e sem isto todos os outros viam uma coluna sempre vazia no fim. */
.smpt-forum-lista__cabeca,
.smpt-forum-lista__linha {
	display: grid;
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 5.5rem 6.5rem minmax(10rem, 13rem);
	gap: .75rem;
	align-items: center;
	padding: .7rem .85rem;
}

/* Sala: estado, topico, respostas, ultima mensagem. Sem vistas. */
.smpt-forum-lista--topicos .smpt-forum-lista__cabeca,
.smpt-forum-lista--topicos .smpt-forum-lista__linha {
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 6.5rem minmax(10rem, 13rem);
}

/* «Respostas» e «Última mensagem» centradas, cabeçalho e valores — a 3ª e a
   4ª coluna desta grelha. */
.smpt-forum-lista--topicos .smpt-forum-lista__cabeca > span:nth-child(3),
.smpt-forum-lista--topicos .smpt-forum-lista__cabeca > span:nth-child(4) {
	text-align: center;
}

.smpt-forum-lista--topicos .smpt-forum-lista__cabeca > span:nth-child(3) a,
.smpt-forum-lista--topicos .smpt-forum-lista__cabeca > span:nth-child(4) a {
	justify-content: center;
}

/* `has-lote` só é acrescentada a quem modera (§ classe partilhada com a
   seleção em massa, que tem exactamente a mesma audiência) — é aqui que a
   coluna de moderação reaparece na grelha, sempre que essa pessoa a tem. */
.smpt-forum-lista.has-lote .smpt-forum-lista__cabeca,
.smpt-forum-lista.has-lote .smpt-forum-lista__linha {
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 5.5rem 6.5rem minmax(10rem, 13rem) 2.4rem;
}

.smpt-forum-lista--topicos.has-lote .smpt-forum-lista__cabeca,
.smpt-forum-lista--topicos.has-lote .smpt-forum-lista__linha {
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 6.5rem minmax(10rem, 13rem) 2.4rem;
}

/* E a seleção em massa acrescenta mais uma, só quando activa. */
.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca,
.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 5.5rem 6.5rem minmax(10rem, 13rem) 2.4rem 2rem;
}

.smpt-forum-lista--topicos.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca,
.smpt-forum-lista--topicos.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
	grid-template-columns: 2.4rem minmax(12rem, 1fr) 6.5rem minmax(10rem, 13rem) 2.4rem 2rem;
}

/* No índice a tabela reduz-se antes de chegar ao arranjo móvel: primeiro a
   hora da última mensagem, depois os tópicos (as mensagens mantêm-se). Isto
   evita que uma grelha com cinco colunas rígidas possa alargar a página. */
@media (max-width: 64rem) {
	.smpt-forum-lista--indice .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 5.5rem 6.5rem minmax(6.5rem, 8rem);
		gap: .6rem;
	}

	.smpt-forum-lista--indice.has-lote .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice.has-lote .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 5.5rem 6.5rem minmax(6.5rem, 8rem) 2.4rem;
	}

	.smpt-forum-lista--indice.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 5.5rem 6.5rem minmax(6.5rem, 8rem) 2.4rem 2rem;
	}

	.smpt-forum-lista--indice .smpt-forum-data__hora {
		display: none;
	}
}

@media (max-width: 54rem) {
	.smpt-forum-lista--indice .smpt-forum-lista__cabeca > :nth-child(3),
	.smpt-forum-lista--indice .smpt-forum-lista__linha > :nth-child(3) {
		display: none;
	}

	.smpt-forum-lista--indice .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 6.5rem minmax(6.5rem, 8rem);
	}

	.smpt-forum-lista--indice.has-lote .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice.has-lote .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 6.5rem minmax(6.5rem, 8rem) 2.4rem;
	}

	.smpt-forum-lista--indice.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca,
	.smpt-forum-lista--indice.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem minmax(10rem, 1fr) 6.5rem minmax(6.5rem, 8rem) 2.4rem 2rem;
	}
}

.smpt-forum-lista__cabeca {
	background: var(--smpt-forum-papel);
	font-size: .74rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--smpt-forum-fumo);
	padding-top: .45rem;
	padding-bottom: .45rem;
}

/* Sem sublinhado em nenhum cabeçalho, activo ou não — a seta à direita já diz
   que a coluna se pode ordenar, e qual é o estado actual. */
.smpt-forum-lista__cabeca a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	color: inherit;
	text-decoration: none;
}

.smpt-forum-lista__cabeca a[aria-current="true"] {
	font-weight: 700;
	color: var(--text-color, #1c2433);
}

.smpt-forum-lista__cabeca a::after {
	content: "⇅";
	font-size: 1rem;
	line-height: 1;
	opacity: .65;
}

.smpt-forum-lista__cabeca a[data-smpt-ordenado="asc"]::after,
.smpt-forum-lista__cabeca a[data-smpt-ordenado="desc"]::after,
.smpt-forum-lista__cabeca a[aria-current="true"]::after {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--smpt-forum-ouro);
	opacity: 1;
}

/* Sem toggle de direcção próprio — «Respostas» e «Última mensagem» ordenam
   sempre do maior/mais recente para o menor/mais antigo — por isso a seta
   activa é sempre ↓ quando não há `data-smpt-ordenado` a dizer outra coisa. */
.smpt-forum-lista__cabeca a[aria-current="true"]:not([data-smpt-ordenado])::after {
	content: "↓";
}

.smpt-forum-lista__cabeca a[data-smpt-ordenado="asc"]::after {
	content: "↑";
}

.smpt-forum-lista__cabeca a[data-smpt-ordenado="desc"]::after {
	content: "↓";
}

.smpt-forum-lista__linha + .smpt-forum-lista__linha,
.smpt-forum-lista__cabeca + .smpt-forum-lista__linha {
	border-top: 1px solid var(--smpt-forum-linha);
}

.smpt-forum-lista__linha.is-subsala {
	padding-left: 2.6rem;
	background: color-mix(in srgb, var(--smpt-forum-papel) 55%, transparent);
}

.smpt-forum-lista__estado {
	display: flex;
	justify-content: center;
}

.smpt-forum-lista__selecao {
	display: flex;
	align-items: center;
	justify-content: center;
}

.smpt-forum-lista__selecao input {
	margin: 0;
}

.smpt-forum-lista__selecao-texto {
	display: none;
}

.smpt-forum-lista__selecao-multipla {
	margin: 0 0 .65rem;
}

/* Escondida por omissão, com ou sem JavaScript: o botão «Seleção múltipla»
   só existe como toggle de JS — sem ele a coluna nunca chega a servir para
   nada, e mostrá-la antes do JavaScript correr era só um relance. */
.smpt-forum-lista.has-lote:not(.is-selecao-ativa) .smpt-forum-lista__selecao {
	display: none;
}

.smpt-forum-icone {
	display: block;
	height: auto;
	max-width: none;
}

.smpt-forum-lista__nome {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	min-width: 0;
}

.smpt-forum-lista__titulo-linha {
	display: flex;
	align-items: center;
	gap: .3rem;
	min-width: 0;
}

.smpt-forum-topico-afixado,
.smpt-forum-topico-aviso,
.smpt-forum-topico-membros,
.smpt-forum-sala-membros {
	flex: 0 0 auto;
	color: var(--smpt-forum-ouro);
}

.smpt-forum-topico-bloqueado,
.smpt-forum-topico-staff,
.smpt-forum-sala-staff,
.smpt-forum-topico-oculto {
	flex: 0 0 auto;
	color: var(--smpt-forum-fumo);
}

html.smpt-forum-assinaturas-ocultas .smpt-forum-mensagem .smpt-forum-assinatura {
	display: none;
}

/* A ficha do autor flutua à esquerda no desktop. A assinatura estabelece o
   mesmo contexto de formatação usado por citações/spoilers, para a sua linha
   superior começar apenas na largura livre, sem atravessar a ficha. */
.smpt-forum-mensagem__lado .smpt-forum-assinatura {
	display: flow-root;
}

/* Preferência exclusiva da equipa: mantém as permissões intactas, mas retira
   da apresentação tudo o que a moderação marcou como oculto. */
html.smpt-forum-ocultos-escondidos .is-oculto,
html.smpt-forum-ocultos-escondidos .smpt-forum-categoria:has(> .smpt-forum-categoria__nome.is-oculto) {
	display: none;
}

/* Um tópico ou sala aberto directamente pode estar oculto; nesse caso o
   menu continua como saída, mas o conteúdo moderado não é apresentado. */
html.smpt-forum-ocultos-escondidos .smpt-forum:has(> .smpt-forum__cabeca.is-oculto) > :not(.smpt-forum-menu) {
	display: none;
}

.smpt-forum-definicoes h2 {
	margin: 0;
}

.smpt-forum-definicoes__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .6rem 1.2rem;
}

.smpt-forum-definicoes__opcao {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-weight: 400;
}

/* O flex tem de estar na label, não só no <li> — é ela que junta a
   checkbox e a frase; sem isto, uma frase longa quebra linha por conta
   própria e a checkbox fica sozinha na primeira linha. */
.smpt-forum-definicoes__opcao label {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	cursor: pointer;
}

.smpt-forum-definicoes__opcao input {
	flex-shrink: 0;
	width: auto;
	padding: 0;
	margin: .15em 0 0;
}

.smpt-forum-definicoes__nota {
	margin-top: .5rem;
	color: var(--smpt-forum-fumo);
	font-size: .88rem;
}

.smpt-forum-definicoes hr {
	margin: 1.5rem 0;
	border: 0;
	border-top: 1px solid var(--smpt-forum-linha);
}

/* Duas colunas — avatar+género de um lado, localização+nascimento do outro
   — o formulário unificado (Definições/painel), diferente de
   `.smpt-forum-conta__avatar`, que fica só para `conta-forum.php`. */
.smpt-forum-definicoes__perfil {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem 2rem;
	align-items: start;
}

.smpt-forum-definicoes__coluna {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.smpt-forum-definicoes__avatar {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: .6rem;
}

.smpt-forum-definicoes__avatar-acoes {
	display: flex;
	gap: .6rem;
	justify-content: center;
}

/* O `<input type="file">` fica invisível mas continua focável e clicável —
   é o `<label>` a seguir que faz de botão visível, para poder ficar com o
   mesmo aspecto do "Gravar" ao lado (o navegador não deixa estilizar o
   texto nativo "Nenhum ficheiro selecionado", por isso desaparece com o
   input todo). */
.smpt-forum-definicoes__avatar-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.smpt-forum-definicoes__avatar-botao {
	display: inline-block;
	padding: .3rem .85rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 4px;
	background: #f3f5f8;
	color: inherit;
	font: inherit;
	font-size: .85rem;
	line-height: 1.2;
	cursor: pointer;
}

/* "Escolher ficheiro" é uma <label> e "Gravar" é um <button> — em
   `/editar-perfil/` os dois vivem dentro do `<form>` do tema, e a regra
   genérica `.smpt-member-form button` (o botão "Guardar" azul/dourado)
   ganha ao `<button>` daqui por especificidade, mas nunca ganha à
   `<label>`. Sem isto os dois botões, que deviam ser o mesmo par, saíam
   com aspectos diferentes. */
button.smpt-forum-definicoes__avatar-botao {
	display: inline-block;
	padding: .3rem .85rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 4px;
	background: #f3f5f8;
	color: inherit;
	font: inherit;
	font-size: .85rem;
	line-height: 1.2;
	cursor: pointer;
}

/* Nome do ficheiro escolhido, como legenda por baixo dos dois botões — só
   aparece depois de escolhido (o JS enche o texto), e nunca alarga a
   coluna: corta com reticências a partir de `truncar()` no JS, e o
   `title` guarda o nome inteiro para quem passar o rato. */
.smpt-forum-definicoes__avatar-nome {
	max-width: 11rem;
	margin: 0;
	color: var(--smpt-forum-fumo);
	font-size: .8rem;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

label.smpt-forum-definicoes__avatar-botao:hover {
	background: #e9edf2;
}

button.smpt-forum-definicoes__avatar-botao:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.smpt-forum-definicoes__campo {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.smpt-forum-definicoes__campo label,
.smpt-forum-definicoes__campo legend {
	font-size: .85rem;
	color: var(--smpt-forum-fumo);
}

.smpt-forum-definicoes__campo select,
.smpt-forum-definicoes__campo input[type="text"] {
	width: 100%;
}

/* Os três campos de nascimento seguidos numa linha só (dia/mês/ano), ao
   contrário de `.smpt-forum-definicoes__campo`, de quem herdava a coluna. */
.smpt-forum-definicoes__nascimento {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	border: 0;
	padding: 0;
	margin: 0;
}

.smpt-forum-definicoes__nascimento legend {
	padding: 0;
	width: 100%;
}

.smpt-forum-definicoes__nascimento select,
.smpt-forum-definicoes__nascimento input {
	flex: 1 1 0;
	min-width: 0;
}

.smpt-forum-definicoes__accoes {
	text-align: center;
	margin-top: 1.25rem;
}

.smpt-forum-mensagem__identificacao,
.smpt-forum-mensagem__estatisticas {
	display: contents;
}

@media (max-width: 46rem) {
	.smpt-forum-sondagem {
		padding: .85rem;
	}

	.smpt-forum-sondagem__linha {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.smpt-forum-sondagem__linha small {
		grid-column: 2;
	}

	/* Os títulos principais não podem herdar a redução global dos headings
	   no telefone: continuam a ser a referência visual de cada vista. */
	.smpt-forum__cabeca h1,
	.smpt-forum-membro .smpt-member-profile-page__title {
		font-size: 2rem;
		line-height: 1.1;
	}

	.smpt-forum__cabeca h1 {
		font-size: 2.2rem;
	}

	/* Separa a navegação de contexto do conteúdo que introduz. */
	.smpt-forum-migalhas {
		margin-bottom: 1rem;
	}

	/* A paginação herdava a almofada larga do tema. No telefone é apenas uma
	   navegação curta entre mensagens, por isso fica do tamanho do seu papel. */
	body .smpt-forum-paginacao.pagination {
		padding: .5rem 0;
	}

	body .smpt-forum-paginacao.paging-navigation .nav-links {
		gap: .65rem;
		padding-inline: .35rem;
		font-size: .72rem;
	}

	body .smpt-forum-paginacao.pagination .page-numbers.current {
		font-size: 1em;
		line-height: 1.25rem;
	}

	.smpt-forum-definicoes__lista {
		grid-template-columns: 1fr;
	}

	.smpt-forum-definicoes__perfil {
		grid-template-columns: 1fr;
	}
}

.smpt-forum-lista__nome > a {
	font-weight: 600;
	text-decoration: none;
}

.smpt-forum-lista__nome > a:hover,
.smpt-forum-lista__nome > a:focus-visible {
	text-decoration: underline;
}

.smpt-forum-lista__descricao {
	font-size: .84rem;
	color: var(--smpt-forum-fumo);
}

/* O nome de quem abriu o tópico é uma ligação, mas lê-se como texto — a
   mesma cor da frase à volta, com um peso levemente mais forte, e sem
   sublinhado em nenhum estado. */
.smpt-forum-lista__descricao a,
.smpt-forum-lista__descricao a:hover,
.smpt-forum-lista__descricao a:focus-visible {
	color: inherit;
	font-weight: 500;
	text-decoration: none;
}

.smpt-forum-lista__numero {
	font-variant-numeric: tabular-nums;
	font-size: .92rem;
	text-align: center;
}

.smpt-forum-lista__ultima {
	font-size: .82rem;
	color: var(--smpt-forum-fumo);
	font-variant-numeric: tabular-nums;
}

.smpt-forum-lista--topicos .smpt-forum-lista__ultima {
	text-align: center;
}

.smpt-forum-lista__moderacao {
	display: flex;
	justify-content: center;
	position: relative;
	min-width: 0;
}

/* Ao editar, o painel passa para uma segunda linha larga. O botão continua a
   pertencer à célula de moderação, sem apertar o formulário a 2.4rem. */
.smpt-forum-lista__moderacao:has(.smpt-mod__painel) {
	grid-column: 2 / -1;
	justify-content: stretch;
}

.smpt-forum-lista.has-lote .smpt-forum-lista__moderacao:has(.smpt-mod__painel) {
	grid-column: 3 / -1;
}

.smpt-forum-lista__moderacao:has(.smpt-mod__painel) .smpt-mod {
	width: 100%;
}

.smpt-forum-lista__vazio {
	opacity: .7;
}

/* Rotulos que so aparecem no telefone, quando os cabecalhos desaparecem. */
.smpt-forum-lista__rotulo {
	display: none;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--smpt-forum-fumo);
	margin-right: .35rem;
}

/* Um topico com respostas novas fica em negrito, nao so com cor ou animacao. */
.smpt-forum-lista__linha.is-nova .smpt-forum-lista__titulo {
	font-weight: 700;
}

/* ------------------------------------------------------------------- selos */

.smpt-forum-selo {
	display: inline-block;
	font-size: .66rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-weight: 700;
	padding: .1rem .4rem;
	border-radius: 4px;
	vertical-align: .1em;
	white-space: nowrap;
}

.smpt-forum-selo--staff    { background: var(--smpt-forum-staff); color: #fff; }
.smpt-forum-selo--membros  { background: var(--smpt-forum-ouro); color: #fff; }
.smpt-forum-selo--fixo     { background: var(--smpt-forum-ouro-luz); color: #40320a; }
.smpt-forum-selo--aviso    { background: var(--smpt-forum-staff); color: #fff; }
.smpt-forum-selo--fechado  { background: var(--smpt-forum-borda); color: #1c2433; }
.smpt-forum-selo--sondagem { background: #2678dc; color: #fff; }
.smpt-forum-selo--novo     { background: #1d7a4c; color: #fff; }

/* ------------------------------------------------------------ sondagem */
/* Resultados fechados do arquivo: cartão semelhante aos restantes painéis
   do fórum, mas a percentagem é uma propriedade CSS calculada no template. */

.smpt-forum-sondagem {
	padding: 1rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
	background: var(--smpt-forum-papel);
}

.smpt-forum-sondagem__cabeca {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	margin-bottom: .85rem;
}

.smpt-forum-sondagem__cabeca > .dashicons {
	margin-top: .1rem;
	color: var(--smpt-forum-ouro);
}

.smpt-forum-sondagem__cabeca h2,
.smpt-forum-sondagem__cabeca p,
.smpt-forum-sondagem__nota {
	margin: 0;
}

.smpt-forum-sondagem__cabeca h2 {
	font-size: 1.2rem;
	line-height: 1.3;
}

.smpt-forum-sondagem__cabeca p,
.smpt-forum-sondagem__nota,
.smpt-forum-sondagem__linha small {
	color: var(--smpt-forum-fumo);
	font-size: .85rem;
}

.smpt-forum-sondagem__opcoes {
	display: grid;
	gap: .7rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.smpt-forum-sondagem__linha {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: .45rem;
	align-items: baseline;
	margin-bottom: .25rem;
}

.smpt-forum-sondagem__linha > :first-child {
	min-width: 0;
	overflow-wrap: anywhere;
}

.smpt-forum-sondagem__linha strong {
	color: var(--smpt-forum-faixa);
}

.smpt-forum-sondagem__barra {
	height: .7rem;
	overflow: hidden;
	border-radius: 999px;
	background: color-mix(in srgb, var(--smpt-forum-borda) 55%, #fff);
}

.smpt-forum-sondagem__barra > span {
	display: block;
	width: var(--smpt-forum-sondagem-percentagem);
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--smpt-forum-ouro), var(--smpt-forum-ouro-luz));
}

.smpt-forum-sondagem__nota {
	margin-top: .85rem;
}

/* -------------------------------------------------------------- mensagens */
/* O autor a esquerda, como no forum original. */

.smpt-forum-mensagens {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.smpt-forum-mensagem {
	/* A ficha do autor ocupa apenas o que mede. O conteúdo flui ao seu lado e,
	   quando a ficha acaba, recupera a largura inteira da mensagem. */
	display: flow-root;
	padding: 1rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
	background: #fff;
}

.smpt-forum-mensagem__autor {
	float: left;
	position: relative;
	/* A página de tópico define esta variável com a maior ficha visível, pelo
	   script já usado pelas mensagens. Assim a coluna não muda de largura de
	   autor para autor; sem JavaScript mantém o tamanho natural. */
	width: var(--smpt-forum-largura-autor, auto);
	max-width: 11rem;
	/* Compensa o padding da mensagem para a divisão partir da moldura exterior;
	   o padding reposto mantém o retrato e o texto no alinhamento original. */
	margin: -1rem 1rem 1rem -1rem;
	padding: 1rem .75rem .75rem 1rem;
	border-right: 1px solid var(--smpt-forum-linha);
	border-bottom: 0;
	border-bottom-right-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .2rem;
	text-align: center;
	font-size: .8rem;
	color: var(--smpt-forum-fumo);
	min-width: 0;
}

.smpt-forum-mensagem__retrato {
	max-width: 5.5rem;
	height: auto;
	border-radius: 10px;
	border: 1px solid var(--smpt-forum-borda);
}

.smpt-forum-mensagem__retrato--vazio {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	background: #eaf1fb;
	color: #2678dc;
	font-size: 1.4rem;
	font-weight: 700;
}

.smpt-forum-mensagem__nome {
	font-size: 1.05rem;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.smpt-forum-mensagem__nome a {
	text-decoration: none;
}

/* O nome antigo de quem reclamou a conta e preferiu o nome Moonies. */
.smpt-forum-mensagem__antigo {
	font-size: .74rem;
	opacity: .8;
}

.smpt-forum-mensagem__cargo {
	color: var(--smpt-forum-staff);
	font-weight: 700;
	font-size: .76rem;
}

.smpt-forum-mensagem__escalao {
	color: var(--smpt-forum-ouro);
	font-size: .76rem;
	line-height: 1.3;
}

/* O GIF historico do ranking. Sem max-width fixa: o maior tem 88px de altura e
   e assim que ele era no forum original. As dimensoes vem do mapa, por isso a
   coluna nao salta enquanto carrega. */
.smpt-forum-mensagem__rank {
	height: auto;
	max-width: 100%;
	margin: .1rem 0;
}

.smpt-forum-mensagem__meta {
	font-size: .74rem;
	opacity: .85;
}

.smpt-forum-mensagem__meta .dashicons {
	width: .9rem;
	height: .9rem;
	font-size: .9rem;
	line-height: .9rem;
	vertical-align: text-bottom;
}

/* Citações e spoilers criam um contexto próprio: ocupam a largura livre ao
   lado da ficha, sem a atravessar nem deixar uma faixa vazia antes delas. */
.smpt-forum-mensagem__corpo .fx-quote,
.smpt-forum-mensagem__corpo .fx-spoiler {
	display: flow-root;
}

/* Restos de tabelas de citação do fórum antigo: uma linha com uma única célula
   vazia não transporta conteúdo e só cria uma faixa em branco. */
.smpt-forum-mensagem__corpo .fx-quote tr:has(> td:only-child:empty) {
	display: none;
}

/* Só há linha inferior quando o corpo continua por baixo da ficha. */
.smpt-forum-mensagem--corpo-continua .smpt-forum-mensagem__autor {
	border-bottom: 1px solid var(--smpt-forum-linha);
}

/* Quando a ficha é mais alta do que a mensagem visível, a margem dela e o
   padding da caixa não devem deixar a divisão direita suspensa. */
.smpt-forum-mensagem:not(.smpt-forum-mensagem--corpo-continua) .smpt-forum-mensagem__autor::after {
	position: absolute;
	top: 100%;
	right: -1px;
	height: calc(2rem + 1px);
	border-right: 1px solid var(--smpt-forum-linha);
	content: "";
}

.smpt-forum-mensagem__lado {
	min-width: 0;
}

.smpt-forum-mensagem__cabeca {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: .4rem;
	margin-bottom: .7rem;
	border-bottom: 1px solid var(--smpt-forum-linha);
	font-size: .8rem;
	color: var(--smpt-forum-fumo);
	font-variant-numeric: tabular-nums;
}

/* No desktop a data abre a linha, as ações ficam antes do número e `#n`
   fecha-a. Sem ações, o número continua encostado ao extremo direito. */
@media (min-width: 46.0625rem) {
	.smpt-forum-mensagem__cabeca {
		margin-bottom: 1rem;
	}

	.smpt-forum-mensagem__data {
		order: 1;
	}

	.smpt-forum-mensagem__acoes {
		order: 2;
		margin-left: auto;
	}

	.smpt-forum-mensagem__ordem {
		order: 3;
		margin-left: .5rem;
	}

	.smpt-forum-mensagem__cabeca .smpt-forum-mensagem__acoes:not(:has(*)) {
		display: none;
	}

	.smpt-forum-mensagem__rank {
		margin-top: .6rem;
	}

	.smpt-forum-mensagem__retrato {
		border: 0;
	}

	.smpt-forum-mensagem__meta--desde time {
		display: block;
	}
}

.smpt-forum-mensagem__data {
	text-decoration: none;
}

/* A pesquisa do tópico é um item da própria paginação: o ícone herda a
   tipografia/cor dos números, sem o fundo usado nos botões da interface. */
.smpt-forum-paginacao__pesquisa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	padding: 0;
	cursor: pointer;
}

.smpt-forum-paginacao__pesquisa .dashicons {
	display: block;
	width: 1rem !important;
	height: 1rem !important;
	/* O tema aplica um mosaico escuro aos Dashicons de botões depois desta
	   folha; aqui o ícone é parte da paginação, não um botão destacado. */
	background: transparent !important;
	color: currentcolor !important;
	font-size: 1rem !important;
	line-height: 1rem !important;
}

.smpt-forum-mensagem__editada {
	margin: .5rem 0 0;
	color: var(--smpt-forum-fumo);
}

/* ------------------------------------------------------- edicoes historicas */
/* A nota e publica; o <details> so existe para quem modera. Discreta de
   proposito: e uma anotacao de arquivo, nao um aviso. */

.smpt-forum-edicoes__nota {
	margin: .5rem 0 0;
	color: var(--smpt-forum-fumo);
}

.smpt-forum-edicoes {
	margin-top: .6rem;
	font-size: .82rem;
	color: var(--smpt-forum-fumo);
	border-top: 1px dashed var(--smpt-forum-linha);
	padding-top: .4rem;
}

.smpt-forum-edicoes > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .5rem;
}

.smpt-forum-edicoes > summary::-webkit-details-marker {
	display: none;
}

.smpt-forum-edicoes > summary::before {
	content: "▸";
	font-size: .7em;
}

.smpt-forum-edicoes[open] > summary::before {
	content: "▾";
}

.smpt-forum-edicoes__contagem {
	font-size: .74rem;
	opacity: .8;
}

.smpt-forum-edicoes__aviso {
	margin: .5rem 0;
	font-size: .74rem;
	font-style: italic;
	opacity: .85;
}

.smpt-forum-edicao {
	margin-top: .6rem;
	padding: .6rem .75rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 8px;
	background: var(--smpt-forum-papel);
}

.smpt-forum-edicao__cabeca {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	font-size: .76rem;
	font-variant-numeric: tabular-nums;
	margin-bottom: .5rem;
}

.smpt-forum-edicao__capturas {
	opacity: .8;
}

.smpt-forum-edicao__bloco {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .75rem;
	margin-bottom: .6rem;
}

.smpt-forum-edicao__lado h4 {
	margin: 0 0 .25rem;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	opacity: .8;
}

.smpt-forum-edicao__lado p {
	margin: 0 0 .35rem;
	overflow-wrap: anywhere;
}

.smpt-forum-edicao__lado--antes {
	border-left: 3px solid var(--smpt-forum-staff);
	padding-left: .5rem;
}

.smpt-forum-edicao__lado--depois {
	border-left: 3px solid var(--smpt-forum-ouro);
	padding-left: .5rem;
}

.smpt-forum-edicao__nada {
	font-style: italic;
	opacity: .7;
}

.smpt-forum-edicao__marcador {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .72rem;
	opacity: .85;
	overflow-wrap: anywhere;
}

.smpt-forum-edicao__links ul {
	margin: .2rem 0 .5rem;
	padding-left: 1.1rem;
}

.smpt-forum-edicao__links code,
.smpt-forum-edicao__evidencia code {
	font-size: .72rem;
	overflow-wrap: anywhere;
}

.smpt-forum-edicao__grupo {
	margin: .3rem 0 0;
	font-size: .74rem;
}

.smpt-forum-edicao__evidencia {
	margin: .4rem 0 0;
	font-size: .72rem;
	opacity: .8;
}

@media (max-width: 640px) {
	.smpt-forum-edicao__bloco {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------- ranking no perfil */

/* `align-items: center` é o que mantém o ícone centrado verticalmente
   mesmo quando o nome do escalão faz wrap para duas linhas — centra-se
   em relação ao bloco de texto todo, não só à primeira linha. */
.smpt-forum-perfil__rank {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.smpt-forum-perfil__rank img {
	flex-shrink: 0;
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

.smpt-forum__estados {
	display: flex;
	gap: .35rem;
	flex-wrap: wrap;
}

.smpt-forum__aviso {
	padding: .6rem .85rem;
	border-radius: 8px;
	background: var(--smpt-forum-papel);
	color: var(--smpt-forum-fumo);
	margin: 0;
}

/* ------------------------------------------------------------- escrever */
/* O formulario e a versao sem JavaScript: um <textarea> e um botao. O editor
   substitui o campo por cima disto, e por isso o que esta aqui e so o que
   sobrevive aos dois estados — a moldura, o espaco e o erro. Nada que dependa
   de o TinyMCE ter carregado. */

.smpt-forum-responder {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: 1rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
	background: var(--smpt-forum-papel);
}

.smpt-forum-responder__titulo {
	margin: 0;
	font-size: 1.05rem;
}

.smpt-forum-responder__etiqueta {
	font-size: .85rem;
	color: var(--smpt-forum-fumo);
}

.smpt-forum-responder__campo,
.smpt-forum-responder__titulo-campo {
	width: 100%;
	font: inherit;
}

/* O erro chega por redireccionamento (PRG) e nao ao lado do campo que falhou:
   a recusa vem do servidor depois do POST, e nao ha campo a que a prender. */
.smpt-forum-responder__erro {
	margin: 0;
	padding: .5rem .75rem;
	border-radius: 8px;
	border-left: 3px solid var(--smpt-forum-staff);
	background: #fff;
	color: var(--smpt-forum-staff);
}

.smpt-forum-responder__enviar,
.smpt-forum__botao {
	align-self: flex-start;
	display: inline-block;
	padding: .45rem .95rem;
	border: 0;
	border-radius: 8px;
	background: var(--smpt-forum-faixa);
	color: var(--smpt-forum-faixa-tinta);
	text-decoration: none;
	cursor: pointer;
}

.smpt-forum__accoes {
	margin: 0;
}

/* -------------------------------------------------------------- pesquisa */

.smpt-forum-pesquisa {
	display: flex;
	flex-direction: column;
	gap: .3rem;
}

.smpt-forum-pesquisa__linha {
	display: flex;
	gap: .4rem;
	flex-wrap: wrap;
}

.smpt-forum-pesquisa__linha input {
	flex: 1 1 16rem;
	min-width: 0;
}

.smpt-forum-pesquisa__nota {
	margin: 0;
	color: var(--smpt-forum-fumo);
}

/* O termo encontrado dentro do titulo. */
.smpt-forum-lista__titulo mark {
	background: color-mix(in srgb, var(--smpt-forum-ouro-luz) 55%, transparent);
	color: inherit;
	padding: 0 .1em;
	border-radius: 2px;
}

/* ----------------------------------------------------------------- perfis */
/* Reutiliza as classes do tema; aqui esta so o que e proprio do forum. */

.smpt-forum-perfil-etiqueta {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .4rem;
	font-size: .82rem;
}

/* No perfil público (`/moonies/<login>/`), a etiqueta do fórum já não vive
   dentro do `.rank-row` do Moonies — é irmã dele, direto no contentor do
   nome (`display:flex; flex-wrap:wrap`) — e o `flex-basis: 100%` é o truque
   de sempre para um item começar sempre uma linha nova nesse tipo de
   contentor, independentemente da largura do ecrã. */
.smpt-member-account-summary__name > .smpt-forum-perfil-etiqueta {
	flex-basis: 100%;
	margin-top: .15rem;
}

.smpt-forum-perfil-etiqueta__fonte {
	padding: .1rem .4rem;
	border-radius: 4px;
	background: var(--smpt-forum-faixa, #14213f);
	color: #fff;
	font-size: .66rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-weight: 700;
}

.smpt-forum-perfil-etiqueta__nome,
.smpt-forum-perfil__anterior {
	font-size: .78rem;
	opacity: .8;
}

.smpt-forum-perfil-etiqueta__cargo,
.smpt-forum-perfil__cargo {
	color: var(--smpt-forum-staff, #7a1f1f);
	font-weight: 700;
}

.smpt-forum-perfil-etiqueta__escalao,
.smpt-forum-perfil__escalao {
	color: var(--smpt-forum-ouro, #a36b00);
}

.smpt-forum-perfil__factos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	/* Centrado, não esticado: sem isto, um facto ao lado de outro mais alto
	   (o escalão, quando o nome faz wrap) ficava encostado ao topo da
	   própria linha em vez de centrado com ele. */
	align-items: center;
	/* Mais folga entre linhas (primeiro valor) do que entre colunas — para
	   o cabeçalho da 2ª linha de factos não ficar colado ao conteúdo da 1ª. */
	gap: 1.75rem 1.5rem;
	margin: 0 0 1rem;
}

.smpt-forum-perfil__factos dt {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--smpt-forum-fumo, #5a6472);
	margin-bottom: .1rem;
}

.smpt-forum-perfil__factos dd {
	margin: 0;
	font-weight: 600;
}

.smpt-forum-perfil__factos dd em {
	display: block;
	font-weight: 400;
}

.smpt-forum-perfil__assinatura h3,
.smpt-forum-perfil__topicos h3,
.smpt-forum-perfil__mensagens h3 {
	font-size: 1rem;
	margin: 0 0 .4rem;
}

/* A `.linha` do tema por defeito é feita para títulos a toda a largura: linha
   a 100% do bloco, colada ao texto (só `0.08em` de padding), a deslizar entre
   0% e 100% de posição. Aqui o título é só do tamanho do próprio texto — por
   isso a largura passa a ser a do conteúdo (`width: auto`), e a linha fica
   mais larga do que o texto (180%, não à mesma largura), com mais respiro
   por cima dela.
   Isto tira o gradiente do sítio para que a animação do tema (pensada para
   `background-size: 100%`) foi calibrada: a 180%, deslizar até 100% de
   posição empurra a parte visível para dentro do troço já transparente do
   gradiente — а linha "desaparece" a meio do texto num dos extremos da
   animação. Por isso o `mudarfundo` do tema é substituído por uma variante
   com um curso mais curto (0% a 55%), que mantém a janela visível sempre
   dentro do troço sólido/a esbater do gradiente, nunca a chegar à parte
   transparente. */
.smpt-forum-perfil__assinatura h3.linha,
.smpt-forum-perfil__topicos h3.linha,
.smpt-forum-perfil__mensagens h3.linha {
	display: inline-block;
	width: auto;
	background-size: 180% 2px;
	padding-bottom: .5em;
	animation-name: smpt-forum-linha-titulo;
}

@keyframes smpt-forum-linha-titulo {
	0% {
		background-position-x: 0%;
	}

	100% {
		background-position-x: 55%;
	}
}

/* Só espaço, sem linha — cada bloco (assinatura, tópicos, mensagens) já se
   distingue pelo próprio `h3`, e uma linha por cima de cada um empilhava-se
   numa sequência de traços que não diziam nada (o mesmo peso visual entre
   toda e qualquer secção parecia aleatório, não intencional). */
.smpt-forum-perfil__assinatura,
.smpt-forum-perfil__topicos,
.smpt-forum-perfil__mensagens {
	margin-top: 1.75rem;
}


.smpt-forum-perfil__meta {
	font-size: .78rem;
	color: var(--smpt-forum-fumo, #5a6472);
	margin-left: .4rem;
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------- "Últimas mensagens no fórum" */

/* Folga generosa entre caixas — cada mensagem já tem borda própria
   (`.smpt-forum-mensagem`), mas só isso ainda deixava a transição de uma
   para a seguinte pouco óbvia; o espaço vazio entre elas tem de se notar
   tanto quanto a borda. */
.smpt-forum-perfil__mensagens-lista {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.smpt-forum-perfil__mensagens-feed .smpt-member-inline-link {
	margin-top: 1rem;
}

/* Uma caixa mais destacada do que a mensagem normal de um tópico — sombra
   e borda mais forte — para reforçar a separação entre elas nesta lista
   (aqui não há moldura de página nem espaço em branco entre tópicos a
   ajudar, como há na página de um tópico). */
.smpt-forum-mensagem--perfil {
	padding: .85rem 1rem;
	border-color: var(--smpt-forum-borda, #c6ced8);
	box-shadow: 0 .2rem .6rem rgb(0 0 0 / .07);
}

/* Título do tópico e data na mesma linha — "Título — data" —, com uma
   linha divisória a fechar o cabeçalho da caixa. O título vive dentro da
   própria caixa da mensagem (ver `mensagem-perfil.php`): é a fronteira da
   caixa, e não a margem, que separa uma mensagem da seguinte.*/
.smpt-forum-mensagem__cabeca--perfil {
	/* Sobrepõe o `justify-content: space-between` de `.smpt-forum-mensagem__cabeca`
	   (pensado para dois elementos, data + acções, nas pontas) — aqui são
	   três (título, travessão, data) e devem andar juntos, não espalhados. */
	justify-content: flex-start;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .4rem;
	margin: 0 0 .6rem;
	padding-bottom: .6rem;
	border-bottom: 1px solid var(--smpt-forum-linha, #e3e9f1);
}

/* Mais peso do que a data ao lado — maior E mais escuro — para nunca se
   confundirem: o título é a informação principal desta linha, a data é só
   contexto. O `!important` é preciso mesmo: o tema põe `font-weight: 600`
   em qualquer link do conteúdo (`.entry-content a:not(.button)`), e o `a`
   no selector dele conta como elemento — 0,2,1 de especificidade, mais do
   que os nossos dois `class.class` (0,2,0), por muito que o nosso venha
   depois no CSS. */
.smpt-forum-mensagem__cabeca--perfil .smpt-forum-mensagem__topico {
	font-size: 1rem;
	font-weight: 700 !important;
}

.smpt-forum-mensagem__cabeca--perfil .smpt-forum-mensagem__data {
	font-size: .78rem;
	font-weight: 400 !important;
	color: var(--smpt-forum-fumo, #5a6472);
}

.smpt-forum-mensagem__separador {
	color: var(--smpt-forum-fumo, #5a6472);
	opacity: .6;
}

/* Sem decoração nenhuma ao passar o rato — nem o sublinhado do tema
   (`.entry-content a:not(.button):hover` põe uma borda a fingir de
   sublinhado). Especificidade 0,3,1 (três classes — `.entry-content`,
   `:not(.button)`, `:hover` — mais o elemento `a`), mais do que o nosso
   `.class a:hover` (0,2,1); só o `!important` garante que fica sem nada. */
.smpt-forum-mensagem__cabeca--perfil a:hover,
.smpt-forum-mensagem__cabeca--perfil a:focus {
	border-bottom: 0 !important;
	text-decoration: none !important;
}

/* Sem `.smpt-forum-mensagem__autor` (o perfil de quem escreveu, omitido de
   propósito), a mensagem já não precisa da moldura cheia de um tópico —
   só o essencial: título do tópico, data e corpo. */
.smpt-forum-mensagem--perfil {
	padding: .85rem 1rem;
}

/* "Esta conta é tua?" — a última coisa no perfil de uma conta histórica
   ainda não reclamada, e a mais importante: é o convite a vir buscá-la.
   Precisa de se notar mais do que uma secção comum, por isso ganha uma
   caixa a sério (moldura+fundo a dourado, o mesmo tom dos selos/destaques
   do fórum) em vez de só um título e um parágrafo a seguir aos outros. */
.smpt-forum-membro__reclamar {
	margin-top: 2rem;
	padding: 1rem 1.25rem;
	text-align: center;
	border: 1px solid color-mix(in srgb, var(--smpt-forum-ouro-luz) 55%, transparent);
	border-radius: 16px;
	background: color-mix(in srgb, var(--smpt-forum-ouro-luz) 12%, var(--smpt-forum-papel));
}

.smpt-forum-membro__reclamar .smpt-dashboard-section__header {
	align-items: center;
	justify-content: center;
	margin-bottom: .5rem;
}

.smpt-forum-membro__reclamar h2 {
	font-size: 1.6rem;
	color: var(--smpt-forum-ouro);
	text-align: center;
}

.smpt-forum-membro__reclamar p {
	max-width: 32rem;
	margin: 0 auto;
}

.smpt-forum-membro__reclamar .smpt-member-inline-link {
	margin-top: 1.25rem;
}

.smpt-forum-membro__reclamar .smpt-member-button {
	padding: .9rem 1.75rem;
	font-size: 1.05rem;
	font-weight: 700;
}

/* ------------------------------------------------------------- acessivel */

.smpt-forum a:focus-visible {
	outline: 2px solid #2678dc;
	outline-offset: 2px;
}

/* Os icones com novidades tem quatro frames. Quem pediu menos movimento
   recebe a imagem parada do primeiro frame. */
@media (prefers-reduced-motion: reduce) {
	.smpt-forum-icone {
		animation: none !important;
	}
}

/* -------------------------------------------------------------- convivio */
/* Nao-lidos, seguir, recentes, estatisticas e a seccao Forum da conta.
   Reaproveita as variaveis e os botoes que ja existem — aqui nao nasce
   nenhuma cor nova. */

/* As accoes do cabecalho passam a ser uma fila: botao de escrever, ligacao
   para os recentes e os formularios de marcar como lido, que sao <form> e nao
   cabem num <p> a fluir. Fica aqui em baixo, e nao junto da regra de cima que
   so tinha `margin`, porque vem depois no ficheiro e ganha sem `!important`. */
.smpt-forum__accoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 0;
}

.smpt-forum-lido,
.smpt-forum-seguir {
	margin: 0;
}

/* Marcar como lido e seguir sao accoes secundarias: o botao cheio e o de
   escrever, e dois botoes cheios lado a lado nao dizem qual e o principal. */
.smpt-forum-lido__botao,
.smpt-forum-seguir__botao {
	display: inline-block;
	padding: .4rem .85rem;
	border: 1px solid var(--smpt-forum-borda);
	border-radius: 8px;
	background: var(--base-3, #fff);
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.smpt-forum-lido__botao:hover,
.smpt-forum-seguir__botao:hover {
	background: var(--smpt-forum-papel);
}

/* Ja a seguir: o estado le-se pelo texto do botao e por este contorno, nunca
   so pela cor. */
.smpt-forum-seguir__botao.is-a-seguir {
	border-color: var(--smpt-forum-faixa);
	font-weight: 600;
}

.smpt-forum-seguir {
	margin-top: .75rem;
}

/* Na barra do tópico, seguir é um dos controlos alinhados e não uma ação
   autónoma abaixo do conteúdo. */
.smpt-forum__ferramentas .smpt-forum-seguir {
	margin-top: 0;
}

/* Recentes: topico, sala, autor, data. Sem coluna de estado — uma mensagem
   solta nao tem estado de leitura proprio. */
.smpt-forum-lista--recentes {
	border-top: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
}

.smpt-forum-lista--recentes .smpt-forum-lista__cabeca,
.smpt-forum-lista--recentes .smpt-forum-lista__linha {
	grid-template-columns: minmax(12rem, 1fr) minmax(8rem, 12rem) minmax(7rem, 10rem) minmax(9rem, 11rem);
}

.smpt-forum-lista__sala,
.smpt-forum-lista__autor {
	font-size: .85rem;
	color: var(--smpt-forum-fumo);
	min-width: 0;
	overflow-wrap: anywhere;
}

/* Membros: nome (com avatar), inscrito em, ultima visita, mensagens. Sem
   coluna de estado nem de moderacao — nao ha nada a moderar numa ficha. */
.smpt-forum-lista--membros {
	border-top: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
}

.smpt-forum-lista--membros .smpt-forum-lista__cabeca,
.smpt-forum-lista--membros .smpt-forum-lista__linha {
	grid-template-columns: minmax(12rem, 1fr) minmax(7rem, 9rem) minmax(7rem, 9rem) minmax(6rem, 8rem);
}

/* «Inscrito em», «Última visita» e «Mensagens» centradas, cabeçalho e
   valores — só «Nome» fica alinhado à esquerda, com o avatar. */
.smpt-forum-lista--membros .smpt-forum-lista__cabeca > span:not(:first-child) {
	text-align: center;
}

.smpt-forum-lista--membros .smpt-forum-lista__cabeca > span:not(:first-child) a {
	justify-content: center;
}

.smpt-forum-membro__ficha {
	display: flex;
	align-items: center;
	gap: .5rem;
	min-width: 0;
}

.smpt-forum-membro__retrato-link {
	flex: 0 0 auto;
	display: block;
	line-height: 0;
}

.smpt-forum-lista--membros .smpt-forum-mensagem__retrato {
	max-width: 2rem;
	width: 2rem;
	height: 2rem;
	font-size: .85rem;
	border-radius: 6px;
	border: 0;
}

/* ---------------------------------------------------------- estatisticas */

.smpt-forum-estatisticas {
	padding: .6rem .85rem;
	border: 1px solid var(--smpt-forum-linha);
	border-radius: 10px;
	background: var(--smpt-forum-papel);
	font-size: .85rem;
	color: var(--smpt-forum-fumo);
}

.smpt-forum--rodape-estatisticas {
	display: block;
	margin-top: 1.5rem;
}

.smpt-forum-estatisticas__lista {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .4rem 1.2rem;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

.smpt-forum-estatisticas__lista > li {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .25rem;
}

.smpt-forum-estatisticas__lista .dashicons {
	font-size: 1rem;
	width: 1rem;
	height: 1rem;
	color: var(--smpt-forum-ouro);
}

.smpt-forum-estatisticas__lista strong {
	color: var(--text-color, #1c2433);
	font-variant-numeric: tabular-nums;
}

.smpt-forum-estatisticas__nomes {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .15rem .4rem;
}

/* ------------------------------------------------------- acoes da mensagem */
.smpt-forum-mensagem__acoes {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin-left: auto;
}

.smpt-forum-mensagem__citar,
.smpt-forum-mensagem__editar,
.smpt-forum-mensagem__denunciar,
.smpt-forum-mensagem__visibilidade,
.smpt-forum-mensagem__apagar {
	padding: 0;
	border: 0;
	background: none;
	color: var(--smpt-forum-fumo);
	font: inherit;
	font-size: .78rem;
	text-decoration: underline;
	cursor: pointer;
}

.smpt-forum-mensagem__citar img,
.smpt-forum-mensagem__editar img {
	display: block;
}

.smpt-forum-mensagem__apagar {
	margin: 0;
}

.smpt-forum-mensagem__visibilidade {
	margin: 0;
	text-decoration: none;
}

.smpt-forum-mensagem__visibilidade button,
.smpt-forum-mensagem__apagar button {
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	background: none;
	color: var(--smpt-forum-staff);
	text-decoration: none;
	cursor: pointer;
}

.smpt-forum-mensagem__citar:hover,
.smpt-forum-mensagem__citar:focus-visible {
	background: none;
	color: var(--contrast-2);
	text-decoration: none;
}

.smpt-forum-mensagem__apagar .dashicons {
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 18px;
}

.smpt-forum-mensagem__denunciar.is-reported {
	text-decoration: none;
	opacity: .6;
	cursor: default;
}

/* --------------------------------------------------------- conta e perfil */

.smpt-forum-conta__avatar {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1rem;
}

.smpt-forum-conta__campo {
	flex: 1 1 auto;
	min-width: 0;
}

.smpt-forum-conta__arquivo {
	margin: .75rem 0;
	padding: .6rem .85rem;
	border-left: 3px solid var(--smpt-forum-borda);
	background: var(--smpt-forum-papel);
}

.smpt-forum-conta__arquivo h3 {
	margin: 0 0 .35rem;
	font-size: .95rem;
}

/* Um topico seguido com respostas novas fica em negrito, a par do que a lista
   de sala ja faz. */
.smpt-forum-paineis .smpt-member-links li.is-nova > a {
	font-weight: 700;
}

/* ---------------------------------------------------------------- telefone */

@media (max-width: 46rem) {
	/* Telefonos: as acoes de navegacao e escrita mantem a mesma hierarquia,
	   mas ganham uma area confortavel para o polegar. As listas continuam
	   compactas; so os controlos que executam uma accao mudam de tamanho. */
	.smpt-forum__ferramentas .smpt-forum__botao,
	.smpt-forum__ferramentas .smpt-forum-lido__botao,
	.smpt-forum__ferramentas .smpt-forum-seguir__botao,
	.smpt-mod-lote .smpt-forum__botao,
	.smpt-forum-menu__item,
	.smpt-forum-menu .smpt-forum-lido__botao,
	.smpt-forum-menu .smpt-forum-seguir__botao,
	.smpt-forum-responder__enviar,
	.smpt-forum__botao {
		min-height: 2.75rem;
	}

	/* A barra contextual pode ter entre quatro e seis acções. Os rótulos
	   curtos tornam cada destino reconhecível no telefone; os rótulos inteiros
	   continuam nos `aria-label`. */
	.smpt-forum-menu__barra {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-auto-rows: 3.25rem;
		align-items: stretch;
		gap: 0;
		padding: .0625rem;
		margin-inline: -.25rem;
	}

	.smpt-forum-menu__item,
	.smpt-forum-menu .smpt-forum-lido,
	.smpt-forum-menu .smpt-forum-seguir,
	.smpt-forum-menu .smpt-forum-lido__botao,
	.smpt-forum-menu .smpt-forum-seguir__botao {
		min-width: 0;
		min-height: 2.75rem;
	}

	.smpt-forum-menu__item,
	.smpt-forum-menu .smpt-forum-lido__botao,
	.smpt-forum-menu .smpt-forum-seguir__botao {
		justify-content: center;
		flex-direction: column;
		gap: .15rem;
		width: 100%;
		padding: .2rem .1rem;
		font-size: 0;
	}

	.smpt-forum-menu__item img,
	.smpt-forum-menu .smpt-forum-lido__botao img,
	.smpt-forum-menu .smpt-forum-seguir__botao img,
	.smpt-forum-menu__item .dashicons,
	.smpt-forum-menu .smpt-forum-lido__botao .dashicons {
		display: block;
		width: 1.125rem;
		height: 1.125rem;
		font-size: 1.125rem;
		line-height: 1.125rem;
	}

	.smpt-forum-menu__item::after,
	.smpt-forum-menu .smpt-forum-lido__botao::after,
	.smpt-forum-menu .smpt-forum-seguir__botao::after {
		content: attr(data-smpt-menu-curto);
		font-size: .68rem;
		line-height: 1.1;
		white-space: nowrap;
	}

	.smpt-forum-menu__barra:has(> :nth-child(5)):not(:has(> :nth-child(6))) {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.smpt-forum-menu__barra:has(> :nth-child(6)) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	@media (min-width: 22.5rem) {
		.smpt-forum-menu__barra:has(> :nth-child(6)) {
			grid-template-columns: repeat(6, minmax(0, 1fr));
		}
	}

	.smpt-forum-definicoes__opcao label {
		min-height: 2.75rem;
		align-items: center;
	}

	/* A data encolhe primeiro; as ações ficam antes de `#n`, que permanece no
	   extremo direito mesmo num cabeçalho de mensagem estreito. */
	.smpt-forum-mensagem__cabeca {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto auto;
		align-items: center;
		gap: .4rem;
	}

	.smpt-forum-mensagem__cabeca .smpt-forum-mensagem__data {
		order: 1;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.smpt-forum-mensagem__cabeca .smpt-forum-mensagem__ordem {
		order: 3;
		margin-left: 0;
	}

	.smpt-forum-mensagem__acoes {
		order: 2;
		flex-wrap: nowrap;
		flex-basis: auto;
		margin-left: 0;
	}

	.smpt-forum-mensagem__acoes:empty,
	.smpt-forum-mensagem__acoes:not(:has(*)) {
		display: none;
	}

	.smpt-forum-mensagem__citar,
	.smpt-forum-mensagem__editar,
	.smpt-forum-mensagem__denunciar {
		display: inline-flex;
		align-items: center;
		min-height: 2.5rem;
		padding: .25rem .15rem;
	}

	.smpt-forum-mensagem__visibilidade button,
	.smpt-forum-mensagem__apagar button {
		min-width: 2.5rem;
		min-height: 2.5rem;
	}

	.smpt-forum-lista__cabeca {
		display: none;
	}

	/* Duas zonas: icone + titulo em cima; contadores e data em baixo. Sem a
	   coluna de moderacao por omissao, pelo mesmo motivo do ecra grande. */
	.smpt-forum-lista__linha,
	.smpt-forum-lista--topicos .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr;
		row-gap: .35rem;
	}

	.smpt-forum-lista.has-lote .smpt-forum-lista__linha,
	.smpt-forum-lista--topicos.has-lote .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr 2.4rem;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__linha,
	.smpt-forum-lista--topicos.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr 2.4rem 2rem;
	}

	/* Depois das duas simplificações intermédias, o índice entra na mesma
	   composição compacta das outras listas. */
	.smpt-forum-lista--indice .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr;
	}

	.smpt-forum-lista--indice.has-lote .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr 2.4rem;
	}

	.smpt-forum-lista--indice.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
		grid-template-columns: 2.4rem 1fr 2.4rem 2rem;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca {
		display: flex;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca > :not(.smpt-forum-lista__selecao) {
		display: none;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__cabeca .smpt-forum-lista__selecao {
		gap: .45rem;
		justify-content: flex-start;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__selecao-texto {
		display: inline;
		font-size: .78rem;
		text-transform: none;
		letter-spacing: normal;
	}

	/* Os resultados nao tem coluna de estado, logo colapsam numa so. */
	.smpt-forum-lista--resultados .smpt-forum-lista__linha {
		grid-template-columns: 1fr;
		row-gap: .3rem;
	}

	.smpt-forum-lista--resultados .smpt-forum-lista__numero,
	.smpt-forum-lista--resultados .smpt-forum-lista__ultima,
	.smpt-forum-lista--resultados .smpt-forum-lista__sala {
		grid-column: 1;
	}

	.smpt-forum-lista--resultados.has-moderacao .smpt-forum-lista__linha {
		grid-template-columns: 1fr 2.4rem;
	}

	.smpt-forum-lista--resultados.has-moderacao .smpt-forum-lista__moderacao {
		grid-column: 2;
		grid-row: 1;
	}

	.smpt-forum-lista--resultados.has-moderacao.has-lote.is-selecao-ativa .smpt-forum-lista__linha {
		grid-template-columns: 1fr 2.4rem 2rem;
	}

	.smpt-forum-lista--resultados.has-moderacao.has-lote.is-selecao-ativa .smpt-forum-lista__selecao {
		grid-column: 3;
		grid-row: 1;
	}

	.smpt-forum-lista__numero,
	.smpt-forum-lista__ultima {
		grid-column: 2;
	}

	/* No índice, os três metadados ficam sob a sala. Alinhá-los da mesma
	   forma evita que os contadores pareçam uma coluna independente entre o
	   título e a última mensagem. */
	.smpt-forum-lista:not(.smpt-forum-lista--topicos):not(.smpt-forum-lista--resultados) .smpt-forum-lista__numero {
		text-align: left;
	}

	/* A lista de tópicos segue a mesma leitura vertical do índice: resposta e
	   última mensagem são metadados do tópico, não duas colunas de tabela
	   independentes no telefone. */
	.smpt-forum-lista--topicos .smpt-forum-lista__numero,
	.smpt-forum-lista--topicos .smpt-forum-lista__ultima {
		text-align: left;
	}

	.smpt-forum-lista__moderacao {
		grid-column: 3;
		grid-row: 1;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__numero,
	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__ultima {
		grid-column: 2;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__moderacao {
		grid-column: 3;
	}

	.smpt-forum-lista__moderacao:has(.smpt-mod__painel) {
		grid-column: 2 / -1;
		grid-row: auto;
	}

	.smpt-forum-lista.has-lote.is-selecao-ativa .smpt-forum-lista__moderacao:has(.smpt-mod__painel) {
		grid-column: 2 / -1;
	}

	.smpt-forum-lista__rotulo {
		display: inline;
	}

	.smpt-forum-lista__linha.is-subsala {
		padding-left: 1.6rem;
	}

	/* A ficha vem depois do cabeçalho da mensagem: a data e o número são a
	   referência imediata do cartão, antes da identificação de quem escreveu.
	   `display: contents` conserva o HTML de desktop e deixa o cabeçalho e o
	   corpo participarem directamente na grelha móvel. */
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) {
		display: grid;
		grid-template-columns: 1fr;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__lado {
		display: contents;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__cabeca {
		grid-row: 1;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor {
		grid-row: 2;
		float: none;
		max-width: none;
		margin: 0 0 .5rem;
		padding: 0 0 .5rem;
		border-right: 0;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		text-align: left;
		gap: .25rem;
		padding-bottom: .5rem;
		border-bottom: 1px solid var(--smpt-forum-linha);
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__corpo {
		grid-row: 3;
	}

	/* Duas linhas claras: identidade e ranking nas pontas em cima; dados da
	   conta como um grupo centrado em baixo. */
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor {
		display: grid;
		grid-template-columns: 2.625rem fit-content(7rem) max-content minmax(0, 1fr) 2.625rem;
		align-items: center;
		justify-content: flex-start;
		column-gap: .2rem;
		row-gap: .3rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) img.smpt-forum-mensagem__retrato {
		order: 1;
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 2.625rem;
		height: 2.625rem;
		border: 0;
		border-radius: 5px;
		clip-path: inset(0 round 5px);
		-webkit-mask-image: -webkit-radial-gradient(white, black);
		isolation: isolate;
		display: block;
		object-fit: cover;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__retrato--vazio {
		order: 1;
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 2.625rem;
		height: 2.625rem;
		border: 0;
		border-radius: 5px;
		clip-path: inset(0 round 5px);
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__nome {
		order: 2;
		grid-column: 2;
		grid-row: 1;
		min-width: 0;
		overflow: hidden;
		font-size: .98rem;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__antigo,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__cargo {
		display: none;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__escalao--rank {
		display: none;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__rank {
		order: 4;
		grid-column: 5;
		grid-row: 1;
		justify-self: end;
		margin-left: 0;
		width: auto;
		width: 2.625rem;
		height: 2.625rem;
		max-width: none;
		max-height: none;
		object-fit: contain;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor::before {
		display: none;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--mensagens,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--idade,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde {
		display: inline-flex;
		align-items: center;
		gap: .15rem;
		font-size: 0;
		min-width: 0;
		overflow: clip;
		white-space: nowrap;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--mensagens {
		order: 5;
		grid-column: 2;
		grid-row: 2;
		padding-right: .3rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--idade {
		order: 6;
		grid-column: 3;
		grid-row: 2;
		padding-left: .35rem;
		padding-right: .3rem;
		border-left: 1px solid var(--smpt-forum-borda);
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao {
		order: 7;
		grid-column: 4 / span 2;
		grid-row: 2;
		padding-left: .35rem;
		border-left: 1px solid var(--smpt-forum-borda);
		max-width: none;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde {
		order: 3;
		grid-column: 3;
		grid-row: 1;
		padding-left: 0;
		margin-top: 0;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--mensagens::after,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--idade::after,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao::after,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde::after {
		content: attr(data-smpt-meta-curta);
		font-size: .74rem;
		line-height: 1.2;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde::after {
		content: "— desde " attr(data-smpt-meta-curta);
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao::after {
		font-size: .64rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao .dashicons {
		width: .6rem;
		height: .6rem;
		font-size: .6rem;
		line-height: .6rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta .dashicons {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: .8rem;
		height: .8rem;
		font-size: .8rem;
		line-height: .8rem;
	}

	@media (max-width: 22.49rem) {
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor {
			grid-template-columns: 2rem fit-content(7rem) max-content minmax(0, 1fr) 2rem;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) img.smpt-forum-mensagem__retrato,
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__retrato--vazio {
			width: 2rem;
			height: 2rem;
			max-height: 2rem;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde {
			display: none;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__nome {
			font-size: .9rem;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--mensagens::after,
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--idade::after,
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao::after {
			font-size: .68rem;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__rank {
			width: 2rem;
			height: 2rem;
		}
	}

	@media (min-width: 22.5rem) and (max-width: 23.99rem) {
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor {
			grid-template-columns: 2rem fit-content(6rem) max-content minmax(0, 1fr) 2rem;
		}

		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) img.smpt-forum-mensagem__retrato,
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__retrato--vazio,
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__rank {
			width: 2rem;
			height: 2rem;
			max-height: 2rem;
		}
	}

	/* Cabeçalho de autor: retrato e ranking enquadram duas linhas; a
	   identificação e as estatísticas são grupos próprios, sem espaçadores. */
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__autor {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		column-gap: .5rem;
		row-gap: .35rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__retrato,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__retrato--vazio {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__identificacao {
		display: flex;
		grid-column: 2;
		grid-row: 1;
		align-items: center;
		gap: .35rem;
		min-width: 0;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__nome {
		flex: 0 1 auto;
		min-width: 0;
		font-size: .98rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--desde {
		display: inline-flex;
		flex: 0 0 auto;
		padding: 0;
		border: 0;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas {
		display: flex;
		grid-column: 2;
		grid-row: 2;
		align-items: center;
		justify-content: flex-start;
		flex-wrap: nowrap;
		gap: .45rem;
		min-width: 0;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta {
		grid-column: auto;
		grid-row: auto;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta + .smpt-forum-mensagem__meta {
		padding-left: .45rem;
		border-left: 1px solid var(--smpt-forum-borda);
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta--mensagens,
	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta--idade {
		flex: 0 0 auto;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao::after {
		font-size: .64rem;
		display: block;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--localizacao .dashicons {
		width: .68rem;
		height: .68rem;
		font-size: .68rem;
		line-height: .68rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--mensagens::after {
		content: attr(data-smpt-meta-curta) " msgs";
		font-size: .64rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__meta--idade::after {
		content: attr(data-smpt-meta-curta) " anos";
		font-size: .64rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta .dashicons {
		width: .68rem;
		height: .68rem;
		font-size: .68rem;
		line-height: .68rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__estatisticas .smpt-forum-mensagem__meta--localizacao {
		flex: 1 1 auto;
		min-width: 0;
		overflow: hidden;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__rank--quadrado {
		width: 1.4rem;
		height: 1.4rem;
	}

	.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__rank {
		grid-column: 3;
		grid-row: 1 / span 2;
		align-self: center;
		justify-self: end;
	}

	@media (max-width: 22.49rem) {
		.smpt-forum-mensagem:not(.smpt-forum-mensagem--perfil) .smpt-forum-mensagem__identificacao .smpt-forum-mensagem__meta--desde {
			display: none;
		}
	}

	.smpt-forum-mensagem__autor::after {
		display: none;
	}

	/* No perfil histórico, os factos curtos cabem em duas colunas no telefone;
	   o escalão continua a ser a exceção e ocupa a largura inteira. */
	.smpt-forum-membro .smpt-forum-perfil__factos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem .75rem;
	}

	.smpt-forum-membro .smpt-forum-perfil__factos > div:has(> .smpt-forum-perfil__rank) {
		grid-column: 1 / -1;
	}

	.smpt-forum-mensagem__retrato,
	.smpt-forum-mensagem__retrato--vazio {
		max-width: 2.6rem;
		width: 2.6rem;
		height: 2.6rem;
		font-size: 1rem;
	}

	/* Recentes colapsam numa coluna: quatro campos de texto lado a lado num
	   telefone davam scroll horizontal. */
	.smpt-forum-lista--recentes .smpt-forum-lista__cabeca {
		display: none;
	}

	.smpt-forum-lista--recentes .smpt-forum-lista__linha {
		grid-template-columns: 1fr;
		row-gap: .3rem;
	}

	.smpt-forum-lista--recentes .smpt-forum-lista__sala,
	.smpt-forum-lista--recentes .smpt-forum-lista__autor,
	.smpt-forum-lista--recentes .smpt-forum-lista__ultima {
		grid-column: 1;
	}

	/* Membros colapsam do mesmo jeito: quatro colunas lado a lado nao cabem
	   num telefone, e o nome com avatar precisa da largura toda. */
	.smpt-forum-lista--membros .smpt-forum-lista__cabeca {
		display: none;
	}

	.smpt-forum-lista--membros .smpt-forum-lista__linha {
		grid-template-columns: 1fr;
		row-gap: .3rem;
	}

	.smpt-forum-lista--membros .smpt-forum-membro__ficha {
		height: 100%;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: .25rem;
		text-align: center;
	}

	.smpt-forum-lista--membros .smpt-forum-membro__ficha > a:not(.smpt-forum-membro__retrato-link) {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.smpt-forum-lista--membros .smpt-forum-lista__nome {
		grid-column: 1;
		grid-row: 1 / span 3;
		align-self: stretch;
	}

	.smpt-forum-lista--membros .smpt-forum-mensagem__retrato {
		width: min(100%, 4rem);
		max-width: 4rem;
		height: auto;
	}

	.smpt-forum-conta__avatar {
		flex-direction: column;
	}
}
