:root {
    --cor-primaria: #2b6cb0;
    --cor-primaria-escura: #1a4971;
    --cor-texto: #1a1a1a;
    --cor-texto-suave: #4a4a4a;
    --cor-fundo: #ffffff;
    --cor-fundo-alt: #f5f5f5;
    --cor-borda: #d0d0d0;
    --cor-erro: #b00020;
    --cor-sucesso: #1b7a3d;
    --espaco-1: 0.25rem;
    --espaco-2: 0.5rem;
    --espaco-3: 1rem;
    --espaco-4: 1.5rem;
    --espaco-5: 2rem;
    --raio: 6px;
}

* {
    box-sizing: border-box;
}

/* O atributo HTML `hidden` normalmente vira "display: none" via UA
   stylesheet, mas qualquer regra de autor que defina `display`
   explicitamente (como button/.botao abaixo) tem prioridade e
   silenciosamente reativa o elemento -- garantir aqui que `hidden`
   sempre vence, não importa o componente. */
[hidden] {
    display: none !important;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    color: var(--cor-texto);
    background: var(--cor-fundo);
    line-height: 1.5;
}

.pular-conteudo {
    position: absolute;
    left: -999px;
    top: 0;
    background: var(--cor-primaria);
    color: #fff;
    padding: var(--espaco-2) var(--espaco-3);
    z-index: 100;
}
.pular-conteudo:focus {
    left: var(--espaco-2);
    top: var(--espaco-2);
}

a {
    color: var(--cor-primaria);
}
a:hover {
    color: var(--cor-primaria-escura);
}

.cabecalho {
    border-bottom: 1px solid var(--cor-borda);
    padding: var(--espaco-3);
}
.nav {
    display: flex;
    gap: var(--espaco-4);
    align-items: center;
    max-width: 960px;
    margin: 0 auto;
}
.nav-marca {
    font-weight: 700;
    font-size: 1.2rem;
    margin-right: auto;
    text-decoration: none;
}
.nav a,
.nav button {
    font: inherit;
}

main {
    max-width: 960px;
    margin: 0 auto;
    padding: var(--espaco-4) var(--espaco-3);
    min-height: 60vh;
}
main:focus {
    outline: none;
}

.rodape {
    border-top: 1px solid var(--cor-borda);
    padding: var(--espaco-3);
    display: flex;
    gap: var(--espaco-3);
    justify-content: center;
}

label {
    display: block;
    font-weight: 600;
    margin-top: var(--espaco-3);
}
input,
select,
textarea {
    width: 100%;
    padding: var(--espaco-2);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    font: inherit;
    margin-top: var(--espaco-1);
}
textarea {
    min-height: 6rem;
    resize: vertical;
}
input:focus,
select:focus,
textarea:focus,
button:focus,
a:focus {
    outline: 2px solid var(--cor-primaria);
    outline-offset: 2px;
}

button,
.botao {
    display: inline-block;
    background: var(--cor-primaria);
    color: #fff;
    border: none;
    padding: var(--espaco-2) var(--espaco-4);
    border-radius: var(--raio);
    cursor: pointer;
    font: inherit;
    text-decoration: none;
    margin-top: var(--espaco-3);
}
button:hover,
.botao:hover {
    background: var(--cor-primaria-escura);
}
button[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}
.botao-secundario {
    background: transparent;
    color: var(--cor-primaria);
    border: 1px solid var(--cor-primaria);
}

.botao-toggle-senha {
    display: block;
    margin-top: var(--espaco-1);
    padding: var(--espaco-1) var(--espaco-2);
    font-size: 0.85rem;
}

.erro {
    color: var(--cor-erro);
    font-weight: 600;
}
.sucesso {
    color: var(--cor-sucesso);
    font-weight: 600;
}

.cartao {
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: var(--espaco-4);
    margin-bottom: var(--espaco-3);
}

fieldset {
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    margin-top: var(--espaco-3);
    padding: var(--espaco-3);
}
legend {
    font-weight: 600;
    padding: 0 var(--espaco-1);
}

.opcoes-papel,
.opcao-checkbox {
    display: flex;
    align-items: center;
    gap: var(--espaco-2);
    font-weight: normal;
    margin-top: var(--espaco-2);
}
.opcao-checkbox input,
.opcoes-papel input {
    width: auto;
    margin: 0;
}

.grade-filtros {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--espaco-3);
    align-items: end;
}
.grade-filtros-acao {
    grid-column: 1 / -1;
}

.grade-checkboxes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--espaco-2);
    margin-top: var(--espaco-2);
}

.lista-resultados,
.lista-comentarios {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--espaco-3);
}

.selo-confirmado {
    color: var(--cor-sucesso);
    font-weight: 600;
}

.acoes-home {
    display: flex;
    gap: var(--espaco-3);
    margin-top: var(--espaco-4);
}

#perfil-contato {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--espaco-1) var(--espaco-3);
}
#perfil-contato dt {
    font-weight: 600;
}
#perfil-contato dd {
    margin: 0;
}
