/* Páginas institucionais — território do agente-abeems-institucional.
   Tokens vêm de abeems.css; aqui só componentes destas páginas. */

/* ---------------- prosa institucional ---------------- */
.inst-prosa{max-width:68ch}
.inst-prosa h2{font-size:clamp(1.25rem,2.6vw,1.6rem);margin:2rem 0 .7rem}
.inst-prosa h2:first-child{margin-top:0}
.inst-prosa p{color:var(--ink-2);margin-bottom:.9rem}
.inst-prosa p strong{color:var(--ink)}
.inst-prosa ul{margin:0 0 .9rem;padding-left:1.2rem;color:var(--ink-2);display:grid;gap:.35rem}
.inst-prosa a{color:var(--brand);font-weight:600}
.inst-prosa a:hover{text-decoration:underline}

/* duas colunas: prosa + lateral */
.inst-cols{display:grid;grid-template-columns:1fr 320px;gap:clamp(1.5rem,4vw,3rem);align-items:start}
@media (max-width:880px){ .inst-cols{grid-template-columns:1fr} }
.inst-aside{display:grid;gap:.8rem;position:sticky;top:80px}
.inst-fato{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.05rem 1.1rem}
.inst-fato b{display:block;font-family:var(--fm);font-size:1.35rem;letter-spacing:-.03em;color:var(--brand);
             font-variant-numeric:tabular-nums;line-height:1.15}
.inst-fato span{font-size:.82rem;color:var(--ink-3)}

/* ---------------- cartões de missão/visão/valores ---------------- */
.inst-mvv{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.1rem}
.inst-mv{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem;
         display:grid;gap:.6rem;align-content:start;border-top:3px solid var(--brand)}
.inst-mv .ic{width:28px;height:28px;color:var(--brand)}
.inst-mv h2,.inst-mv h3{font-size:1.05rem}
.inst-mv p{font-size:.92rem;color:var(--ink-2)}

.inst-valores{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}
.inst-valor{display:grid;grid-template-columns:22px 1fr;gap:.6rem;align-items:start;background:var(--surface);
            border:1px solid var(--line);border-radius:var(--r-lg);padding:.85rem .95rem}
.inst-valor svg{width:18px;height:18px;color:var(--ok);margin-top:.22rem}
.inst-valor b{font-size:.9rem}
.inst-valor span{display:block;font-size:.8rem;color:var(--ink-3)}

/* ---------------- lista de documentos ---------------- */
.inst-docgrupo{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.inst-docgrupo:last-child{margin-bottom:0}
.inst-docgrupo h2{font-size:1.1rem;margin-bottom:.8rem;display:flex;gap:.6rem;align-items:center}
.inst-docgrupo h2::after{content:"";height:1px;background:var(--line);flex:1}
.inst-doclista{display:grid;gap:.6rem}
.inst-doc{display:grid;grid-template-columns:34px 1fr auto;gap:.9rem;align-items:center;background:var(--surface);
          border:1px solid var(--line);border-radius:var(--r-lg);padding:.9rem 1.05rem;transition:border-color .15s}
.inst-doc:hover{border-color:var(--brand)}
.inst-doc .fi{width:30px;height:34px;color:var(--brand)}
.inst-doc b{display:block;font-size:.94rem;line-height:1.35;letter-spacing:-.01em}
.inst-doc p{font-size:.84rem;color:var(--ink-2);margin-top:.15rem}
.inst-doc .meta{font-family:var(--fm);font-size:.7rem;color:var(--ink-3);font-variant-numeric:tabular-nums;
                margin-top:.3rem;display:flex;gap:.7rem;flex-wrap:wrap}
.inst-doc .btn{white-space:nowrap}
@media (max-width:640px){
  .inst-doc{grid-template-columns:34px 1fr}
  .inst-doc .btn{grid-column:2;justify-self:start}
}

/* ---------------- contato ---------------- */
.inst-contato{display:grid;grid-template-columns:1fr 360px;gap:clamp(1.5rem,4vw,3rem);align-items:start}
@media (max-width:880px){ .inst-contato{grid-template-columns:1fr} }
.inst-canais{display:grid;gap:.8rem}
.inst-canal{display:grid;grid-template-columns:26px 1fr;gap:.75rem;align-items:start;background:var(--surface);
            border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.05rem}
.inst-canal svg{width:22px;height:22px;color:var(--brand);margin-top:.15rem}
.inst-canal b{display:block;font-size:.9rem}
.inst-canal span,.inst-canal a{font-size:.88rem;color:var(--ink-2)}
.inst-canal a:hover{color:var(--brand);text-decoration:underline}
.inst-canal .mono{font-size:.82rem}

.inst-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.3rem;
           box-shadow:var(--shadow);display:grid;gap:.85rem}
.inst-form label{display:grid;gap:.3rem}
.inst-form label > span{font-size:.8rem;font-weight:600;color:var(--ink-2)}
.inst-form input,.inst-form textarea{font:inherit;font-size:.94rem;padding:.65rem .75rem;min-height:44px;
    border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);width:100%}
.inst-form textarea{min-height:150px;resize:vertical}
.inst-form input:focus,.inst-form textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.inst-form .erro-campo{font-size:.8rem;color:#8C2830;font-weight:600}
@media (prefers-color-scheme:dark){ .inst-form .erro-campo{color:#F0A8AC} }
:root[data-theme="dark"] .inst-form .erro-campo{color:#F0A8AC}
:root[data-theme="light"] .inst-form .erro-campo{color:#8C2830}
.inst-form input[aria-invalid="true"],.inst-form textarea[aria-invalid="true"]{border-color:#B24B52}
/* honeypot fora do fluxo visual, mas acessível a robôs */
.inst-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* alertas do formulário — cor + ícone + texto, nunca só cor */
.inst-alerta{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start;border-radius:var(--r-lg);
             padding:.9rem 1rem;font-size:.9rem;border:1px solid;margin-bottom:1rem}
.inst-alerta svg{width:20px;height:20px;margin-top:.1rem}
.inst-alerta.ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}
.inst-alerta.erro{color:#8C2830;background:#F7DEDF;border-color:#B24B52}
@media (prefers-color-scheme:dark){ .inst-alerta.erro{color:#F0A8AC;background:#2E1214;border-color:#7E3A40} }
:root[data-theme="dark"] .inst-alerta.erro{color:#F0A8AC;background:#2E1214;border-color:#7E3A40}
:root[data-theme="light"] .inst-alerta.erro{color:#8C2830;background:#F7DEDF;border-color:#B24B52}

/* ---------------- páginas legais ---------------- */
.inst-legal{max-width:76ch}
.inst-legal h2{font-size:1.2rem;margin:1.8rem 0 .6rem}
.inst-legal h3{font-size:1rem;margin:1.3rem 0 .5rem}
.inst-legal p,.inst-legal li{color:var(--ink-2);font-size:.95rem}
.inst-legal p{margin-bottom:.8rem}
.inst-legal ul,.inst-legal ol{margin:0 0 .8rem;padding-left:1.25rem;display:grid;gap:.3rem}
.inst-legal .vigencia{font-family:var(--fm);font-size:.78rem;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* faixa de minuta — as páginas legais existem mas aguardam revisão jurídica */
.inst-minuta{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start;border-radius:var(--r-lg);
             padding:.9rem 1rem;font-size:.88rem;border:1px solid #C07A1E;background:#F8E7CF;color:#96540A;
             margin-bottom:1.6rem}
.inst-minuta svg{width:20px;height:20px;margin-top:.1rem}
@media (prefers-color-scheme:dark){ .inst-minuta{background:#2A1D0B;border-color:#8A5A18;color:#E5B778} }
:root[data-theme="dark"] .inst-minuta{background:#2A1D0B;border-color:#8A5A18;color:#E5B778}
:root[data-theme="light"] .inst-minuta{background:#F8E7CF;border-color:#C07A1E;color:#96540A}

/* ---------------- transparência ---------------- */
.inst-transp{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.1rem}
.inst-tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.3rem;
         display:grid;gap:.55rem;align-content:start}
.inst-tr .ic{width:26px;height:26px;color:var(--brand)}
.inst-tr h2{font-size:1.02rem}
.inst-tr p{font-size:.88rem;color:var(--ink-2)}
.inst-tr .more{margin-top:.3rem}

/* estado vazio — desenhado, não improvisado */
.inst-vazio{background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r-lg);
            padding:1.6rem;text-align:center;color:var(--ink-2);font-size:.92rem}
.inst-vazio b{display:block;color:var(--ink);margin-bottom:.3rem}
