/* Catálogo de apoios — acrescenta ao core.css, com a mesma linguagem. */

.cabeca{padding-top:clamp(116px,14vh,180px);padding-bottom:clamp(36px,4vw,56px)}
.cabeca__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(28px,4vw,64px);align-items:end}

.painel{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,40px);
  padding-block:clamp(26px,3vw,40px);border-block:1px solid var(--line)}
.painel .stat{border-top:0;padding-block:0}

.catalogo{padding-bottom:clamp(64px,8vw,110px)}

/* ── filtros ─────────────────────────────────────────────────── */
/* Sete campos não cabem numa linha legível: a grelha enche-se sozinha com
   colunas de largura mínima e quebra quando precisa, sem media query. */
.filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  gap:14px 16px;align-items:end;padding-block:clamp(24px,2.8vw,36px)}
.filtros__procura{position:relative;grid-column:1/-1}
.filtros>.btn{align-self:end}
.filtros__procura input{width:100%;font:inherit;font-size:.95rem;color:var(--fg);
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);
  padding:12px 14px 12px 40px;transition:border-color .3s var(--ease)}
.filtros__procura input:focus{outline:none;border-color:var(--accent)}
.filtros__procura svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;stroke:var(--fg-dim);fill:none;stroke-width:2}
.filtros__campo{display:flex;flex-direction:column;gap:7px;min-width:0}
.filtros__campo label{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-dim)}
.filtros__campo select{width:100%;font:inherit;font-size:.9rem;color:var(--fg);
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);
  padding:11px 30px 11px 12px;appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),
                   linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 16px) calc(50% + 1px),calc(100% - 11px) calc(50% + 1px);
  background-size:5px 5px;background-repeat:no-repeat}
.filtros__campo select:focus{outline:none;border-color:var(--accent)}
.filtros__campo select option{background:var(--surface);color:var(--fg)}

@media (min-width:1100px){.filtros__procura{grid-column:auto}}
@media (max-width:520px){.filtros>.btn{grid-column:1/-1}}

/* ── estado das fontes ───────────────────────────────────────── */
.fontes{display:flex;flex-wrap:wrap;gap:8px 18px;padding-bottom:16px}
.fonte{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);
  font-size:.66rem;letter-spacing:.08em;color:var(--fg-dim)}
.fonte::before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:var(--ok)}
.fonte.stale::before{background:#c9a24a}
.fonte.indisponivel::before{background:var(--danger)}
.fonte.manual::before{background:var(--fg-dim)}

.alerta{font-size:.84rem;line-height:1.6;padding:12px 16px;margin-bottom:18px;
  background:rgba(201,162,74,.12);border-left:2px solid #c9a24a;border-radius:0 var(--r) var(--r) 0}

.catalogo__barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px;padding-block:14px 22px;border-top:1px solid var(--line)}
.catalogo__barra p{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)}
.catalogo__barra button{background:none;border:0;cursor:pointer;font-size:.86rem}

/* ── lista ───────────────────────────────────────────────────── */
.lista{border-top:1px solid var(--line)}
.apoio{display:grid;grid-template-columns:168px 1fr 180px;gap:10px 26px;align-items:start;
  padding-block:clamp(20px,2.2vw,26px);border-bottom:1px solid var(--line);
  transition:background .35s var(--ease)}
.apoio:hover{background:var(--surface)}

.apoio__ent{display:flex;flex-direction:column;gap:7px;min-width:0}
.apoio__ent b{font-family:var(--f-mono);font-size:.66rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent)}
.apoio__cod{font-family:var(--f-mono);font-size:.66rem;color:var(--fg-dim);word-break:break-all}

.apoio__nome{min-width:0}
.apoio__nome h3{font-size:1.02rem;font-weight:600;letter-spacing:-.02em;line-height:1.32}
.apoio__resumo{font-size:.85rem;color:var(--fg-soft);margin-top:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.apoio__marcas{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.marca{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  padding:4px 9px;border:1px solid var(--line-2);border-radius:100px;color:var(--fg-soft);white-space:nowrap}
.marca--tipo{color:var(--accent);border-color:var(--accent-line)}
.marca--tipo.vago{color:var(--fg-dim);border-style:dashed;border-color:var(--line-2)}
.apoio__prov{display:inline-flex;align-items:center;gap:7px;margin-top:11px;
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;color:var(--fg-dim)}
.apoio__prov::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ok);flex:none}
.apoio__prov.manual::before{background:var(--fg-dim)}
.apoio__prov.stale::before{background:#c9a24a}

.apoio__fim{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.apoio__data{font-family:var(--f-mono);font-size:1rem;color:var(--fg);letter-spacing:.02em}
.apoio__dias{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent)}
.apoio__acoes{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-top:6px}
.apoio__acoes button,.apoio__acoes a{font-family:var(--f-display);font-size:.8rem;font-weight:600;
  background:none;border:0;cursor:pointer;text-decoration:none;color:var(--fg);padding:0;
  transition:color .3s var(--ease)}
.apoio__acoes button:hover,.apoio__acoes a:hover{color:var(--accent)}
.apoio__acoes a{color:var(--accent)}

@media (max-width:980px){
  .cabeca__grid{grid-template-columns:1fr}
  .painel{grid-template-columns:1fr 1fr}
  .apoio{grid-template-columns:1fr;gap:12px}
  .apoio__fim{align-items:flex-start;text-align:left;flex-direction:row;align-items:baseline;gap:14px}
  .apoio__acoes{flex-direction:row;align-items:center;gap:20px;margin-top:0}
}

/* ── vazio, carregamento, permanentes ────────────────────────── */
.carregando{display:flex;align-items:center;gap:12px;padding-block:28px;
  font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;color:var(--fg-dim)}
.girador{width:13px;height:13px;border:1.5px solid var(--line-2);border-top-color:var(--accent);
  border-radius:50%;animation:girar .8s linear infinite}
@keyframes girar{to{transform:rotate(360deg)}}
.vazio{padding-block:clamp(44px,6vw,80px);max-width:52ch}
.vazio p{color:var(--fg-soft);margin-top:12px}

.permanentes{margin-top:clamp(48px,6vw,80px);padding-top:clamp(32px,4vw,48px);
  border-top:1px solid var(--line-2)}
.permanentes__cab{max-width:66ch;margin-bottom:clamp(22px,2.6vw,32px)}
.permanentes__cab p.body-soft{font-size:.92rem;margin-top:10px}

.nota{font-size:.76rem;line-height:1.7;color:var(--fg-dim);max-width:80ch;
  margin-top:clamp(28px,3.4vw,44px);padding-top:22px;border-top:1px solid var(--line)}

/* ── ficha detalhada ─────────────────────────────────────────── */
.modal--ficha{max-width:720px}
.ficha__dados{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin:18px 0 4px;
  padding-bottom:18px;border-bottom:1px solid var(--line)}
.ficha__dados div{min-width:0}
.ficha__dados dt{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-dim)}
.ficha__dados dd{margin:5px 0 0;font-size:.92rem}
#ficha-corpo h4{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--fg-dim);margin:22px 0 8px}
#ficha-corpo p{font-size:.93rem;color:var(--fg-soft)}
.ficha__aviso{padding:14px 16px;background:var(--accent-soft);border-left:2px solid var(--accent-line);
  border-radius:0 var(--r) var(--r) 0;font-size:.9rem!important;color:var(--fg-soft)}
.ficha__lista{display:flex;flex-direction:column;gap:7px;margin-top:6px;font-size:.9rem;color:var(--fg-soft)}
.ficha__lista li{position:relative;padding-left:16px}
.ficha__lista li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--accent)}
.ficha__docs a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-line)}
.ficha__docs a:hover{border-bottom-color:var(--accent)}
.ficha__cta{margin-top:24px}
@media (max-width:560px){.ficha__dados{grid-template-columns:1fr}}
