
:root {
    --bg: #f5f6f8;
    --card: #ffffff;
    --texto: #1d2433;
    --muted: #667085;
    --borda: #d8dee8;
    --principal: #2a8a4a;
    --principal2: #1a6b32;
    --ok: #e8fff3;
    --erro: #ffecec;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    background: var(--bg);
    color: var(--texto);
    font-size: 18px;
}

.topo {
    background: linear-gradient(135deg, var(--principal), var(--principal2));
    color: white;
    padding: 18px 16px;
}

.header-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    max-width: 1050px;
    margin: 0 auto;
}

.header-brasao, .header-bandeira {
    flex: 0 0 auto;
}

.brasao-img {
    height: 90px;
    width: auto;
    display: block;
}

.bandeira-img {
    height: 70px;
    width: auto;
    display: block;
}

.header-texto {
    flex: 1;
    text-align: center;
}

.topo h1 {
    margin: 6px 0 4px;
    font-size: 30px;
}

.topo p, .municipio {
    margin: 0;
    opacity: .95;
}

@media (max-width: 760px) {
    .header-flex {
        flex-wrap: nowrap;
        gap: 8px;
    }
    .brasao-img { height: 55px; }
    .bandeira-img { display: none; }
    .topo h1 { font-size: 20px; }
    .header-texto { width: auto; }
    .header-bandeira { display: none; }
}

.container {
    max-width: 1050px;
    margin: 24px auto;
    padding: 0 14px;
}

.container.container-admin {
    max-width: 1500px;
    width: calc(100% - 48px);
}

.card {
    background: var(--card);
    border: 1px solid var(--borda);
    border-radius: 18px;
    padding: 24px;
    margin-bottom: 18px;
    box-shadow: 0 8px 20px rgba(0,0,0,.06);
}

.hero {
    text-align: center;
    padding: 34px 24px;
}

.hero h2 {
    font-size: 34px;
    margin-top: 0;
}

.botao {
    display: inline-block;
    border: 0;
    background: var(--principal);
    color: white;
    padding: 12px 20px;
    border-radius: 12px;
    text-decoration: none;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
}

.botao:hover {
    background: var(--principal2);
}

.botao.grande {
    font-size: 22px;
    padding: 16px 26px;
    margin-top: 10px;
}

.botao.secundario {
    background: #475467;
}

.botao.voltar {
    background: #777;
}

.botao.pequeno {
    font-size: 15px;
    padding: 8px 10px;
}

.bloco {
    border-top: 1px solid var(--borda);
    padding-top: 24px;
    margin-top: 24px;
}

.bloco:first-child {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

.ajuda, small {
    color: var(--muted);
}

.passos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 24px;
}

.passos span {
    background: #eef2f6;
    padding: 12px;
    text-align: center;
    border-radius: 12px;
    font-weight: bold;
}

.passos .ativo {
    background: var(--principal);
    color: white;
}

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

label {
    display: block;
    font-weight: bold;
}

input, select, textarea {
    width: 100%;
    padding: 14px;
    border: 2px solid var(--borda);
    border-radius: 12px;
    font-size: 18px;
    margin-top: 6px;
    background: white;
}

input:focus, select:focus, textarea:focus {
    outline: 3px solid rgba(42,138,74,.18);
    border-color: var(--principal);
}

.select-label {
    margin-bottom: 14px;
}

.docs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.doc-card {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
    align-items: center;
    border: 2px solid var(--borda);
    border-radius: 14px;
    padding: 16px;
    background: #fafafa;
}

.doc-card strong {
    display: block;
    font-size: 20px;
}

.doc-card small {
    display: block;
    margin-top: 4px;
}

.aviso {
    background: #fff8e6;
    border: 1px solid #ffd66b;
    padding: 14px;
    border-radius: 12px;
    margin-top: 18px;
}

.aviso.pequeno {
    display: none;
}

.check {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: #e8f5e9;
    padding: 16px;
    border-radius: 12px;
}

.check input {
    width: 24px;
    height: 24px;
    margin-top: 2px;
}

.mensagens {
    margin-bottom: 12px;
}

.msg {
    padding: 12px 14px;
    border-radius: 12px;
    margin-bottom: 8px;
    font-weight: bold;
}

.msg.erro { background: var(--erro); border: 1px solid #ffb4b4; }
.msg.ok { background: var(--ok); border: 1px solid #8ae6b5; }

.protocolo {
    border: 2px dashed var(--principal);
    padding: 18px;
    border-radius: 14px;
    margin: 14px 0;
    background: #e8f5e9;
}

.protocolo strong {
    display: block;
    font-size: 28px;
}

.tabela-wrap {
    overflow-x: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
}

th, td {
    border-bottom: 1px solid var(--borda);
    padding: 10px;
    text-align: left;
}

th {
    background: #f0f3f8;
}

.filtros {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 10px;
    margin: 16px 0;
}

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

.arquivos {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.arquivo {
    display: block;
    border: 1px solid var(--borda);
    border-radius: 12px;
    padding: 12px;
    text-decoration: none;
    color: var(--texto);
    background: #fafafa;
}

.arquivo strong, .arquivo span {
    display: block;
}

.resultado {
    background: #f0f3f8;
    padding: 14px;
    border-radius: 12px;
    margin: 14px 0;
}

.rodape {
    text-align: center;
    color: var(--muted);
    padding: 30px 12px;
}

@media (max-width: 760px) {
    body { font-size: 17px; }
    .topo h1 { font-size: 24px; }
    .grade, .doc-card, .filtros, .arquivos {
        grid-template-columns: 1fr;
    }
    .passos {
        grid-template-columns: 1fr 1fr;
    }
    .linha-topo {
        display: block;
    }
    .container.container-admin { width:auto; }
}

.resultado strong {
    font-size: 20px;
}

.analise {
    margin-top: 14px;
}

.analise label {
    margin-bottom: 14px;
}

.analise select, .analise input, .analise textarea {
    margin-top: 4px;
}

.tabela-wrap table td small {
    opacity: .8;
}

.topo .municipio {
    font-size: 16px;
    font-weight: bold;
    letter-spacing: .5px;
}

/* Painel da comissão */
.muted { color: var(--muted); }
.sobretitulo { color: var(--principal2); font-size: 13px; font-weight: 800; letter-spacing: 1.2px; }
.admin-cabecalho { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }
.admin-cabecalho h2 { margin:4px 0; font-size:32px; }
.admin-cabecalho p { margin:0; color:var(--muted); }
.admin-acoes { display:flex; gap:8px; align-items:center; }
.admin-acoes form { margin:0; }
.menu-relatorios { position:relative; }
.menu-relatorios summary { list-style:none; }
.menu-relatorios div { position:absolute; right:0; top:52px; z-index:5; min-width:190px; background:#fff; border:1px solid var(--borda); border-radius:12px; padding:8px; box-shadow:0 12px 30px rgba(0,0,0,.14); }
.menu-relatorios a { display:block; padding:10px; color:var(--texto); text-decoration:none; border-radius:8px; }
.menu-relatorios a:hover { background:#f0f3f8; }
.configuracao-relatorio { padding:14px 18px; }
.configuracao-relatorio summary { cursor:pointer; font-weight:bold; color:var(--principal2); }
.configuracao-relatorio form { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; margin-top:12px; }
.configuracao-relatorio input { margin-top:5px; }
.indicadores { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:18px; }
.indicador { background:white; border:1px solid var(--borda); border-radius:15px; padding:18px; color:var(--texto); text-decoration:none; }
.indicador strong,.indicador span { display:block; }
.indicador strong { font-size:30px; }
.indicador span { color:var(--muted); font-size:14px; margin-top:4px; }
.indicador.destaque { background:var(--principal2); color:#fff; }
.indicador.destaque span { color:#d7f2df; }
.painel-lista { padding-top:12px; }
.abas { display:flex; gap:6px; border-bottom:1px solid var(--borda); margin:0 -8px 16px; padding:0 8px; }
.abas a { padding:14px 18px; text-decoration:none; color:var(--muted); font-weight:bold; border-bottom:3px solid transparent; }
.abas a.ativa { color:var(--principal2); border-color:var(--principal); }
.filtros-admin { display:grid; grid-template-columns:1.3fr 1fr auto; gap:10px; margin-bottom:16px; }
.filtros-admin input,.filtros-admin select { margin-top:0; }
.tabela-admin td { vertical-align:middle; padding:14px 10px; }
.tabela-admin th,.tabela-admin td,.tabela-admin td small,.tabela-admin .status { white-space:nowrap; }
.tabela-admin tbody tr:hover { background:#f8faf9; }
.acoes-tabela { display:flex; gap:6px; flex-wrap:nowrap; align-items:center; min-width:135px; white-space:nowrap; }
.botao-icone { width:36px; height:36px; padding:0!important; display:inline-grid; place-items:center; font-size:18px!important; }
.status { display:inline-block; padding:6px 10px; border-radius:999px; background:#edf1f5; font-size:13px; font-weight:bold; }
.status-deferida { color:#176b3a; background:#dff7e9; }
.status-indeferida,.status-desclassificada { color:#a12a2a; background:#ffe6e6; }
.status-aguardando-analise { color:#805d00; background:#fff1c7; }
.vazio { text-align:center; padding:35px!important; color:var(--muted); }
.analise-topo { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.voltar-link,.link-dossie { color:var(--principal2); font-weight:bold; text-decoration:none; }
.candidato-resumo h2 { margin:4px 0; }
.candidato-resumo p { margin:4px 0 16px; }
.dados-compactos { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.dados-compactos span { background:#f5f7f8; border-radius:10px; padding:10px; font-size:15px; overflow-wrap:anywhere; }
.dados-compactos small { display:block; font-size:11px; text-transform:uppercase; margin-bottom:3px; }
.outro-cargo { margin-top:14px; padding:10px; background:#eef6ff; border-radius:10px; font-size:14px; }
.etapa-analise { display:grid; grid-template-columns:46px 1fr; gap:14px; }
.etapa-numero { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--principal2); color:#fff; font-weight:bold; font-size:20px; }
.etapa-conteudo h3 { margin:6px 0 2px; font-size:24px; }
.documentos-grade { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:16px 0; }
.documento-link { border:1px solid var(--borda); border-radius:12px; padding:12px; color:var(--texto); text-decoration:none; background:#fafbfc; }
.documento-link strong,.documento-link small,.documento-link span { display:block; }
.documento-link span { color:var(--principal2); font-size:13px; font-weight:bold; margin-top:8px; }
.checklist { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:18px; }
.check-item { display:flex; align-items:flex-start; gap:9px; border:1px solid var(--borda); border-radius:10px; padding:12px; font-weight:normal; background:#fff; }
.check-item input { width:20px; height:20px; margin:0; flex:0 0 auto; }
.check-item.importante { border-color:#e5b843; background:#fff9e8; }
.declarado { background:#eef6ff; border-radius:10px; padding:12px; margin:14px 0; }
.nota-box { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; background:#edf5ef; border:1px solid #c7dfcd; border-radius:14px; padding:12px; margin-top:14px; }
.nota-box span { text-align:center; padding:8px; }
.nota-box small,.nota-box strong { display:block; }
.nota-box strong { font-size:25px; }
.nota-box .nota-final { background:#fff; border-radius:10px; color:var(--principal2); }
.decisoes { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:16px 0; }
.decisao { position:relative; }
.decisao input { position:absolute; opacity:0; }
.decisao span { display:block; text-align:center; border:2px solid var(--borda); padding:14px 8px; border-radius:10px; font-size:14px; }
.decisao input:checked + span { border-color:var(--principal); background:#e8f5e9; color:var(--principal2); }
.decisao-3 input:checked + span,.decisao-4 input:checked + span { border-color:#d45656; background:#fff0f0; color:#962d2d; }
.botoes-final { display:flex; gap:10px; align-items:center; margin-top:12px; }
.historico summary { cursor:pointer; font-weight:bold; }
.classificacao-titulo { display:flex; justify-content:space-between; align-items:center; }
.classificacao-titulo h3 { margin:0; }
.alerta-sorteio { display:inline-block; background:#fff1c7; color:#775600; border-radius:8px; padding:6px 8px; font-weight:bold; font-size:12px; }
.fundamentacao,.resultado-recurso { white-space:pre-wrap; background:#f5f7f8; border:1px solid var(--borda); border-radius:12px; padding:16px; margin:12px 0; line-height:1.5; }

@media (max-width: 760px) {
    .admin-cabecalho,.admin-acoes,.botoes-final { align-items:stretch; flex-direction:column; }
    .indicadores { grid-template-columns:1fr 1fr; }
    .indicadores .indicador:last-child { grid-column:1/-1; }
    .filtros-admin,.dados-compactos,.documentos-grade,.checklist,.decisoes,.configuracao-relatorio form { grid-template-columns:1fr; }
    .etapa-analise { grid-template-columns:1fr; }
    .etapa-numero { width:34px; height:34px; }
}
