:root{--verde:#1f6f43;--verde-esc:#155232;--dourado:#b8912c;--cinza:#f4f6f8;--borda:#dde3e8;--texto:#1f2d3d;--sub:#6b7a8a;
--ok:#2e7d32;--warn:#ef6c00;--err:#c62828;--info:#1565c0;--na:#78909c}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--cinza);color:var(--texto);font-size:14px}
a{color:var(--verde)}h1,h2,h3{margin:.2em 0 .5em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}
header.top{background:var(--verde);color:#fff;display:flex;align-items:center;gap:18px;padding:10px 22px;position:sticky;top:0;z-index:20}
header.top .logo{font-weight:700;font-size:18px;letter-spacing:.5px}header.top nav a{color:#fff;text-decoration:none;margin-right:14px;opacity:.85;padding:6px 0}
header.top nav a.ativo,header.top nav a:hover{opacity:1;border-bottom:2px solid var(--dourado)}header.top .user{margin-left:auto;font-size:13px;opacity:.9}
main{max-width:1280px;margin:20px auto;padding:0 20px}.card{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.btn{background:var(--verde);color:#fff;border:0;border-radius:7px;padding:8px 14px;cursor:pointer;font-size:13px;font-weight:600}
.btn:hover{background:var(--verde-esc)}.btn.sec{background:#fff;color:var(--verde);border:1px solid var(--verde)}.btn.sm{padding:4px 9px;font-size:12px}
.btn.warn{background:var(--warn)}.btn.err{background:var(--err)}.btn:disabled{opacity:.5;cursor:default}
input,select,textarea{border:1px solid var(--borda);border-radius:7px;padding:8px 10px;font:inherit;width:100%;background:#fff}label{font-size:12px;color:var(--sub);display:block;margin-bottom:3px}
.field{display:flex;flex-direction:column;min-width:160px;flex:1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--borda);vertical-align:top}
th{font-size:12px;color:var(--sub);font-weight:600;text-transform:uppercase}tr:hover td{background:#fafcfd}
.tag{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;color:#fff;background:var(--sub)}
.tag.pendente{background:#9e9e9e}.tag.enviado{background:var(--info)}.tag.revisado{background:var(--warn)}.tag.aprovado{background:var(--ok)}.tag.nao_se_aplica{background:var(--na)}
.tag.rascunho,.tag.montagem{background:#9e9e9e}.tag.revisao{background:var(--warn)}.tag.publicado,.tag.concluido{background:var(--ok)}.tag.comissao_designada,.tag.visita_agendada,.tag.em_visita{background:var(--info)}
.bar{height:8px;background:#e6ebef;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--verde)}
.muted{color:var(--sub);font-size:12px}.toast{position:fixed;bottom:20px;right:20px;background:#333;color:#fff;padding:12px 16px;border-radius:8px;z-index:99;max-width:420px}.toast.err{background:var(--err)}.toast.ok{background:var(--ok)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:12px;padding:20px 22px;width:min(720px,94vw);max-height:90vh;overflow:auto}
.tree details{margin:6px 0}.tree summary{cursor:pointer;padding:8px 10px;background:#fff;border:1px solid var(--borda);border-radius:8px;font-weight:600}
.tree .dim>summary{background:#eef5f0}.tree .ind>summary{font-weight:500}.tree .conteudo{padding:6px 0 6px 18px}
.item{display:flex;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--borda);border-radius:8px;margin:5px 0;background:#fff}
.item .nome{flex:1}.item .nome small{display:block;color:var(--sub)}.item.na{opacity:.6}
.kpi{display:flex;gap:14px;flex-wrap:wrap}.kpi div{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:12px 16px;min-width:130px}.kpi b{font-size:22px;display:block}
.login{max-width:380px;margin:80px auto}.login .logo{text-align:center;font-size:26px;color:var(--verde);font-weight:700;margin-bottom:6px}
@media(max-width:700px){header.top{flex-wrap:wrap}header.top .user{margin-left:0;width:100%}}
