/* [cfp_servidores] — cartões dos servidores (técnicos ou docentes), com busca e filtro por setor. */
.cfpsv { --sv-cartao: #fff; --sv-borda: rgba(14, 42, 63, 0.09); --sv-sombra: 0 1px 2px rgba(14, 42, 63, 0.05), 0 6px 18px rgba(14, 42, 63, 0.06);
    --sv-titulo: #2a4b7c; --sv-agua: var(--cfp-agua, #0d8f84); --sv-suave: var(--cfp-suave, #5f6b75); --sv-chip: rgba(13, 143, 132, 0.08);
    margin: 8px 0 24px; font-family: 'Inter', 'Segoe UI', Roboto, sans-serif; color: var(--cfp-tinta, #16222c); }
html.ceclimar-dark-mode .cfpsv { --sv-cartao: #1b232c; --sv-borda: rgba(255, 255, 255, 0.08); --sv-sombra: 0 6px 18px rgba(0, 0, 0, 0.3); --sv-titulo: #8fb4e8; --sv-agua: #3cc7b8; --sv-chip: rgba(60, 199, 184, 0.12); }
.cfpsv *, .cfpsv *::before, .cfpsv *::after { box-sizing: border-box; }
.cfpsv.cfpsv h3, .cfpsv.cfpsv p, .cfpsv.cfpsv ul { margin: 0; padding: 0; }

/* busca + contagem */
.cfpsv-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 16px; }
.cfpsv-busca { display: flex; align-items: center; gap: 10px; flex: 1 1 320px; max-width: 460px; height: 50px; padding: 0 18px; border-radius: 999px; background: var(--sv-cartao); box-shadow: inset 0 0 0 1.5px var(--sv-borda); transition: box-shadow 0.2s ease; cursor: text; }
.cfpsv-busca:focus-within { box-shadow: inset 0 0 0 2px var(--sv-agua); }
.cfpsv-busca svg { width: 20px; height: 20px; flex: none; color: var(--sv-agua); }
.cfpsv .cfpsv-busca input[type="search"], .cfpsv .cfpsv-busca input[type="search"]:focus { flex: 1; min-width: 0; height: 100% !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
    background: transparent !important; box-shadow: none !important; outline: none !important; font: 400 1rem 'Inter', sans-serif !important; color: inherit !important; }
.cfpsv-conta { font-size: 0.9rem; font-weight: 500; color: var(--sv-suave); }

/* filtro por setor */
.cfpsv-setores { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.cfpsv .cfpsv-setores button { display: inline-flex; align-items: center; gap: 7px; height: auto !important; min-height: 38px; margin: 0 !important; padding: 7px 14px !important; border: 0 !important; border-radius: 999px !important;
    background: var(--sv-chip) !important; color: var(--cfp-tinta, #16222c) !important; font: 500 0.88rem/1.25 'Inter', sans-serif !important; text-align: left; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; transition: background 0.2s ease, color 0.2s ease; }
.cfpsv .cfpsv-setores button span { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: rgba(128, 128, 128, 0.16); font-size: 0.74rem; font-weight: 600; }
.cfpsv .cfpsv-setores button:hover { background: rgba(13, 143, 132, 0.16) !important; }
.cfpsv .cfpsv-setores button.is-ativo { background: var(--sv-agua) !important; color: #fff !important; }
html.ceclimar-dark-mode .cfpsv .cfpsv-setores button.is-ativo { color: #0f1a26 !important; }
.cfpsv .cfpsv-setores button.is-ativo span { background: rgba(255, 255, 255, 0.25); }
.cfpsv .cfpsv-setores button:focus-visible { outline: 2px solid var(--sv-agua) !important; outline-offset: 2px; }

/* cartões */
.cfpsv.cfpsv .cfpsv-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; list-style: none; }
.cfpsv-cartao { display: flex; align-items: flex-start; gap: 16px; margin: 0 !important; padding: 18px !important; list-style: none !important; border-radius: 18px; background: var(--sv-cartao); box-shadow: var(--sv-sombra), inset 0 0 0 1px var(--sv-borda); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.cfpsv-cartao:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(14, 42, 63, 0.06), 0 12px 28px rgba(14, 42, 63, 0.1), inset 0 0 0 1px var(--sv-borda); }
.cfpsv-cartao[hidden] { display: none; }
.cfpsv .cfpsv-foto { display: block; flex: none; width: 60px !important; height: 60px !important; margin: 0 !important; border-radius: 50% !important; object-fit: cover; }
.cfpsv-iniciais { display: grid !important; place-items: center; font: 700 1.15rem 'Inter', sans-serif; letter-spacing: 0.02em; color: #fff; background: linear-gradient(135deg, #0d8f84, #2a4b7c); }
.cfpsv-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cfpsv.cfpsv h3 { font: 600 1.05rem/1.3 'Inter', sans-serif; color: var(--sv-titulo); }
.cfpsv-cargo { font-size: 0.93rem; font-weight: 500; line-height: 1.4; }
.cfpsv-setor { font-size: 0.86rem; line-height: 1.4; color: var(--sv-suave); }
.cfpsv-contatos { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px !important; }
.cfpsv-contatos > * { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9rem; font-weight: 600; color: var(--sv-agua) !important; text-decoration: none !important; overflow-wrap: anywhere; }
.cfpsv-contatos a:hover { text-decoration: underline !important; }
.cfpsv-contatos svg { width: 16px; height: 16px; flex: none; }
.cfpsv-vazio { padding: 28px; border-radius: 18px; text-align: center; color: var(--sv-suave); background: var(--sv-chip); }
.cfpsv-vazio[hidden] { display: none; }

@media (max-width: 560px) {
    .cfpsv-busca { flex-basis: 100%; max-width: none; }
    .cfpsv-setores { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; padding-bottom: 4px; scrollbar-width: none; }
    .cfpsv-setores::-webkit-scrollbar { display: none; }
    .cfpsv .cfpsv-setores button { flex: none; white-space: nowrap; }
    .cfpsv.cfpsv .cfpsv-lista { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .cfpsv * { transition: none !important; } }
