:root{--pino:#1f4d3a;--verde:#2f7a58;--fundo:#eef2ef;--tx:#1b2a22;--mut:#66766c;--linha:#aebcb3;--m:#3d7fc1;--f:#cc4d7c}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,"Segoe UI",Roboto,sans-serif;background:var(--fundo);color:var(--tx)}
header{background:var(--pino);color:#fff;display:flex;align-items:center;gap:18px;padding:10px 20px;flex-wrap:wrap}
header h1{font-size:18px;margin:0;flex:1}header a,header span{color:#fff;font-size:14px;text-decoration:none}header a:hover{text-decoration:underline}
.btn{background:var(--verde);color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer;font:inherit}
.btn:hover{filter:brightness(1.1)}.btn.sec{background:#dde5e0;color:var(--tx)}.btn.red{background:#b3372f}
:focus-visible{outline:3px solid #f0b429;outline-offset:2px}
input,select{font:inherit;padding:8px;border:1px solid #c3cfc7;border-radius:6px;background:#fff;width:100%}
label{display:block;font-size:13px;color:var(--mut);margin-bottom:10px}label input,label select{margin-top:4px;color:var(--tx)}
.chk{display:flex;gap:8px;align-items:center}.chk input{width:auto;margin:0}
.lin{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lin>label{flex:1}
.aviso{padding:8px 12px;border-radius:6px;margin:8px 0}.err{background:#fbe4e1;color:#8a2a22}.ok{background:#dff1e6;color:#1d5a3a}
.barra{display:flex;gap:10px;padding:12px 20px;background:#fff;border-bottom:1px solid #d5dfd8}.barra select{max-width:340px}
.wrap{display:grid;grid-template-columns:1fr 310px;gap:16px;padding:16px 20px;align-items:start}
.arvore{background:#fff;border-radius:10px;padding:24px;overflow:auto;min-height:420px;border:1px solid #d5dfd8}
.vazia{color:var(--mut);text-align:center;margin-top:80px}
.ramo{display:flex;align-items:center}
.pais{display:flex;flex-direction:column;margin-left:28px;position:relative}
.pais::before{content:"";position:absolute;left:-28px;top:50%;width:28px;border-top:2px solid var(--linha)}
.pais>.ramo{position:relative;padding:6px 0 6px 28px}
.pais>.ramo::before{content:"";position:absolute;left:0;top:50%;width:28px;border-top:2px solid var(--linha)}
.pais>.ramo::after{content:"";position:absolute;left:0;top:0;bottom:0;border-left:2px solid var(--linha)}
.pais>.ramo:first-child::after{top:50%}.pais>.ramo:last-child::after{bottom:50%}.pais>.ramo:only-child::after{display:none}
.card{width:210px;flex:none;display:flex;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #cfd9d3;border-left:5px solid var(--m);border-radius:8px;cursor:pointer}
.card.F{border-left-color:var(--f)}.card:hover{background:#f5f9f6}.card.foco{box-shadow:0 0 0 3px #f0b42988}
.card.morto{background:#f1f2f1;color:#555}
.av{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:none;background:#dfe7e2;display:grid;place-items:center}
.av img,.pfoto img{width:100%;height:100%;object-fit:cover;display:block}
.av svg,.pfoto svg{width:70%;fill:#9fb1a6}
.inf{min-width:0}.inf b{display:block;font-size:14px;line-height:1.2;overflow-wrap:anywhere}.inf small{color:var(--mut);display:block;line-height:1.2;margin-top:2px}
.vazio{width:210px;border:2px dashed #b9c8be;background:none;border-radius:8px;padding:14px;color:var(--mut);cursor:pointer;font:inherit}
.vazio:hover{background:#f3f8f5}
.painel{background:#fff;border-radius:10px;padding:18px;border:1px solid #d5dfd8}
.pfoto{width:130px;height:130px;border-radius:50%;overflow:hidden;background:#dfe7e2;display:grid;place-items:center;margin:0 auto 10px}
.pfoto[data-zoom]{cursor:zoom-in}
.painel h2{margin:6px 0 2px;text-align:center;font-size:19px}.painel p{text-align:center;margin:2px 0}.mut{color:var(--mut)}
.painel h4{margin:16px 0 6px;font-size:13px;color:var(--mut)}
.chip{display:inline-block;margin:0 6px 6px 0;padding:4px 10px;border-radius:14px;background:#eaf0ec;border:1px solid #cfd9d3;border-left:4px solid var(--m);cursor:pointer;font-size:14px}
.chip.F{border-left-color:var(--f)}
.acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
dialog{border:0;border-radius:10px;padding:20px;width:min(440px,94vw);box-shadow:0 10px 40px #0004}dialog::backdrop{background:#0006}
dialog h3{margin-top:0}
.entrada{display:grid;place-items:center;min-height:100vh}
.login{background:#fff;padding:28px;border-radius:12px;width:min(380px,94vw);box-shadow:0 6px 30px #1f4d3a22}.login h1{font-size:22px;margin:0 0 12px}
.login .btn{width:100%}.abas{display:flex;gap:6px;margin:10px 0}.abas button{flex:1;padding:8px;border:0;border-bottom:3px solid #d5dfd8;background:none;cursor:pointer;font:inherit}.abas .on{border-color:var(--verde);font-weight:600}
.admin{max-width:900px;margin:20px auto;padding:0 16px}.novo>*{flex:1;min-width:130px}
.tabela{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:8px 10px;border-bottom:1px solid #e1e8e3;text-align:left;font-size:14px}
td select{width:auto}.tag{padding:2px 8px;border-radius:10px;font-size:12px;background:#dff1e6}.tag.pendente{background:#fcefc7}.tag.recusado{background:#fbe4e1}
@media(max-width:820px){.wrap{grid-template-columns:1fr}.card,.vazio{width:170px}}
