:root{
  --bg:#f3f5f8; --surface:#fff; --surface-2:#f8fafc; --ink:#0f1b2d; --ink-2:#475467; --muted:#6f7b8e;
  --line:#e4e8ee; --line-2:#d0d7e1;
  --side:#0d1a2b; --side-2:#16273c; --side-ink:#a9b6c8; --side-ink-2:#eef3f9;
  --prim:#0f7b57; --prim-2:#0a6446; --prim-soft:#e5f3ec; --prim-ring:#8fd3b6;
  --s1:#2a78d6; --s2:#eb6834; --grade:#e8ebf0; --base:#c3c9d2;
  --atacar:#0f6e4e; --atacar-bg:#e3f3eb; --estudar:#8a5500; --estudar-bg:#fcf0d9; --nao:#9b2c2c; --nao-bg:#f9e5e5;
  --aviso:#8a4b00; --aviso-bg:#fff3dc; --perigo:#a32b2b; --perigo-bg:#fde8e8; --azul:#1d5fb8; --azul-bg:#e6f0fc;
  --raio:14px; --raio-sm:10px;
  --sombra:0 1px 2px rgba(13,26,43,.05),0 6px 20px rgba(13,26,43,.05);
  --fonte:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font-family:var(--fonte);font-size:14.5px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
body.travado{overflow:hidden}
a{color:var(--azul)}
button,input,select,textarea{font:inherit;color:inherit}
h2,h3,h4,h5{letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--prim-ring);outline-offset:2px}
.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.sub{color:var(--ink-2);margin:0}
.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}

/* ---------- estrutura ---------- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.lateral{position:sticky;top:0;height:100vh;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;padding:18px 14px;gap:14px;z-index:30}
.marca{display:flex;align-items:center;gap:10px;padding:4px 8px 10px;color:#fff;text-decoration:none}
.marca svg{width:34px;height:34px}
.marca b{display:block;font-size:16px;line-height:1.1}
.marca small{display:block;color:var(--side-ink);font-size:12px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-titulo{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7d8ca1;margin:14px 12px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--side-ink);text-decoration:none;font-weight:500}
.nav-item:hover{background:var(--side-2);color:var(--side-ink-2)}
.nav-item.ativo{background:rgba(35,168,115,.16);color:#fff}
.nav-item.ativo .ic{color:#4cd69b}
.lateral-rodape{margin-top:auto;font-size:12.5px;line-height:1.4;padding:10px 12px;border-radius:10px;background:var(--side-2);display:flex;gap:9px;align-items:flex-start}
.ponto-status{width:8px;height:8px;border-radius:50%;background:#7d8ca1;margin-top:5px;flex:none}
.ponto-status.on{background:#34c38f;box-shadow:0 0 0 3px rgba(52,195,143,.22)}
.fundo-menu{display:none}
.principal{min-width:0;display:flex;flex-direction:column}
.barra-superior{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:12px 28px;background:rgba(243,245,248,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.barra-superior h1{font-size:19px;margin:0;flex:1;min-width:0;overflow-wrap:anywhere}
.barra-superior .btn-menu{display:none}
.seletor-empresa{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:2px 4px 2px 10px;max-width:300px;min-width:0}
.seletor-icone{display:flex;color:var(--muted)}
.seletor-empresa select{border:0;background:transparent;padding:7px 4px;font-weight:600;min-width:0;max-width:230px;cursor:pointer}
main{padding:22px 28px 64px;max-width:1320px;width:100%;margin:0 auto}
.carregando{display:flex;align-items:center;gap:10px;color:var(--ink-2);padding:40px 4px}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--prim);animation:gira .8s linear infinite;flex:none;display:inline-block}
@keyframes gira{to{transform:rotate(360deg)}}

/* ---------- componentes ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--raio);box-shadow:var(--sombra);padding:18px 20px}
.card + .card,.card + .grade-2,.grade-2 + .card,.grade-2 + .grade-2,.kpis + .grade-2,.kpis + .card{margin-top:16px}
.kpis > .card,.grade-2 > .card,.grade-empresa > .card{margin-top:0}
.card-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.card-cab h3{margin:0;font-size:15px;display:flex;align-items:center;gap:8px}
.card-cab h3 .ic{color:var(--muted)}
.link{font-size:13px;font-weight:600;text-decoration:none;color:var(--prim)}
.grade-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grade-2.larga{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.grade-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grade-3 > .card{margin-top:0}
.card + .grade-3,.grade-3 + .card,.grade-3 + .grade-2,.grade-2 + .grade-3{margin-top:16px}
.pagina-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:600;font-size:14px;line-height:1.3;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.btn:hover{background:var(--surface-2);border-color:#bcc5d1}
.btn.prim{background:var(--prim);border-color:var(--prim);color:#fff}
.btn.prim:hover{background:var(--prim-2);border-color:var(--prim-2)}
.btn.fantasma{border-color:transparent;background:transparent;color:var(--ink-2)}
.btn.fantasma:hover{background:#e9edf2}
.btn.perigo{color:var(--perigo);border-color:#efc9c9}
.btn.perigo:hover{background:var(--perigo-bg)}
.btn.confirmando{background:var(--perigo);border-color:var(--perigo);color:#fff}
.btn.mini{padding:5px 10px;font-size:13px;border-radius:8px}
.btn.grande{padding:10px 18px}
.btn.icone{padding:7px;border-radius:9px}
.btn.icone .ic{width:17px;height:17px}
.btn:disabled,.btn.desativado{opacity:.55;cursor:not-allowed}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:#eef1f5;color:var(--ink-2);white-space:nowrap}
.badge .ic{width:13px;height:13px}
.badge.atacar,.badge.verde{background:var(--atacar-bg);color:var(--atacar)}
.badge.estudar,.badge.aviso{background:var(--aviso-bg);color:var(--aviso)}
.badge.nao,.badge.perigo{background:var(--perigo-bg);color:var(--perigo)}
.badge.azul{background:var(--azul-bg);color:var(--azul)}
.vazio{color:var(--muted);font-size:13.5px;padding:14px 2px;margin:0}
.vazio-grande{text-align:center;padding:36px 20px;color:var(--ink-2)}
.vazio-grande .ic{width:34px;height:34px;color:var(--muted)}
.vazio-grande h2{margin:10px 0 4px;font-size:18px;color:var(--ink)}
.banner{display:flex;gap:10px;align-items:center;background:var(--azul-bg);border:1px solid #cddff6;color:#17427d;padding:10px 14px;border-radius:var(--raio-sm);margin-bottom:16px}
.aviso-faixa{display:flex;gap:9px;align-items:flex-start;background:var(--aviso-bg);border:1px solid #f3d9a8;color:#6d3d00;padding:10px 14px;border-radius:var(--raio-sm);margin-bottom:14px;font-size:13.5px}
.aviso-faixa .ic{margin-top:1px}

/* campos */
.campo{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink-2);min-width:0}
.campo small{font-weight:400;color:var(--muted);font-size:12px}
.campo-rotulo{font-size:13px;font-weight:600;color:var(--ink-2)}
.campo input:not([type=checkbox]):not([type=radio]),.campo select,.campo textarea{width:100%;padding:9px 11px;border:1px solid var(--line-2);border-radius:9px;background:#fff;color:var(--ink);font-weight:400;font-size:14px}
.campo textarea{resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--prim);box-shadow:0 0 0 3px rgba(15,123,87,.15)}
.campo.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;align-self:end;padding-bottom:9px}
.campo .campo.check{align-self:flex-start}
.campo.largo,.largo{grid-column:1/-1}
.form-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.segmentado{display:inline-flex;background:#eef1f5;border-radius:10px;padding:3px;gap:2px}
.segmentado button,.segmentado label{border:0;background:transparent;padding:5px 12px;border-radius:8px;font-weight:600;font-size:13px;color:var(--ink-2);cursor:pointer;display:flex;align-items:center;gap:6px}
.segmentado .ativo,.segmentado label:has(input:checked){background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(13,26,43,.12)}
.segmentado input{position:absolute;opacity:0;pointer-events:none}
.multi{position:relative}
.multi summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid var(--line-2);border-radius:9px;background:#fff;cursor:pointer;font-weight:400;color:var(--ink);font-size:14px;min-width:150px}
.multi summary::-webkit-details-marker{display:none}
.multi summary span{overflow-wrap:anywhere}
.multi[open] summary{border-color:var(--prim);box-shadow:0 0 0 3px rgba(15,123,87,.15)}
.multi-lista{position:absolute;z-index:15;top:calc(100% + 6px);left:0;min-width:100%;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(13,26,43,.14);padding:6px;display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:2px}
.multi[data-multi=portais] .multi-lista{grid-template-columns:1fr;min-width:240px}
.multi-op{display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:7px;font-weight:500;color:var(--ink);cursor:pointer;white-space:nowrap}
.multi-op:hover{background:var(--surface-2)}

/* ---------- início ---------- */
.hero{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(135deg,#0f2239 0%,#123a36 100%);color:#fff;border:0;padding:24px 26px}
.hero .eyebrow{color:#9fd9bf}
.hero h2{margin:0 0 4px;font-size:22px}
.hero .sub{color:#c9d6e3}
.hero .btn.sec{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
.hero .btn.sec:hover{background:rgba(255,255,255,.18)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}
.kpis:first-child{margin-top:0}
.kpi{display:flex;flex-direction:column;gap:2px;padding:16px 18px}
.kpi-rotulo{font-size:13px;color:var(--ink-2);font-weight:500}
.kpi-valor{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.25}
.kpi-sub{font-size:12.5px;color:var(--muted)}
.lista-linhas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.lista-linhas li + li{border-top:1px solid var(--line)}
.linha-link{display:flex;align-items:center;gap:12px;padding:10px 4px;text-decoration:none;color:inherit;border-radius:8px}
.linha-link:hover{background:var(--surface-2)}
.linha-texto{display:flex;flex-direction:column;min-width:0}
.linha-texto b{font-weight:600;font-size:14px;overflow-wrap:anywhere}
.linha-texto small{color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.data-bloco{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px;padding:4px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);line-height:1.1}
.data-bloco b{font-size:17px}
.data-bloco small{font-size:11px;color:var(--muted);text-transform:uppercase}
.data-bloco.prazo{background:var(--aviso-bg);border-color:#f3d9a8}
.funil{display:flex;flex-direction:column;gap:10px}
.funil-linha{display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;font-size:13.5px;border-radius:6px}
.funil-rotulo{color:var(--ink-2)}
.funil-trilho{height:14px;display:flex;align-items:center}
.funil-barra{display:block;height:14px;background:var(--s1);border-radius:0 4px 4px 0;min-width:0}
.funil-linha:hover .funil-barra,.funil-linha:focus .funil-barra{filter:brightness(1.12)}
.funil-valor{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.monitor-lista{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}

/* ---------- busca ---------- */
.filtros{padding:16px 18px}
.filtros-linha{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:12px;align-items:start}
.botao-campo{padding-top:23px}
.avancado{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.avancado > summary{cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--prim);list-style:none;padding:4px 0}
.avancado > summary::-webkit-details-marker{display:none}
.grade-filtros{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:12px 0 4px}
.controle-rapido{display:flex;align-items:end;gap:8px;margin:12px 2px 0;flex-wrap:wrap}
.controle-rapido label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);font-weight:500;flex-wrap:wrap}
.controle-rapido input{padding:6px 10px;border:1px solid var(--line-2);border-radius:8px;width:290px;max-width:100%;font-size:13.5px}
.status-busca{display:flex;align-items:center;gap:9px;margin:18px 2px 6px;color:var(--ink-2)}
.status-busca b{color:var(--ink)}
.avisos{font-size:12.5px;color:var(--aviso);margin:0 2px 8px}
.contagem{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}
.chip-rec{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink)}
.chip-rec i{width:8px;height:8px;border-radius:50%}
.chip-rec.atacar i{background:var(--atacar)}.chip-rec.estudar i{background:#c98500}.chip-rec.nao i{background:var(--nao)}
.chip-rec.sel{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
#resultados{transition:opacity .2s}
#resultados.recarregando{opacity:.5}
.op{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:12px;padding:16px 18px}
.op-nota{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;padding:10px 4px;text-align:center;min-height:74px}
.op-nota strong{font-size:24px;line-height:1;font-weight:700}
.op-nota span{font-size:10.5px;font-weight:700;letter-spacing:.03em;margin-top:5px}
.atacar.op-nota,.nota-bloco.atacar{background:var(--atacar-bg);color:var(--atacar)}
.estudar.op-nota,.nota-bloco.estudar{background:var(--estudar-bg);color:var(--estudar)}
.nao.op-nota,.nota-bloco.nao{background:var(--nao-bg);color:var(--nao)}
.op-corpo{min-width:0}
.op-topo{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}
.op-titulo{margin:0 0 4px;font-size:15.5px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.op-titulo a{color:inherit;text-decoration:none}
.op-titulo a:hover{color:var(--prim);text-decoration:underline}
.op-orgao{display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:var(--ink-2);margin:0 0 8px;font-size:13.5px;overflow-wrap:anywhere}
.op-orgao .ic{width:15px;height:15px;color:var(--muted)}
.op-dados{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;margin:0 0 6px}
.op-dados dt{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.op-dados dd{margin:0;font-size:13.5px;overflow-wrap:anywhere}
.op-dados dd small{color:var(--muted)}
.op-dados dd.urgente{color:var(--perigo);font-weight:600}
.op-acoes{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:150px}
.motivos summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2)}
.motivos summary .muted{font-weight:400}
.motivos ul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.motivos li{margin:2px 0}
.motivos li.risco{color:var(--aviso)}

/* ---------- edital ---------- */
.migalha{margin-bottom:12px}
.migalha a{display:inline-flex;align-items:center;gap:4px;text-decoration:none;font-weight:600;color:var(--ink-2)}
.edital-cab{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}
.edital-titulo h2{margin:2px 0 8px;font-size:20px;line-height:1.35;overflow-wrap:anywhere}
.edital-lateral{display:flex;flex-direction:column;gap:10px}
.valor-destaque{background:var(--prim);color:#fff;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}
.valor-destaque span{font-size:12.5px;opacity:.85}
.valor-destaque strong{font-size:22px;letter-spacing:-.02em}
.valor-destaque small{opacity:.85}
.nota-bloco{display:flex;align-items:center;gap:12px;border-radius:12px;padding:10px 14px}
.nota-bloco strong{font-size:28px;line-height:1}
.nota-bloco b{display:block;font-size:13px}
.nota-bloco small{font-size:12px;opacity:.9}
.info-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 20px;margin:0}
.info-grade dt{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.info-grade dd{margin:1px 0 0;overflow-wrap:anywhere}
.info-extra{margin:14px 0 0;color:var(--ink-2);font-size:13.5px}
.abas-int{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px -4px 14px;overflow-x:auto}
.aba-int{border:0;background:transparent;padding:9px 12px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.aba-int:hover{color:var(--ink)}
.aba-int.ativa{color:var(--prim);border-bottom-color:var(--prim)}
.tabela-wrap{overflow-x:auto}
.tabela{width:100%;border-collapse:collapse;font-size:13.5px}
.tabela th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tabela td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tabela tr:last-child td{border-bottom:0}
.tabela .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tabela .desc{min-width:260px}
.acoes-linha{display:flex;gap:6px;justify-content:flex-end;align-items:center;white-space:nowrap}
.arquivos{list-style:none;margin:0;padding:0}
.arquivos li{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}
.arquivos li:last-child{border-bottom:0}
.arquivos .ic{color:var(--muted)}
.arquivo-info{flex:1;min-width:0;display:flex;flex-direction:column}
.arquivo-info small{color:var(--muted)}
.linha-tempo{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.linha-tempo li{position:relative;padding:0 0 14px 14px}
.linha-tempo li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--prim)}
.linha-tempo small{color:var(--muted);display:block}
.analise-vazia{display:flex;gap:16px;align-items:flex-start;padding:8px 2px}
.analise-vazia > .ic{width:32px;height:32px;color:var(--prim)}
.analise-vazia h4{margin:0 0 4px;font-size:16px}
.analise-vazia p{margin:0 0 8px;color:var(--ink-2);max-width:70ch}
.analise-topo{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.medidor{min-width:220px;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px}
.medidor span{font-size:13px;color:var(--ink-2)}
.medidor strong{font-size:22px}
.medidor-trilho{grid-column:1/-1;height:8px;border-radius:4px;background:#eceff3;overflow:hidden}
.medidor-trilho span{display:block;height:100%;border-radius:4px}
.medidor-trilho .baixo{background:#0ca30c}.medidor-trilho .medio{background:#fab219}.medidor-trilho .alto{background:#d03b3b}
.analise-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--ink-2);font-size:13px}
.analise-meta p{margin:0}
.bloco-titulo{margin:18px 0 8px;font-size:14px}
.achados{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.achado-cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.achado-cab small{color:var(--muted)}
blockquote{margin:6px 0 0;padding:8px 12px;border-left:3px solid var(--line-2);background:var(--surface-2);border-radius:0 8px 8px 0;font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
blockquote small{display:block;color:var(--muted);margin-bottom:2px}
.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.check-grupo{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.check-grupo h5{margin:0 0 8px;font-size:13px;color:var(--ink-2)}
.check-grupo ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.check-grupo li.sim summary{cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:500}
.check-grupo li.sim .ic{color:var(--prim)}
.check-grupo li.nao > span{display:flex;align-items:center;gap:6px;color:var(--muted)}
.check-grupo small{color:var(--muted);font-weight:400}
.arquivos-lidos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.arquivos-lidos li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.arquivos-lidos .ic{color:var(--muted)}
.arquivos-lidos small{color:var(--muted)}
.aviso-legal{font-size:12.5px;margin-top:16px}

/* ---------- quadro ---------- */
.faixa-alertas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;color:var(--aviso);font-weight:600;font-size:13px}
.chip-alerta{border:1px solid #f0d49c;background:var(--aviso-bg);color:#6d3d00;border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer;font-weight:500}
.kanban-wrap{overflow-x:auto;padding-bottom:12px;margin:0 -4px}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:12px;padding:0 4px;min-width:min-content}
.coluna{background:#e9edf2;border-radius:var(--raio);padding:10px;min-height:260px;transition:background .15s}
.coluna.soltar{background:#dcefe6;outline:2px dashed var(--prim);outline-offset:-4px}
.coluna > header{display:flex;align-items:center;justify-content:space-between;margin:2px 4px 10px}
.coluna h3{margin:0;font-size:13.5px}
.contador{font-size:12px;font-weight:600;color:var(--ink-2);background:#fff;border-radius:999px;padding:0 8px}
.coluna-vazia{color:var(--muted);font-size:12.5px;text-align:center;margin:18px 0}
.kcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(13,26,43,.05);cursor:grab}
.kcard.arrastando{opacity:.5}
.kcard-topo{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.kcard h4{margin:0 0 4px;font-size:13.5px;line-height:1.35}
.kcard-titulo{border:0;background:none;padding:0;text-align:left;font-weight:600;cursor:pointer;color:var(--ink);overflow-wrap:anywhere}
.kcard-titulo:hover{color:var(--prim)}
.kcard-meta{margin:0;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.kcard-acoes{display:flex;justify-content:space-between;align-items:center;margin-top:8px}

/* ---------- gaveta ---------- */
.gaveta{position:fixed;inset:0;z-index:50}
.gaveta-fundo{position:absolute;inset:0;background:rgba(9,17,29,.45)}
.gaveta-painel{position:absolute;top:0;right:0;height:100%;width:min(820px,100%);background:#fff;overflow-y:auto;padding:22px 26px 44px;box-shadow:-10px 0 40px rgba(9,17,29,.2)}
.gaveta-painel.estreita{width:min(480px,100%)}
.gaveta-painel .fechar{position:sticky;top:0;float:right;z-index:2;background:#fff}
.gaveta-painel h2{font-size:19px;margin:2px 44px 8px 0;line-height:1.35;overflow-wrap:anywhere}
.gaveta-secao{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}
.gaveta-secao > h3{margin:0 0 4px;font-size:16px;display:flex;align-items:center;gap:8px}
.ajuda{color:var(--muted);font-size:13px;margin:4px 0 10px}
.params{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:10px}
table.itens td input{width:100%;min-width:90px;padding:6px 8px;border:1px solid var(--line-2);border-radius:7px}
table.itens td.desc input{min-width:220px}
tr.ruim td{background:#fdf0f0}
tr.atencao td{background:#fff7e8}
.kpis-calc{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:14px 0 8px}
.kpi-calc{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.kpi-calc span{display:block;font-size:12px;color:var(--muted)}
.kpi-calc b{font-size:16px}
.kpi-calc.destaque{border-color:var(--prim);background:var(--prim-soft)}
.msg-erro{color:var(--perigo);font-weight:600}
.msg-aviso{color:var(--aviso);font-weight:600}
.msg-ok{color:var(--prim);font-weight:600}
.plano{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.plano-passo{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column}
.plano-passo span{font-size:12.5px;color:var(--ink-2);font-weight:600}
.plano-passo strong{font-size:18px}
.plano-passo small{color:var(--muted);font-size:12px}
.plano-passo.limite{border-color:#efc9c9;background:#fff8f8}

/* ---------- agenda ---------- */
.mes-nav{display:flex;align-items:center;gap:8px}
.mes-titulo{margin:0 6px;font-size:18px;min-width:150px;text-align:center}
.legenda-agenda{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);margin-right:6px}
.ponto{display:inline-block;width:9px;height:9px;border-radius:3px;margin-left:6px}
.ponto.prazo{background:#f3b54a}.ponto.compromisso{background:var(--prim)}
.calendario{padding:0;overflow:hidden}
.cal-semana,.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-semana span{padding:8px 10px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--line);background:var(--surface-2)}
.dia{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.dia:nth-child(7n){border-right:0}
.dia.fora{background:#fafbfc}
.dia-num{align-self:flex-start;border:0;background:transparent;font-weight:600;font-size:13px;width:26px;height:26px;border-radius:50%;cursor:pointer;color:var(--ink-2)}
.dia-num:hover{background:#eef1f5}
.dia.hoje .dia-num{background:var(--prim);color:#fff}
.chip-dia{display:block;width:100%;text-align:left;border:0;border-radius:6px;padding:2px 6px;font-size:11.5px;cursor:pointer;overflow-wrap:anywhere;line-height:1.3}
.chip-dia.prazo{background:var(--aviso-bg);color:#6d3d00}
.chip-dia.compromisso{background:var(--prim-soft);color:#0b5a40}
.chip-dia.feito{text-decoration:line-through;opacity:.7}
.dia-mais{font-size:11.5px;color:var(--muted);padding-left:6px}

/* ---------- financeiro e gráficos ---------- */
.viz{--altura:190px}
.legenda{display:flex;gap:16px;font-size:13px;color:var(--ink-2);margin-bottom:10px}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:3px;display:inline-block}
.sw.s1,.barra.s1{background:var(--s1)}
.sw.s2,.barra.s2{background:var(--s2)}
.grafico-barras{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.eixo-y{height:var(--altura);display:flex;flex-direction:column;justify-content:space-between;font-size:11.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;transform:translateY(-.5em)}
.colunas{position:relative;height:var(--altura);display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));align-items:end;border-bottom:1px solid var(--base)}
.linha-grade{position:absolute;left:0;right:0;height:1px;background:var(--grade)}
.par{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:2px;height:100%}
.barra{display:block;width:min(24px,38%);border-radius:4px 4px 0 0;cursor:default}
.barra:hover,.barra:focus{filter:brightness(1.12)}
.barra:focus{outline:2px solid var(--ink);outline-offset:1px}
.rotulos-x{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));font-size:12px;color:var(--muted);text-align:center;margin-top:6px;text-transform:capitalize}
.tabela-viz{margin-top:10px}
.tabela-viz summary{cursor:pointer;font-size:12.5px;color:var(--ink-2);font-weight:600}
.mini-resumo{margin:0;display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:14px}
.mini-resumo dt{color:var(--ink-2)}
.mini-resumo dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.valor-entrada::before{content:"+ "}
.valor-saida::before{content:"− "}

/* ---------- empresa ---------- */
.grade-empresa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px;margin-bottom:16px}
.lista-empresas{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}
.lista-empresas li{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.lista-empresas li.ativa{border-color:var(--prim);background:var(--prim-soft)}
.lista-empresas li div:first-child{display:flex;flex-direction:column;min-width:0}
.lista-empresas small{color:var(--muted)}
.lista-explica{margin:0;padding-left:18px;color:var(--ink-2);font-size:13.5px;display:flex;flex-direction:column;gap:8px}

/* ---------- base nacional, IA e alertas ---------- */
.sino{position:relative;color:var(--ink-2)}
.contador-sino{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--perigo);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
.ufs-grade{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin:10px 0}
.uf-chip{display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;padding:4px 0;border-radius:6px;background:#eef1f5;color:var(--muted);font-style:normal}
.uf-chip.fresca{background:var(--atacar-bg);color:var(--atacar)}
.uf-chip.antiga{background:var(--aviso-bg);color:var(--aviso)}
.uf-chip.prioritaria{text-decoration:underline;text-underline-offset:2px}
.uf-chip.coletando{box-shadow:inset 0 0 0 2px var(--prim);animation:pulsa 1.4s ease-in-out infinite}
@keyframes pulsa{50%{opacity:.55}}
.legenda-ufs{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin:0 0 6px}
.legenda-ufs span{display:inline-flex;align-items:center;gap:5px}
.legenda-ufs .uf-chip{display:inline-block;width:10px;height:10px;padding:0;border-radius:3px}
.ia-bloco{border:1px solid #cfe2f7;background:linear-gradient(180deg,#f4f8ff 0,#fff 160px);border-radius:12px;padding:14px 16px;margin-bottom:20px}
.ia-cab{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.ia-cab h4{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}
.ia-cab .eyebrow{display:flex;align-items:center;gap:5px;color:var(--azul)}
.ia-cab .eyebrow .ic{width:14px;height:14px}
.ia-resumo{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink-2)}
.ia-sub{display:flex;align-items:center;gap:6px;margin:14px 0 8px;font-size:13.5px}
.ia-sub .ic{width:15px;height:15px;color:var(--muted)}
.medidor.pequeno{min-width:180px}
.notificacoes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.notificacoes li{padding:12px 6px;border-bottom:1px solid var(--line)}
.notificacoes li:last-child{border-bottom:0}
.notificacoes li.nao-lida{background:linear-gradient(90deg,var(--azul-bg),transparent 70%);border-radius:8px;padding-left:12px}
.notif-cab{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.notif-cab small{color:var(--muted)}
.notif-texto{margin:4px 0 6px;white-space:pre-line;color:var(--ink-2);font-size:13.5px;overflow-wrap:anywhere}
.notif-rodape{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12.5px}
.config-servidor{margin-top:16px}
.config-servidor summary{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:8px}
.codigo{background:var(--side);color:#d6e2f0;border-radius:10px;padding:12px 14px;overflow-x:auto;font-size:12.5px;margin:10px 0}
@media (max-width:560px){.ufs-grade{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* ---------- itens, preços, fornecedores e prefeituras ---------- */
.tabela-wrap{position:relative}
.card-detalhes{margin:4px 0 8px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}
.card-detalhes.vazio-det{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}
.itens-mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.itens-mini > li + li{border-top:1px solid var(--line);padding-top:10px}
.mini-desc{margin:0 0 6px;font-size:13px;overflow-wrap:anywhere}
.mini-desc b{font-weight:600}
.mini-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}
.mini-grade > div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 9px;display:flex;flex-direction:column;min-width:0}
.mini-grade span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}
.mini-grade b{font-size:14px;overflow-wrap:anywhere}
.mini-grade small{font-size:11.5px;color:var(--ink-2);overflow-wrap:anywhere}
.mini-grade .proposta{background:var(--prim-soft);border-color:#bfe3d1}
.tabela td small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.det-rodape{margin:0;font-size:12.5px;color:var(--ink-2)}
.docs-card{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.docs-titulo{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-right:4px}
.docs-titulo .ic{width:15px;height:15px}
.chip-doc{display:inline-block;font-size:12px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 9px;margin:2px 4px 2px 0;color:var(--ink-2)}
.btn-link{border:0;background:none;color:var(--azul);font:inherit;padding:0;cursor:pointer;text-decoration:underline}
.itens-enriquecidos{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.item-enr{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.item-enr header{display:flex;gap:10px;align-items:flex-start}
.item-enr header b{display:block;font-weight:600;overflow-wrap:anywhere}
.item-enr header small{color:var(--muted)}
.item-num{flex:none;min-width:28px;height:28px;border-radius:8px;background:#eef1f5;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;color:var(--ink-2)}
.item-grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.item-grade > div{background:var(--surface-2);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:1px;min-width:0}
.item-grade .rotulo{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}
.item-grade b{font-size:15px;overflow-wrap:anywhere}
.item-grade small{font-size:12px;color:var(--ink-2);overflow-wrap:anywhere}
.item-grade > div:last-child{background:var(--prim-soft)}
.marcas{margin:8px 0 0;font-size:12.5px;color:var(--ink-2)}
.compras{margin-top:8px}
.compras summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--prim)}
.filtro-lista{padding:7px 10px;border:1px solid var(--line-2);border-radius:9px;min-width:200px}
.filtros-inline{display:flex;gap:6px;flex-wrap:wrap}
.filtros-inline select,.filtros-inline input{padding:6px 9px;border:1px solid var(--line-2);border-radius:8px;font-size:13.5px}
.portais{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.portais > li{border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.portal-cab{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.portal-cab small{display:block;color:var(--muted);overflow-wrap:anywhere}
.avisos-portal{margin:8px 0 0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:4px}
@media (max-width:900px){.item-grade{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- dica e toast ---------- */
.dica{position:fixed;z-index:70;pointer-events:none;background:var(--ink);color:#fff;font-size:12.5px;font-weight:600;padding:6px 9px;border-radius:8px;max-width:260px;box-shadow:0 6px 18px rgba(9,17,29,.25)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);background:var(--ink);color:#fff;padding:11px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:80;max-width:calc(100% - 32px);font-weight:500;box-shadow:0 10px 30px rgba(9,17,29,.25)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.erro{background:var(--perigo)}

/* ---------- responsivo ---------- */
@media (max-width:1100px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .op{grid-template-columns:66px minmax(0,1fr)}
  .op-acoes{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;min-width:0}
  .op-dados{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edital-cab{grid-template-columns:1fr}
  .grade-empresa{grid-template-columns:1fr}
}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .lateral{position:fixed;left:0;top:0;width:260px;transform:translateX(-100%);transition:transform .2s}
  body.menu-aberto .lateral{transform:none}
  body.menu-aberto .fundo-menu{display:block;position:fixed;inset:0;background:rgba(9,17,29,.45);z-index:25}
  .barra-superior .btn-menu{display:inline-flex}
  .barra-superior{padding:10px 16px}
  main{padding:16px 16px 56px}
  .grade-2,.grade-2.larga,.grade-3{grid-template-columns:1fr}
  .filtros-linha{grid-template-columns:1fr}
  .botao-campo{padding-top:0}
  .botao-campo .btn{width:100%}
  .plano{grid-template-columns:1fr}
  .dia{min-height:70px;padding:3px}
  .chip-dia{font-size:0;height:6px;padding:0}
}
@media (max-width:560px){
  .kpis{grid-template-columns:1fr}
  .seletor-empresa{max-width:150px}
  .seletor-empresa select{max-width:110px}
  .op{grid-template-columns:1fr}
  .op-nota{flex-direction:row;gap:8px;min-height:0;justify-content:flex-start;padding:6px 10px}
  .op-nota span{margin-top:0}
  .op-dados{grid-template-columns:1fr}
  .gaveta-painel{padding:18px 16px 40px}
  .mes-titulo{min-width:0;font-size:16px}
}
