/* Portal Reveev: estilos compartilhados por todas as páginas */

:root {
    --tinta: #16313a;          /* azul-petróleo: marca, botões, títulos */
    --tinta-forte: #0f242b;
    --fundo: #eef1ef;
    --superficie: #ffffff;
    --linha: #d3dad7;
    --texto: #16313a;
    --texto-suave: #55676c;
    --sinal: #e3a41c;          /* âmbar: foco e detalhe da marca */
    --erro: #a8261c;
    --erro-fundo: #fbeceb;
    --info-fundo: #e6eef0;

    --fonte: "Hanken Grotesk", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
    --raio: 10px;
}

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

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--fonte);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--texto);
    background: var(--fundo);
}

h1, h2, h3, p { margin: 0; }

a { color: inherit; }

:focus-visible {
    outline: 3px solid var(--sinal);
    outline-offset: 2px;
}

code {
    font-size: 0.9em;
    background: var(--info-fundo);
    padding: 0.1em 0.35em;
    border-radius: 4px;
}

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

.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 1.25rem;
    border: 1px solid transparent;
    border-radius: 8px;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.botao--principal {
    background: var(--tinta);
    color: #fff;
}
.botao--principal:hover { background: var(--tinta-forte); }

.botao--discreto {
    background: transparent;
    color: var(--texto);
    border-color: var(--linha);
    min-height: 38px;
    padding: 0 0.9rem;
}
.botao--discreto:hover { border-color: var(--texto-suave); }

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

.aviso {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: var(--info-fundo);
    margin-bottom: 1.25rem;
}
.aviso--erro {
    background: var(--erro-fundo);
    color: var(--erro);
    font-weight: 500;
}

/* ---------- Tela de login ---------- */

.login {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    min-height: 100vh;
}

.login__foto {
    position: relative;
    display: flex;
    align-items: flex-end;
    padding: 3rem;
    background-color: var(--tinta);
    background-size: cover;
    background-position: center;
}
/* Escurece a base da foto para o nome da empresa ficar legível */
.login__foto::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 36, 43, 0.85) 0%, rgba(15, 36, 43, 0.15) 55%, rgba(15, 36, 43, 0) 100%);
}
.login__foto--vazia {
    background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0 14px, transparent 14px 28px);
}

.login__marca {
    position: relative;
    color: #fff;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
}
.login__marca::before {
    content: "";
    display: block;
    width: 3rem;
    height: 4px;
    margin-bottom: 1.25rem;
    background: var(--sinal);
}

.login__painel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1.5rem;
    background: var(--superficie);
}

.login__conteudo { width: 100%; max-width: 22rem; }

.login__titulo {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.2;
}

.login__apoio {
    margin: 0.5rem 0 2rem;
    color: var(--texto-suave);
}

.login__ajuda {
    margin-top: 1.5rem;
    font-size: 0.875rem;
    color: var(--texto-suave);
}

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

.formulario { display: grid; gap: 1.25rem; }
.formulario .botao { width: 100%; margin-top: 0.5rem; }

.campo { display: grid; gap: 0.375rem; }

.campo__rotulo { font-weight: 600; font-size: 0.9375rem; }

.campo input {
    width: 100%;
    min-height: 46px;
    padding: 0 0.875rem;
    border: 1px solid var(--linha);
    border-radius: 8px;
    font: inherit;
    color: var(--texto);
    background: var(--superficie);
}
.campo input:hover { border-color: var(--texto-suave); }
.campo input:focus-visible { outline-offset: 0; border-color: var(--tinta); }

.campo__senha { position: relative; display: block; }
.campo__senha input { padding-right: 5.5rem; }

.campo__mostrar {
    position: absolute;
    top: 50%;
    right: 0.375rem;
    transform: translateY(-50%);
    min-height: 34px;
    padding: 0 0.75rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--texto-suave);
    cursor: pointer;
}
.campo__mostrar:hover { color: var(--texto); background: var(--fundo); }

/* ---------- Topo das páginas internas ---------- */

.topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem clamp(1rem, 4vw, 2.5rem);
    background: var(--superficie);
    border-bottom: 1px solid var(--linha);
}

.topo__marca {
    font-size: 1.375rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none;
    border-left: 4px solid var(--sinal);
    padding-left: 0.625rem;
    line-height: 1.1;
}

.topo__usuario { display: flex; align-items: center; gap: 1rem; }

.topo__nome { text-align: right; font-weight: 600; line-height: 1.25; }
.topo__perfil {
    display: block;
    font-weight: 400;
    font-size: 0.8125rem;
    color: var(--texto-suave);
}

/* ---------- Página inicial ---------- */

.inicio {
    max-width: 68rem;
    margin: 0 auto;
    padding: clamp(1rem, 3vw, 2rem) clamp(1rem, 4vw, 2.5rem) 4rem;
}

.destaque {
    position: relative;
    margin: 0;
    aspect-ratio: 21 / 8;
    border-radius: 14px;
    overflow: hidden;
    background-color: var(--tinta);
}
.destaque img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.destaque--vazio {
    background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0 14px, transparent 14px 28px);
}

.destaque__texto {
    position: absolute;
    inset: auto 0 0 0;
    padding: 4rem clamp(1.25rem, 3vw, 2.5rem) clamp(1.25rem, 3vw, 2rem);
    color: #fff;
    background: linear-gradient(to top, rgba(15, 36, 43, 0.82), rgba(15, 36, 43, 0));
}

.destaque__saudacao {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.1;
}
.destaque__data { margin-top: 0.375rem; opacity: 0.88; }

.nota-admin {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: var(--texto-suave);
}

.programas { margin-top: 2.5rem; }

.programas__titulo {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin-bottom: 1rem;
}

.programas__lista {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--superficie);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
}

.programa {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
}
.programa + .programa { border-top: 1px solid var(--linha); }

.programa__nome { font-size: 1.0625rem; font-weight: 600; }
.programa__descricao { margin-top: 0.125rem; color: var(--texto-suave); max-width: 46rem; }

.programa__acao { flex-shrink: 0; }

.programa__status {
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--texto-suave);
    padding: 0.375rem 0.75rem;
    border: 1px dashed var(--linha);
    border-radius: 999px;
}

.programas__vazio {
    padding: 1.5rem;
    background: var(--superficie);
    border: 1px dashed var(--linha);
    border-radius: var(--raio);
    color: var(--texto-suave);
}

/* ---------- Menu do topo ---------- */

.topo__esquerda { display: flex; align-items: center; gap: 2rem; min-width: 0; }

.topo__menu { display: flex; gap: 0.25rem; }
.topo__menu a {
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
    color: var(--texto-suave);
}
.topo__menu a:hover { color: var(--texto); background: var(--fundo); }
.topo__menu a[aria-current="page"] { color: var(--texto); background: var(--fundo); font-weight: 600; }

a.topo__nome { text-decoration: none; border-radius: 6px; padding: 0.25rem 0.5rem; }
a.topo__nome:hover { background: var(--fundo); }

/* ---------- Páginas internas ---------- */

.conteudo {
    max-width: 68rem;
    margin: 0 auto;
    padding: clamp(1.25rem, 3vw, 2.25rem) clamp(1rem, 4vw, 2.5rem) 4rem;
}
.conteudo--medio { max-width: 42rem; }
.conteudo--estreito { max-width: 28rem; }

.pagina__cabecalho {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.pagina__titulo {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.2;
    margin-bottom: 0.5rem;
}
.pagina__apoio { color: var(--texto-suave); margin-bottom: 1.25rem; }
.pagina__rodape { margin-top: 0.75rem; font-size: 0.875rem; color: var(--texto-suave); }

.voltar { margin-bottom: 1rem; font-size: 0.9375rem; }
.voltar a { color: var(--texto-suave); }
.voltar a:hover { color: var(--texto); }

.oculto {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.painel {
    background: var(--superficie);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: clamp(1.25rem, 3vw, 1.75rem);
}
.painel--secundario { margin-top: 1.5rem; }
.painel__titulo { font-size: 1.125rem; font-weight: 700; margin-bottom: 0.5rem; }
.painel .pagina__apoio { margin-bottom: 0.75rem; }

.acoes { margin-top: 1.25rem; }

.aviso p + p { margin-top: 0.25rem; }

/* Abas da administração */
.abas {
    display: flex;
    gap: 1.5rem;
    margin: 0.75rem 0 1.5rem;
    border-bottom: 1px solid var(--linha);
}
.abas a {
    padding: 0.625rem 0;
    margin-bottom: -1px;
    border-bottom: 3px solid transparent;
    text-decoration: none;
    font-weight: 600;
    color: var(--texto-suave);
}
.abas a:hover { color: var(--texto); }
.abas a[aria-current="page"] { color: var(--texto); border-bottom-color: var(--tinta); }

/* ---------- Campos extras ---------- */

.campo select {
    width: 100%;
    min-height: 46px;
    padding: 0 0.75rem;
    border: 1px solid var(--linha);
    border-radius: 8px;
    font: inherit;
    color: var(--texto);
    background: var(--superficie);
}
.campo__ajuda { font-size: 0.875rem; color: var(--texto-suave); }
.campo__opcional { font-weight: 400; color: var(--texto-suave); }

.campo--grupo { border: 0; padding: 0; margin: 0; min-width: 0; gap: 0.5rem; }
.campo--grupo legend { padding: 0; margin-bottom: 0.375rem; }

.opcao {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid var(--linha);
    border-radius: 8px;
    cursor: pointer;
}
.opcao:hover { border-color: var(--texto-suave); }
.opcao:has(input:checked) { border-color: var(--tinta); background: var(--info-fundo); }
.opcao input { margin: 0.2rem 0 0; width: 1.125rem; height: 1.125rem; accent-color: var(--tinta); flex-shrink: 0; }
.opcao__nome { display: block; font-weight: 600; }
.opcao__descricao { display: block; font-size: 0.875rem; color: var(--texto-suave); }

.caixa { width: 1.25rem; height: 1.25rem; accent-color: var(--tinta); cursor: pointer; }

/* Filtros da lista */
.filtros {
    display: grid;
    grid-template-columns: minmax(12rem, 2fr) minmax(9rem, 1fr) minmax(9rem, 1fr) auto;
    gap: 0.75rem;
    align-items: end;
    margin-bottom: 1.25rem;
}
.filtros .botao { min-height: 46px; }

/* ---------- Tabelas ---------- */

.tabela-rolagem {
    position: relative;   /* mantém textos ocultos dentro da rolagem */
    overflow-x: auto;
    background: var(--superficie);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
}

.tabela { width: 100%; border-collapse: collapse; }
.tabela th, .tabela td {
    padding: 0.875rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--linha);
    white-space: nowrap;
}
.tabela thead th {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--texto-suave);
    background: var(--fundo);
}
.tabela tbody tr:last-child > * { border-bottom: 0; }
.tabela tbody th { font-weight: 400; }
.tabela__centro { text-align: center !important; }
.tabela__acao { text-align: right !important; }
.tabela__acao a { font-weight: 600; }
.tabela__linha--inativa td { color: var(--texto-suave); }
.tabela--matriz tbody th { white-space: normal; min-width: 14rem; }
.tabela--matriz .etiqueta { margin-left: 0.5rem; }

.etiqueta {
    display: inline-block;
    padding: 0.125rem 0.625rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    background: var(--info-fundo);
    color: var(--tinta);
}
.etiqueta--pendente { background: #fbf1d9; color: #7a5300; }
.etiqueta--inativa { background: var(--fundo); color: var(--texto-suave); border: 1px solid var(--linha); }

/* Senha temporária recém-gerada */
.senha-gerada {
    margin-bottom: 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 2px solid var(--sinal);
    border-radius: var(--raio);
    background: #fffaf0;
}
.senha-gerada__titulo { font-size: 1rem; font-weight: 600; }
.senha-gerada__valor {
    margin: 0.5rem 0 0.75rem;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    user-select: all;
}

/* ---------- Celular ---------- */

@media (max-width: 760px) {
    .login { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
    .login__foto { min-height: 32vh; padding: 1.5rem; }
    .login__marca { font-size: 2.25rem; }
    .login__marca::before { margin-bottom: 0.75rem; }
    .login__painel { align-items: flex-start; padding: 2rem 1.25rem 3rem; }

    .topo { flex-wrap: wrap; }
    .topo__esquerda { gap: 0.75rem; flex-wrap: wrap; }
    .topo__perfil { display: none; }
    .topo__nome { font-size: 0.9375rem; }
    .filtros { grid-template-columns: 1fr 1fr; }
    .filtros .campo:first-child, .filtros .botao { grid-column: 1 / -1; }

    .destaque { aspect-ratio: 4 / 3; }

    .programa { flex-direction: column; align-items: flex-start; gap: 0.875rem; padding: 1.125rem 1.25rem; }
    .programa__acao { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
}

/* ---------- Permissões por aba ---------- */
.permissoes__subtitulo { font-size: 1.125rem; font-weight: 700; margin: 2rem 0 0.375rem; }
select.nivel {
    min-height: 36px;
    padding: 0 0.5rem;
    border: 1px solid var(--linha);
    border-radius: 6px;
    font: inherit;
    font-size: 0.875rem;
    background: var(--superficie);
    color: var(--texto);
}
select.nivel--editar { border-color: var(--tinta); font-weight: 600; }
select.nivel--ver { background: var(--info-fundo); }
select.nivel--nenhum { color: var(--texto-suave); }

/* ---------- Perfis ---------- */
.row-botoes { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
.formulario .row-botoes .botao { width: auto; margin-top: 0; }
.botao--perigo { background: var(--erro); color: #fff; }
.botao--perigo:hover { filter: brightness(0.92); }
.painel--perigo { margin-top: 1.5rem; border-color: #e3b4ae; background: #fdf6f5; }
.tabela__quebra { white-space: normal !important; min-width: 16rem; }

/* ---------- Rodapé e textos legais ---------- */
.rodape-portal { text-align: center; padding: 1.5rem 1rem 2rem; font-size: 0.8125rem; }
.rodape-portal a { color: var(--texto-suave); }
.pagina-login .rodape-portal { position: fixed; right: 1rem; bottom: 0.5rem; padding: 0; }
.texto-legal h2 { font-size: 1.125rem; margin: 1.75rem 0 0.5rem; }
.texto-legal p, .texto-legal li { line-height: 1.6; }
.texto-legal ul { padding-left: 1.25rem; display: grid; gap: 0.5rem; }
.filtros--atividades { grid-template-columns: minmax(0, 2fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.filtros--atividades input[type=date] { width: 100%; min-width: 0; }

/* ---------- Aviso de revisão de acessos ---------- */
.alerta-revisao {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 1.25rem; padding: 1rem 1.25rem; border-radius: var(--raio);
    background: #fffaf0; border: 2px solid var(--sinal);
}
.alerta-revisao__titulo { font-size: 1.0625rem; font-weight: 700; margin-bottom: 0.25rem; }
.alerta-revisao p { color: var(--texto-suave); }
.mudancas { margin: 0; padding-left: 1rem; font-size: 0.875rem; display: grid; gap: 0.125rem; }

/* ---------- Atividades: tipos, filtros e páginas ---------- */
.segmentos { display: inline-flex; gap: 0.25rem; padding: 0.25rem; margin-bottom: 1rem; border-radius: 10px; background: var(--superficie); border: 1px solid var(--linha); }
.segmentos a { padding: 0.5rem 1rem; border-radius: 7px; text-decoration: none; font-weight: 600; color: var(--texto-suave); }
.segmentos a:hover { color: var(--texto); }
.segmentos a[aria-current="page"] { background: var(--tinta); color: #fff; }
.filtros-atividades { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem 1rem; margin-bottom: 1rem; }
.filtros-atividades input[type=date] { width: 100%; }
.filtros-atividades__botoes { display: flex; gap: 0.5rem; align-items: end; grid-column: 1 / -1; }
.paginacao-topo { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.tamanho-pagina label { font-size: 0.875rem; color: var(--texto-suave); display: inline-flex; align-items: center; gap: 0.375rem; }
.tamanho-pagina select { min-height: 34px; padding: 0 0.5rem; border: 1px solid var(--linha); border-radius: 6px; font: inherit; background: var(--superficie); color: var(--texto); }
.paginacao { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; flex: 1; }
.paginacao-topo .paginacao { margin-top: 0; }
.paginacao__botoes { display: inline-flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; }
.paginacao__botoes .botao { min-height: 34px; padding: 0 0.75rem; font-size: 0.875rem; }
.paginacao__atual { font-size: 0.875rem; font-weight: 600; padding: 0 0.25rem; }
.tabela--atividades td:first-child { white-space: nowrap; }
@media (max-width: 760px) { .filtros-atividades { grid-template-columns: 1fr 1fr; } }
.tabela--atividades td:nth-child(3) { white-space: normal; min-width: 9rem; }
.tabela--atividades td:nth-child(4) { min-width: 13rem; }

/* ---------- Indicadores (Power BI) ---------- */
.conteudo--largo { max-width: 96rem; }
.bi-moldura { position: relative; width: 100%; height: calc(100vh - 15rem); min-height: 32rem;
    border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; background: var(--superficie); }
.bi-moldura iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.bi-ajuda { margin-top: 0.75rem; padding: 0.75rem 1rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.bi-ajuda summary { cursor: pointer; font-weight: 600; }
.bi-ajuda ol { padding-left: 1.25rem; display: grid; gap: 0.375rem; }
.bi-ajuda p, .bi-ajuda ol { margin: 0.625rem 0; }

/* ---------- E-mail ---------- */
.envio-ok { color: #1f6b40; font-weight: 600; margin: 0.25rem 0 0.75rem; }
.tabela--simples th { text-align: left; font-weight: 600; color: var(--texto-suave); width: 40%; background: none !important; }
.tabela--simples th, .tabela--simples td { white-space: normal; border-bottom: 1px solid var(--linha); }
.login__ajuda a { font-weight: 600; }
.situacao-email { padding: 0.625rem 0.875rem; border-radius: 8px; font-weight: 600; margin-bottom: 1rem; }
.situacao-email.ok { background: #e4f3ea; color: #1f6b40; }
.situacao-email.pendente { background: #fbf1d9; color: #7a5300; }
.campos-lado { display: grid; grid-template-columns: 2fr 1fr 1.2fr; gap: 0.75rem; }
.campos-lado--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 760px) { .campos-lado, .campos-lado--2 { grid-template-columns: 1fr; } }
.abas { flex-wrap: wrap; column-gap: 1.25rem; row-gap: 0; }
.abas a { white-space: nowrap; }
.campos-lado { grid-template-columns: 1.6fr 0.8fr 1.4fr; }

/* ---------- Consulta Uniplus ---------- */
.uniplus-escopo { margin: -0.5rem 0 1rem; font-size: 0.875rem; color: var(--texto-suave); }
.filtros-uniplus { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 0.75rem 1rem; align-items: end; margin-bottom: 1.25rem;
    padding: 1rem 1.125rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.filtros-uniplus .campo--largo { grid-column: span 2; }
.filtros-uniplus input[type=date] { width: 100%; min-width: 0; }
.filtros-uniplus__botoes { display: flex; gap: 0.5rem; align-items: end; }
.filtros-uniplus__botoes .botao { min-height: 46px; }
.uniplus-resumo { font-size: 0.9375rem; }
.botao--pequeno { min-height: 34px; padding: 0 0.75rem; font-size: 0.875rem; }
.tabela__numero { text-align: right !important; font-variant-numeric: tabular-nums; }
.tabela--uniplus th, .tabela--uniplus td { padding: 0.625rem 0.875rem; font-size: 0.9375rem; }
.tabela--uniplus td a { font-weight: 600; text-decoration-color: var(--linha); text-underline-offset: 3px; }
.tabela--uniplus td a:hover { text-decoration-color: currentColor; }
.tabela__quebra--curta { min-width: 9rem; }
.nota-cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.nota-cabecalho__titulo { font-size: 1.375rem; font-weight: 700; margin-bottom: 0.25rem; }
.nota-cabecalho .pagina__apoio { margin-bottom: 0; }
.nota-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1rem; margin-bottom: 0.5rem; }
.nota-grade .painel { margin: 0; }
.nota-grade .painel p + p { margin-top: 0.25rem; }
.nota-grade .tabela--simples th { width: 38%; }
.nota-grade .tabela--simples th, .nota-grade .tabela--simples td { padding: 0.375rem 0; }
.nota-grade .tabela--simples tr:last-child > * { border-bottom: 0; }
.nota-chave { font-family: ui-monospace, Consolas, monospace; font-size: 0.8125rem; word-break: break-all; }
.nota-obs p + p { margin-top: 0.75rem; }
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.75rem; margin-bottom: 1rem; }
.numero { padding: 0.875rem 1rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); display: flex; flex-direction: column; gap: 0.125rem; }
.numero__rotulo { font-size: 0.8125rem; color: var(--texto-suave); font-weight: 600; }
.numero__valor { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.numero__valor--texto { font-size: 1rem; }
.uniplus-status { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: -0.25rem 0 1rem; }
.uniplus-lojas { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 0.5rem; margin: 0.25rem 0 0 2rem; }
.uniplus-remover { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
@media (max-width: 760px) {
    .filtros-uniplus { grid-template-columns: 1fr 1fr; }
    .filtros-uniplus .campo--largo, .filtros-uniplus__botoes { grid-column: 1 / -1; }
    .uniplus-lojas { margin-left: 0; }
}
.info { display: inline-flex; align-items: center; justify-content: center; width: 1.125rem; height: 1.125rem; border-radius: 50%;
    font-size: 0.75rem; font-weight: 700; background: var(--info-fundo); color: var(--tinta); cursor: help; vertical-align: 1px; }
.uniplus-explica { margin: -0.25rem 0 0.5rem; }
.filtros-uniplus .opcao { align-self: end; }
.etiqueta--verde { background: #e4f3ea; color: #1f6b40; }
.etiqueta--vermelha { background: var(--erro-fundo); color: var(--erro); }
.uniplus-ref { font-family: ui-monospace, Consolas, monospace; font-size: 0.8125rem; color: var(--texto-suave); }
.nota-obs { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 0.75rem; margin-bottom: 0.5rem; }
.nota-obs__bloco { padding: 0.875rem 1rem; background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--sinal); border-radius: var(--raio); }
.nota-obs__rotulo { margin: 0 0 0.375rem; font-size: 0.8125rem; font-weight: 600; color: var(--texto-suave); }
.nota-obs__bloco p { font-size: 0.9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.item-obs { margin-top: 0.375rem; padding: 0.375rem 0.625rem; font-size: 0.875rem; background: #fffaf0; border-left: 3px solid var(--sinal); border-radius: 4px; color: var(--texto); }
/* Ordenar e arrastar colunas */
.ordenar { color: inherit; text-decoration: none; cursor: pointer; white-space: nowrap; }
.ordenar:hover { color: var(--texto); text-decoration: underline; }
.ordenar--ativo { color: var(--tinta); }
th.ordenar--ativo, th .ordenar--ativo { font-weight: 700; }
.coluna-arrastavel { cursor: grab; user-select: none; }
.coluna-arrastando { opacity: 0.45; }
.coluna-alvo { box-shadow: inset 3px 0 0 var(--sinal); background: #fffaf0 !important; }
.colunas-ajuda { margin-top: 0.375rem; font-size: 0.8125rem; color: var(--texto-suave); }
.colunas-restaurar { margin-left: 0.25rem; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--tinta); text-decoration: underline; cursor: pointer; }
@media (hover: none) { .colunas-ajuda { display: none; } }
