:root {
    --fundo: #fafafa;
    --superficie: #ffffff;
    --texto: #202326;
    --texto-suave: #5f666d;
    --borda: #dfe3e6;
    --destaque: #a72d46;
    --destaque-escuro: #812137;
    --verde: #2c6558;
    --coral: #a84f3c;
    --azul: #3d607e;
    --largura: 1120px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--fundo);
    color: var(--texto);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}

a {
    color: inherit;
}

.conteudo-limitado {
    width: min(calc(100% - 32px), var(--largura));
    margin-inline: auto;
}

.cabecalho-principal {
    border-bottom: 1px solid var(--borda);
    background: var(--superficie);
}

.cabecalho-conteudo {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
}

.cabecalho-principal nav {
    display: flex;
    align-items: center;
    gap: 22px;
}

.cabecalho-principal nav a,
.cabecalho-principal nav button {
    font-weight: 600;
    text-decoration: none;
}

.cabecalho-principal nav form {
    margin: 0;
}

.cabecalho-principal nav button {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--texto);
    cursor: pointer;
    font: inherit;
}

.cabecalho-principal nav a:hover,
.cabecalho-principal nav button:hover {
    color: var(--destaque);
}

.cabecalho-principal nav .link-destaque {
    min-height: 42px;
    padding: 9px 15px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--destaque);
    border-radius: 6px;
    background: var(--destaque);
    color: #ffffff;
    box-shadow: 0 2px 5px rgba(129, 33, 55, 0.18);
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.cabecalho-principal nav .link-destaque:hover,
.cabecalho-principal nav .link-destaque:focus-visible {
    border-color: var(--destaque-escuro);
    background: var(--destaque-escuro);
    color: #ffffff;
    box-shadow: 0 3px 8px rgba(129, 33, 55, 0.24);
}

.icone-megafone {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
}

.menu-usuario {
    position: relative;
}

.cabecalho-principal nav .acionador-usuario {
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--borda);
    border-radius: 6px;
    padding: 7px 11px;
    background: var(--superficie);
    box-shadow: 0 1px 2px rgba(32, 35, 38, 0.05);
}

.cabecalho-principal nav .acionador-usuario:hover,
.cabecalho-principal nav .acionador-usuario:focus-visible,
.menu-usuario.aberto .acionador-usuario {
    border-color: var(--borda);
    background: var(--fundo);
    color: var(--destaque);
}

.usuario-logado {
    max-width: 180px;
    overflow: hidden;
    color: var(--destaque);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tag-gm {
    flex: 0 0 auto;
    border: 1px solid #b02f4c;
    border-radius: 4px;
    padding: 2px 5px;
    background: #fff1f4;
    color: #92233d;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.2;
}

.seta-menu {
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 180ms ease;
}

.menu-usuario.aberto .seta-menu {
    transform: translateY(2px) rotate(225deg);
}

.janela-usuario {
    width: min(190px, calc(100vw - 32px));
    padding: 8px;
    border: 1px solid var(--borda);
    border-radius: 6px;
    background: var(--superficie);
    box-shadow: 0 18px 44px rgba(32, 35, 38, 0.18);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: calc(100% + 14px);
    right: 0;
    transform: translateY(-8px) scale(0.98);
    transform-origin: top right;
    transition:
        opacity 180ms ease,
        transform 180ms ease,
        visibility 180ms;
    visibility: hidden;
    z-index: 20;
}

.janela-usuario[hidden] {
    display: none;
}

.janela-usuario::before {
    content: "";
    width: 12px;
    height: 12px;
    border-top: 1px solid var(--borda);
    border-left: 1px solid var(--borda);
    background: var(--superficie);
    position: absolute;
    top: -7px;
    right: 22px;
    transform: rotate(45deg);
}

.menu-usuario.aberto .janela-usuario {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    visibility: visible;
}

.janela-usuario form {
    margin: 0;
}

.cabecalho-principal nav .janela-usuario a,
.cabecalho-principal nav .janela-usuario button {
    width: 100%;
    display: block;
    border: 0;
    border-radius: 4px;
    padding: 9px 10px;
    background: transparent;
    color: var(--texto);
    text-align: left;
}

.cabecalho-principal nav .janela-usuario a:hover,
.cabecalho-principal nav .janela-usuario button:hover,
.cabecalho-principal nav .janela-usuario a:focus-visible,
.cabecalho-principal nav .janela-usuario button:focus-visible {
    background: var(--fundo);
    color: var(--destaque);
}

@media (prefers-reduced-motion: reduce) {
    .janela-usuario,
    .seta-menu {
        transition: none;
    }
}

.home-simples {
    min-height: calc(100vh - 72px - 120px);
    padding: 72px 16px 96px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-conteudo {
    width: calc(100vw - 32px);
    max-width: 720px;
    min-width: 0;
    text-align: center;
}

.home-logotipo {
    width: min(290px, 72vw);
    height: auto;
    display: block;
    margin-inline: auto;
}

.home-conteudo h1 {
    margin: 18px 0 26px;
    color: var(--texto-suave);
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0;
}

.rotulo-secao {
    margin: 0;
    color: #cf7f90;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.formulario-busca {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 22px;
}

.campo-busca-google {
    width: 100%;
    min-width: 0;
    position: relative;
}

.formulario-busca input {
    width: 100%;
    min-height: 58px;
    border: 1px solid #d8dcdf;
    border-radius: 29px;
    padding: 0 22px 0 52px;
    background: #ffffff;
    color: var(--texto);
    box-shadow: 0 1px 4px rgba(32, 35, 38, 0.1);
    font: inherit;
    font-size: 1rem;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.formulario-busca input:hover,
.formulario-busca input:focus {
    border-color: #cfd3d6;
    outline: 0;
    box-shadow: 0 3px 12px rgba(32, 35, 38, 0.16);
}

.formulario-busca input::-webkit-search-cancel-button {
    cursor: pointer;
}

.icone-busca {
    width: 16px;
    height: 16px;
    border: 2px solid #747b81;
    border-radius: 50%;
    position: absolute;
    top: 20px;
    left: 22px;
    pointer-events: none;
    z-index: 1;
}

.icone-busca::after {
    content: "";
    width: 7px;
    height: 2px;
    border-radius: 2px;
    background: #747b81;
    position: absolute;
    right: -6px;
    bottom: -3px;
    transform: rotate(45deg);
}

.formulario-busca button {
    min-height: 42px;
    border: 1px solid transparent;
    border-radius: 5px;
    padding: 0 22px;
    background: #f0f2f3;
    color: var(--texto);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
}

.formulario-busca button:hover,
.formulario-busca button:focus-visible {
    border-color: #d4d8db;
    background: #f7f8f8;
    box-shadow: 0 1px 3px rgba(32, 35, 38, 0.12);
}

.rodape-principal {
    padding-block: 36px;
    border-top: 1px solid var(--borda);
    background: var(--superficie);
}

.rodape-conteudo {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 30px;
}

.rodape-conteudo p {
    margin: 4px 0 0;
    color: var(--texto-suave);
}

.mensagens {
    padding-top: 20px;
}

.mensagem {
    margin: 0;
    padding: 13px 16px;
    border: 1px solid #a8cec4;
    border-radius: 6px;
    background: #edf7f4;
    color: #245247;
}

.area-autenticacao {
    min-height: 620px;
    padding: 56px 16px 72px;
}

.formulario-painel {
    width: min(100%, 560px);
    margin-inline: auto;
    padding: 34px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.formulario-painel--compacto {
    width: min(100%, 500px);
}

.formulario-painel h1,
.area-conta h1 {
    margin: 6px 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.25rem;
    letter-spacing: 0;
}

.texto-introdutorio {
    margin: 0 0 26px;
    color: var(--texto-suave);
}

.campo-formulario {
    margin-bottom: 20px;
}

.campo-formulario label {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
}

.campo-formulario input,
.campo-formulario textarea {
    width: 100%;
    border: 1px solid var(--borda);
    border-radius: 6px;
    padding: 12px 14px;
    background: #ffffff;
    color: var(--texto);
    font: inherit;
}

.campo-formulario input {
    min-height: 48px;
}

.campo-formulario textarea {
    min-height: 112px;
    resize: vertical;
}

.campo-formulario input:focus,
.campo-formulario textarea:focus,
.campo-checkbox input:focus {
    border-color: var(--destaque);
    outline: 3px solid rgba(167, 45, 70, 0.14);
}

.home-simples--resultados {
    align-items: flex-start;
}

.home-simples--resultados .home-conteudo {
    max-width: var(--largura);
}

.resultados-busca {
    margin-top: 56px;
    text-align: left;
}

.resultados-busca > h2 {
    margin-bottom: 24px;
}

.campo-formulario input:disabled {
    border-color: var(--borda);
    background: #f1f3f4;
    color: var(--texto-suave);
    cursor: not-allowed;
    opacity: 1;
}

.ajuda-campo {
    margin-top: 8px;
    color: var(--texto-suave);
    font-size: 0.85rem;
}

.ajuda-campo ul {
    margin: 6px 0 0;
    padding-left: 20px;
}

.grupo-confirmacoes {
    margin: 4px 0 24px;
    padding: 18px;
    border: 1px solid var(--borda);
    border-radius: 6px;
}

.campo-checkbox {
    display: grid;
    grid-template-columns: 20px 1fr;
    align-items: start;
    gap: 10px;
}

.campo-checkbox + .campo-checkbox,
.erro-campo + .campo-checkbox {
    margin-top: 14px;
}

.campo-checkbox input {
    width: 18px;
    height: 18px;
    margin: 3px 0 0;
    accent-color: var(--destaque);
}

.erro-campo {
    margin: 6px 0 0;
    color: #9a263d;
    font-size: 0.88rem;
    font-weight: 600;
}

.lista-erros {
    margin-bottom: 20px;
    padding: 13px 16px;
    border: 1px solid #dfacb6;
    border-radius: 6px;
    background: #fff3f5;
    color: #812137;
}

.lista-erros p {
    margin: 0;
}

.botao-principal,
.botao-secundario {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    padding: 0 20px;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
}

.botao-principal {
    border: 1px solid var(--destaque);
    background: var(--destaque);
    color: #ffffff;
}

.botao-principal:hover {
    border-color: var(--destaque-escuro);
    background: var(--destaque-escuro);
}

.botao-secundario {
    border: 1px solid var(--destaque);
    background: #ffffff;
    color: var(--destaque);
}

.botao-largo {
    width: 100%;
}

.alternativa-formulario {
    margin: 24px 0 0;
    text-align: center;
}

.alternativa-formulario a {
    color: var(--destaque);
    font-weight: 700;
}

.area-conta {
    min-height: 600px;
    padding-block: 64px 80px;
}

.painel-conta {
    max-width: 760px;
    margin-top: 28px;
    padding: 28px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.identidade-conta {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    align-items: center;
    gap: 28px;
}

.foto-perfil-reservada {
    width: 132px;
    aspect-ratio: 1;
    border: 1px solid var(--borda);
    border-radius: 6px;
    display: grid;
    place-items: center;
    overflow: hidden;
    position: relative;
    background: #f1f3f4;
}

.foto-perfil-conta,
.foto-perfil-publica,
.foto-perfil-formulario {
    display: block;
    border: 1px solid var(--borda);
    border-radius: 6px;
    background: #f1f3f4;
    object-fit: cover;
}

.foto-perfil-conta {
    width: 132px;
    aspect-ratio: 1;
}

.foto-perfil-publica {
    width: 112px;
    aspect-ratio: 1;
    margin-bottom: 18px;
}

.foto-perfil-formulario {
    width: 140px;
    aspect-ratio: 1;
    margin: 0 0 24px;
}

.foto-perfil-reservada::before,
.foto-perfil-reservada::after {
    content: "";
    position: absolute;
    background: #c8cdd1;
}

.foto-perfil-reservada::before {
    width: 38px;
    height: 38px;
    top: 25px;
    border-radius: 50%;
}

.foto-perfil-reservada::after {
    width: 76px;
    height: 48px;
    bottom: 18px;
    border-radius: 38px 38px 8px 8px;
}

.dados-identidade-conta {
    min-width: 0;
}

.dados-identidade-conta strong {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

.painel-conta > div {
    display: grid;
    gap: 4px;
}

.painel-conta .dado-conta {
    margin-top: 20px;
}

.painel-conta strong {
    overflow-wrap: anywhere;
    font-size: 1.1rem;
}

.painel-conta > p {
    margin: 24px 0;
    padding-top: 22px;
    border-top: 1px solid var(--borda);
    color: var(--texto-suave);
}

.edicao-perfil {
    margin: 26px 0;
    padding-top: 24px;
    border-top: 1px solid var(--borda);
}

.edicao-perfil h2 {
    margin: 0 0 18px;
    font-size: 1.2rem;
    letter-spacing: 0;
}

.edicao-perfil .campo-formulario {
    max-width: 420px;
}

.rotulo-dado {
    color: var(--texto-suave);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.resumo-anunciante,
.convite-anunciante,
.acao-sair-conta {
    margin-top: 26px;
    padding-top: 24px;
    border-top: 1px solid var(--borda);
}

.resumo-anunciante-cabecalho {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 20px;
}

.resumo-anunciante h2,
.convite-anunciante h2 {
    margin: 4px 0 0;
    font-size: 1.3rem;
    letter-spacing: 0;
}

.resumo-anunciante > p,
.convite-anunciante p {
    color: var(--texto-suave);
}

.dados-plano-perfil {
    margin-bottom: 18px;
}

.acao-perigosa-perfil {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--borda);
}

.resumo-confirmacao {
    margin: 24px 0;
    display: grid;
    gap: 14px;
}

.resumo-confirmacao div {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--borda);
}

.resumo-confirmacao dt {
    color: var(--texto-suave);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.resumo-confirmacao dd {
    margin: 3px 0 0;
    font-weight: 700;
}

.metricas-anunciante {
    margin: 20px 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.metricas-anunciante div {
    min-width: 0;
    padding-top: 10px;
    border-top: 1px solid var(--borda);
}

.metricas-anunciante dt {
    color: var(--texto-suave);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.metricas-anunciante dd {
    margin: 2px 0 0;
    font-size: 1.45rem;
    font-weight: 800;
}

.situacao-perfil,
.status-anuncio {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 0.75rem;
    font-weight: 800;
}

.atividade-anuncio {
    margin-left: 8px;
    color: var(--texto-suave);
    font-size: 0.78rem;
    font-weight: 700;
}

.situacao-perfil--ativo,
.status-anuncio--aprovado {
    background: #e7f3ee;
    color: #285b4f;
}

.situacao-perfil--inativo,
.status-anuncio--suspenso {
    background: #eceeef;
    color: #525a60;
}

.acoes-conta,
.acoes-formulario,
.acoes-item-anuncio {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.link-texto,
.link-voltar {
    color: var(--destaque);
    font-weight: 700;
}

.area-anuncios {
    min-height: 620px;
    padding-block: 56px 80px;
}

.cabecalho-area-interna {
    margin-bottom: 30px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
}

.cabecalho-area-interna h1 {
    margin: 6px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.4rem;
    letter-spacing: 0;
}

.cabecalho-area-interna p {
    margin-bottom: 0;
    color: var(--texto-suave);
}

.lista-anuncios-interna {
    display: grid;
    gap: 16px;
}

.item-anuncio-interno,
.detalhes-anuncio,
.estado-vazio {
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.item-anuncio-interno {
    padding: 24px;
}

.item-anuncio-topo {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 20px;
}

.item-anuncio-topo h2 {
    margin: 8px 0 2px;
    font-size: 1.3rem;
    letter-spacing: 0;
}

.item-anuncio-topo p {
    margin: 0;
    color: var(--texto-suave);
}

.status-anuncio--rascunho {
    background: #edf0f2;
    color: #465058;
}

.status-anuncio--em_analise {
    background: #fff2d7;
    color: #765117;
}

.status-anuncio--correcao_necessaria,
.status-anuncio--desativado,
.status-anuncio--suspenso,
.status-anuncio--removido {
    background: #fde9ed;
    color: #812137;
}

.status-anuncio--publicado {
    background: #e4f4e9;
    color: #21643a;
}

.datas-anuncio {
    margin: 20px 0;
    display: flex;
    gap: 30px;
}

.datas-anuncio div {
    display: grid;
    gap: 2px;
}

.datas-anuncio dt {
    color: var(--texto-suave);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.datas-anuncio dd {
    margin: 0;
    font-size: 0.9rem;
}

.detalhes-moderacao {
    margin: 22px 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.detalhes-moderacao div {
    min-width: 0;
}

.detalhes-moderacao dt,
.conteudo-anuncio-moderacao h3 {
    color: var(--texto-suave);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.detalhes-moderacao dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
}

.conteudo-anuncio-moderacao {
    margin-bottom: 22px;
    padding-block: 18px;
    border-block: 1px solid var(--borda);
}

.conteudo-anuncio-moderacao h3,
.conteudo-anuncio-moderacao p {
    margin: 0;
}

.conteudo-anuncio-moderacao p {
    margin-top: 8px;
    line-height: 1.65;
}

.aviso-rejeicao {
    margin: 18px 0;
    padding: 15px 17px;
    border-left: 4px solid var(--destaque);
    background: #fff3f5;
    color: #692034;
}

.aviso-rejeicao p {
    margin: 5px 0 0;
}

.aviso-analise {
    margin: 18px 0;
    padding: 15px 17px;
    border-left: 4px solid #b97a18;
    background: #fff7e8;
    color: #68450f;
}

.aviso-analise p {
    margin: 5px 0 0;
}

.aviso-indisponivel {
    margin: 18px 0;
    padding: 14px 16px;
    border-left: 3px solid #697177;
    background: #f1f3f4;
    color: #42484d;
}

.aviso-indisponivel p {
    margin: 4px 0 0;
}

.botao-perigo {
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid #a42b42;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #8a2035;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.botao-perigo:hover,
.botao-perigo:focus-visible {
    background: #fff0f3;
}

.acoes-item-anuncio form,
.acoes-formulario form {
    margin: 0;
}

.detalhes-anuncio {
    max-width: 820px;
    margin-bottom: 24px;
    padding: 26px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.detalhes-anuncio > div:first-child {
    grid-column: 1 / -1;
}

.detalhes-anuncio p {
    margin: 5px 0 0;
    white-space: pre-line;
}

.estado-vazio {
    padding: 46px 28px;
    text-align: center;
}

.estado-vazio h2 {
    margin-top: 0;
    letter-spacing: 0;
}

.estado-vazio p {
    color: var(--texto-suave);
}

.formulario-painel--anuncio {
    width: min(100%, 680px);
}

.link-voltar {
    display: inline-block;
    margin-bottom: 24px;
}

.visualmente-oculto {
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    position: absolute;
    white-space: nowrap;
}

.vitrine-anuncios,
.perfil-publico {
    padding-block: 56px 80px;
}

.cabecalho-vitrine h2,
.gerenciador-fotos h2,
.perfil-publico h1 {
    margin: 4px 0;
    font-family: Georgia, "Times New Roman", serif;
    letter-spacing: 0;
}

.grade-anuncios-publicos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.card-anuncio-publico {
    overflow: hidden;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.card-foto,
.foto-placeholder {
    min-height: 250px;
    display: block;
    background: #e9ecee;
}

.card-foto img,
.foto-interna img,
.galeria-destaque,
.galeria-miniatura img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.foto-placeholder {
    position: relative;
}

.foto-placeholder span {
    width: 84px;
    height: 68px;
    border: 2px solid #b8bec2;
    border-radius: 8px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.foto-placeholder span::before {
    content: "";
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #b8bec2;
    position: absolute;
    top: 12px;
    left: 14px;
}

.foto-placeholder span::after {
    content: "";
    width: 52px;
    height: 30px;
    background: #b8bec2;
    clip-path: polygon(0 100%, 34% 36%, 52% 65%, 70% 28%, 100% 100%);
    position: absolute;
    right: 6px;
    bottom: 7px;
}

.card-conteudo {
    padding: 22px;
}

.card-conteudo h3,
.card-nome,
.card-local {
    margin: 0;
}

.card-nome {
    color: var(--destaque);
    font-weight: 800;
}

.card-conteudo h3 {
    margin-top: 5px;
    font-size: 1.2rem;
}

.card-local,
.card-resumo {
    color: var(--texto-suave);
}

.card-resumo {
    min-height: 66px;
    line-height: 1.45;
}

.gerenciador-fotos {
    max-width: 980px;
    margin: 32px 0;
    padding: 26px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.cabecalho-gerenciador-fotos {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 20px;
}

.cabecalho-gerenciador-fotos p,
.formulario-upload p {
    margin: 5px 0 0;
    color: var(--texto-suave);
}

.grade-fotos-internas {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.foto-interna {
    overflow: hidden;
    border: 1px solid var(--borda);
    border-radius: 7px;
}

.foto-interna > img {
    height: 180px;
}

.foto-interna-info {
    padding: 12px;
}

.foto-interna-info p {
    margin: 0 0 10px;
}

.foto-interna-info strong {
    display: block;
    color: var(--destaque);
}

.acoes-foto {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.acoes-foto form {
    margin: 0;
}

.acoes-foto button {
    min-height: 34px;
    border: 1px solid var(--borda);
    border-radius: 5px;
    padding: 5px 9px;
    background: #fff;
    cursor: pointer;
}

.acoes-foto .acao-foto-perigo {
    border-color: #d9a4ae;
    color: #8a2035;
}

.formulario-upload {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--borda);
}

.formulario-upload label {
    display: block;
    margin-bottom: 8px;
    font-weight: 800;
}

.formulario-upload input {
    width: 100%;
    margin-bottom: 8px;
}

.formulario-upload button {
    margin-top: 16px;
}

.grupo-confirmacoes a {
    color: var(--destaque);
    font-weight: 700;
}

.pagina-termos p {
    color: var(--texto-suave);
}

.pagina-termos .botao-secundario {
    margin-top: 12px;
}

.editor-enquadramento-upload {
    margin-top: 16px;
}

.orientacao-enquadramento {
    color: var(--texto-suave);
    font-size: 0.92rem;
}

.lista-enquadramentos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.item-enquadramento {
    min-width: 0;
    padding-top: 14px;
    border-top: 1px solid var(--borda);
}

.enquadramento-viewport {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border: 1px solid var(--borda);
    border-radius: 6px;
    background: #e9ecee;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.enquadramento-viewport.arrastando {
    cursor: grabbing;
}

.enquadramento-viewport img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    pointer-events: none;
}

.enquadramento-viewport:focus-visible {
    outline: 3px solid rgba(180, 45, 71, 0.3);
    outline-offset: 3px;
}

.controles-enquadramento {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.controles-enquadramento label,
.campo-troca-foto {
    display: grid;
    gap: 5px;
    color: var(--texto-suave);
    font-size: 0.86rem;
    font-weight: 700;
}

.controles-enquadramento input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--destaque);
}

.ajuste-foto-existente {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--borda);
}

.ajuste-foto-existente summary {
    color: var(--destaque);
    font-weight: 800;
    cursor: pointer;
}

.ajuste-foto-existente form {
    margin-top: 14px;
}

.ajuste-foto-existente .campo-troca-foto {
    margin-top: 14px;
}

.ajuste-foto-existente input[type="file"] {
    width: 100%;
    color: var(--texto);
    font-weight: 400;
}

.ajuste-foto-existente .ajuda-campo {
    margin: 8px 0 0;
    font-size: 0.82rem;
}

.ajuste-foto-existente .botao-secundario {
    margin-top: 12px;
}

.perfil-publico-grade {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
    align-items: start;
    gap: 42px;
}

.galeria-destaque,
.galeria-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    min-height: 0;
    border-radius: 10px;
}

.galeria-miniaturas {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
}

.galeria-miniatura {
    aspect-ratio: 1;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 6px;
    padding: 0;
    background: #fff;
    cursor: pointer;
}

.galeria-miniatura.ativa,
.galeria-miniatura:focus-visible {
    border-color: var(--destaque);
}

.perfil-publico h1 {
    font-size: 2.7rem;
}

.nome-artistico-publico {
    margin: 18px 0 2px;
    color: var(--destaque);
    font-size: 1.05rem;
    font-weight: 800;
}

.metadados-anuncio-publico {
    margin-top: 16px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    color: var(--texto-suave);
}

.metadados-anuncio-publico p {
    margin: 0;
}

.perfil-publico-conteudo h2 {
    margin: 10px 0;
    font-size: 1.3rem;
}

.descricao-publica {
    margin-top: 28px;
    line-height: 1.7;
}

.card-foto-perfil {
    width: 100%;
    min-height: 250px;
    aspect-ratio: 4 / 3;
    display: block;
    background: #e9ecee;
    object-fit: cover;
}

.telefone-publico {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--borda);
}

.telefone-publico h2 {
    margin: 0 0 10px;
}

.telefone-publico form,
.telefone-publico .botao-principal {
    margin-top: 12px;
}

.telefone-revelado {
    font-size: 1.15rem;
    font-weight: 800;
}

.aviso-telefone {
    width: min(calc(100% - 32px), 520px);
    max-height: calc(100vh - 32px);
    overflow: auto;
    border: 1px solid var(--borda);
    border-radius: 8px;
    padding: 0;
    background: var(--superficie);
    color: var(--texto);
    box-shadow: 0 18px 50px rgba(32, 35, 38, 0.24);
}

.aviso-telefone::backdrop {
    background: rgba(32, 35, 38, 0.56);
}

.conteudo-aviso-telefone {
    padding: 28px;
}

.conteudo-aviso-telefone h2 {
    margin: 5px 0 12px;
    font-size: 1.45rem;
    letter-spacing: 0;
}

.conteudo-aviso-telefone p:not(.rotulo-secao) {
    margin: 0 0 14px;
    color: var(--texto-suave);
}

.acoes-aviso-telefone {
    margin-top: 24px;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.telefone-publico .acoes-aviso-telefone .botao-principal {
    margin-top: 0;
}

@media (max-width: 760px) {
    .cabecalho-conteudo {
        min-height: 72px;
        padding-block: 12px;
        align-items: center;
        flex-direction: row;
    }

    .detalhes-moderacao {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cabecalho-principal nav {
        width: auto;
        max-width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 14px 20px;
    }

    .home-simples {
        min-height: calc(100vh - 134px);
        padding-block: 58px 76px;
    }

    .formulario-busca input {
        min-height: 54px;
    }

    .icone-busca {
        top: 18px;
    }

    .rodape-conteudo {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .formulario-painel {
        padding: 24px 20px;
    }

    .cabecalho-area-interna,
    .item-anuncio-topo,
    .resumo-anunciante-cabecalho {
        align-items: flex-start;
        flex-direction: column;
    }

    .identidade-conta {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 18px;
    }

    .foto-perfil-reservada {
        width: 96px;
    }

    .foto-perfil-conta {
        width: 96px;
    }

    .foto-perfil-reservada::before {
        width: 30px;
        height: 30px;
        top: 17px;
    }

    .foto-perfil-reservada::after {
        width: 58px;
        height: 38px;
        bottom: 12px;
    }

    .detalhes-anuncio {
        grid-template-columns: 1fr;
    }

    .detalhes-anuncio > div:first-child {
        grid-column: auto;
    }

    .datas-anuncio {
        flex-direction: column;
        gap: 12px;
    }

    .grade-anuncios-publicos,
    .grade-fotos-internas,
    .perfil-publico-grade {
        grid-template-columns: 1fr;
    }

    .lista-enquadramentos,
    .controles-enquadramento {
        grid-template-columns: 1fr;
    }

    .galeria-miniaturas {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .conteudo-aviso-telefone {
        padding: 22px;
    }

    .acoes-aviso-telefone {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .acoes-aviso-telefone .botao-principal,
    .acoes-aviso-telefone .botao-discreto {
        width: 100%;
    }
}

/* Área da conta */
.area-conta {
    min-height: 600px;
    padding-block: 52px 80px;
}

.area-conta.conteudo-limitado {
    width: 100%;
    max-width: none;
}

.titulo-area-conta,
.painel-conta {
    width: calc(100% - 48px);
    max-width: 1080px;
    margin-inline: auto;
}

.titulo-area-conta {
    margin-bottom: 24px;
}

.titulo-area-conta h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.4rem;
    letter-spacing: 0;
}

.painel-conta {
    margin-top: 0;
    padding: 0;
    display: grid;
    gap: 26px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.cabecalho-perfil-conta,
.convite-anunciante,
.cartao-painel {
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.cabecalho-perfil-conta {
    padding: 28px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);
    align-items: center;
    gap: 28px;
}

.identidade-perfil-conta {
    min-width: 0;
    display: grid;
    grid-template-columns: 144px minmax(0, 1fr);
    align-items: center;
    gap: 28px;
}

.cabecalho-perfil-conta .foto-perfil-conta,
.cabecalho-perfil-conta .foto-perfil-reservada {
    width: 144px;
}

.descricao-perfil-conta {
    min-width: 0;
}

.descricao-perfil-conta h2 {
    margin: 0 0 8px;
    overflow-wrap: anywhere;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.25rem;
    line-height: 1.1;
    letter-spacing: 0;
}

.localizacao-perfil-conta,
.situacao-confirmacao-perfil,
.dados-plano-perfil {
    margin: 0;
    color: var(--texto-suave);
}

.situacao-confirmacao-perfil,
.dados-plano-perfil {
    margin-top: 9px;
    font-size: 0.94rem;
}

.estado-acoes-perfil {
    min-width: 0;
    display: grid;
    justify-items: end;
    gap: 10px;
}

.acoes-perfil-conta,
.acoes-conta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.grade-resumo-anuncios {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.8fr);
    align-items: stretch;
    gap: 24px;
}

.secao-resumo-conta {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.secao-resumo-conta h2,
.cartao-painel h2,
.zona-atencao h2 {
    margin: 0;
    font-size: 1.35rem;
    letter-spacing: 0;
}

.metricas-anunciante {
    min-height: 0;
    margin: 16px 0 0;
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.metricas-anunciante div {
    min-width: 0;
    min-height: 90px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid var(--borda);
    border-radius: 7px;
    background: #f5f7f7;
}

.metricas-anunciante dt {
    margin-top: 4px;
    color: var(--texto-suave);
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: none;
}

.metricas-anunciante dd {
    order: -1;
    margin: 0;
    font-size: 1.85rem;
    font-weight: 800;
    line-height: 1.1;
}

.cartao-painel {
    min-width: 0;
    padding: 26px;
}

.secao-anuncios-conta {
    height: 100%;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex-direction: column;
    gap: 20px;
}

.secao-anuncios-conta p,
.painel-moderacao p,
.configuracoes-conta p,
.zona-atencao p {
    margin: 7px 0 0;
    color: var(--texto-suave);
}

.secao-anuncios-conta .acoes-conta {
    margin-top: auto;
    justify-content: flex-start;
}

.avisos-publicacao-conta {
    display: grid;
    gap: 10px;
}

.aviso-publicacao-conta {
    padding: 13px 15px;
    border-left: 4px solid #8b9297;
    background: #f4f6f7;
}

.aviso-publicacao-conta--rascunho {
    border-left-color: var(--azul);
    background: #f1f6fa;
}

.aviso-publicacao-conta--analise {
    border-left-color: #b97a18;
    background: #fff7e8;
}

.secao-anuncios-conta .aviso-publicacao-conta p {
    margin: 3px 0 5px;
}

.aviso-publicacao-conta a {
    color: var(--destaque);
    font-weight: 800;
}

.aviso-publicacao-conta a:focus-visible {
    outline: 3px solid rgba(167, 45, 70, 0.24);
    outline-offset: 3px;
}

.secao-anuncios-conta > .ajuda-campo,
.secao-anuncios-conta > .aviso-indisponivel {
    margin-top: 0;
}

.convite-anunciante {
    padding: 30px;
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    align-items: center;
    gap: 28px;
    margin-top: 0;
}

.convite-anunciante h2 {
    margin: 0 0 8px;
    font-size: 1.5rem;
}

.convite-anunciante p {
    margin: 0 0 18px;
}

.painel-moderacao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.grade-conta-configuracoes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 24px;
}

.dados-conta,
.configuracoes-conta {
    color: var(--texto-suave);
}

.dados-conta h2,
.dados-conta h3,
.dados-conta dd,
.configuracoes-conta h2 {
    color: var(--texto);
}

.lista-dados-conta {
    margin: 20px 0 0;
    display: grid;
    gap: 17px;
}

.lista-dados-conta div {
    min-width: 0;
}

.lista-dados-conta dt {
    font-size: 0.79rem;
    font-weight: 700;
    text-transform: uppercase;
}

.lista-dados-conta dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.edicao-perfil {
    margin: 24px 0 0;
    padding-top: 22px;
    border-top: 1px solid var(--borda);
}

.edicao-perfil h3 {
    margin: 0 0 16px;
    font-size: 1.08rem;
    letter-spacing: 0;
}

.edicao-perfil .campo-formulario {
    max-width: none;
}

.configuracoes-conta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-direction: column;
    gap: 28px;
}

.botao-discreto {
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid #b8bec3;
    border-radius: 6px;
    background: #ffffff;
    color: var(--texto);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.botao-discreto:hover {
    border-color: #8f979d;
    background: #f5f7f7;
}

.zona-atencao {
    padding: 24px 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    border: 1px solid #e3b8b8;
    border-radius: 7px;
    background: #fff8f7;
}

.zona-atencao h2 {
    color: #7d3030;
}

.zona-atencao .botao-perigo,
.zona-atencao .situacao-perfil {
    flex: 0 0 auto;
}

.area-conta .botao-principal,
.area-conta .botao-secundario,
.area-conta .botao-perigo,
.area-conta .botao-discreto {
    min-height: 46px;
}

.area-conta .botao-secundario:hover {
    background: #fff5f7;
}

.area-conta a:focus-visible,
.area-conta button:focus-visible,
.area-conta input:focus-visible {
    outline: 3px solid rgba(167, 45, 70, 0.28);
    outline-offset: 3px;
}

@media (max-width: 900px) {
    .grade-resumo-anuncios {
        grid-template-columns: 1fr;
    }

    .secao-anuncios-conta {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .secao-anuncios-conta > .ajuda-campo,
    .secao-anuncios-conta > .aviso-indisponivel {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .area-conta {
        padding-block: 38px 60px;
    }

    .titulo-area-conta,
    .painel-conta {
        width: calc(100% - 32px);
    }

    .titulo-area-conta h1 {
        font-size: 2rem;
    }

    .painel-conta {
        gap: 20px;
    }

    .cabecalho-perfil-conta,
    .identidade-perfil-conta,
    .convite-anunciante,
    .grade-conta-configuracoes {
        grid-template-columns: 1fr;
    }

    .cabecalho-perfil-conta,
    .convite-anunciante,
    .cartao-painel,
    .zona-atencao {
        padding: 22px;
    }

    .cabecalho-perfil-conta,
    .identidade-perfil-conta,
    .convite-anunciante {
        justify-items: center;
        gap: 20px;
        text-align: center;
    }

    .cabecalho-perfil-conta .foto-perfil-conta,
    .cabecalho-perfil-conta .foto-perfil-reservada {
        width: 120px;
    }

    .descricao-perfil-conta h2 {
        font-size: 1.8rem;
    }

    .estado-acoes-perfil {
        width: 100%;
        max-width: none;
        justify-items: center;
    }

    .acoes-perfil-conta,
    .secao-anuncios-conta .acoes-conta {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .secao-anuncios-conta {
        display: flex;
    }

    .metricas-anunciante {
        grid-template-columns: 1fr;
    }

    .metricas-anunciante div {
        min-height: 96px;
    }

    .painel-moderacao,
    .zona-atencao {
        align-items: stretch;
        flex-direction: column;
    }

    .area-conta .acoes-perfil-conta .botao-secundario,
    .area-conta .secao-anuncios-conta .botao-principal,
    .area-conta .secao-anuncios-conta .botao-secundario,
    .area-conta .painel-moderacao .botao-principal,
    .area-conta .configuracoes-conta .botao-discreto,
    .area-conta .zona-atencao .botao-perigo {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .area-conta *,
    .area-conta *::before,
    .area-conta *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms;
        animation-duration: 0.01ms;
        animation-iteration-count: 1;
    }
}

/* Busca pública de anúncios */
.pagina-resultados-busca {
    min-height: 620px;
    padding-block: 52px 80px;
}

.cabecalho-resultados-busca h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.4rem;
    letter-spacing: 0;
}

.cabecalho-resultados-busca p {
    margin: 8px 0 0;
    color: var(--texto-suave);
}

.layout-resultados-busca {
    margin-top: 32px;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    align-items: start;
    gap: 28px;
}

.painel-filtros-busca {
    position: sticky;
    top: 24px;
}

.painel-filtros-busca h2 {
    margin: 0 0 12px;
    font-size: 1.15rem;
    letter-spacing: 0;
}

.filtros-busca-publica {
    margin: 0;
    padding: 20px;
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.filtros-busca-publica .botao-principal {
    width: 100%;
}

.campo-filtro {
    min-width: 0;
}

.campo-filtro label {
    margin-bottom: 7px;
    display: block;
    font-size: 0.86rem;
    font-weight: 700;
}

.campo-filtro input {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--borda);
    border-radius: 6px;
    padding: 0 13px;
    background: #ffffff;
    color: var(--texto);
    font: inherit;
}

.campo-filtro input:focus-visible {
    border-color: var(--destaque);
    outline: 3px solid rgba(167, 45, 70, 0.2);
    outline-offset: 1px;
}

.resultados-busca-publica {
    min-width: 0;
    margin-top: 0;
}

.resumo-resultados-busca {
    margin-bottom: 20px;
}

.resumo-resultados-busca h2 {
    margin: 0;
    font-size: 1.25rem;
    letter-spacing: 0;
}

.resultados-busca-publica .card-anuncio-publico {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.card-midia-anuncio {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    flex: 0 0 auto;
    background: #e9ecee;
    color: inherit;
    text-decoration: none;
}

.resultados-busca-publica .card-midia-anuncio .card-foto-anuncio,
.resultados-busca-publica .card-midia-anuncio .card-foto {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: block;
    background: #e9ecee;
    object-fit: cover;
    object-position: center;
}

.resultados-busca-publica .card-conteudo {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.card-cabecalho-publico {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.card-cabecalho-publico .status-anuncio {
    flex: 0 0 auto;
}

.resultados-busca-publica .card-resumo {
    margin-bottom: 16px;
}

.card-atualizacao {
    color: var(--texto-suave);
    font-size: 0.82rem;
}

.card-atualizacao {
    margin: auto 0 0;
}

.card-link-titulo {
    color: inherit;
    text-decoration: none;
}

.card-link-titulo:hover {
    color: var(--destaque);
}

.card-link-anuncio {
    width: 100%;
    margin-top: 14px;
}

.card-midia-anuncio:focus-visible,
.card-link-titulo:focus-visible,
.card-link-anuncio:focus-visible {
    outline: 3px solid rgba(167, 45, 70, 0.24);
    outline-offset: 3px;
}

.estado-vazio-busca {
    padding: 34px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
    text-align: center;
}

.estado-vazio-busca p {
    margin: 0 0 18px;
}

.paginacao-busca {
    margin-top: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.paginacao-busca a,
.paginacao-busca .pagina-atual,
.paginacao-reticencias {
    min-width: 42px;
    min-height: 42px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--borda);
    border-radius: 6px;
    background: var(--superficie);
    text-decoration: none;
}

.paginacao-busca a:hover,
.paginacao-busca a:focus-visible,
.paginacao-busca .pagina-atual {
    border-color: var(--destaque);
    color: var(--destaque);
}

.paginacao-busca a:focus-visible {
    outline: 3px solid rgba(167, 45, 70, 0.2);
    outline-offset: 2px;
}

.paginacao-busca .pagina-atual {
    font-weight: 800;
}

.total-paginas {
    width: 100%;
    color: var(--texto-suave);
    font-size: 0.86rem;
    text-align: center;
}

@media (max-width: 1100px) {
    .resultados-busca-publica .grade-anuncios-publicos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .layout-resultados-busca {
        grid-template-columns: 1fr;
    }

    .painel-filtros-busca {
        position: static;
    }

    .filtros-busca-publica {
        grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr) 90px auto;
        align-items: end;
    }

    .filtros-busca-publica .botao-principal {
        width: auto;
    }
}

@media (max-width: 640px) {
    .pagina-resultados-busca {
        padding-block: 38px 60px;
    }

    .cabecalho-resultados-busca h1 {
        font-size: 2rem;
    }

    .filtros-busca-publica {
        padding: 18px;
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .filtros-busca-publica .botao-principal {
        grid-column: auto;
        width: 100%;
    }

    .resultados-busca-publica .grade-anuncios-publicos {
        grid-template-columns: 1fr;
    }

}

/* Relatorios da equipe */
.area-relatorios.conteudo-limitado {
    width: min(calc(100% - 40px), 1380px);
}

.area-relatorios {
    min-height: 620px;
    padding-block: 48px 80px;
}

.cabecalho-relatorios {
    margin-bottom: 28px;
}

.cabecalho-relatorios h1 {
    margin: 4px 0 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.35rem;
    letter-spacing: 0;
}

.cabecalho-relatorios > p:last-child,
.item-relatorio p,
.cabecalho-tabela-relatorio p {
    color: var(--texto-suave);
}

.lista-relatorios h2 {
    margin: 0 0 14px;
    font-size: 1.2rem;
}

.item-relatorio {
    max-width: 760px;
    padding: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.item-relatorio h3,
.item-relatorio p {
    margin: 0;
}

.item-relatorio p {
    margin-top: 4px;
}

.filtros-relatorio {
    margin: 0 0 26px;
    padding: 22px;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 16px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.filtros-relatorio-erros {
    grid-column: 1 / -1;
}

.campo-filtro-relatorio {
    min-width: 0;
    grid-column: span 2;
}

.campo-filtro-relatorio--q {
    grid-column: span 4;
}

.campo-filtro-relatorio label {
    margin-bottom: 6px;
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
}

.campo-filtro-relatorio input,
.campo-filtro-relatorio select {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--borda);
    border-radius: 6px;
    padding: 8px 11px;
    background: #ffffff;
    color: var(--texto);
    font: inherit;
}

.campo-filtro-relatorio input:focus-visible,
.campo-filtro-relatorio select:focus-visible,
.tabela-relatorio-scroll:focus-visible {
    border-color: var(--destaque);
    outline: 3px solid rgba(167, 45, 70, 0.2);
    outline-offset: 2px;
}

.acoes-filtros-relatorio {
    grid-column: span 4;
    display: flex;
    align-items: center;
    gap: 10px;
}

.indicadores-relatorio {
    margin: 0 0 28px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.indicadores-relatorio div {
    min-height: 108px;
    padding: 18px;
    display: flex;
    justify-content: space-between;
    flex-direction: column-reverse;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: #f3f5f5;
}

.indicadores-relatorio dt {
    color: var(--texto-suave);
    font-size: 0.86rem;
    font-weight: 700;
}

.indicadores-relatorio dd {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 800;
}

.secao-tabela-relatorio {
    overflow: hidden;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--superficie);
}

.cabecalho-tabela-relatorio {
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--borda);
}

.cabecalho-tabela-relatorio h2,
.cabecalho-tabela-relatorio p {
    margin: 0;
}

.cabecalho-tabela-relatorio h2 {
    font-size: 1.2rem;
}

.tabela-relatorio-scroll {
    overflow-x: auto;
}

.tabela-relatorio {
    width: 100%;
    min-width: 1180px;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.tabela-relatorio th,
.tabela-relatorio td {
    padding: 13px 15px;
    border-bottom: 1px solid var(--borda);
    text-align: left;
    vertical-align: middle;
}

.tabela-relatorio th {
    background: #f3f5f5;
    color: #454b50;
    font-size: 0.78rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.tabela-relatorio tbody tr:last-child td {
    border-bottom: 0;
}

.tabela-relatorio tbody tr:hover {
    background: #fafbfb;
}

.tabela-relatorio-vazia {
    padding-block: 36px !important;
    color: var(--texto-suave);
    text-align: center !important;
}

.situacao-relatorio {
    display: inline-block;
    border: 1px solid var(--borda);
    border-radius: 4px;
    padding: 3px 7px;
    font-size: 0.76rem;
    font-weight: 800;
    white-space: nowrap;
}

.situacao-relatorio--habilitado {
    border-color: #bcd8d0;
    background: #edf7f4;
    color: #245247;
}

.situacao-relatorio--desabilitado {
    border-color: #e0bdc5;
    background: #fff5f7;
    color: #812137;
}

.situacao-relatorio--sem-perfil {
    background: #f3f5f5;
    color: var(--texto-suave);
}

.paginacao-relatorio {
    margin-top: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.paginacao-relatorio a,
.paginacao-relatorio span {
    min-height: 42px;
    padding: 8px 13px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--borda);
    border-radius: 6px;
    background: var(--superficie);
    text-decoration: none;
}

.paginacao-relatorio a:hover,
.paginacao-relatorio a:focus-visible {
    border-color: var(--destaque);
    color: var(--destaque);
}

.paginacao-relatorio a:focus-visible {
    outline: 3px solid rgba(167, 45, 70, 0.2);
    outline-offset: 2px;
}

@media (max-width: 1050px) {
    .campo-filtro-relatorio,
    .campo-filtro-relatorio--q {
        grid-column: span 4;
    }

    .acoes-filtros-relatorio {
        grid-column: span 8;
    }
}

@media (max-width: 760px) {
    .area-relatorios.conteudo-limitado {
        width: min(calc(100% - 28px), 1380px);
    }

    .area-relatorios {
        padding-block: 36px 60px;
    }

    .cabecalho-relatorios h1 {
        font-size: 2rem;
    }

    .item-relatorio,
    .cabecalho-tabela-relatorio {
        align-items: stretch;
        flex-direction: column;
    }

    .item-relatorio .botao-principal {
        width: 100%;
    }

    .filtros-relatorio {
        padding: 18px;
        grid-template-columns: 1fr;
    }

    .campo-filtro-relatorio,
    .campo-filtro-relatorio--q,
    .acoes-filtros-relatorio {
        grid-column: auto;
    }

    .acoes-filtros-relatorio {
        align-items: stretch;
        flex-direction: column;
    }

    .acoes-filtros-relatorio .botao-principal,
    .acoes-filtros-relatorio .botao-secundario {
        width: 100%;
    }

    .indicadores-relatorio {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 460px) {
    .indicadores-relatorio {
        grid-template-columns: 1fr;
    }

    .paginacao-relatorio {
        align-items: stretch;
        flex-direction: column;
        text-align: center;
    }

    .paginacao-relatorio a,
    .paginacao-relatorio span {
        justify-content: center;
    }
}
