:root {
    --azul-escuro: #192847;
    --azul: #0e64ff;
    --fundo: #e9ecf3;
    --branco: #ffffff;
    --texto: #192847;
    --texto-suave: #5f6b80;
    --borda: #d8deea;
    --erro: #b42318;
    --erro-fundo: #fef3f2;
    --sombra: 0 24px 60px rgba(25, 40, 71, 0.12);
    font-family: Manrope, "Segoe UI", Arial, sans-serif;
    color: var(--texto);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background: var(--fundo);
}

button,
input,
textarea {
    font: inherit;
}

.pagina-login {
    background: var(--branco);
}

.login-layout {
    display: grid;
    grid-template-columns: minmax(420px, 1.1fr) minmax(420px, 0.9fr);
    min-height: 100vh;
}

.login-marca {
    position: relative;
    display: flex;
    min-height: 100vh;
    padding: 56px clamp(40px, 6vw, 96px);
    overflow: hidden;
    background: linear-gradient(145deg, #edf2ff 0%, #e9ecf3 58%, #dfe6f3 100%);
}

.login-grafismo {
    position: absolute;
    right: -28%;
    bottom: -12%;
    width: min(900px, 105%);
    opacity: 0.09;
    pointer-events: none;
}

.login-marca-conteudo {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    max-width: 680px;
}

.login-logo {
    width: min(390px, 75%);
    height: auto;
}

.login-apresentacao {
    max-width: 610px;
    padding-bottom: 7vh;
}

.rotulo {
    margin: 0 0 12px;
    color: var(--azul);
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.login-apresentacao h1 {
    max-width: 590px;
    margin: 0 0 20px;
    font-size: clamp(2.25rem, 4.2vw, 4.5rem);
    line-height: 1.04;
    letter-spacing: -0.045em;
}

.login-apresentacao > p:last-child {
    max-width: 560px;
    margin: 0;
    color: var(--texto-suave);
    font-size: clamp(1rem, 1.4vw, 1.18rem);
    line-height: 1.7;
}

.login-acesso {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px clamp(32px, 6vw, 88px);
    background: var(--branco);
}

.login-card {
    width: 100%;
    max-width: 440px;
}

.login-cabecalho {
    margin-bottom: 36px;
}

.login-cabecalho h2 {
    margin: 0 0 12px;
    font-size: clamp(2rem, 3vw, 2.7rem);
    line-height: 1.15;
    letter-spacing: -0.035em;
}

.login-cabecalho > p:last-child,
.login-ajuda {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.formulario-login {
    display: grid;
    gap: 22px;
}

.campo {
    display: grid;
    gap: 8px;
}

.campo label {
    font-size: 0.9rem;
    font-weight: 700;
}

.campo input {
    width: 100%;
    min-height: 52px;
    padding: 13px 15px;
    color: var(--texto);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 10px;
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.campo textarea {
    width: 100%;
    padding: 13px 15px;
    color: var(--texto);
    line-height: 1.55;
    resize: vertical;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 10px;
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.campo textarea:focus {
    border-color: var(--azul);
    box-shadow: 0 0 0 4px rgba(14, 100, 255, 0.12);
}

.campo input::placeholder {
    color: #929bad;
}

.campo input:focus {
    border-color: var(--azul);
    box-shadow: 0 0 0 4px rgba(14, 100, 255, 0.12);
}

.campo-senha {
    position: relative;
}

.campo-senha input {
    padding-right: 92px;
}

.alternar-senha {
    position: absolute;
    top: 50%;
    right: 8px;
    min-width: 72px;
    padding: 8px 10px;
    color: var(--azul-escuro);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 750;
    background: #eef4ff;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    transform: translateY(-50%);
}

.alternar-senha:hover,
.alternar-senha:focus-visible {
    color: var(--azul);
    background: #e1ebff;
    outline: none;
}

.linha-label-senha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.linha-label-senha a {
    color: var(--azul);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
}

.linha-label-senha a:hover {
    text-decoration: underline;
}

.recuperacao-layout {
    display: grid;
    min-height: 100vh;
    padding: 36px 20px;
    place-items: center;
    background: var(--fundo);
}

.cartao-recuperacao {
    display: grid;
    width: min(100%, 560px);
    padding: clamp(30px, 6vw, 52px);
    text-align: center;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 20px;
    box-shadow: 0 22px 60px rgba(25, 40, 71, 0.12);
}

.recuperacao-logo {
    width: 180px;
    max-height: 54px;
    margin: 0 auto 34px;
    object-fit: contain;
}

.icone-recuperacao {
    display: grid;
    width: 50px;
    height: 50px;
    margin: 0 auto 20px;
    place-items: center;
    color: var(--azul);
    font-size: 1.4rem;
    background: #edf3ff;
    border-radius: 50%;
}

.cartao-recuperacao h1 {
    margin: 8px 0 16px;
    font-size: clamp(2rem, 7vw, 3rem);
    line-height: 1;
    letter-spacing: -0.045em;
}

.cartao-recuperacao > p:not(.rotulo) {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.65;
}

.aviso-recuperacao {
    display: grid;
    gap: 5px;
    margin: 26px 0;
    padding: 18px;
    color: #075d43;
    text-align: left;
    background: #edf9f4;
    border: 1px solid #b8e2d1;
    border-radius: 12px;
}

.aviso-recuperacao span {
    font-size: 0.9rem;
    line-height: 1.45;
}

.cartao-recuperacao small {
    margin-top: 18px;
    color: var(--texto-suave);
    line-height: 1.45;
}

.botao-primario {
    min-height: 52px;
    margin-top: 4px;
    padding: 13px 22px;
    color: var(--branco);
    font-weight: 750;
    background: var(--azul);
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.botao-primario:hover {
    background: #0757e3;
    box-shadow: 0 10px 24px rgba(14, 100, 255, 0.22);
    transform: translateY(-1px);
}

.botao-primario:focus-visible {
    outline: 3px solid rgba(14, 100, 255, 0.32);
    outline-offset: 3px;
}

.botao-primario:disabled {
    cursor: not-allowed;
    opacity: 0.55;
    transform: none;
    box-shadow: none;
}

.botao-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    text-decoration: none;
}

.mensagem-erro {
    padding: 13px 15px;
    color: var(--erro);
    font-size: 0.9rem;
    line-height: 1.5;
    background: var(--erro-fundo);
    border: 1px solid #fecdca;
    border-radius: 10px;
}

.erro-campo {
    margin: 0;
    color: var(--erro);
    font-size: 0.82rem;
}

.login-ajuda {
    margin-top: 28px;
    font-size: 0.82rem;
}

.topo-aplicacao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 76px;
    padding: 16px clamp(24px, 5vw, 72px);
    background: var(--branco);
    border-bottom: 1px solid var(--borda);
}

.topo-logo {
    width: 190px;
    height: auto;
}

.marca-portal {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    color: var(--azul-escuro);
    font-weight: 800;
    text-decoration: none;
}

.marca-portal span {
    padding-left: 15px;
    border-left: 1px solid var(--borda);
}

.usuario-topo {
    color: var(--texto-suave);
    font-size: 0.9rem;
}

.topo-acoes {
    display: flex;
    align-items: center;
    gap: 20px;
}

.topo-acoes form {
    margin: 0;
}

.link-topo {
    color: var(--texto-suave);
    font-weight: 700;
    text-decoration: none;
}

.link-topo:hover {
    color: var(--azul);
}

.botao-sair {
    padding: 9px 16px;
    color: var(--azul-escuro);
    font-weight: 700;
    background: transparent;
    border: 1px solid var(--borda);
    border-radius: 8px;
    cursor: pointer;
}

.conteudo-aplicacao {
    width: min(1120px, calc(100% - 48px));
    margin: 64px auto;
    padding: clamp(28px, 5vw, 56px);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: var(--sombra);
}

.conteudo-aplicacao h1 {
    margin: 0 0 14px;
    font-size: clamp(2rem, 4vw, 3.5rem);
    letter-spacing: -0.04em;
}

.conteudo-aplicacao p {
    color: var(--texto-suave);
    line-height: 1.65;
}

.chamada-analise {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin-top: 38px;
    padding: 28px;
    background: #f5f7fb;
    border: 1px solid var(--borda);
    border-radius: 14px;
}

.chamada-analise h2,
.secao-formulario h2 {
    margin: 0 0 8px;
}

.chamada-analise p {
    margin: 0;
}

.pagina-formulario {
    width: min(1120px, calc(100% - 48px));
    margin: 52px auto 80px;
}

.cabecalho-pagina {
    max-width: 760px;
    margin-bottom: 32px;
}

.cabecalho-pagina h1 {
    margin: 0 0 12px;
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.cabecalho-pagina > p:last-child {
    margin: 0;
    color: var(--texto-suave);
    font-size: 1.05rem;
    line-height: 1.65;
}

.formulario-analise {
    display: grid;
    gap: 22px;
}

.secao-formulario {
    padding: clamp(24px, 4vw, 40px);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(25, 40, 71, 0.07);
}

.secao-formulario-cabecalho {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 28px;
}

.secao-formulario-cabecalho p {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.55;
}

.numero-secao {
    display: inline-flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: var(--azul);
    font-weight: 800;
    background: #edf3ff;
    border-radius: 50%;
}

.grade-campos,
.grade-arquivos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.campo-largo {
    grid-column: 1 / -1;
}

.obrigatorio {
    color: var(--azul);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.campo-arquivo {
    min-width: 0;
    padding: 20px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.campo-arquivo label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-weight: 800;
}

.campo-arquivo label > span:not(.obrigatorio) {
    color: var(--texto-suave);
    font-size: 0.76rem;
    font-weight: 650;
}

.campo-arquivo p {
    min-height: 42px;
    margin: 8px 0 16px;
    color: var(--texto-suave);
    font-size: 0.86rem;
    line-height: 1.45;
}

.campo-arquivo input[type="file"] {
    width: 100%;
    color: var(--texto-suave);
    font-size: 0.84rem;
}

.campo-arquivo input[type="file"]::file-selector-button {
    margin-right: 10px;
    padding: 9px 12px;
    color: var(--azul-escuro);
    font-weight: 750;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 8px;
    cursor: pointer;
}

.campo-arquivo-amplo p {
    min-height: auto;
}

.area-soltar {
    position: relative;
    display: flex;
    min-height: 250px;
    padding: 36px 24px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    color: var(--texto);
    text-align: center;
    background: #f8faff;
    border: 2px dashed #aebbd3;
    border-radius: 16px;
    cursor: pointer;
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.area-soltar:hover,
.area-soltar.arrastando {
    background: #edf3ff;
    border-color: var(--azul);
}

.area-soltar.arrastando {
    transform: scale(1.005);
}

.area-soltar > span:not(.icone-upload) {
    color: var(--texto-suave);
}

.icone-upload {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 6px;
    color: var(--azul);
    font-size: 1.6rem;
    font-weight: 800;
    background: var(--branco);
    border: 1px solid #cbd7ed;
    border-radius: 50%;
}

.area-soltar input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.area-soltar:focus-within {
    outline: 3px solid rgba(14, 100, 255, 0.24);
    outline-offset: 3px;
}

.erro-materiais {
    margin-top: 12px;
    padding: 12px 14px;
    background: var(--erro-fundo);
    border: 1px solid #fecdca;
    border-radius: 9px;
}

.formatos-aceitos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.formatos-aceitos span {
    padding: 8px 11px;
    color: var(--texto-suave);
    font-size: 0.8rem;
    background: #f5f7fb;
    border: 1px solid var(--borda);
    border-radius: 999px;
}

.arquivos-selecionados {
    margin-top: 26px;
}

.arquivos-selecionados h3 {
    margin: 0 0 12px;
    font-size: 1rem;
}

.arquivos-selecionados ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.arquivos-selecionados li {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 14px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 9px;
}

.arquivos-selecionados li > span {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.arquivos-selecionados strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.arquivos-selecionados small {
    color: var(--texto-suave);
}

.arquivos-selecionados button {
    padding: 7px 10px;
    color: var(--erro);
    font-weight: 700;
    background: var(--branco);
    border: 1px solid #fecdca;
    border-radius: 7px;
    cursor: pointer;
}

.aviso-local {
    padding: 20px 24px;
    color: #174b38;
    background: #effaf5;
    border: 1px solid #b7e4d0;
    border-radius: 12px;
}

.aviso-local p {
    margin: 5px 0 0;
}

.acoes-formulario {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 8px;
}

.botao-secundario {
    display: inline-flex;
    align-items: center;
    min-height: 52px;
    padding: 13px 20px;
    color: var(--azul-escuro);
    font-weight: 750;
    text-decoration: none;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.acao-indisponivel {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.acao-indisponivel .botao-primario {
    margin: 0;
}

.acao-indisponivel small {
    color: var(--texto-suave);
}

.acao-gerar-analise {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.acao-gerar-analise .botao-primario {
    margin: 0;
}

.acao-gerar-analise small {
    color: var(--texto-suave);
}

.pagina-resultado-analise {
    max-width: 1180px;
}

.aviso-revisao-humana {
    margin-bottom: 18px;
}

.secao-relatorio-gerado {
    margin-top: 14px;
}

.resumo-secao-gerada {
    margin-top: 0;
    font-size: 1.05rem;
    line-height: 1.65;
}

.lista-afirmacoes-geradas {
    display: grid;
    gap: 12px;
    padding: 0;
    list-style: none;
}

.lista-afirmacoes-geradas li,
.nao-determinado-relatorio {
    padding: 16px;
    background: #f7f9fd;
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.lista-afirmacoes-geradas p {
    margin: 0 0 9px;
}

.metadados-afirmacao {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.metadados-afirmacao span {
    padding: 5px 8px;
    color: var(--azul-escuro);
    font-size: 0.75rem;
    font-weight: 800;
    background: #eaf1ff;
    border-radius: 999px;
}

.tabela-relatorio-gerado {
    width: 100%;
    border-collapse: collapse;
}

.tabela-relatorio-gerado th,
.tabela-relatorio-gerado td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid var(--borda);
}

.alertas-relatorio {
    margin-top: 14px;
}

.cabecalho-relatorio-profissional {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}

.cabecalho-relatorio-profissional h1 {
    margin: 8px 0 6px;
    font-size: clamp(2.2rem, 5vw, 4rem);
    letter-spacing: -0.045em;
}

.cabecalho-relatorio-profissional p:last-child {
    margin: 0;
    color: var(--texto-suave);
}

.selo-rascunho {
    padding: 8px 12px;
    color: #725100;
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
    background: #fff6d8;
    border: 1px solid #ead38d;
    border-radius: 999px;
}

.selo-finalizado {
    padding: 8px 12px;
    color: #087a55;
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
    background: #e8f8f1;
    border: 1px solid #b7e4d0;
    border-radius: 999px;
}

.formulario-relatorio-profissional {
    display: grid;
    gap: 18px;
}

.folha-relatorio-editor {
    overflow: hidden;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(25, 40, 71, 0.1);
}

.capa-relatorio-editor {
    display: grid;
    gap: 12px;
    min-height: 510px;
    padding: 58px 64px;
    align-content: center;
    background: linear-gradient(145deg, #f8faff 0%, #eef3fb 100%);
    border-bottom: 1px solid var(--borda);
}

.capa-relatorio-editor img {
    width: min(260px, 70%);
    margin-bottom: 58px;
}

.capa-relatorio-editor > span {
    color: var(--azul);
    font-size: 0.74rem;
    font-weight: 850;
    letter-spacing: 0.14em;
}

.capa-relatorio-editor label,
.secao-editor-relatorio > label {
    color: var(--texto-suave);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.capa-relatorio-editor textarea,
.secao-editor-relatorio textarea {
    width: 100%;
    box-sizing: border-box;
    color: var(--azul-escuro);
    font: inherit;
    line-height: 1.6;
    resize: vertical;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid #b9c8e3;
    border-radius: 10px;
}

.capa-relatorio-editor textarea {
    min-height: 72px;
    padding: 13px 15px;
    font-size: 1.25rem;
    font-weight: 760;
}

.capa-relatorio-editor #titulo-relatorio {
    min-height: 105px;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.12;
    letter-spacing: -0.035em;
}

.secao-editor-relatorio {
    padding: 30px 42px;
    border-bottom: 1px solid var(--borda);
    scroll-margin-top: 24px;
}

.sumario-relatorio-editor {
    padding: 34px 42px;
    background: #f8faff;
    border-bottom: 1px solid var(--borda);
}

.sumario-relatorio-editor h2 {
    margin: 7px 0 6px;
    font-size: clamp(1.55rem, 3vw, 2rem);
}

.sumario-relatorio-editor > p:not(.rotulo) {
    margin: 0 0 22px;
    color: var(--texto-suave);
}

.sumario-relatorio-editor ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 30px;
    margin: 0;
    padding-left: 24px;
}

.sumario-relatorio-editor li {
    padding: 9px 0;
    border-bottom: 1px solid #e1e7f2;
}

.sumario-relatorio-editor a {
    color: var(--azul-escuro);
    font-weight: 700;
    text-decoration: none;
}

.sumario-relatorio-editor a:hover {
    color: var(--azul);
    text-decoration: underline;
}

.sumario-relatorio-editor li span {
    display: block;
    margin-top: 3px;
    color: var(--texto-suave);
    font-size: 0.72rem;
    font-weight: 700;
}

.secao-editor-relatorio:last-child {
    border-bottom: 0;
}

.secao-editor-relatorio summary {
    position: relative;
    padding-right: 46px;
    cursor: pointer;
    list-style: none;
}

.secao-editor-relatorio summary::-webkit-details-marker {
    display: none;
}

.secao-editor-relatorio summary::after {
    position: absolute;
    top: 50%;
    right: 0;
    width: 30px;
    height: 30px;
    color: var(--azul);
    line-height: 28px;
    text-align: center;
    content: "+";
    background: #eef4ff;
    border: 1px solid #ccd9f0;
    border-radius: 50%;
    transform: translateY(-50%);
}

.secao-editor-relatorio[open] summary::after {
    content: "−";
}

.secao-editor-relatorio h2 {
    margin: 0;
    font-size: clamp(1.25rem, 2.5vw, 1.7rem);
    letter-spacing: -0.02em;
}

.secao-editor-relatorio textarea {
    min-height: 210px;
    margin-top: 20px;
    padding: 18px;
}

.secao-editor-relatorio textarea:focus,
.capa-relatorio-editor textarea:focus {
    border-color: var(--azul);
    outline: 3px solid rgba(27, 102, 255, 0.13);
}

.secao-editor-relatorio textarea[readonly],
.capa-relatorio-editor textarea[readonly] {
    color: var(--azul-escuro);
    resize: none;
    background: #f7f9fd;
    border-color: transparent;
    cursor: default;
}

.resumo-editor-relatorio {
    display: grid;
    gap: 8px;
    background: #f8faff;
}

.resumo-editor-relatorio p {
    margin: 0;
    color: var(--texto-suave);
}

.barra-acoes-relatorio {
    position: sticky;
    bottom: 14px;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    background: rgba(241, 244, 250, 0.94);
    border: 1px solid var(--borda);
    border-radius: 14px;
    box-shadow: 0 14px 38px rgba(25, 40, 71, 0.14);
    backdrop-filter: blur(8px);
}

.barra-acoes-relatorio > div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.barra-acoes-relatorio button {
    font: inherit;
    cursor: pointer;
}

.botao-finalizar {
    min-height: 52px;
    padding: 13px 20px;
    color: var(--branco);
    font-weight: 800;
    background: #087a55;
    border: 1px solid #087a55;
    border-radius: 10px;
    cursor: pointer;
}

.botao-finalizar:hover {
    background: #066342;
}

.botao-finalizar:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.finalizacao-relatorio {
    display: grid;
    justify-items: center;
    gap: 14px;
    max-width: 680px;
    margin: 44px auto 10px;
    padding: 28px 24px;
    text-align: center;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 16px;
}

.finalizacao-relatorio p {
    max-width: 560px;
    margin: 0;
    color: var(--texto-suave);
}

.confirmacao-analise {
    text-align: center;
}

.icone-sucesso {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 22px;
    color: #087a55;
    font-size: 2rem;
    font-weight: 800;
    background: #e8f8f1;
    border-radius: 50%;
}

.resumo-confirmacao {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 36px 0;
    text-align: left;
}

.resumo-confirmacao div {
    padding: 18px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.resumo-confirmacao dt {
    margin-bottom: 7px;
    color: var(--texto-suave);
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.resumo-confirmacao dd {
    margin: 0;
    font-weight: 750;
}

.acoes-confirmacao {
    display: flex;
    justify-content: center;
    gap: 12px;
}

.nota-proximo-passo {
    margin: 28px 0 0;
    font-size: 0.85rem;
}

.pagina-inventario {
    width: min(1200px, calc(100% - 48px));
    margin: 38px auto 80px;
}

.migalhas {
    display: flex;
    gap: 9px;
    margin-bottom: 24px;
    color: var(--texto-suave);
    font-size: 0.85rem;
}

.migalhas a {
    color: var(--azul);
    font-weight: 700;
    text-decoration: none;
}

.cabecalho-inventario {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.cabecalho-inventario h1 {
    margin: 0 0 10px;
    font-size: clamp(2.25rem, 5vw, 4rem);
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.cabecalho-inventario > div > p:last-child {
    max-width: 760px;
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.selo-situacao,
.selo-inferencia,
.contador-bloco {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 8px 12px;
    font-size: 0.76rem;
    font-weight: 800;
    border-radius: 999px;
}

.selo-situacao {
    color: #087a55;
    background: #e8f8f1;
    border: 1px solid #b7e4d0;
}

.selo-inferencia {
    color: #754c00;
    background: #fff7e5;
    border: 1px solid #f2d49b;
}

.contador-bloco {
    min-width: 42px;
    color: var(--azul);
    background: #edf3ff;
}

.bloco-inventario {
    margin-bottom: 20px;
    padding: clamp(24px, 4vw, 40px);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(25, 40, 71, 0.06);
}

.controles-secoes {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
    padding: 12px 16px;
    color: var(--texto-suave);
    font-size: 0.86rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.controles-secoes > div {
    display: flex;
    gap: 8px;
}

.controles-secoes button {
    padding: 8px 12px;
    color: var(--azul);
    font: inherit;
    font-weight: 750;
    background: var(--branco);
    border: 1px solid #bfcdea;
    border-radius: 8px;
    cursor: pointer;
}

.controles-secoes button:hover {
    color: var(--branco);
    background: var(--azul);
    border-color: var(--azul);
}

.controles-secoes button:focus-visible,
.bloco-recolhivel > summary:focus-visible {
    outline: 3px solid rgba(27, 102, 255, 0.28);
    outline-offset: 3px;
}

.bloco-recolhivel > summary {
    position: relative;
    padding-right: 44px;
    margin-bottom: 0;
    list-style: none;
    cursor: pointer;
    user-select: none;
}

.bloco-recolhivel > summary::-webkit-details-marker {
    display: none;
}

.bloco-recolhivel > summary::after {
    position: absolute;
    top: 50%;
    right: 2px;
    width: 30px;
    height: 30px;
    color: var(--azul);
    font-size: 1.25rem;
    line-height: 28px;
    text-align: center;
    content: "+";
    background: #edf3ff;
    border: 1px solid #cfdbf2;
    border-radius: 50%;
    transform: translateY(-50%);
}

.bloco-recolhivel[open] > summary {
    margin-bottom: 26px;
}

.bloco-recolhivel[open] > summary::after {
    content: "−";
}

.bloco-recolhivel:not([open]):hover {
    border-color: #bfcdea;
    box-shadow: 0 14px 36px rgba(25, 40, 71, 0.1);
}

.bloco-ficha-tecnica {
    border-color: #b9cbed;
    box-shadow: 0 16px 40px rgba(34, 75, 150, 0.1);
}

.cabecalho-progresso-investigacao {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.cabecalho-progresso-investigacao > div {
    display: grid;
    gap: 5px;
    padding: 18px;
    background: #f5f8fe;
    border: 1px solid #d9e3f5;
    border-radius: 12px;
}

.cabecalho-progresso-investigacao span,
.prioridade-investigacao > span {
    color: var(--texto-suave);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cabecalho-progresso-investigacao strong {
    color: var(--azul-escuro);
    font-size: 1.08rem;
}

.cabecalho-progresso-investigacao small {
    color: var(--texto-suave);
}

.barra-progresso-investigacao {
    height: 8px;
    margin: 14px 0 24px;
    overflow: hidden;
    background: #e7edf8;
    border-radius: 999px;
}

.barra-progresso-investigacao span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--azul), #4f8cff);
    border-radius: inherit;
}

.grade-ficha-investigacao {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    gap: 16px;
}

.grade-ficha-investigacao > section {
    padding: 20px;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.grade-ficha-investigacao h3 {
    margin: 0 0 14px;
}

.grade-ficha-investigacao dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.grade-ficha-investigacao dl div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 9px;
    border-bottom: 1px solid #e7ebf3;
}

.grade-ficha-investigacao dl div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.grade-ficha-investigacao dt {
    color: var(--texto-suave);
}

.grade-ficha-investigacao dd {
    margin: 0;
    font-weight: 750;
    text-align: right;
}

.prioridade-investigacao {
    background: #fffaf0;
    border-color: #efd7a7 !important;
}

.prioridade-investigacao h3 {
    margin-top: 9px;
    color: #684500;
}

.prioridade-investigacao p {
    line-height: 1.55;
}

.prioridade-investigacao small {
    color: #805900;
    font-weight: 750;
}

.proxima-pergunta-investigacao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 16px;
    padding: 17px 19px;
    color: #23573f;
    background: #edf9f3;
    border: 1px solid #bce3cf;
    border-radius: 12px;
}

.proxima-pergunta-investigacao p {
    margin: 5px 0 0;
    line-height: 1.5;
}

.proxima-pergunta-investigacao > span {
    flex: none;
    padding: 7px 10px;
    font-size: 0.75rem;
    font-weight: 800;
    background: var(--branco);
    border: 1px solid #a6d4bc;
    border-radius: 999px;
}

.mensagens-aplicacao {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.mensagem-aplicacao {
    margin: 0;
    padding: 13px 16px;
    font-weight: 700;
    border: 1px solid;
    border-radius: 10px;
}

.mensagem-success {
    color: #17613f;
    background: #edf9f3;
    border-color: #bce3cf;
}

.mensagem-error {
    color: #8c2929;
    background: #fff2f2;
    border-color: #efbcbc;
}

.pergunta-ativa-investigacao {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 24px;
    margin-top: 16px;
    padding: 22px;
    color: #174b35;
    background: #edf9f3;
    border: 1px solid #acd9c1;
    border-radius: 14px;
}

.texto-pergunta-investigacao > span {
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.texto-pergunta-investigacao h3 {
    margin: 8px 0;
    color: #153f2e;
    font-size: 1.25rem;
}

.texto-pergunta-investigacao p {
    margin: 0;
    line-height: 1.55;
}

.resposta-atual-investigacao {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px solid #b9ddc9;
}

.resposta-atual-investigacao small {
    color: #48715f;
}

.formulario-resposta-bay {
    display: grid;
    align-content: start;
    gap: 9px;
    padding: 16px;
    background: var(--branco);
    border: 1px solid #b9ddc9;
    border-radius: 11px;
}

.formulario-resposta-bay label {
    font-weight: 800;
}

.formulario-resposta-bay select {
    width: 100%;
    padding: 11px 12px;
    color: var(--texto);
    font: inherit;
    background: var(--branco);
    border: 1px solid #aebdd4;
    border-radius: 8px;
}

.formulario-resposta-bay select:focus {
    border-color: var(--azul);
    outline: 3px solid rgba(27, 102, 255, 0.18);
}

.formulario-resposta-bay .botao-primario {
    justify-content: center;
    margin-top: 3px;
}

.formulario-resposta-bay small {
    color: var(--texto-suave);
    line-height: 1.4;
}

.pagina-investigacao-simples {
    max-width: 980px;
}

.cabecalho-investigacao-simples {
    margin-bottom: 22px;
}

.formulario-relato-evento {
    padding: 30px;
}

.orientacao-relato-evento {
    max-width: 760px;
    margin: 0 0 20px;
    color: var(--texto-suave);
    line-height: 1.6;
}

.formulario-relato-evento form {
    display: grid;
    gap: 16px;
}

.formulario-relato-evento textarea {
    width: 100%;
    min-height: 190px;
    padding: 16px;
    color: var(--texto);
    font: inherit;
    line-height: 1.55;
    resize: vertical;
    background: #fbfcff;
    border: 1px solid #aebdd4;
    border-radius: 11px;
}

.formulario-relato-evento textarea:focus {
    border-color: var(--azul);
    outline: 3px solid rgba(27, 102, 255, 0.16);
}

.acoes-relato-evento {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.acoes-avanco-informacoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.acoes-avanco-informacoes button {
    font: inherit;
    cursor: pointer;
}

.confirmacao-relato-evento {
    margin: 18px 0 0;
    padding: 12px 14px;
    color: #17613f;
    background: #edf9f3;
    border: 1px solid #bce3cf;
    border-radius: 9px;
}

.adicionar-materiais-evento {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--borda);
}

.adicionar-materiais-evento div {
    display: grid;
    gap: 4px;
}

.adicionar-materiais-evento span {
    color: var(--texto-suave);
}

.pagina-adicionar-materiais {
    max-width: 980px;
}

.acao-adicionar-materiais-lista {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.pagina-preparar-analise {
    max-width: 1080px;
}

.grade-preparacao-analise {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.grade-preparacao-analise article {
    display: grid;
    gap: 8px;
    padding: 20px;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.grade-preparacao-analise span {
    color: var(--texto-suave);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.grade-preparacao-analise strong {
    color: var(--azul-escuro);
    font-size: 1.2rem;
}

.grade-preparacao-analise small {
    color: var(--texto-suave);
    line-height: 1.45;
}

.resumo-preparacao {
    padding: 30px;
}

.lista-fontes-preparacao {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.lista-fontes-preparacao article {
    padding: 20px;
    background: #fbfcff;
    border: 1px solid var(--borda);
    border-radius: 11px;
}

.lista-fontes-preparacao dl {
    display: grid;
    gap: 10px;
    margin: 16px 0 0;
}

.lista-fontes-preparacao dl div {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 9px;
    border-bottom: 1px solid #e7ebf3;
}

.lista-fontes-preparacao dt {
    color: var(--texto-suave);
}

.lista-fontes-preparacao dd {
    margin: 0;
    font-weight: 750;
    text-align: right;
}

.lista-fontes-preparacao h3 {
    margin: 16px 0 5px;
    font-size: 1rem;
}

.lista-fontes-preparacao p {
    margin: 0;
    line-height: 1.6;
    white-space: pre-wrap;
}

.lista-ressalvas-preparacao ul {
    margin: 0;
    padding-left: 20px;
}

.lista-ressalvas-preparacao li + li {
    margin-top: 8px;
}

.aviso-preparacao-envio {
    margin-top: 22px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.titulo-bloco {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
}

.titulo-bloco h2 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    letter-spacing: -0.025em;
}

.grade-resumo-tecnico {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    background: var(--borda);
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.grade-resumo-tecnico div {
    min-width: 0;
    padding: 18px;
    background: #f9fafc;
}

.grade-resumo-tecnico dt {
    margin-bottom: 7px;
    color: var(--texto-suave);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.grade-resumo-tecnico dd {
    margin: 0;
    overflow-wrap: anywhere;
    font-weight: 750;
}

.nota-tecnica {
    margin: 18px 0 0;
    padding: 14px 16px;
    color: #754c00;
    line-height: 1.55;
    background: #fffaf0;
    border-left: 3px solid #e4aa36;
    border-radius: 4px 9px 9px 4px;
}

.lista-materiais {
    display: grid;
    gap: 9px;
}

.lista-materiais article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 17px;
    background: #f9fafc;
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.lista-materiais article > div {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.lista-materiais strong {
    overflow-wrap: anywhere;
}

.lista-materiais article > div span {
    color: var(--texto-suave);
    font-size: 0.8rem;
}

.integridade-ok {
    flex: 0 0 auto;
    color: #087a55;
    font-size: 0.78rem;
    font-weight: 750;
}

.aviso-medicao {
    display: flex;
    align-items: flex-start;
    gap: 10px 18px;
    margin-bottom: 18px;
    padding: 13px 15px;
    color: #244369;
    background: #f1f6fc;
    border: 1px solid #cedef1;
    border-radius: 9px;
}

.aviso-medicao span {
    color: var(--texto-suave);
}

.tabela-responsiva {
    width: 100%;
    overflow-x: auto;
}

.tabela-responsiva table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.tabela-responsiva th,
.tabela-responsiva td {
    padding: 13px 14px;
    text-align: left;
    border-bottom: 1px solid var(--borda);
}

.tabela-responsiva th {
    color: var(--texto-suave);
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: #f7f8fb;
}

.tabela-responsiva td {
    font-variant-numeric: tabular-nums;
}

.tabela-responsiva td small {
    display: block;
    margin-top: 3px;
    color: var(--texto-suave);
}

.grade-contadores-digitais {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 34px;
}

.grade-contadores-digitais div {
    display: grid;
    gap: 6px;
    padding: 19px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.grade-contadores-digitais strong {
    font-size: 1.75rem;
}

.grade-contadores-digitais span {
    color: var(--texto-suave);
    font-size: 0.82rem;
}

.cabecalho-cronologia {
    margin-bottom: 22px;
}

.cabecalho-cronologia h3 {
    margin: 0 0 8px;
    font-size: 1.25rem;
}

.cabecalho-cronologia p {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.55;
}

.cronologia-digital {
    position: relative;
    display: grid;
    gap: 16px;
    margin: 0 0 28px;
    padding: 0;
    list-style: none;
}

.cronologia-digital::before {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 7px;
    width: 2px;
    content: "";
    background: #d7e1f1;
}

.cronologia-digital > li {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(150px, 0.35fr) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.marcador-cronologia {
    position: relative;
    z-index: 1;
    width: 16px;
    height: 16px;
    margin-top: 13px;
    background: var(--azul);
    border: 4px solid #e8f0ff;
    border-radius: 50%;
}

.tempo-cronologia {
    display: grid;
    gap: 4px;
    padding-top: 9px;
    font-variant-numeric: tabular-nums;
}

.tempo-cronologia span {
    color: var(--texto-suave);
    font-size: 0.75rem;
}

.grupo-transicoes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 10px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.grupo-transicoes > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 9px;
    background: var(--branco);
    border-radius: 7px;
}

.grupo-transicoes span {
    color: var(--texto-suave);
    font-size: 0.78rem;
}

.detalhes-digitais {
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.detalhes-digitais summary {
    padding: 16px 18px;
    font-weight: 750;
    cursor: pointer;
}

.detalhes-digitais[open] summary {
    border-bottom: 1px solid var(--borda);
}

.detalhes-digitais .tabela-responsiva {
    max-height: 560px;
    overflow: auto;
}

.aviso-inventario {
    margin: 22px 0;
}

.acoes-inventario {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding-top: 8px;
}

.bloco-classificacao {
    border-color: #c9d9f8;
    background: linear-gradient(145deg, #ffffff 0%, #f7faff 100%);
}

.bloco-organizacao-evidencias {
    background: #ffffff;
}

.grade-origens-evidencias {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.grade-origens-evidencias article {
    padding: 19px;
    border: 1px solid #dce5f2;
    border-radius: 13px;
    background: #f9fbff;
}

.origem-evidencia {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 7px;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.origem-fornecida {
    color: #714ca0;
    background: #f2eafd;
}

.origem-extraida {
    color: #0759cc;
    background: #eaf3ff;
}

.origem-calculada {
    color: #08745b;
    background: #e7f8f1;
}

.grade-origens-evidencias h3 {
    margin: 13px 0 7px;
    color: #14294e;
    font-size: 1rem;
}

.grade-origens-evidencias p,
.grade-origens-evidencias ul {
    margin: 0;
    color: #536279;
    font-size: 0.88rem;
}

.grade-origens-evidencias ul {
    padding-left: 18px;
}

.grade-origens-evidencias li + li {
    margin-top: 6px;
}

.grade-origens-evidencias small {
    display: block;
    margin-top: 12px;
    color: #6a7688;
}

.grade-origens-evidencias .informacao-ausente {
    color: #8b5f35;
}

.resumo-evidencias-visuais {
    display: grid;
    grid-template-columns: minmax(160px, 0.35fr) 1.65fr;
    gap: 14px;
    margin-top: 16px;
}

.resumo-evidencias-visuais > div {
    padding: 18px;
    border-radius: 12px;
    background: #f4f7fc;
}

.resumo-evidencias-visuais > div:first-child {
    display: flex;
    flex-direction: column;
}

.resumo-evidencias-visuais span {
    color: #61708a;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.resumo-evidencias-visuais > div:first-child strong {
    margin: 4px 0;
    color: #0c347c;
    font-size: 2rem;
}

.resumo-evidencias-visuais small {
    color: #647187;
}

.itens-nao-disponiveis h3 {
    margin: 0 0 8px;
    color: #65471d;
    font-size: 0.95rem;
}

.itens-nao-disponiveis ul {
    margin: 0;
    padding-left: 20px;
    color: #6d5a3d;
}

.evidencias-completas {
    display: flex;
    align-items: center;
    color: #08745b;
}

.garantia-pacote-evidencias {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
    padding: 15px 18px;
    border: 1px solid #cceadd;
    border-radius: 12px;
    color: #16664f;
    background: #f0fbf6;
}

.garantia-pacote-evidencias p {
    margin: 0;
    font-size: 0.86rem;
}

.selo-confianca {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.confianca-alta {
    color: #08745b;
    background: #e7f8f1;
}

.confianca-moderada {
    color: #8a5a00;
    background: #fff4d7;
}

.confianca-baixa,
.confianca-inconclusiva {
    color: #8f3e33;
    background: #fff0ed;
}

.resultado-classificacao {
    display: grid;
    grid-template-columns: minmax(220px, 0.7fr) 1.3fr;
    gap: 18px;
    margin-top: 24px;
}

.tipo-falta,
.resumo-classificacao {
    margin: 0;
    padding: 22px;
    border: 1px solid #d9e2f2;
    border-radius: 14px;
    background: #ffffff;
}

.tipo-falta {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tipo-falta span,
.resumo-classificacao dt {
    color: #61708a;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tipo-falta strong {
    margin: 6px 0 2px;
    color: #0c347c;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1;
}

.tipo-falta small {
    color: #43516a;
    font-size: 0.95rem;
}

.resumo-classificacao {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.resumo-classificacao div {
    padding: 14px;
    border-radius: 10px;
    background: #f5f8fd;
}

.resumo-classificacao dd {
    margin: 6px 0 0;
    color: #14294e;
    font-size: 1.05rem;
    font-weight: 800;
}

.tabela-medicoes-falta {
    margin-top: 22px;
}

.evidencias-classificacao,
.limitacoes-classificacao {
    margin-top: 20px;
    padding: 18px 20px;
    border-radius: 12px;
}

.evidencias-classificacao {
    border-left: 4px solid #1672f9;
    background: #edf5ff;
}

.limitacoes-classificacao {
    border-left: 4px solid #e1a628;
    background: #fff8e8;
}

.evidencias-classificacao h3,
.limitacoes-classificacao h3 {
    margin: 0 0 10px;
    color: #14294e;
    font-size: 1rem;
}

.evidencias-classificacao ul,
.limitacoes-classificacao ul {
    margin: 0;
    padding-left: 20px;
}

.evidencias-classificacao li + li,
.limitacoes-classificacao li + li {
    margin-top: 7px;
}

.nota-classificacao {
    margin: 18px 0 0;
    color: #58677e;
    font-size: 0.86rem;
}

.bloco-evolucao {
    border-color: #cbdcf8;
}

.introducao-evolucao {
    margin-bottom: 20px;
    padding: 18px;
    border-radius: 12px;
    background: #f5f8fd;
}

.introducao-evolucao > p {
    margin: 0;
    color: #43516a;
    line-height: 1.6;
}

.introducao-evolucao dl,
.resumo-temporal-estagio {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0 0;
}

.introducao-evolucao dl div,
.resumo-temporal-estagio div {
    padding: 12px 14px;
    border: 1px solid #dce5f2;
    border-radius: 10px;
    background: #ffffff;
}

.introducao-evolucao dt,
.resumo-temporal-estagio dt,
.residuais-estagio span {
    color: #61708a;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.introducao-evolucao dd,
.resumo-temporal-estagio dd {
    margin: 5px 0 0;
    color: #14294e;
    font-weight: 800;
}

.linha-temporal-estagios {
    display: grid;
    gap: 18px;
}

.cartao-estagio {
    position: relative;
    padding: 20px;
    border: 1px solid #d7e2f3;
    border-left: 5px solid #176bf2;
    border-radius: 14px;
    background: #ffffff;
}

.cartao-estagio header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}

.numero-estagio {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    background: #176bf2;
    font-weight: 900;
}

.cartao-estagio header div span {
    color: #61708a;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cartao-estagio h3 {
    margin: 3px 0 1px;
    color: #0c347c;
    font-size: 1.55rem;
}

.cartao-estagio header p {
    margin: 0;
    color: #58677e;
}

.resumo-temporal-estagio {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tabela-estagio {
    margin-top: 16px;
}

.residuais-estagio {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.residuais-estagio div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 13px 15px;
    border-radius: 10px;
    background: #edf5ff;
}

.residuais-estagio strong {
    color: #0c347c;
}

.medicoes-terra {
    margin-top: 24px;
}

.medicoes-terra > h3,
.conclusoes-protecao h3 {
    margin: 0 0 12px;
    color: #14294e;
    font-size: 1rem;
}

.resumo-residual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
    padding: 16px;
    border-radius: 12px;
    background: #edf5ff;
}

.resumo-residual div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.resumo-residual span,
.resumo-operacao-protecao span,
.cartao-funcao-ansi dt {
    color: #61708a;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.resumo-residual strong {
    color: #0c347c;
    font-size: 1.15rem;
}

.resumo-residual p {
    grid-column: 1 / -1;
    margin: 2px 0 0;
    color: #58677e;
    font-size: 0.82rem;
}

.bloco-funcoes-ansi {
    border-color: #d9e2f2;
}

.resumo-operacao-protecao {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.resumo-operacao-protecao > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 18px;
    border: 1px solid #dce5f2;
    border-radius: 12px;
    background: #f8faff;
}

.resumo-operacao-protecao strong {
    color: #14294e;
    font-size: 1.08rem;
}

.resumo-operacao-protecao small {
    color: #647187;
}

.resumo-operacao-protecao .estado-confirmado {
    color: #08745b;
}

.resumo-operacao-protecao .estado-nao-confirmado {
    color: #9a4b35;
}

.grade-funcoes-ansi {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.cartao-funcao-ansi {
    padding: 18px;
    border: 1px solid #dce5f2;
    border-radius: 13px;
    background: #ffffff;
}

.codigo-ansi {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 7px;
    color: #0759cc;
    background: #eaf3ff;
    font-size: 0.76rem;
    font-weight: 900;
}

.cartao-funcao-ansi h3 {
    margin: 12px 0 7px;
    color: #14294e;
    font-size: 1rem;
}

.cartao-funcao-ansi > p {
    min-height: 42px;
    margin: 0;
    color: #516078;
    font-size: 0.88rem;
}

.cartao-funcao-ansi dl {
    margin: 16px 0 0;
}

.cartao-funcao-ansi dl div + div {
    margin-top: 12px;
}

.cartao-funcao-ansi dd {
    margin: 4px 0 0;
    color: #273b5e;
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.conclusoes-protecao {
    margin-top: 20px;
    padding: 18px 20px;
    border-left: 4px solid #1672f9;
    border-radius: 12px;
    background: #edf5ff;
}

.conclusoes-protecao ul,
.detalhes-limitacoes-ansi ul {
    margin: 0;
    padding-left: 20px;
}

.conclusoes-protecao li + li,
.detalhes-limitacoes-ansi li + li {
    margin-top: 7px;
}

.detalhes-limitacoes-ansi {
    margin-top: 16px;
    color: #536279;
}

.detalhes-limitacoes-ansi summary {
    cursor: pointer;
    font-weight: 800;
}

.detalhes-limitacoes-ansi ul {
    margin-top: 12px;
}

.estado-vazio-inline {
    grid-column: 1 / -1;
    margin: 0;
    color: #647187;
}

@media (max-width: 720px) {
    .resultado-classificacao,
    .resumo-classificacao {
        grid-template-columns: 1fr;
    }

    .selo-confianca {
        white-space: normal;
    }

    .resumo-residual,
    .resumo-operacao-protecao,
    .grade-funcoes-ansi,
    .introducao-evolucao dl,
    .resumo-temporal-estagio,
    .residuais-estagio,
    .grade-origens-evidencias,
    .resumo-evidencias-visuais {
        grid-template-columns: 1fr;
    }

    .cartao-estagio header {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cartao-estagio header .selo-confianca {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .garantia-pacote-evidencias {
        align-items: flex-start;
        flex-direction: column;
    }
}

.estado-vazio {
    text-align: center;
}

.pagina-inicial,
.pagina-relatorios {
    width: min(1120px, calc(100% - 48px));
    margin: 52px auto 80px;
}

.mensagem-sucesso {
    margin-bottom: 22px;
    padding: 14px 17px;
    color: #087a55;
    font-weight: 700;
    background: #e8f8f1;
    border: 1px solid #b7e4d0;
    border-radius: 10px;
}

.cabecalho-inicial,
.cabecalho-relatorios {
    margin-bottom: 34px;
}

.cabecalho-inicial {
    max-width: 820px;
}

.cabecalho-inicial h1,
.cabecalho-relatorios h1 {
    margin: 0 0 12px;
    font-size: clamp(2.4rem, 5.5vw, 4.4rem);
    line-height: 1.04;
    letter-spacing: -0.048em;
}

.cabecalho-inicial > p:last-child,
.cabecalho-relatorios > div > p:last-child {
    margin: 0;
    color: var(--texto-suave);
    font-size: 1.05rem;
    line-height: 1.65;
}

.atalhos-iniciais {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 42px;
}

.pagina-ferramenta-inicio {
    width: min(1180px, calc(100% - 40px));
}

.cabecalho-ferramenta-inicio {
    max-width: 820px;
}

.atalhos-ferramenta {
    align-items: stretch;
}

.atalhos-ferramenta > article {
    height: 100%;
}

.contador-atalho {
    display: inline-flex;
    min-width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    padding: 0 9px;
    color: var(--azul);
    font-size: 0.78rem;
    font-weight: 800;
    background: #edf3ff;
    border-radius: 999px;
}

.cabecalho-portal {
    max-width: 900px;
}

.grade-areas-portal {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.cartao-area-portal,
.cartao-ferramenta-portal,
.estado-vazio-portal {
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(25, 40, 71, 0.07);
}

.cartao-area-portal {
    display: flex;
    min-height: 190px;
    align-items: flex-end;
    padding: 30px;
    color: var(--azul-escuro);
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cartao-area-portal h2,
.cartao-ferramenta-portal h2,
.estado-vazio-portal h2 {
    margin: 0;
    font-size: 1.45rem;
    line-height: 1.25;
}

.conteudo-cartao-area {
    position: relative;
    z-index: 1;
}

.rotulo-setor-portal {
    display: block;
    margin-bottom: 8px;
    color: #7b879d;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
}

.cartao-area-portal div > p:last-child,
.cartao-ferramenta-portal div > p:last-child,
.estado-vazio-portal p {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.cartao-area-em-construcao {
    color: #778196;
    background: rgba(255, 255, 255, 0.56);
    box-shadow: none;
}

.cartao-area-disponivel {
    position: relative;
    overflow: hidden;
    border-color: #aec7f7;
}

.cartao-area-disponivel::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    content: "";
    opacity: 0.16;
    background-image: url("../brand/grafismo-linhas-azul-escuro.webp");
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: 108% auto;
    mix-blend-mode: multiply;
}

.cartao-area-disponivel h2 {
    position: relative;
    max-width: 88%;
}

.cartao-area-disponivel:hover {
    border-color: var(--azul);
    box-shadow: 0 18px 42px rgba(14, 100, 255, 0.14);
    transform: translateY(-3px);
}

/* Gestão de acessos do Portal */
.pagina-gestao-acessos,
.pagina-formulario-funcionario {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 52px 0 80px;
}

.cabecalho-gestao {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin: 30px 0 34px;
}

.cabecalho-gestao h1 {
    margin: 8px 0 10px;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.cabecalho-gestao > div > p:last-child {
    max-width: 680px;
    margin: 0;
    color: var(--texto-suave);
    font-size: 1.05rem;
}

.mensagem-sucesso {
    margin-bottom: 22px;
    padding: 16px 18px;
    color: #056242;
    background: #ecfaf4;
    border: 1px solid #a9dfc8;
    border-radius: 12px;
}

.painel-funcionarios,
.bloco-formulario-funcionario {
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: 0 14px 38px rgba(25, 40, 71, 0.07);
}

.cabecalho-lista-funcionarios {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 26px 30px;
    border-bottom: 1px solid var(--borda);
}

.cabecalho-lista-funcionarios h2 {
    margin: 0;
    font-size: 1.45rem;
}

.cabecalho-lista-funcionarios span {
    color: var(--texto-suave);
}

.lista-funcionarios {
    padding: 8px 30px;
}

.linha-funcionario {
    display: grid;
    grid-template-columns: 52px minmax(190px, 1.45fr) minmax(160px, 1fr) auto auto;
    align-items: center;
    gap: 18px;
    padding: 20px 0;
    border-bottom: 1px solid var(--borda);
}

.linha-funcionario:last-child {
    border-bottom: 0;
}

.avatar-funcionario {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    color: var(--azul-escuro);
    font-weight: 800;
    text-transform: uppercase;
    background: #eaf1ff;
    border-radius: 50%;
}

.identidade-funcionario h3,
.identidade-funcionario p,
.dado-funcionario span,
.dado-funcionario strong {
    margin: 0;
}

.identidade-funcionario h3 {
    font-size: 1rem;
}

.identidade-funcionario p,
.dado-funcionario span {
    color: var(--texto-suave);
    font-size: 0.86rem;
}

.dado-funcionario {
    display: grid;
    gap: 4px;
}

.dado-funcionario strong {
    font-size: 0.92rem;
}

.situacoes-funcionario {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.selo-acesso {
    padding: 6px 10px;
    font-size: 0.74rem;
    font-weight: 800;
    border-radius: 999px;
}

.selo-administrador {
    color: #174fbe;
    background: #e9f0ff;
}

.selo-ativo {
    color: #05724c;
    background: #e7f8f1;
}

.selo-lider {
    color: #735308;
    background: #fff4cd;
}

.selo-inativo {
    color: #9c2c25;
    background: #fff0ee;
}

.pagina-formulario-funcionario .cabecalho-inicial {
    margin: 30px 0 34px;
}

.formulario-funcionario {
    display: grid;
    gap: 22px;
}

.bloco-formulario-funcionario {
    padding: 30px;
}

.titulo-bloco-formulario {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 24px;
}

.titulo-bloco-formulario > span {
    display: grid;
    flex: 0 0 32px;
    height: 32px;
    place-items: center;
    color: var(--azul);
    font-size: 0.82rem;
    font-weight: 850;
    background: #edf3ff;
    border-radius: 50%;
}

.titulo-bloco-formulario h2,
.titulo-bloco-formulario p {
    margin: 0;
}

.titulo-bloco-formulario h2 {
    margin-bottom: 4px;
    font-size: 1.25rem;
}

.titulo-bloco-formulario p,
.grupo-permissoes > p {
    color: var(--texto-suave);
    font-size: 0.9rem;
    line-height: 1.5;
}

.grade-campos-funcionario,
.grade-permissoes-funcionario {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.campo-largura-total {
    grid-column: 1 / -1;
}

.campo-gestao select {
    width: 100%;
    min-height: 52px;
    padding: 13px 40px 13px 15px;
    color: var(--texto);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 10px;
}

.opcoes-perfil-funcionario {
    display: block;
}

.opcoes-perfil-simples > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(190px, 1fr));
    gap: 16px;
    width: min(100%, 760px);
}

.opcoes-perfil-simples label {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 66px;
    padding: 18px 22px;
    font-weight: 800;
    white-space: nowrap;
    background: #f7f9fd;
    border: 1px solid var(--borda);
    border-radius: 12px;
    cursor: pointer;
}

.opcoes-perfil-simples input {
    width: 18px;
    height: 18px;
    accent-color: var(--azul);
}

.opcoes-perfil-simples label:has(input:checked) {
    color: var(--azul-escuro);
    background: #edf3ff;
    border-color: #9dbcf5;
}

.setores-lideranca {
    margin-top: 20px;
    padding: 22px;
    background: #fffaf0;
    border: 1px solid #ead7a6;
    border-radius: 14px;
}

.setores-lideranca[hidden] {
    display: none;
}

.cabecalho-setores-lideranca {
    margin-bottom: 16px;
}

.cabecalho-setores-lideranca h3,
.cabecalho-setores-lideranca p {
    margin: 0;
}

.cabecalho-setores-lideranca p {
    margin-top: 5px;
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.opcao-setor-lideranca {
    background: rgba(255, 255, 255, 0.76);
}

.opcao-setor-lideranca:has(input:checked) {
    background: #fff4cd;
    border-color: #d8ba65;
}

.lista-setores-completos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.opcao-setor-completo {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 17px 18px;
    background: #f7f9fd;
    border: 1px solid var(--borda);
    border-radius: 12px;
    cursor: pointer;
}

.opcao-setor-completo:has(input:checked) {
    background: #edf3ff;
    border-color: #9dbcf5;
}

.opcao-setor-completo input {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--azul);
}

.opcao-setor-completo span,
.ferramentas-do-setor label > span {
    display: grid;
    gap: 4px;
}

.opcao-setor-completo small,
.ferramentas-do-setor small {
    color: var(--texto-suave);
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.4;
}

.acordeao-setores-acesso {
    display: grid;
    gap: 12px;
}

.setor-acesso-individual {
    overflow: hidden;
    background: #f8faff;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.setor-acesso-individual summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    font-weight: 800;
    list-style: none;
    cursor: pointer;
}

.setor-acesso-individual summary::-webkit-details-marker {
    display: none;
}

.setor-acesso-individual summary::after {
    display: grid;
    flex: 0 0 30px;
    height: 30px;
    place-items: center;
    color: var(--azul);
    content: "+";
    background: #e9f0ff;
    border-radius: 50%;
}

.setor-acesso-individual[open] summary::after {
    content: "−";
}

.setor-acesso-individual summary small {
    margin-left: auto;
    color: var(--texto-suave);
    font-size: 0.78rem;
    font-weight: 600;
}

.ferramentas-do-setor {
    display: grid;
    gap: 10px;
    padding: 4px 20px 20px;
}

.ferramentas-do-setor label {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 14px;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 10px;
    cursor: pointer;
}

.ferramentas-do-setor input {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--azul);
}

.setor-ja-liberado {
    opacity: 0.58;
}

.setor-ja-liberado summary::before {
    padding: 4px 8px;
    color: #05724c;
    font-size: 0.68rem;
    content: "SETOR COMPLETO";
    background: #e7f8f1;
    border-radius: 999px;
}

.secao-trabalhos-equipe {
    border-color: #bfd0ee;
}

.secao-trabalhos-equipe .titulo-listagem > div > p:last-child {
    margin: 6px 0 0;
    color: var(--texto-suave);
}

.aviso-acompanhamento-lider {
    color: #59450b;
    background: #fff8df;
    border-color: #e4ce86;
}

.opcao-marcacao {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px;
    background: #f7f9fd;
    border: 1px solid var(--borda);
    border-radius: 12px;
    cursor: pointer;
}

.opcao-marcacao input,
.grupo-permissoes input {
    width: 18px;
    height: 18px;
    accent-color: var(--azul);
}

.opcao-marcacao span {
    display: grid;
    gap: 4px;
}

.opcao-marcacao small {
    color: var(--texto-suave);
    line-height: 1.4;
}

.grupo-permissoes {
    padding: 20px;
    background: #f7f9fd;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.grupo-permissoes h3,
.grupo-permissoes > p {
    margin: 0;
}

.grupo-permissoes > p {
    margin-top: 6px;
}

.grupo-permissoes ul {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.grupo-permissoes label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 0.9rem;
}

.grupo-bloqueios {
    background: #fffafa;
}

.acoes-formulario-funcionario {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 4px;
}

@media (max-width: 900px) {
    .linha-funcionario {
        grid-template-columns: 48px 1fr auto;
    }

    .dado-funcionario {
        grid-column: 2;
    }

    .situacoes-funcionario {
        grid-column: 3;
        grid-row: 1;
    }

    .linha-funcionario > .botao-secundario {
        grid-column: 2 / -1;
        justify-self: start;
    }
}

@media (max-width: 640px) {
    .pagina-gestao-acessos,
    .pagina-formulario-funcionario {
        width: min(100% - 24px, 1180px);
        padding-top: 30px;
    }

    .cabecalho-gestao,
    .acoes-formulario-funcionario {
        align-items: stretch;
        flex-direction: column;
    }

    .cabecalho-gestao .botao-link {
        text-align: center;
    }

    .lista-funcionarios,
    .bloco-formulario-funcionario {
        padding: 20px;
    }

    .linha-funcionario {
        grid-template-columns: 44px 1fr;
    }

    .situacoes-funcionario,
    .linha-funcionario > .botao-secundario {
        grid-column: 2;
        grid-row: auto;
        justify-content: flex-start;
    }

    .grade-campos-funcionario,
    .grade-permissoes-funcionario,
    .opcoes-perfil-funcionario,
    .opcoes-perfil-simples > div,
    .lista-setores-completos {
        grid-template-columns: 1fr;
    }

    .opcoes-perfil-simples label {
        white-space: normal;
    }
}

.icone-area-portal,
.icone-ferramenta-portal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin-bottom: 28px;
    color: var(--azul);
    font-weight: 850;
    background: #edf3ff;
    border-radius: 13px;
}

.selo-em-construcao {
    padding: 9px 13px;
    color: var(--texto-suave);
    font-size: 0.78rem;
    font-weight: 750;
    background: #f1f3f8;
    border-radius: 999px;
}

.trilha-portal {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 38px;
    color: var(--texto-suave);
    font-size: 0.86rem;
}

.trilha-portal a {
    color: var(--azul);
    font-weight: 700;
    text-decoration: none;
}

.grade-ferramentas-portal {
    display: grid;
    gap: 18px;
}

.cartao-ferramenta-portal {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    padding: 30px;
}

.cartao-ferramenta-portal .icone-ferramenta-portal {
    margin: 0;
}

.acoes-ferramenta-portal {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.estado-vazio-portal {
    padding: 42px;
    text-align: center;
}

.secao-relatorios {
    scroll-margin-top: 24px;
}

.secao-relatorios:target {
    border-color: #a9c3f4;
    box-shadow: 0 14px 38px rgba(27, 102, 255, 0.11);
}

.processamento-analise {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 24px;
    background: rgba(242, 245, 251, 0.97);
}

.processamento-analise[hidden] {
    display: none;
}

.processando-analise {
    overflow: hidden;
}

.processamento-grafismo {
    position: absolute;
    inset: -15%;
    opacity: 0.09;
    background-image: url("../brand/grafismo-linhas-azul-escuro.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: min(1050px, 95vw) auto;
    animation: grafismo-processamento 12s ease-in-out infinite alternate;
}

.processamento-conteudo {
    position: relative;
    display: grid;
    justify-items: center;
    width: min(610px, 100%);
    padding: clamp(32px, 7vw, 58px);
    text-align: center;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--borda);
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(25, 40, 71, 0.16);
}

.processamento-conteudo > img {
    width: min(210px, 65%);
    margin-bottom: 26px;
}

.processamento-conteudo h2 {
    margin: 8px 0 12px;
    color: var(--azul-escuro);
    font-size: clamp(1.8rem, 5vw, 2.7rem);
    letter-spacing: -0.04em;
}

.processamento-conteudo > p:not(.rotulo) {
    max-width: 490px;
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.65;
}

.processamento-conteudo small {
    margin-top: 22px;
    color: var(--texto-suave);
}

.processamento-indicador {
    display: flex;
    gap: 8px;
    margin-bottom: 22px;
}

.processamento-indicador span {
    width: 10px;
    height: 10px;
    background: var(--azul);
    border-radius: 50%;
    animation: ponto-processamento 1.3s ease-in-out infinite;
}

.processamento-indicador span:nth-child(2) {
    animation-delay: 0.16s;
}

.processamento-indicador span:nth-child(3) {
    animation-delay: 0.32s;
}

.etapa-processamento {
    min-height: 26px;
    margin-top: 22px !important;
    color: #087a55 !important;
    font-weight: 800;
}

@keyframes ponto-processamento {
    0%, 70%, 100% { opacity: 0.28; transform: translateY(0); }
    35% { opacity: 1; transform: translateY(-7px); }
}

@keyframes grafismo-processamento {
    from { transform: translate3d(-2%, -1%, 0) scale(0.98); }
    to { transform: translate3d(2%, 1%, 0) scale(1.04); }
}

.atalho-principal,
.atalho-secundario {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 18px;
    align-items: start;
    padding: 28px;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(25, 40, 71, 0.07);
}

.atalho-principal .botao-link,
.atalho-secundario .botao-secundario {
    grid-column: 1 / -1;
    justify-self: start;
}

.icone-atalho {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--azul);
    font-size: 1.35rem;
    font-weight: 800;
    background: #edf3ff;
    border-radius: 11px;
}

.atalhos-iniciais h2 {
    margin: 0 0 8px;
    font-size: 1.35rem;
}

.atalhos-iniciais p {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.55;
}

.recentes-inicio,
.secao-relatorios {
    padding: clamp(24px, 4vw, 36px);
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(25, 40, 71, 0.06);
}

.titulo-listagem {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.titulo-listagem h2 {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
}

.titulo-listagem > a {
    color: var(--azul);
    font-weight: 750;
    text-decoration: none;
}

.lista-trabalhos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.cartao-trabalho {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 20px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.cartao-trabalho-cabecalho,
.linha-relatorio-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.cartao-trabalho time,
.linha-relatorio time {
    color: var(--texto-suave);
    font-size: 0.72rem;
}

.cartao-trabalho h3 {
    margin: 22px 0 7px;
    overflow-wrap: anywhere;
    font-size: 1.15rem;
}

.cartao-trabalho p {
    margin: 0 0 22px;
    color: var(--texto-suave);
    font-size: 0.85rem;
}

.link-abrir {
    margin-top: auto;
    color: var(--azul);
    font-weight: 750;
    text-decoration: none;
}

.estado-vazio-lista {
    padding: 26px;
    color: var(--texto-suave);
    text-align: center;
    background: #f8f9fc;
    border: 1px dashed var(--borda);
    border-radius: 11px;
}

.estado-vazio-lista p {
    margin: 0 0 18px;
}

.estado-vazio-lista p:only-child {
    margin-bottom: 0;
}

.cabecalho-relatorios {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.secao-relatorios {
    margin-bottom: 20px;
}

.lista-relatorios {
    display: grid;
    gap: 10px;
}

.linha-relatorio {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 19px 20px;
    background: #f8f9fc;
    border: 1px solid var(--borda);
    border-radius: 11px;
}

.dados-relatorio {
    min-width: 0;
}

.linha-relatorio h3 {
    margin: 14px 0 5px;
    overflow-wrap: anywhere;
    font-size: 1.15rem;
}

.linha-relatorio p {
    margin: 0;
    color: var(--texto-suave);
    font-size: 0.82rem;
}

.acoes-relatorio {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
}

.botao-excluir {
    padding: 11px 14px;
    color: var(--erro);
    font-weight: 750;
    text-decoration: none;
    background: var(--branco);
    border: 1px solid #fecdca;
    border-radius: 9px;
}

.pagina-confirmacao-exclusao {
    display: flex;
    min-height: calc(100vh - 77px);
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
}

.cartao-exclusao {
    width: min(580px, 100%);
    padding: clamp(28px, 5vw, 48px);
    text-align: center;
    background: var(--branco);
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: var(--sombra);
}

.icone-alerta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 20px;
    color: var(--erro);
    font-size: 1.8rem;
    font-weight: 850;
    background: var(--erro-fundo);
    border-radius: 50%;
}

.cartao-exclusao h1 {
    margin: 0 0 14px;
    font-size: clamp(2rem, 5vw, 3rem);
    letter-spacing: -0.04em;
}

.cartao-exclusao > p:not(.rotulo) {
    color: var(--texto-suave);
    line-height: 1.6;
}

.aviso-exclusao {
    margin: 24px 0;
    padding: 15px;
    color: var(--erro);
    line-height: 1.5;
    background: var(--erro-fundo);
    border: 1px solid #fecdca;
    border-radius: 10px;
}

.acoes-exclusao {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.acoes-exclusao form {
    margin: 0;
}

.botao-perigo {
    min-height: 52px;
    padding: 13px 20px;
    color: var(--branco);
    font-weight: 750;
    background: var(--erro);
    border: 0;
    border-radius: 10px;
    cursor: pointer;
}

@media (max-width: 900px) {
    .login-layout {
        grid-template-columns: 1fr;
    }

    .login-marca {
        min-height: auto;
        padding: 32px 28px 38px;
    }

    .login-marca-conteudo {
        gap: 48px;
    }

    .login-logo {
        width: min(320px, 82%);
    }

    .login-apresentacao {
        padding-bottom: 0;
    }

    .login-apresentacao h1 {
        font-size: clamp(2rem, 9vw, 3.2rem);
    }

    .login-acesso {
        padding: 48px 28px 64px;
    }

    .grade-arquivos {
        grid-template-columns: 1fr;
    }

    .grade-resumo-tecnico {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grade-contadores-digitais {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cronologia-digital > li {
        grid-template-columns: 18px 1fr;
    }

    .grupo-transicoes {
        grid-column: 2;
    }

    .lista-trabalhos {
        grid-template-columns: 1fr;
    }

    .atalhos-iniciais {
        grid-template-columns: 1fr;
    }

    .grade-areas-portal {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cartao-ferramenta-portal {
        grid-template-columns: auto 1fr;
    }

    .acoes-ferramenta-portal {
        grid-column: 1 / -1;
    }

    .grade-preparacao-analise {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .login-apresentacao > p:last-child {
        display: none;
    }

    .topo-logo {
        width: 150px;
    }

    .conteudo-aplicacao {
        width: min(100% - 28px, 1120px);
        margin: 28px auto;
    }


    .pagina-formulario {
        width: min(100% - 28px, 1120px);
        margin-top: 28px;
    }

    .pagina-inventario {
        width: min(100% - 28px, 1200px);
        margin-top: 24px;
    }

    .pagina-inicial,
    .pagina-relatorios {
        width: min(100% - 28px, 1120px);
        margin-top: 28px;
    }

    .atalhos-iniciais {
        grid-template-columns: 1fr;
    }

    .grade-areas-portal,
    .cartao-ferramenta-portal {
        grid-template-columns: 1fr;
    }

    .cartao-ferramenta-portal .icone-ferramenta-portal {
        margin-bottom: 4px;
    }

    .acoes-ferramenta-portal {
        align-items: stretch;
        flex-direction: column;
    }

    .acoes-ferramenta-portal a {
        justify-content: center;
        text-align: center;
    }

    .cabecalho-relatorios,
    .linha-relatorio,
    .titulo-listagem {
        align-items: stretch;
        flex-direction: column;
    }

    .linha-relatorio-topo {
        align-items: flex-start;
        flex-direction: column;
    }

    .acoes-relatorio,
    .acoes-exclusao {
        align-items: stretch;
        flex-direction: column;
    }

    .acoes-relatorio a,
    .acoes-exclusao a,
    .acoes-exclusao button {
        justify-content: center;
        width: 100%;
        text-align: center;
    }

    .cabecalho-inventario,
    .titulo-bloco,
    .acoes-inventario {
        align-items: stretch;
        flex-direction: column;
    }

    .controles-secoes {
        align-items: stretch;
        flex-direction: column;
    }

    .controles-secoes > div {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .bloco-recolhivel > summary {
        padding-right: 40px;
    }

    .selo-situacao,
    .selo-inferencia,
    .contador-bloco {
        align-self: flex-start;
    }

    .grade-resumo-tecnico,
    .grade-contadores-digitais {
        grid-template-columns: 1fr;
    }

    .cabecalho-progresso-investigacao,
    .grade-ficha-investigacao,
    .pergunta-ativa-investigacao {
        grid-template-columns: 1fr;
    }

    .proxima-pergunta-investigacao,
    .grade-ficha-investigacao dl div {
        align-items: flex-start;
        flex-direction: column;
    }

    .grade-ficha-investigacao dd {
        text-align: left;
    }

    .lista-materiais article,
    .aviso-medicao {
        align-items: flex-start;
        flex-direction: column;
    }

    .integridade-ok {
        flex: auto;
    }

    .cronologia-digital > li {
        grid-template-columns: 18px minmax(0, 1fr);
    }

    .grupo-transicoes {
        grid-template-columns: 1fr;
    }

    .chamada-analise,
    .acoes-formulario {
        align-items: stretch;
        flex-direction: column;
    }

    .grade-campos {
        grid-template-columns: 1fr;
    }

    .resumo-confirmacao {
        grid-template-columns: 1fr;
    }

    .acoes-confirmacao {
        flex-direction: column;
    }

    .acao-indisponivel,
    .acao-gerar-analise {
        justify-items: stretch;
        text-align: center;
    }

    .cabecalho-relatorio-profissional,
    .barra-acoes-relatorio,
    .barra-acoes-relatorio > div {
        align-items: stretch;
        flex-direction: column;
    }

    .capa-relatorio-editor {
        min-height: 420px;
        padding: 38px 24px;
    }

    .capa-relatorio-editor img {
        margin-bottom: 30px;
    }

    .secao-editor-relatorio {
        padding: 24px 20px;
    }

    .sumario-relatorio-editor {
        padding: 26px 20px;
    }

    .sumario-relatorio-editor ol {
        grid-template-columns: 1fr;
    }

    .barra-acoes-relatorio a,
    .barra-acoes-relatorio button {
        justify-content: center;
        width: 100%;
        text-align: center;
    }
}
.confirmacao-envio-analise {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    max-width: 34rem;
    color: #34415c;
    font-size: .92rem;
    line-height: 1.4;
    text-align: left;
}

.confirmacao-envio-analise input {
    margin-top: .18rem;
    width: 1.1rem;
    height: 1.1rem;
}

.grade-evidencias-visuais {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.grade-evidencias-visuais figure {
    margin: 0;
    padding: .75rem;
    border: 1px solid #d8e0ef;
    border-radius: 14px;
    background: #f7f9fd;
}

.grade-evidencias-visuais img {
    display: block;
    width: 100%;
    max-height: 360px;
    object-fit: contain;
    background: #101722;
    border-radius: 8px;
}

.grade-evidencias-visuais figcaption {
    display: grid;
    gap: .35rem;
    margin-top: .7rem;
}
