/* FERCOPOR Dashboard — estilos de base próprios (carregados ANTES do FERCOPOR Design System, que fica por cima).
   Ordem na página: estilo-base.css → fercopor-ds-<versão>.css (ds.lock.json) → estilo.css (específico do Dashboard). */
:root {
  --bronze: #7E6A32;
  --bronze-escuro: #5F4F24;
  --bronze-claro: #F2EFE6;
  --creme: #FFF9EB;
  --tinta: #202020;
  --texto-2: #4D4D4D;
  --texto-3: #666666;
  --fundo: #FAFAFA;
  --superficie: #FFFFFF;
  --linha: #E8E5DC;
  --linha-forte: #D9D5C9;
  --ambar-fundo: #FFF4E0;
  --ambar-linha: #F0D9AE;
  --ambar-texto: #6B4200;
  --vermelho: #C62828;
  --raio: 10px;
  --raio-pequeno: 8px;
  --letra: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--fundo); color: var(--tinta); font-family: var(--letra); font-size: 15px; line-height: 1.4; min-height: 100vh; padding-bottom: 84px; }
a { color: var(--bronze); }
a:hover { color: var(--bronze-escuro); }
h1, h2, h3 { margin: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--bronze); outline-offset: 2px; }
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 12px; top: -60px; z-index: 30; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--raio-pequeno); background: var(--creme); color: var(--tinta); font-weight: 700; text-decoration: none; }
.saltar:focus { top: 12px; }

/* ---------- Topo (igual à Comercial) ---------- */
.topo { background: var(--tinta); color: var(--creme); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding: 14px 20px; }
.marca { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--creme); }
.marca:hover { color: var(--creme); }
.marca img { display: block; width: 128px; height: 20px; }
.marca span { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.nav-topo { display: none; flex: 1; flex-wrap: wrap; align-items: center; gap: 4px; }
.nav-topo > a, .nav-grupo > summary {
  display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
  color: #D9D3C3; text-decoration: none; font-weight: 600; font-size: 14px; border-bottom: 2px solid transparent; cursor: pointer;
}
.nav-topo > a:hover, .nav-grupo > summary:hover { color: var(--creme); }
.nav-topo > a.ativo, .nav-grupo.ativo > summary { color: var(--creme); border-bottom-color: #B49A55; font-weight: 700; }
/* «Relacional»: submenu sem JavaScript (details/summary: Enter ou Espaço abre e fecha) */
.nav-grupo { position: relative; }
.nav-grupo > summary { list-style: none; }
.nav-grupo > summary::-webkit-details-marker { display: none; }
.nav-grupo .seta { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s ease; }
.nav-grupo[open] .seta { transform: rotate(180deg); }
.nav-grupo-itens, .menu-conta-itens {
  position: absolute; top: calc(100% + 8px); z-index: 20; min-width: 240px;
  display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--linha);
  border-radius: var(--raio); box-shadow: 0 8px 24px rgba(0, 0, 0, .14); overflow: hidden;
}
.nav-grupo-itens { left: 0; }
.nav-grupo-itens a, .menu-conta-itens a { display: flex; align-items: center; min-height: 48px; padding: 0 16px; color: var(--tinta); text-decoration: none; font-size: 14px; font-weight: 600; border-bottom: 1px solid var(--linha); }
.nav-grupo-itens a:last-child, .menu-conta-itens a:last-child { border-bottom: 0; }
.nav-grupo-itens a:hover, .menu-conta-itens a:hover { background: var(--bronze-claro); color: var(--tinta); }
/* Página atual: fundo, traço bronze à esquerda e negrito (não só a cor) */
.nav-grupo-itens a[aria-current="page"] { background: var(--bronze-claro); box-shadow: inset 3px 0 0 var(--bronze); font-weight: 800; }

.topo-acoes { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.avatar { width: 44px; height: 44px; border-radius: 22px; border: 1px solid var(--creme); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--creme); }
.menu-conta { position: relative; }
.menu-conta summary { list-style: none; cursor: pointer; border-radius: 22px; }
.menu-conta summary::-webkit-details-marker { display: none; }
.menu-conta[open] .avatar { background: var(--creme); color: var(--tinta); }
.menu-conta-itens { right: 0; min-width: 260px; }
.menu-conta-quem { margin: 0; padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; border-bottom: 1px solid var(--linha); font-size: 14px; color: var(--tinta); }
.menu-conta-quem span { font-size: 13px; color: var(--texto-3); overflow-wrap: anywhere; }
.menu-conta-nota { margin: 0; padding: 12px 16px; font-size: 13px; color: var(--texto-3); }
.aviso-demo { margin: 0; padding: 10px 20px; font-size: 13px; font-weight: 600; background: var(--ambar-fundo); color: var(--ambar-texto); border-bottom: 1px solid var(--ambar-linha); }

/* ---------- Navegação de fundo (telemóvel, como na Comercial) ---------- */
.nav-fundo {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  background: var(--superficie); border-top: 1px solid var(--linha);
  padding: 6px 8px calc(10px + env(safe-area-inset-bottom));
}
.nav-fundo a { display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 44px; padding: 6px 0; color: var(--texto-3); text-decoration: none; font-size: 11px; font-weight: 600; min-width: 0; overflow-wrap: anywhere; text-align: center; }
.nav-fundo a.ativo { color: var(--bronze); font-weight: 700; }
.nav-fundo svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body:not(:has(.nav-fundo)) { padding-bottom: 0; }

@media (min-width: 900px) {
  body { padding-bottom: 0; }
  .nav-topo { display: flex; }
  .nav-fundo { display: none; }
  .marca { flex-direction: row; align-items: center; gap: 14px; }
}

/* ---------- Conteúdo ---------- */
.conteudo { max-width: 1360px; margin: 0 auto; padding: 20px; outline: none; }
/* Ritmo vertical do conteúdo (20 px, como a Comercial); mais específico do que os «margin: 0» dos componentes */
main.conteudo > * + * { margin-top: 20px; }
main.conteudo > h1 + .subtitulo { margin-top: 4px; }
h1 { font-size: 24px; font-weight: 800; letter-spacing: -.01em; }
h2 { font-size: 17px; font-weight: 700; }
h3 { font-size: 15px; font-weight: 700; }
.subtitulo { margin: 4px 0 0; color: var(--texto-3); font-size: 15px; }
.painel .subtitulo { font-size: 14px; }
.nota { margin: 0; font-size: 13px; color: var(--texto-2); background: var(--bronze-claro); border-radius: var(--raio-pequeno); padding: 10px 12px; overflow-wrap: anywhere; }
.vazio { color: var(--texto-3); }
.voltar { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 700; text-decoration: none; color: var(--tinta); }
.aviso { margin: 0; padding: 10px 12px; border-radius: var(--raio-pequeno); font-size: 14px; font-weight: 600; background: var(--ambar-fundo); color: var(--ambar-texto); border: 1px solid var(--ambar-linha); }
.etiqueta { display: inline-block; vertical-align: middle; padding: 3px 8px; border-radius: 3px; background: var(--ambar-fundo); color: var(--ambar-texto); font-size: 12px; font-weight: 700; white-space: nowrap; }

/* Submenu do Relacional (todas as larguras): página atual preenchida e com visto, não só pela cor */
/* quebra em linhas (sem deslizar): a página atual fica sempre à vista, também no telemóvel */
.subnav { display: flex; flex-wrap: wrap; gap: 6px; }
.subnav a { flex: 0 1 auto; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--tinta); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.subnav a:hover:not([aria-current="page"]) { border-color: var(--bronze); color: var(--tinta); }
.subnav a[aria-current="page"] { background: var(--tinta); border-color: var(--tinta); color: var(--creme); font-weight: 700; }
.subnav a[aria-current="page"]::before { content: "✓\00a0"; }

/* ---------- Cartões, indicadores e painéis (como na Comercial) ---------- */
.indicadores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 640px) { .indicadores { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.indicador { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.indicador strong { order: -1; font-size: 26px; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.indicador span { font-size: 13px; font-weight: 700; color: var(--tinta); overflow-wrap: break-word; }
.indicador small { font-size: 12px; color: var(--texto-3); }
.painel { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.painel > p, .painel > ul { margin: 0; }
.duas-colunas { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 980px) { .duas-colunas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
  .indicadores { gap: 8px; }
  .indicador { padding: 10px; }
  .indicador strong { font-size: 22px; }
  .indicador span { font-size: 12px; line-height: 1.25; }
}

/* ---------- Tabelas ---------- */
.caixa-tabela { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* O texto «.so-leitor» (posição absoluta) fica dentro do quadro que desliza e não alarga a página no telemóvel */
.caixa-tabela { position: relative; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--linha); vertical-align: top; }
thead th { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); white-space: nowrap; }
tbody th { font-weight: 700; }
tbody tr:last-child > * { border-bottom: 0; }
td strong { font-variant-numeric: tabular-nums; }
td small { color: var(--texto-3); }

/* ---------- Formulários e botões ---------- */
.filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.filtros label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 700; }
input, select { font: inherit; font-weight: 400; min-height: 48px; padding: 0 12px; border: 1px solid var(--linha-forte); border-radius: var(--raio-pequeno); background: var(--superficie); color: var(--tinta); max-width: 100%; }
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 18px; border-radius: var(--raio-pequeno); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--tinta); }
.botao-principal { background: var(--bronze); border-color: var(--bronze); color: #FFFFFF; }
.botao-principal:hover { background: var(--bronze-escuro); color: #FFFFFF; }
.botao-texto { border: 0; background: transparent; color: var(--bronze); min-height: 44px; font: inherit; font-weight: 700; cursor: pointer; padding: 0 4px; }
.separadores { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.separadores a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--raio-pequeno); font-size: 14px; font-weight: 700; text-decoration: none; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); }
.separadores a[aria-current="page"] { background: var(--tinta); color: #FFFFFF; border-color: var(--tinta); }
.lista { margin: 0; padding-left: 18px; }
.lista li { margin-bottom: 6px; }
@media (max-width: 899px) { input, select { font-size: 16px; } }

.rodape { max-width: 1360px; margin: 0 auto; padding: 16px 20px; color: var(--texto-3); font-size: 12px; display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; border-top: 1px solid var(--linha); }
.form-atualizar { margin: 0; }
.rodape .botao-texto { font-size: 13px; }

/* ---------- Início (resumo executivo) e fichas dos relatórios ---------- */
.estado-pagina { margin: 0; padding: 12px 14px; border-radius: var(--raio); background: var(--bronze-claro); border: 1px solid var(--linha-forte); font-size: 14px; }
/* Espaços por preencher: tracejados e sem números, para nunca parecerem dados reais */
.por-definir { border-style: dashed; border-color: var(--linha-forte); background: transparent; }
.indicador.por-definir strong { color: var(--texto-3); }
.barra-filtros { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; }
.barra-filtros select { min-width: 150px; }
main.conteudo > .barra-filtros + .filtros-ativos { margin-top: 8px; }
.filtros-ativos { margin: 0; font-size: 13px; color: var(--texto-2); }
.estado-calculavel { background: #E2F1E6; color: #1E6B3A; }
.estado-parcial { background: var(--ambar-fundo); color: var(--ambar-texto); }
.estado-depende { background: #FBECEC; color: #8A1F1F; }
.ficha dl { margin: 0; display: grid; gap: 6px; font-size: 14px; }
.ficha dt { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-3); margin-top: 6px; }
.ficha dd { margin: 0; color: var(--texto-2); }
.tabela-composicao { max-width: 640px; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Gráficos: barras em SVG (sem estilos em linha), sempre com o nome e o valor escritos */
.resumo-grafico { margin: 0; font-size: 14px; color: var(--texto-2); }
.barras { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.barras li { display: grid; grid-template-columns: minmax(116px, 36%) minmax(60px, 1fr); gap: 2px 12px; align-items: center; font-size: 14px; }
.barra-rotulo { font-weight: 600; overflow-wrap: break-word; hyphens: auto; }
.barra { display: block; width: 100%; height: 14px; }
.barra-valor { grid-column: 2; font-size: 13px; color: var(--texto-2); font-variant-numeric: tabular-nums; }
@media (min-width: 640px) {
  .barras li { grid-template-columns: minmax(110px, 26%) minmax(80px, 1fr) minmax(130px, auto); }
  .barra-valor { grid-column: 3; text-align: right; }
}
:is(.barra, .coluna) rect { fill: var(--bronze); }
:is(.barra, .coluna) rect.trilho { fill: var(--bronze-claro); }
.barra rect.serie-Parceiro { fill: url(#padrao-parceiro); }   /* tracejado: distingue-se sem depender da cor */
.barra rect.serie- { fill: #A39E93; }
.legenda { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--texto-2); }
.legenda span { display: inline-flex; align-items: center; gap: 8px; }
.legenda i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; background: var(--bronze); }
.legenda i.serie-Parceiro { background: repeating-linear-gradient(45deg, #3B362F 0 3px, #A39E93 3px 4px); }
.legenda i.serie- { background: #A39E93; }
/* Evolução mensal: colunas com o valor por cima e o n.º de negócios por baixo */
.colunas { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; align-items: end; }
.colunas li { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.coluna { display: block; width: 70%; max-width: 40px; height: 140px; }
.coluna-valor { font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.coluna-mes { font-size: 12px; font-weight: 600; }
.coluna-n { font-size: 11px; color: var(--texto-3); white-space: nowrap; }
.colunas li.destaque .coluna-mes { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.colunas li:not(.destaque) rect:not(.trilho) { fill: #3B362F; }
.colunas:not(:has(.destaque)) li rect:not(.trilho) { fill: var(--bronze); }
.nota-eixo { margin: 0; font-size: 12px; color: var(--texto-3); }
/* Colunas com duas partes (Atividade comercial): total (claro) e a parte destacada (dourado); os dois números escritos */
.colunas.colunas-empilhadas > li > svg > rect.parte-total { fill: #B9AE93; }
.colunas.colunas-empilhadas > li > svg > rect.parte-destaque { fill: var(--bronze); }
.colunas-empilhadas .coluna-n { font-weight: 700; color: var(--bronze-escuro); }
.legenda i.serie-total { background: #B9AE93; }
.barra rect.serie-escura { fill: #3B362F; }   /* cor sólida (o tracejado dos Parceiros só existe no Início) */
.barra rect.serie-resto { fill: #D9D1BF; }
.legenda i.serie-escura { background: #3B362F; }
.legenda i.serie-resto { background: #D9D1BF; }
.barras li.destaque .barra-rotulo { font-weight: 700; }
@media (max-width: 480px) { .colunas-empilhadas .coluna-n { display: block; font-size: 10px; } }   /* aqui o número de baixo é a parte destacada */
.defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.indicadores.tres > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 640px) { .indicadores.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); } .indicadores.tres > :last-child:nth-child(odd) { grid-column: auto; } }
.barra-partes { grid-column: 2 / -1; font-size: 12px; color: var(--texto-3); }
.barras-canais { gap: 12px; }
.etiqueta-suave { background: var(--bronze-claro); color: var(--bronze-escuro); font-weight: 600; font-size: 11px; padding: 1px 6px; }
.unidade { margin: 0; font-size: 12px; font-weight: 700; color: var(--texto-2); }
main.conteudo > .indicadores + .composicao { margin-top: 10px; }
@media (max-width: 480px) {
  .coluna { height: 110px; }
  .coluna-valor { font-size: 10px; }
  .coluna-n { display: none; }   /* o n.º por mês fica na tabela */
}
/* Links de consulta como botões pequenos e discretos (mais leves do que .botao, ex.: «Aplicar») */
.botao-link {
  display: inline-flex; align-items: center; gap: 6px; width: fit-content; max-width: 100%;
  padding: 3px 9px; min-height: 26px; border: 1px solid var(--linha-forte); border-radius: 6px;
  background: #FBF9F4; color: var(--bronze-escuro); font-size: 13px; font-weight: 700; line-height: 1.3;
  text-decoration: none; cursor: pointer; overflow-wrap: normal; word-break: normal;   /* muda de linha só entre palavras */
  transition: background-color .15s ease, border-color .15s ease;
}
.botao-link:hover { background: var(--bronze-claro); border-color: var(--bronze); color: var(--bronze-escuro); }
.botao-link:focus-visible { outline: 3px solid var(--bronze); outline-offset: 2px; }
.seta-link { flex: none; transition: transform .15s ease; }
.botao-link:hover .seta-link { transform: translateX(2px); }
summary.botao-link { list-style: none; }
summary.botao-link::-webkit-details-marker { display: none; }
.detalhe-tabela[open] > summary .seta-link { transform: rotate(90deg); }   /* aberto: a seta aponta para a tabela */
td .botao-link, th .botao-link { margin: -4px 0; }   /* nas tabelas, sem aumentar a altura das linhas */
/* Colunas dos nomes (Família, Comprador): largura suficiente; a tabela desliza na horizontal em ecrãs pequenos */
th.col-nome { min-width: 220px; }
th.col-familia { min-width: 170px; }
.col-nome .botao-link { white-space: normal; }
/* Telemóvel e tablet: a tabela fica com a largura natural das colunas e desliza dentro do seu quadro
   (a página não alarga); o nome tem pelo menos 220 px e muda de linha só entre palavras */
@media (max-width: 899px) {
  .caixa-tabela { max-width: 100%; }
  .caixa-tabela > table { width: max-content; min-width: 100%; }
  th.col-nome { width: 220px; }
  .col-nome .botao-link { min-width: 0; max-width: 260px; }
}
.detalhe-tabela[open] > summary { margin-bottom: 8px; }

/* ---------- Página de entrada: igual à da app Comercial FERCOPOR ---------- */
.pagina-entrada { background: var(--fundo); padding-bottom: 0; }
.entrada-ecra { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.entrada-marca { background: var(--tinta); color: var(--creme); padding: 20px 20px 28px; display: flex; flex-direction: column; gap: 22px; }
.entrada-logo { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.entrada-logo img { display: block; width: 204px; height: 32px; }
.entrada-logo span { font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--creme); }
.entrada-pontos { display: none; list-style: none; margin: 28px 0 0; padding: 0; flex-direction: column; gap: 14px; }
.entrada-pontos li { display: flex; align-items: center; gap: 12px; color: #D9D3C3; font-size: 15px; font-weight: 600; }
.entrada-pontos svg { flex: none; width: 22px; height: 22px; fill: none; stroke: #B49A55; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.entrada-rodape { display: none; margin: 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #9C9483; }
.entrada-painel { flex: 1; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px 40px; }
.entrada-cartao {
  width: 100%; max-width: 420px; background: var(--superficie); border: 1px solid var(--linha); border-top: 3px solid var(--bronze);
  border-radius: var(--raio); padding: 28px 24px; display: flex; flex-direction: column; gap: 16px;
}
.entrada-cartao h2 { font-size: 22px; font-weight: 800; margin: 0; }
.entrada-texto { margin: 0; color: var(--texto-2); }
.entrada-aviso { margin: 0; padding: 10px 12px; border-radius: var(--raio-pequeno); font-size: 14px; font-weight: 600; background: var(--bronze-claro); color: var(--bronze-escuro); border: 1px solid var(--linha-forte); }
.entrada-aviso.erro { background: #FBECEC; color: #8A1F1F; border-color: #EDC4C4; }
.botao-microsoft { width: 100%; min-height: 52px; gap: 12px; background: var(--superficie); border: 1px solid #8C8C8C; color: #3B3B3B; font-weight: 600; }
.botao-microsoft:hover { background: #F3F3F3; color: #3B3B3B; }
.entrada-ajuda { border-top: 1px solid var(--linha); padding-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.entrada-ajuda p { margin: 0; font-size: 13px; color: var(--texto-3); }
@media (min-width: 900px) {
  .entrada-ecra { flex-direction: row; }
  .entrada-marca { flex: 0 0 44%; max-width: 620px; padding: 40px 48px; justify-content: space-between; }
  .entrada-chamada { margin: auto 0; }
  .entrada-logo { gap: 14px; }
  .entrada-logo img { width: 320px; height: 50px; }
  .entrada-logo span { font-size: 14px; }
  .entrada-pontos { display: flex; }
  .entrada-rodape { display: block; }
  .entrada-painel { align-items: center; padding: 40px; }
  .entrada-cartao { padding: 36px 32px; }
}

/* ---------- Relacional › Imobiliárias e Mediadores ---------- */
.filtros .ajuda { flex-basis: 100%; margin: 0; font-size: 13px; color: var(--texto-3); }
.contagem { font-weight: 600; color: var(--texto-3); font-variant-numeric: tabular-nums; }
.separadores a .contagem { margin-left: 4px; font-size: 12px; }
.separadores a[aria-current="page"] .contagem { color: rgba(255, 255, 255, .8); }
.separadores { flex-wrap: wrap; overflow-x: visible; }
.lista-mediadores { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.mediador { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 0; border-top: 1px solid var(--linha); font-size: 14px; }
.mediador:first-child { border-top: 0; padding-top: 0; }
.mediador-nome { font-weight: 700; overflow-wrap: anywhere; }
.mediador-imob, .mediador-contactos { grid-column: 1; color: var(--texto-2); overflow-wrap: anywhere; }
.mediador-contactos { font-size: 13px; }
.mediador > .etiqueta { grid-column: 2; grid-row: 1; align-self: start; }
/* Acordeão (Com CMI / Sem CMI): recolhido por omissão; «+» fechado, «−» aberto */
.acordeao { padding: 0; gap: 0; }
.acordeao > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 0 16px; cursor: pointer; border-radius: var(--raio); }
.acordeao > summary::-webkit-details-marker { display: none; }
.acordeao > summary:hover { background: var(--bronze-claro); }
.acordeao > summary h2 { margin: 0; }
.acordeao .sinal { flex: none; width: 32px; height: 32px; border-radius: 16px; border: 1px solid var(--linha-forte); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; line-height: 1; color: var(--bronze-escuro); background: var(--superficie); }
.acordeao .sinal::before { content: "+"; }
.acordeao[open] .sinal::before { content: "−"; }
.acordeao[open] > summary { border-bottom: 1px solid var(--linha); border-radius: var(--raio) var(--raio) 0 0; }
.acordeao > :not(summary) { padding: 12px 16px 16px; margin: 0; }
.cmi-com { background: #E2F1E6; color: #1E6B3A; }
.cmi-sem { background: #ECECEC; color: #4A4A4A; }
.cmi-verificar { background: var(--ambar-fundo); color: var(--ambar-texto); }
@media (min-width: 900px) {
  .mediador { grid-template-columns: minmax(200px, 1.2fr) minmax(160px, 1fr) minmax(220px, 1.4fr) auto; align-items: center; }
  .mediador-imob, .mediador-contactos { grid-column: auto; }
  .mediador > .etiqueta { grid-column: auto; grid-row: auto; align-self: center; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
.empresa-titular { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--linha, #E8E5DC); font-weight: 600; }

