:root{--verde:#177746;--verde-esc:#0f5132;--menu:#124d2f;--fundo:#f3f4f3;--borda:#d5d8d5;--texto:#262626;--suave:#595959;
--vermelho:#c00000;--ambar:#c58a00;--azul:#0070c0;--azul-esc:#1f4e79;--laranja:#c05000;--roxo:#7030a0;--entrada:#fff8dc}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:14px}
a{color:var(--azul-esc)}
.app{display:flex;min-height:100vh}
.lateral{width:220px;background:var(--menu);color:#fff;display:flex;flex-direction:column;flex-shrink:0}
.marca{padding:20px 18px 14px}.marca b{font-size:24px;letter-spacing:.5px}.marca small{display:block;font-size:10px;opacity:.85;margin-top:2px}
.lateral nav{flex:1;padding-top:6px}
.lateral nav a{display:block;color:#fff;text-decoration:none;padding:11px 18px;font-size:13.5px;border-left:4px solid transparent}
.lateral nav a:hover{background:#17623c}.lateral nav a.ativo{background:var(--verde);border-left-color:#7be0a8;font-weight:600}
.lateral .sep{font-size:10px;letter-spacing:1px;text-transform:uppercase;opacity:.6;padding:14px 18px 4px}
.rodape-lat{padding:14px 18px;font-size:12px;border-top:1px solid #1d6e43}
.rodape-lat a,.rodape-lat button{color:#cfe9da;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline}
.principal{flex:1;padding:22px 28px;min-width:0}
h1{color:var(--verde);font-size:24px;margin:0 0 2px}h2{color:var(--verde);font-size:16px;margin:18px 0 8px}
.sub{color:var(--suave);font-style:italic;margin:0 0 14px}
.barra{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.btn{display:inline-block;background:var(--verde);color:#fff;border:0;border-radius:3px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--verde-esc)}.btn.azul{background:var(--azul-esc)}.btn.cinza{background:#7f7f7f}.btn.verm{background:var(--vermelho)}
.btn:disabled{opacity:.5;cursor:default}
.info{color:var(--suave);font-size:12.5px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--borda);border-left:5px solid var(--verde);padding:10px 14px}
.kpi.vermelho{border-left-color:var(--vermelho)}.kpi.ambar{border-left-color:var(--ambar)}.kpi.azul{border-left-color:var(--azul)}
.kpi.azul-esc{border-left-color:var(--azul-esc)}.kpi.laranja{border-left-color:var(--laranja)}.kpi.roxo{border-left-color:var(--roxo)}
.kpi h3{margin:0;font-size:11px;color:var(--suave);letter-spacing:.3px}.kpi .v{font-size:20px;font-weight:700;margin:3px 0}
.kpi.vermelho .v{color:var(--vermelho)}.kpi.verde .v{color:var(--verde)}.kpi.laranja .v{color:var(--laranja)}.kpi .s{font-size:12px;color:var(--suave);min-height:15px}
.duas{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media(max-width:900px){.duas{grid-template-columns:1fr}.lateral{width:64px}.lateral nav a{font-size:0;padding:14px}.marca small,.rodape-lat span{display:none}}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borda)}
th{background:var(--verde);color:#fff;text-align:left;padding:7px 10px;font-size:12.5px}
td{padding:7px 10px;border-top:1px solid #e6e8e6;font-size:13px}tr:nth-child(even) td{background:#f7faf7}
td.dir,th.dir{text-align:right}.vazio{padding:18px;color:var(--suave);background:#fff;border:1px solid var(--borda);text-align:center}
.tag{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:#e4e6e4}
.tag.RECOLHER{background:#ffc7ce;color:#9c0006}.tag.ATENÇÃO{background:#ffeb9c;color:#7f6000}.tag.COBRANÇA{background:#ddebf7;color:#1f4e79}
.tag.PROMESSA-VENCIDA{background:#ff9999;color:#7a0000}.tag.ok{background:#c6efce;color:#006100}.tag.off{background:#e7e6e6;color:#595959}
.cartao{background:#fff;border:1px solid var(--borda);padding:18px;max-width:560px}
.cartao.larga{max-width:900px}
label{display:block;font-weight:600;font-size:12.5px;margin:10px 0 3px}
input[type=text],input[type=password],input[type=date],select,textarea{width:100%;padding:8px 10px;border:1px solid #bfbfbf;background:var(--entrada);font:inherit}
.erro{background:#ffc7ce;color:#9c0006;padding:8px 12px;margin:0 0 12px;border-radius:3px}.ok{background:#c6efce;color:#006100;padding:8px 12px;margin:0 0 12px;border-radius:3px}
.aviso{background:#fff2cc;color:#7f6000;padding:8px 12px;margin:0 0 12px;border-radius:3px}
.progresso{background:#e2efda;border:1px solid #b7d7a8;padding:10px 14px;margin:0 0 14px;display:none}
.progresso .faixa{height:6px;background:#cfe2c4;margin-top:6px;overflow:hidden;position:relative}
.progresso .faixa i{position:absolute;height:100%;width:30%;background:var(--verde);animation:vai 1.2s infinite ease-in-out}
@keyframes vai{0%{left:-30%}100%{left:100%}}
.perms{columns:2;column-gap:28px}.perms label{font-weight:400;margin:3px 0;break-inside:avoid}.perms h3{break-after:avoid}
.centro{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--menu)}
.centro .cartao{width:380px}.centro h1{text-align:center}
.tab-topo{display:flex;gap:10px;align-items:center;margin:0 0 6px}.tab-topo .filtro{max-width:360px;background:#fff}
.rolagem{overflow:auto;max-height:62vh;border:1px solid var(--borda);background:#fff}.rolagem table{border:0}
th{position:sticky;top:0;cursor:pointer;white-space:nowrap;user-select:none}th.asc::after{content:" ▲";font-size:10px}th.desc::after{content:" ▼";font-size:10px}
table.selecionavel tbody tr{cursor:pointer}table.selecionavel tbody tr:hover td{background:#eef6ee}table.selecionavel tbody tr.marcada td{background:#cfe8d6!important}
tfoot td{background:#e2efda!important;font-weight:700;position:sticky;bottom:0}
.abas{display:flex;gap:2px;border-bottom:2px solid var(--verde);margin:10px 0 12px}
.abas button{background:#e4e6e4;border:0;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;color:var(--suave)}.abas button.ativa{background:var(--verde);color:#fff}
.aba{display:none}.aba.ativa{display:block}
.btn.laranja{background:var(--laranja)}.btn.azul2{background:#2e75b6}
.msgbox{width:100%;min-height:90px;background:#fff}
dialog{border:1px solid var(--borda);padding:20px;max-width:640px;width:92%;box-shadow:0 8px 30px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(0,0,0,.4)}
.linha2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.so-leitura{background:#f0f0f0!important}
.resumo-tipo{background:#fff;border:1px solid var(--borda);padding:10px 14px;margin:0 0 12px}.resumo-tipo div{padding:1px 0}
.grade4{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 14px}
.checks{display:flex;flex-wrap:wrap;gap:4px 16px;margin:2px 0 8px}.checks label{font-weight:400;margin:0}
details{margin:6px 0}summary{cursor:pointer;color:var(--azul-esc);font-weight:600;margin:8px 0}
.ficha{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 14px;background:#fff;border:1px solid var(--borda);padding:12px 14px;margin-bottom:10px}
.ficha small{display:block;color:var(--suave);font-size:11px}.ficha b{font-size:14px}
.larga2{grid-column:span 2}@media(max-width:700px){.larga2{grid-column:span 1}}
.escolhido{margin-top:3px;font-size:12.5px;color:var(--verde-esc);font-weight:700;min-height:16px;word-break:break-word}
details.multi{position:relative}details.multi summary{background:var(--entrada);border:1px solid #bfbfbf;padding:8px 10px;margin:0;font-weight:400;color:var(--texto);list-style:none;cursor:pointer}
details.multi summary::after{content:"▾";float:right}details.multi .caixa{position:absolute;z-index:5;background:#fff;border:1px solid var(--borda);box-shadow:0 6px 18px rgba(0,0,0,.2);padding:8px 10px;width:100%;max-height:300px;overflow:auto}
details.multi .caixa label{display:block;font-weight:400;margin:3px 0}details.multi .novo{margin-top:8px;border-top:1px solid #e6e8e6;padding-top:6px}
