/* Processo seletivo (PSS) — páginas públicas dentro do portal (cores do tema: --cs-primaria, --cs-destaque...) */

/* Busca no topo */
.pss-busca { position: relative; display: flex; gap: .5rem; max-width: 640px; margin-top: 1rem; }
.pss-busca > i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #8a97a6; pointer-events: none; }
.pss-busca .form-control { padding-left: 2.6rem; border-radius: 999px; }
.pss-busca .btn { border-radius: 999px; padding-inline: 1.3rem; }

/* Pesquisa nas inscrições (painel do candidato), acima dos cartões; filtra enquanto se digita (candidato.js) */
.pss-filtro-barra { margin: 0 0 1.25rem; }
.pss-filtro-barra .pss-busca { max-width: 34rem; margin-top: 0; }
.pss-filtro-barra .form-control { border-color: #cfd9e5; background: #fff; }
.pss-filtro-total:not(:empty) { margin: .45rem 0 0 1rem; }
.pss-filtro-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.pss-filtro-linha .pss-busca { flex: 1 1 16rem; }

/* Exibição das inscrições em cartões ou em lista (a mesma escolha nas duas abas; candidato.js) */
.pss-exibicao { display: inline-flex; flex: none; gap: .15rem; margin-left: auto; padding: .2rem; border-radius: 999px; background: #e6edf4; }
.pss-exibicao-botao { display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .95rem; border: 0; border-radius: 999px; background: transparent;
    color: #4f5b69; font-size: .85rem; font-weight: 700; line-height: 1.2; }
.pss-exibicao-botao:hover { color: var(--cs-primaria); }
.pss-exibicao-botao[aria-pressed="true"] { background: #fff; color: var(--c1-dkk, #1d3f5e); box-shadow: 0 1px 4px rgba(15, 35, 60, .14); }
.pss-exibicao-botao:focus-visible { outline: 3px solid var(--cs-primaria); outline-offset: 2px; }

/* Em lista: os mesmos cartões, como linhas de um só quadro (número e situação | cargo, processo e dados | ações) */
.pss-lista { scroll-margin-top: 5rem; }
.pss-grade.pss-em-lista { grid-template-columns: minmax(0, 1fr); gap: 0; overflow: hidden; background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); }
.pss-em-lista .pss-inscricao-cartao { display: grid; grid-template-columns: 12.5rem minmax(0, 1fr) auto; align-items: center; gap: .2rem 1.25rem;
    grid-template-areas: "topo cargo acoes" "topo processo acoes" "topo info acoes"; padding: .85rem 1.15rem; border-radius: 0; box-shadow: none;
    border-top: 0; border-left: 4px solid var(--pss-inscricao-cor); }
.pss-em-lista .pss-inscricao-cartao:not([hidden]) ~ .pss-inscricao-cartao:not([hidden]) { border-top: 1px solid #e3e9f0; } /* entre as linhas à vista */
.pss-em-lista .pss-inscricao-topo { grid-area: topo; flex-direction: column; align-items: flex-start; }
.pss-em-lista .pss-edital { white-space: nowrap; }
.pss-em-lista .pss-inscricao-cargo { grid-area: cargo; font-size: 1rem; }
.pss-em-lista .pss-inscricao-processo { grid-area: processo; }
.pss-em-lista .pss-cartao-info { grid-area: info; display: flex; flex-wrap: wrap; gap: .15rem 1.1rem; margin: .15rem 0 0; font-size: .8rem; }
.pss-em-lista .pss-cartao-info i { width: auto; margin-right: .3rem; }
.pss-em-lista .pss-inscricao-acoes { grid-area: acoes; justify-content: flex-end; margin: 0; padding: 0; }
@media (max-width: 991.98px) {
    .pss-em-lista .pss-inscricao-cartao { grid-template-columns: 12.5rem minmax(0, 1fr); grid-template-areas: "topo cargo" "topo processo" "topo info" "topo acoes"; }
    .pss-em-lista .pss-inscricao-acoes { justify-content: flex-start; margin-top: .4rem; }
}
@media (max-width: 575.98px) {
    .pss-em-lista .pss-inscricao-cartao { grid-template-columns: minmax(0, 1fr); grid-template-areas: "topo" "cargo" "processo" "info" "acoes"; }
    .pss-em-lista .pss-inscricao-cartao { padding: .75rem .9rem; }
    .pss-em-lista .pss-inscricao-topo { flex-direction: row; align-items: center; justify-content: space-between; margin-bottom: .2rem; }
    .pss-em-lista .pss-inscricao-cargo { font-size: .95rem; }
    .pss-em-lista .pss-inscricao-processo { font-size: .8rem; }
    .pss-em-lista .pss-inscricao-acoes .btn { padding: .2rem .65rem; font-size: .8rem; }
    .pss-exibicao-botao { padding-inline: .75rem; }
}

/* Paginação das inscrições (candidato.js): contagem e páginas */
.pss-paginas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; margin-top: 1.5rem; }
.pss-paginas .pagination { margin: 0; }
.pss-paginas-contagem { margin: 0; color: #5b6878; font-size: .86rem; }
@media (max-width: 575.98px) { .pss-paginas { flex-direction: column; } }

/* Lista: cartões */
.pss-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); gap: 1.25rem; }
.pss-cartao { position: relative; display: flex; flex-direction: column; gap: .55rem; padding: 1.25rem 1.3rem 1.1rem; background: #fff; border-radius: var(--cs-raio, 14px);
    box-shadow: var(--cs-sombra-card); border-top: 4px solid var(--cs-primaria); transition: transform .18s ease, box-shadow .18s ease; }
.pss-cartao.pss-status-inscricoes_abertas { border-top-color: var(--cs-sucesso, #06d6a0); }
.pss-cartao.pss-status-recurso, .pss-cartao.pss-status-analise { border-top-color: var(--cs-alerta, #ffd166); }
.pss-cartao.pss-status-encerrado, .pss-cartao.pss-status-impugnado { border-top-color: #b8c2cc; }
.pss-cartao:hover, .pss-cartao:focus-within { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(38, 84, 124, .16); }
.pss-cartao-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; }
.pss-edital, .pss-tipo { display: inline-flex; align-items: center; padding: .2rem .65rem; border-radius: 6px; background: #eef3f8; color: #3b4754; font-size: .76rem; font-weight: 700; }
.ps-topo-pagina .pss-edital, .ps-topo-pagina .pss-tipo { background: rgba(255, 255, 255, .16); color: inherit; }
.pss-cartao-titulo { margin: 0; font-family: var(--cs-fonte-titulos); font-size: 1.12rem; font-weight: 800; line-height: 1.3; }
.pss-cartao-titulo a { color: var(--c1-dkk, #1d3f5e); text-decoration: none; }
.pss-cartao-titulo a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; } /* cartão inteiro clicável */
.pss-cartao-titulo a:focus-visible { outline: none; }
.pss-cartao:has(.pss-cartao-titulo a:focus-visible) { outline: 3px solid var(--cs-primaria); outline-offset: 3px; }
.pss-cartao-secretaria { margin: 0; color: #5b6878; font-size: .86rem; }
.pss-cartao-secretaria i { margin-right: .4rem; color: var(--cs-primaria); }
.pss-cartao-info { display: grid; gap: .3rem; margin: .2rem 0 0; padding: 0; list-style: none; font-size: .85rem; color: #3b4754; }
.pss-cartao-info i { width: 1.2rem; margin-right: .35rem; color: #8a97a6; }
.pss-cartao-acao { margin-top: auto; padding-top: .6rem; border-top: 1px solid #eef2f6; color: var(--cs-primaria); font-size: .86rem; font-weight: 800; }

/* Perguntas frequentes (abaixo da lista): <details name="pss-faq">, uma aberta por vez onde o navegador suporta;
   o texto fechado continua achável pelo "Localizar na página" */
.pss-faq { padding-top: 2.5rem; }
.pss-faq-lista { display: grid; gap: .65rem; }
.pss-faq-item { background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); border-left: 4px solid transparent; transition: border-color .15s ease; }
.pss-faq-item[open] { border-left-color: var(--cs-primaria); }
.pss-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-radius: inherit; cursor: pointer;
    list-style: none; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
.pss-faq-item summary::-webkit-details-marker { display: none; }
.pss-faq-item summary:hover { color: var(--cs-primaria); }
.pss-faq-item summary:focus-visible { outline: 3px solid var(--cs-primaria); outline-offset: 2px; }
.pss-faq-seta { flex: none; color: var(--cs-primaria); transition: transform .2s ease; }
.pss-faq-item[open] .pss-faq-seta { transform: rotate(180deg); }
.pss-faq-resposta { padding: 0 1.2rem 1.1rem; color: #3b4754; font-size: .95rem; line-height: 1.6; }
.pss-faq-resposta p { margin: 0 0 .7rem; }
.pss-faq-resposta p:last-child { margin-bottom: 0; }
.pss-faq-resposta a { overflow-wrap: anywhere; }
.pss-faq-mais { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-top: 1.25rem;
    padding: .9rem 1.2rem; border-radius: 12px; background: #eef3f8; color: #3b4754; font-weight: 600; }
.pss-faq-mais p i { color: var(--cs-primaria); }
@media (prefers-reduced-motion: reduce) {
    .pss-faq-item, .pss-faq-seta { transition: none; }
}

/* Página do processo */
.pss-aviso { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: 1.5rem; padding: .85rem 1.1rem; border-radius: 12px; font-weight: 600; background: #eef3f8; color: #1d3f5e; }
.pss-aviso i { margin-top: .2rem; }
.pss-aviso-sucesso { background: #e6f9f2; color: #0a4a38; }
.pss-aviso-aviso { background: #fff6e0; color: #6a4800; }
.pss-aviso-info { background: #e8f2fc; color: #0b3f6b; }
.pss-aviso-erro { background: #fdeceb; color: #8a1c1c; }
.pss-aviso-link { color: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* Abas: cargos e vagas | publicações (sem JavaScript, um <noscript> da página mostra as duas seções em sequência) */
/* Rolagem até as abas (e até o painel, pelo #publicacoes do endereço) sem ficar sob o menu fixo do portal: os painéis
   descontam também a altura das abas, para elas continuarem à vista. */
.pss-abas { scroll-margin-top: 4.5rem; }
.pss-abas .tab-content > .tab-pane { scroll-margin-top: 8.5rem; }
.pss-abas-nav { flex-wrap: nowrap; gap: .25rem; margin: 0 0 1.25rem; border-bottom: 2px solid #e3e9f0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.pss-abas-nav::-webkit-scrollbar { display: none; }
.pss-abas-nav .nav-link { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: -2px; padding: .7rem 1.1rem; border: 0; border-bottom: 3px solid transparent;
    border-radius: 10px 10px 0 0; background: transparent; color: #5b6878; font-family: var(--cs-fonte-titulos); font-size: 1.05rem; font-weight: 800; white-space: nowrap; }
.pss-abas-nav .nav-link i { color: inherit; }
.pss-abas-nav .nav-link:hover { background: #f1f5f9; color: var(--c1-dkk, #1d3f5e); }
.pss-abas-nav .nav-link.active { border-bottom-color: var(--cs-primaria); color: var(--c1-dkk, #1d3f5e); }
.pss-abas-nav .nav-link.active i { color: var(--cs-primaria); }
.pss-abas-nav .nav-link:focus-visible { outline: 3px solid var(--cs-primaria); outline-offset: -3px; box-shadow: none; }
.pss-abas-total { min-width: 1.7rem; padding: .1rem .5rem; border-radius: 999px; background: #eef3f8; color: #3b4754; font-size: .76rem; line-height: 1.5; text-align: center; }
.pss-abas-nav .nav-link.active .pss-abas-total { background: var(--cs-primaria); color: #fff; }
.pss-abas .tab-pane:focus-visible { outline: 3px solid var(--cs-primaria); outline-offset: 6px; border-radius: 6px; }
.pss-aba-titulo { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } /* o nome está na aba */
@media (max-width: 575.98px) {
    .pss-abas-nav { gap: 0; }
    .pss-abas-nav .nav-link { gap: .4rem; padding: .6rem .55rem; font-size: .95rem; }
}
@media (max-width: 399.98px) {
    .pss-abas-nav .nav-link i { display: none; } /* as duas abas, com os totais, cabem lado a lado */
}
/* Três abas ou mais (painel do candidato): abaixo de 992 px dividem a largura, com o rótulo quebrando em duas linhas se
   precisar; no celular, o total vai para baixo do rótulo. Sem suporte a :has(), a barra continua rolando de lado. */
@media (max-width: 991.98px) {
    .pss-abas-nav:has(> li:nth-child(3)) { overflow-x: visible; }
    .pss-abas-nav:has(> li:nth-child(3)) > .nav-item { display: flex; flex: 1 1 0; min-width: 0; }
    .pss-abas-nav:has(> li:nth-child(3)) .nav-link { justify-content: center; width: 100%; white-space: normal; text-align: center; line-height: 1.25; }
}
@media (max-width: 575.98px) {
    .pss-abas-nav:has(> li:nth-child(3)) .nav-link { flex-direction: column; gap: .3rem; padding: .55rem .3rem; line-height: 1.2; font-size: .88rem; }
}
.pss-cargo { margin-bottom: 1rem; padding: 1.2rem 1.3rem; background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); border-left: 5px solid var(--cs-sucesso, #06d6a0); }
.pss-cargo-topo { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.pss-cargo-nome { margin: 0; font-family: var(--cs-fonte-titulos); font-size: 1.15rem; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
/* Polo ao lado do nome do cargo (etiqueta; em tela estreita desce junto com o nome) */
.pss-cargo-polo { display: inline-flex; align-items: center; gap: .3rem; margin-left: .5rem; padding: .15rem .6rem; border-radius: 999px; vertical-align: .15em;
    background: #eef3f8; color: var(--cs-primaria); font-family: var(--cs-fonte-texto, inherit); font-size: .8rem; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.pss-vagas { padding: .25rem .75rem; border-radius: 999px; background: var(--cs-sucesso, #06d6a0); color: #0a4035; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.pss-cargo-info { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: 0 0 .6rem; padding: 0; list-style: none; font-size: .88rem; }
.pss-cargo-info i { margin-right: .35rem; color: var(--cs-primaria); }
.pss-reservas { margin: 0 0 .5rem; font-size: .84rem; color: #5b6878; }
.pss-cargo-descricao { font-size: .9rem; color: #3b4754; }
.pss-detalhes { margin: .4rem 0; padding: .5rem .85rem; border-radius: 10px; background: #f6f8fb; font-size: .88rem; }
.pss-detalhes summary { cursor: pointer; font-weight: 700; color: var(--cs-primaria); }
.pss-detalhes h4 { margin: .9rem 0 .3rem; font-size: .8rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #5b6878; }
.pss-detalhes ul { margin: 0; padding-left: 1.1rem; }
.pss-detalhes li { margin-bottom: .25rem; }
.pss-tabela-pontos { margin: 0; font-size: .86rem; background: transparent; }
.pss-cargo-acao:empty { display: none; }
.pss-cargo-acao { margin-top: .7rem; }
.pss-nota { display: inline-flex; align-items: center; padding: .45rem .8rem; border-radius: 8px; background: #fff4e0; color: #8a5300; font-size: .85rem; font-weight: 700; }

/* Publicações do processo */
.pss-publicacoes { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.pss-publicacao { display: flex; align-items: flex-start; gap: .9rem; padding: 1rem 1.1rem; background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); }
.pss-publicacao-texto { flex: 1 1 0; min-width: 0; } /* base 0: no celular, o texto fica ao lado do ícone e só os botões descem */
.pss-publicacao-icone { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none; border-radius: 10px; background: #eef3f8; color: var(--cs-primaria); }
.pss-publicacao-meta { font-size: .78rem; font-weight: 700; color: #6b7a8d; text-transform: uppercase; letter-spacing: .04em; }
.pss-publicacao-titulo { margin: .15rem 0 0; font-size: 1rem; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
.pss-publicacao-descricao { margin: .3rem 0 0; font-size: .88rem; color: #3b4754; }
.pss-publicacao-acoes { display: flex; flex-direction: column; gap: .4rem; flex: none; }
@media (max-width: 575.98px) {
    .pss-publicacao { flex-wrap: wrap; }
    .pss-publicacao-acoes { flex-direction: row; width: 100%; }
}

/* Lateral */
.pss-lateral { margin-bottom: 1.25rem; padding: 1.1rem 1.2rem; background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); font-size: .9rem; }
.pss-lateral h2 { margin: 0 0 .8rem; font-size: 1rem; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
.pss-cronograma { margin: 0; padding: 0; list-style: none; }
.pss-cronograma li { position: relative; display: flex; flex-direction: column; padding: .4rem 0 .4rem 1.3rem; border-bottom: 1px solid #f0f4f8; }
.pss-cronograma li:last-child { border-bottom: 0; }
.pss-cronograma li::before { content: ''; position: absolute; left: 0; top: .85rem; width: .55rem; height: .55rem; border-radius: 50%; background: var(--cs-primaria); }
.pss-cronograma li.passou::before { background: #c4ccd5; }
.pss-cronograma li span { font-size: .76rem; color: #6b7a8d; }
.pss-cronograma li.passou strong { color: #6b7a8d; font-weight: 600; }
.pss-pontos { margin: 0 0 .8rem; }
.pss-pontos > div { display: flex; justify-content: space-between; gap: .8rem; padding: .3rem 0; border-bottom: 1px dashed #e3e9f0; }
.pss-pontos dt { font-weight: 600; color: #5b6878; }
.pss-pontos dd { margin: 0; text-align: right; }
.pss-subtitulo-lateral { margin: .6rem 0 .4rem; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #5b6878; }
.pss-desempate { margin: 0; padding-left: 1.2rem; }

/* ======================================================= área do candidato */
.pss-saudacao { color: inherit; opacity: .92; }
.pss-menu-candidato { background: #fff; border-bottom: 1px solid #e3e9f0; box-shadow: 0 2px 10px rgba(38, 84, 124, .06); }
.pss-menu-candidato a, .pss-menu-sair { display: inline-flex; align-items: center; gap: .45rem; padding: .85rem 1rem; border: 0; border-bottom: 3px solid transparent;
    background: none; color: #3b4754; font-weight: 700; font-size: .92rem; text-decoration: none; }
.pss-menu-candidato a:hover, .pss-menu-sair:hover { color: var(--cs-primaria); }
.pss-menu-candidato a[aria-current="page"] { color: var(--cs-primaria); border-bottom-color: var(--cs-primaria); }
.pss-menu-sair { color: #8a1c1c; }
@media (max-width: 575.98px) { /* celular: os quatro itens em grade 2 × 2 */
    .pss-menu-candidato .container { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0; } /* vence o d-flex do Bootstrap */
    .pss-menu-candidato a, .pss-menu-sair { justify-content: center; width: 100%; padding: .65rem .4rem; font-size: .84rem; }
    .pss-menu-candidato form { margin-left: 0 !important; }
}

.pss-cartao-form { padding: 1.5rem 1.6rem; background: #fff; border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); }
.pss-cartao-destaque { background: linear-gradient(160deg, #f4f8fc, #eaf2fa); }
.pss-cartao-form .cs-campo-senha { position: relative; }
.pss-form-titulo { margin: 0 0 1rem; font-size: 1.15rem; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
.pss-lista-icones { display: grid; gap: .65rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.pss-lista-icones li { display: flex; gap: .7rem; align-items: flex-start; }
.pss-lista-icones i { width: 1.2rem; margin-top: .25rem; color: var(--cs-primaria); text-align: center; flex: none; }
.pss-dado-fixo { padding: .7rem 1rem; border-radius: 10px; background: #f4f7fa; }
/* "Esqueci meu e-mail": dica do e-mail cadastrado e o aviso do prazo de segurança */
.pss-email-dica { display: flex; align-items: center; font-size: 1.15rem; font-weight: 700; letter-spacing: .02em; overflow-wrap: anywhere; }
.pss-email-dica i { flex: none; color: var(--cs-primaria); }
.pss-recuperar-espera { padding: .6rem .8rem; border-radius: 10px; background: #fff7e0; color: #5a4300; }
html.a11y-contraste .pss-recuperar-espera { background: #000 !important; color: #fff !important; border: 1px solid #fff; }

.pss-secao-form { margin: 0 0 1.6rem; padding: 0 0 1.4rem; border: 0; border-bottom: 1px solid #edf1f5; }
.pss-secao-form:last-of-type { border-bottom: 0; }
.pss-secao-form legend { float: none; margin-bottom: .9rem; font-size: 1.05rem; font-weight: 800; color: var(--c1-dkk, #1d3f5e); }
.pss-vagas-cota { display: inline-block; margin-left: .5rem; padding: .1rem .5rem; border-radius: 999px; background: #eef3f8; font-size: .76rem; font-weight: 700; white-space: nowrap; }

/* Concorrência (uma só): as cotas que o cadastro não permite ficam indisponíveis, com o caminho para "Meus dados" */
.pss-cota { display: flex; gap: .85rem; align-items: flex-start; margin-bottom: .65rem; padding: .9rem 1rem; border: 1px solid #e3e9f0; border-radius: 12px; background: #fff;
    transition: border-color .15s, background-color .15s; }
.pss-cota .form-check-input { flex: none; width: 1.2rem; height: 1.2rem; margin: .1rem 0 0; }
.pss-cota label { display: block; color: var(--c1-dkk, #1d3f5e); font-weight: 700; cursor: pointer; }
.pss-cota label > i { margin-right: .4rem; color: var(--cs-primaria); }
.pss-cota-ajuda { margin: .2rem 0 0; color: #5b6878; font-size: .88rem; }
.pss-cota:has(input:checked) { border-color: var(--cs-primaria); background: #f3f8fd; box-shadow: inset 0 0 0 1px var(--cs-primaria); }
.pss-cota.indisponivel { border-style: dashed; background: #f8fafc; }
.pss-cota.indisponivel label { color: #66717d; cursor: not-allowed; }
.pss-cota.indisponivel label > i { color: #8b96a2; }

/* Resumo da pontuação (estimativa; o navegador recalcula a cada marcação) */
.pss-resumo-pontos { margin: 0 0 1.6rem; padding: 1.1rem 1.2rem; border-left: 5px solid var(--cs-primaria); border-radius: 14px; background: #f6f9fc; }
.pss-resumo-pontos h2 { margin: 0 0 .8rem; color: var(--c1-dkk, #1d3f5e); font-size: .82rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.pss-resumo-linhas { display: grid; gap: .45rem; margin: 0 0 .75rem; }
.pss-resumo-linhas > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .6rem .85rem; border-radius: 10px; background: #fff; }
.pss-resumo-linhas dt { color: #3b4754; font-weight: 600; }
.pss-resumo-linhas dt > i { width: 1.1rem; margin-right: .4rem; color: #b7791f; text-align: center; }
.pss-resumo-linhas dt small { display: block; margin-left: 1.5rem; color: #5b6878; font-weight: 400; }
.pss-resumo-linhas dd { margin: 0; color: var(--c1-dkk, #1d3f5e); font-weight: 800; white-space: nowrap; }
.pss-resumo-total { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1rem; padding: .9rem 1.1rem; border-radius: 12px;
    background: var(--c1-dkk, #1d3f5e); color: #fff; }
.pss-resumo-total-rotulo { font-weight: 800; }
.pss-resumo-total-rotulo i { margin-right: .45rem; color: #ffd166; }
.pss-resumo-total-valor { margin-left: auto; line-height: 1.15; text-align: right; }
.pss-resumo-total-valor strong { color: #ffd166; font-size: 1.7rem; font-weight: 800; }
.pss-resumo-total-valor small { display: block; color: #dbe6f1; }
.pss-resumo-nota { margin: .6rem 0 0; color: #5b6878; font-size: .85rem; }
.pss-resumo-aviso { margin: .6rem 0 0; padding: .5rem .75rem; border-radius: 8px; background: #fdeceb; color: #8a1c1c; font-size: .88rem; font-weight: 600; }
.pss-qualificacao { margin-bottom: .75rem; padding: .8rem 1rem; border: 1px solid #e3e9f0; border-radius: 10px; }
.pss-qualificacao.marcada { border-color: var(--cs-primaria); background: #f7fafd; }
.pss-qualificacao.indisponivel { border-style: dashed; background: #f8fafc; } /* limite de títulos ou certificados atingido */
.pss-qualificacao.indisponivel .form-check-label, .pss-qualificacao.indisponivel .form-check-input { color: #66717d; cursor: not-allowed; }
.pss-qualificacao.indisponivel .form-check-input { opacity: .5; }

/* Janela "Limite atingido" */
.pss-modal-limite .modal-content { border: 0; border-radius: 16px; box-shadow: 0 18px 50px rgba(15, 35, 60, .25); }
.pss-modal-limite .modal-header { gap: .9rem; padding: 1.25rem 1.25rem .5rem; border-bottom: 0; }
.pss-modal-icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 50%;
    background: #ffd166; color: #4a3500; font-size: 1.1rem; }
.pss-modal-limite .modal-title { margin: 0; color: var(--c1-dkk, #1d3f5e); font-size: 1.2rem; font-weight: 800; }
.pss-modal-limite .modal-body { padding: .25rem 1.25rem 1rem; color: #4f5b69; }
.pss-modal-limite .modal-footer { padding: 0 1.25rem 1.25rem; border-top: 0; }
.pss-limite-aviso { margin-top: .3rem; color: #7a4d00; font-size: .85rem; font-weight: 600; }
.pss-pontos-qualificacao { margin-left: .4rem; color: var(--cs-primaria); font-size: .85rem; font-weight: 800; }

/* Qualificações por grupo (títulos acadêmicos, certificados e habilitações, outras): cabeçalho com ícone e linha, pontos em selo */
.pss-grupo-qualificacoes { --pss-grupo-cor: #2f5d85; --pss-grupo-fundo: #e6eef6; margin-bottom: 1.1rem; }
.pss-grupo-qualificacoes.certificados { --pss-grupo-cor: #b8304f; --pss-grupo-fundo: #fde7ec; }
.pss-grupo-qualificacoes.outras { --pss-grupo-cor: #4f5b69; --pss-grupo-fundo: #edf1f5; }
.pss-grupo-titulo { display: flex; align-items: center; gap: .7rem; margin: 0 0 .75rem; color: var(--pss-grupo-cor); font-size: .8rem; font-weight: 800;
    letter-spacing: .08em; text-transform: uppercase; }
.pss-grupo-titulo::after { content: ""; flex: 1; height: 1px; background: #e3e9f0; }
.pss-grupo-icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: 8px;
    background: var(--pss-grupo-fundo); color: var(--pss-grupo-cor); font-size: 1rem; }
.pss-grupo-qualificacoes .pss-pontos-qualificacao { display: inline-block; padding: .12rem .55rem; border-radius: 999px; background: var(--pss-grupo-cor);
    color: #fff; font-size: .76rem; line-height: 1.4; vertical-align: .1em; white-space: nowrap; }
.pss-grupo-qualificacoes .pss-qualificacao .form-check-label strong { color: var(--c1-dkk, #1d3f5e); }
.pss-documento { margin-bottom: 1rem; padding: .9rem 1rem; border-radius: 10px; background: #f8fafc; }
.pss-documento-nome { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .4rem; }
.pss-campo-arquivo .form-text { margin-top: .25rem; }
.pss-arquivo-retorno { margin-top: .3rem; font-weight: 600; }
[hidden] { display: none !important; }

/* Painel e página da inscrição */
.pss-inscricao-cartao { --pss-inscricao-cor: var(--cs-alerta, #ffd166); display: flex; flex-direction: column; gap: .5rem; padding: 1.15rem 1.25rem; background: #fff;
    border-radius: var(--cs-raio, 14px); box-shadow: var(--cs-sombra-card); border-top: 4px solid var(--pss-inscricao-cor); }
.pss-inscricao-cartao.pss-inscricao-confirmada, .pss-inscricao-cartao.pss-inscricao-aprovada { --pss-inscricao-cor: var(--cs-sucesso, #06d6a0); }
.pss-inscricao-cartao.pss-inscricao-classificada { --pss-inscricao-cor: var(--cs-primaria); }
.pss-inscricao-cartao.pss-inscricao-cancelada, .pss-inscricao-cartao.pss-inscricao-desclassificada { --pss-inscricao-cor: #b8c2cc; }
.pss-inscricao-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; }
.pss-inscricao-cargo { margin: 0; font-size: 1.1rem; font-weight: 800; }
.pss-inscricao-cargo a { color: var(--c1-dkk, #1d3f5e); text-decoration: none; }
.pss-inscricao-processo { margin: 0; color: #5b6878; font-size: .86rem; }
.pss-inscricao-acoes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: .5rem; }
.pss-situacao { padding: 1.1rem 1.3rem; border-radius: var(--cs-raio, 14px); background: #fff; box-shadow: var(--cs-sombra-card); border-left: 5px solid var(--cs-alerta, #ffd166); }
.pss-situacao.pss-inscricao-confirmada, .pss-situacao.pss-inscricao-aprovada { border-left-color: var(--cs-sucesso, #06d6a0); }
.pss-situacao.pss-inscricao-cancelada, .pss-situacao.pss-inscricao-desclassificada { border-left-color: #b8c2cc; }
.pss-situacao.pss-recurso-deferido { border-left-color: var(--cs-sucesso, #06d6a0); }
.pss-situacao.pss-recurso-indeferido { border-left-color: #b8c2cc; }
.pss-resposta { padding: .6rem .8rem; border-radius: 8px; background: #f3f8fd; overflow-wrap: anywhere; }
.pss-observacao { margin: .4rem 0 0; padding: .5rem .75rem; border-radius: 8px; background: #fdeceb; color: #8a1c1c; font-size: .88rem; }
.pss-subtitulo { margin: 1.4rem 0 .6rem; font-size: .82rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #5b6878; }
.pss-itens-arquivo { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.pss-itens-arquivo > li { padding: .85rem 1rem; background: #fff; border-radius: 12px; box-shadow: var(--cs-sombra-card); }
.pss-item-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; }
.pss-item-links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: .35rem; font-size: .9rem; }
.pss-link-arquivo { font-weight: 700; }
.pss-troca { margin-top: .5rem; font-size: .9rem; }
.pss-troca summary { cursor: pointer; color: var(--cs-primaria); font-weight: 700; }
.pss-troca-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem; margin-top: .6rem; }
.pss-troca-form .cs-grupo { min-width: 220px; }

/* Alto contraste (menu de acessibilidade do portal) */
html.a11y-contraste .pss-cartao-form, html.a11y-contraste .pss-inscricao-cartao, html.a11y-contraste .pss-situacao, html.a11y-contraste .pss-itens-arquivo > li,
html.a11y-contraste .pss-menu-candidato, html.a11y-contraste .pss-qualificacao, html.a11y-contraste .pss-documento,
html.a11y-contraste .pss-dado-fixo,html.a11y-contraste .pss-cota, html.a11y-contraste .pss-resumo-pontos, html.a11y-contraste .pss-resumo-linhas > div,
html.a11y-contraste .pss-resumo-total, html.a11y-contraste .pss-cota label, html.a11y-contraste .pss-cota-ajuda, html.a11y-contraste .pss-resumo-linhas dt,
html.a11y-contraste .pss-resumo-linhas dd, html.a11y-contraste .pss-resumo-nota, html.a11y-contraste .pss-grupo-icone,
html.a11y-contraste .pss-grupo-qualificacoes .pss-pontos-qualificacao { background: #000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none; }
html.a11y-contraste .pss-menu-candidato a, html.a11y-contraste .pss-form-titulo, html.a11y-contraste .pss-inscricao-cargo a,
html.a11y-contraste .pss-grupo-titulo { color: #ff0 !important; }
html.a11y-contraste .pss-exibicao { background: #000 !important; border: 1px solid #fff; }
html.a11y-contraste .pss-exibicao-botao { color: #fff !important; }
html.a11y-contraste .pss-exibicao-botao[aria-pressed="true"] { background: #ff0 !important; color: #000 !important; }

html.a11y-contraste .pss-cartao, html.a11y-contraste .pss-cargo, html.a11y-contraste .pss-publicacao, html.a11y-contraste .pss-lateral,
html.a11y-contraste .pss-aviso, html.a11y-contraste .pss-detalhes { background: #000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none; }
html.a11y-contraste .pss-cartao-titulo a, html.a11y-contraste .pss-cargo-nome, html.a11y-contraste .pss-publicacao-titulo, html.a11y-contraste .pss-lateral h2 { color: #ff0 !important; }

/* Visualizador de arquivos dos candidatos (arquivos.js) */
.pss-visualizador .modal-content { overflow: hidden; border: 0; border-radius: 14px; }
.pss-visualizador-corpo { display: flex; align-items: center; justify-content: center; min-height: 50vh; background: #eef2f6; }
.pss-visualizador-quadro { display: block; width: 100%; height: 78vh; border: 0; background: #fff; }
.pss-visualizador-imagem { display: block; max-width: 100%; max-height: 78vh; margin: auto; object-fit: contain; }
.pss-visualizador-aviso { padding: 2.5rem 1.5rem; text-align: center; }
.pss-visualizador-aviso > i { display: block; margin-bottom: .75rem; color: #b8304f; font-size: 2.5rem; }
@media (max-width: 991.98px) { .pss-visualizador-quadro { height: calc(100vh - 62px); } .pss-visualizador-imagem { max-height: calc(100vh - 62px); } }

/* Foto do candidato (Pss::avatar): círculo com a foto ou as iniciais */
.pss-avatar { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; overflow: hidden;
    border-radius: 50%; background: #dfe8f1; color: #2f5d85; font-size: .85rem; font-weight: 800; line-height: 1; vertical-align: middle; }
.pss-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pss-avatar-grande { width: 6.5rem; height: 6.5rem; font-size: 2rem; box-shadow: 0 0 0 4px #fff, 0 4px 14px rgba(15, 35, 60, .15); }
.pss-foto-perfil { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; padding: 1rem 1.1rem; border-radius: 12px; background: #f6f9fc; }
.pss-foto-perfil > .cs-grupo { flex: 1 1 16rem; } /* ao lado da foto; empilha só em tela estreita */
html.a11y-contraste .pss-foto-perfil { background: #000 !important; color: #fff !important; border: 1px solid #fff; }
