:root{
  --verde:#0e5537; --verde-2:#167049; --verde-claro:#e7f1ec;
  --grafite:#2b2f33; --texto:#1f2326; --muted:#6b7177; --linha:#e3e6e8; --fundo:#f5f6f7; --branco:#fff;
  --vermelho:#b42318; --vermelho-claro:#fdecea; --laranja:#b54708; --laranja-claro:#fef0e1; --amarelo-claro:#fff8e1; --azul:#1d5fa8;
  --raio:8px;
}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--texto);background:var(--fundo);line-height:1.45}
a{color:var(--verde-2);text-decoration:none} a:hover{text-decoration:underline}
h1{font-size:1.45rem;margin:0;color:var(--grafite)} h2{font-size:1.1rem;margin:0 0 .75rem;color:var(--grafite);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.muted{color:var(--muted)} .small{font-size:.83rem} .nowrap{white-space:nowrap} .dir{text-align:right}

/* Topo */
.topo{background:var(--grafite);color:#fff;display:flex;align-items:center;gap:1.2rem;padding:0 1.2rem;min-height:56px;position:sticky;top:0;z-index:10}
.topo a{color:#fff}
.marca a{display:flex;flex-direction:column;line-height:1.1;text-decoration:none}
.marca strong{font-size:1.02rem;letter-spacing:.2px} .marca span{font-size:.72rem;color:#b9c3bd}
.topo nav{display:flex;gap:.15rem;flex:1;flex-wrap:wrap}
.topo nav a{padding:.45rem .7rem;border-radius:6px;font-size:.92rem;color:#d9dee1}
.topo nav a:hover{background:rgba(255,255,255,.08);text-decoration:none}
.topo nav a.ativo{background:var(--verde);color:#fff}
.usuario{font-size:.85rem;color:#b9c3bd;white-space:nowrap}
.menu-btn{display:none;background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer}
.conteudo{max-width:1280px;margin:0 auto;padding:1.4rem 1.2rem 3rem}
.rodape{text-align:center;color:var(--muted);font-size:.8rem;padding:1rem}

.cab-pagina{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem;flex-wrap:wrap}
.botoes{display:flex;gap:.5rem;flex-wrap:wrap}

/* Botões */
.btn{display:inline-block;background:var(--verde);color:#fff;border:1px solid var(--verde);padding:.55rem 1rem;border-radius:6px;font-size:.92rem;cursor:pointer;font-family:inherit;line-height:1.2}
.btn:hover{background:var(--verde-2);text-decoration:none}
.btn.sec{background:#fff;color:var(--verde);border-color:#c9d6cf} .btn.sec:hover{background:var(--verde-claro)}
.btn.perigo{background:#fff;color:var(--vermelho);border-color:#f0c4c0} .btn.perigo:hover{background:var(--vermelho-claro)}
.btn.mini{padding:.35rem .65rem;font-size:.84rem}
.link{background:none;border:0;cursor:pointer;color:var(--verde-2);font-size:.95rem;padding:.2rem} .link.perigo{color:var(--vermelho)}

/* Mensagens */
.flash{padding:.7rem 1rem;border-radius:6px;margin-bottom:1rem;border:1px solid}
.flash.ok{background:var(--verde-claro);border-color:#bcd8c8;color:#0b4a2f}
.flash.erro{background:var(--vermelho-claro);border-color:#f3c0bb;color:#8a1c12}
.flash.aviso{background:var(--amarelo-claro);border-color:#f1dc9a;color:#6b4e00}

/* Formulários */
.form label{display:flex;flex-direction:column;gap:.3rem;font-size:.86rem;font-weight:600;color:#3d4348;margin-bottom:.8rem}
.form small,.grade small{font-weight:400;color:var(--muted);font-size:.78rem}
input,select,textarea{font-family:inherit;font-size:.93rem;padding:.5rem .6rem;border:1px solid #cfd4d8;border-radius:6px;background:#fff;color:var(--texto);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #9cc7b0;border-color:var(--verde-2)}
input[type=checkbox]{width:auto}
.grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.2rem;background:#fff;padding:1.2rem;border:1px solid var(--linha);border-radius:var(--raio)}
.grade .largo{grid-column:1/-1}
.form label.check{flex-direction:row;align-items:center;gap:.5rem;font-weight:500}
.acoes-form{grid-column:1/-1;margin-top:.4rem}
.form-excluir{margin-top:1rem}
fieldset{border:1px solid var(--linha);border-radius:var(--raio);margin:0 0 1rem;padding:1rem}
legend{font-weight:700;color:var(--verde);padding:0 .4rem}
.inline{display:inline-flex;gap:.35rem;align-items:center;flex-wrap:wrap;margin:0}
.inline input,.inline select{width:auto}
.inline .longo{flex:1;min-width:260px} .inline .medio{width:220px} .inline .curto{width:140px} .inline .mini-in{width:90px}
.nova-linha{display:flex;margin-top:.8rem;padding-top:.8rem;border-top:1px dashed var(--linha);width:100%}

.filtros{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem;background:#fff;padding:.7rem;border:1px solid var(--linha);border-radius:var(--raio)}
.filtros input,.filtros select{width:auto;min-width:160px}
.checks{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.88rem}
.checks label{display:flex;gap:.3rem;align-items:center}

/* Tabelas */
.tabela{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden;font-size:.9rem;margin-bottom:1rem}
.tabela th{background:#eef1f2;text-align:left;font-weight:600;color:#3d4348;padding:.55rem .65rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--linha)}
.tabela td{padding:.55rem .65rem;border-bottom:1px solid #eef0f1;vertical-align:top}
.tabela tbody tr:hover{background:#fafbfb}
.tabela tfoot td{font-weight:700;background:#f7f8f8}
.tabela.estreita{max-width:420px}
tr.linha-atraso{background:#fff6f5} tr.linha-alerta{background:#fffbf3}
tr.feita td{color:var(--muted)} tr.feita td:nth-child(2){text-decoration:line-through}
.vazio{color:var(--muted);background:#fff;border:1px dashed #d5dadd;border-radius:var(--raio);padding:1rem;text-align:center}

/* Selos */
.selo{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap}
.selo.atraso{background:var(--vermelho-claro);color:var(--vermelho)}
.selo.alerta{background:var(--laranja-claro);color:var(--laranja)}
.selo.atencao{background:var(--amarelo-claro);color:#7a5a00}
.selo.ok{background:var(--verde-claro);color:var(--verde)}
.selo.neutro{background:#eef0f1;color:var(--muted)}
.status{display:inline-block;padding:.12rem .55rem;border-radius:4px;font-size:.78rem;font-weight:600;background:#eef0f1;color:#3d4348}
.st-orcamento{background:#eef0f1}.st-aprovado{background:#e6effa;color:var(--azul)}.st-execucao{background:var(--amarelo-claro);color:#7a5a00}
.st-protocolado,.st-aguardando{background:#f1e9fb;color:#5b2f99}.st-concluido{background:var(--verde-claro);color:var(--verde)}.st-cancelado{background:#f3f3f3;color:#888;text-decoration:line-through}
.tipo{font-size:.76rem;font-weight:600;color:#3d4348}
.tipo-renovação{color:#5b2f99}.tipo-recebimento{color:var(--verde)}.tipo-repasse{color:var(--laranja)}.tipo-entrega{color:var(--azul)}

/* Painel */
.indicadores{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem;margin-bottom:1.4rem}
.ind{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:.9rem 1rem;color:var(--texto);border-left:4px solid #cfd4d8}
.ind:hover{text-decoration:none;border-color:#c9d6cf}
.ind strong{display:block;font-size:1.5rem;color:var(--grafite);line-height:1.15}
.ind span{font-size:.82rem;color:var(--muted)}
.ind.vermelho{border-left-color:var(--vermelho)} .ind.vermelho strong{color:var(--vermelho)}
.ind.laranja{border-left-color:var(--laranja)} .ind.laranja strong{color:var(--laranja)}
.bloco{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:1.1rem 1.2rem;margin-bottom:1.2rem}
.bloco .tabela{border:1px solid #eef0f1}
.duas-colunas{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.duas-colunas .bloco{margin-bottom:1.2rem}

.dados{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem 1.2rem;background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:1rem 1.2rem;margin-bottom:1rem}
.dados>div>span:first-child{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);margin-bottom:.1rem}
.obs{background:#fff;border-left:3px solid var(--verde);padding:.7rem 1rem;margin:0 0 1rem}
.resumo{display:flex;flex-wrap:wrap;gap:.6rem;margin:.2rem 0 1rem}
.resumo div{background:#f7f8f8;border:1px solid var(--linha);border-radius:6px;padding:.55rem .8rem;min-width:150px;font-weight:700}
.resumo>div>span:first-child{display:block;font-size:.74rem;font-weight:500;color:var(--muted)}
.caixa{width:28px;height:28px;border:2px solid #b8c0c5;border-radius:6px;background:#fff;cursor:pointer;color:#fff;font-weight:700;font-size:.95rem;line-height:1}
.caixa:hover{border-color:var(--verde)} .caixa.marcada{background:var(--verde);border-color:var(--verde)}
.anexos{list-style:none;margin:0;padding:0} .anexos li{padding:.45rem 0;border-bottom:1px solid #eef0f1;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.linha-tempo{list-style:none;margin:1rem 0 0;padding:0 0 0 1rem;border-left:2px solid var(--verde-claro)}
.linha-tempo li{margin-bottom:.8rem}
.abas{display:flex;gap:.3rem;margin-bottom:1rem;flex-wrap:wrap}
.abas a{padding:.45rem .9rem;border-radius:6px;background:#fff;border:1px solid var(--linha);color:var(--texto);font-size:.9rem}
.abas a.ativo{background:var(--verde);border-color:var(--verde);color:#fff}

.cartoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.cartao{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:1.1rem;display:flex;flex-direction:column;gap:.55rem;color:var(--texto)}
a.cartao:hover{border-color:var(--verde-2);text-decoration:none}
.cartao strong{color:var(--verde);font-size:1.02rem} .cartao span{font-size:.87rem;color:var(--muted)}
.cartao label{display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.2rem}
.cartao .btn{align-self:flex-start;margin-top:.3rem}

/* Login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(160deg,#0e5537 0%,#2b2f33 70%);padding:1rem}
.login-box{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.login-box h1{margin-bottom:.3rem}
.login-marca{font-size:1.35rem;font-weight:700;color:var(--verde)}
.login-box .btn{width:100%;padding:.7rem}

/* Relatório */
.rel-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;border-bottom:3px solid var(--verde);padding-bottom:.7rem;margin-bottom:1rem}
.rel-marca{font-size:1.3rem;font-weight:700;color:var(--verde)} .rel-sub{font-size:.82rem;color:var(--muted)}
.rel-titulo{text-align:right} .rel-titulo h1{font-size:1.25rem} .rel-data{font-size:.78rem;color:var(--muted)}
.acoes-rel{margin-bottom:1rem}
.assinatura{margin-top:3rem;text-align:center;color:var(--muted)}

@media screen and (max-width:900px){
  .menu-btn{display:block;margin-left:auto}
  .topo{flex-wrap:wrap;padding:.5rem 1rem}
  .topo nav,.usuario{display:none;width:100%}
  body.menu-aberto .topo nav{display:flex;flex-direction:column;padding-bottom:.5rem}
  body.menu-aberto .usuario{display:block;padding-bottom:.6rem}
  .grade,.duas-colunas{grid-template-columns:1fr}
  .tabela{display:block;overflow-x:auto;white-space:nowrap}
  .tabela td{white-space:normal;min-width:110px}
  .conteudo{padding:1rem}
}

@media print{
  @page{size:A4;margin:12mm}
  html{font-size:11.5px}
  body{background:#fff}
  .no-print,.topo,.rodape,.btn,form.inline,.nova-linha,.form-excluir{display:none!important}
  .conteudo{max-width:none;padding:0}
  .tabela{border:1px solid #bbb;page-break-inside:auto}
  .tabela tr{page-break-inside:avoid}
  .tabela th{background:#e9ecec!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .selo,.status,tr.linha-atraso{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .bloco,.dados{border:1px solid #ccc}
  a{color:inherit}
  h2{margin-top:1rem}
}

/* v2 — orçamentos, documentos do cliente, procuração */
.centro{text-align:center}
.itens-orc td{vertical-align:top} .itens-orc textarea{min-height:44px} .itens-orc tfoot td{font-weight:700}
.bloco.destaque{border-color:#bcd8c8;background:#fbfdfc}
.item-aprov{display:grid;grid-template-columns:1fr 220px;gap:.6rem;align-items:center;padding:.4rem 0;border-bottom:1px dashed var(--linha)}
.item-aprov label{margin:0!important}
.bloco hr{border:0;border-top:1px solid var(--linha);margin:1rem 0}
.checklist td{vertical-align:middle}
.ok-marca{color:var(--verde);font-weight:700} .pend-marca{color:#b8c0c5;font-weight:700}
tr.feita-ok td:first-child{color:var(--texto)}
.envio-doc input[type=file]{max-width:260px;padding:.3rem}
.envio-doc label.small{display:inline-flex;align-items:center;gap:.25rem;font-weight:500;margin:0}
.envio-doc label.small input[type=date]{width:auto;padding:.3rem}
h3.sub{font-size:.95rem;margin:1rem 0 .4rem;color:var(--grafite)}
.msg-pend{margin-top:1rem} .msg-pend summary{cursor:pointer;color:var(--verde-2);font-weight:600}
.msg-pend textarea{margin:.6rem 0;font-size:.88rem}
.lista-pend{margin:.2rem 0 1rem 1.2rem}
.falta{background:#fff3c4;color:#7a5a00;padding:0 .2rem;border-radius:3px}
.proposta,.procuracao{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:2rem 2.2rem;max-width:880px;margin:0 auto}
.bloco-prop{display:grid;gap:.25rem;margin:1rem 0;padding:.8rem 1rem;background:#f7f8f8;border-radius:6px}
.bloco-prop .rot{display:inline-block;min-width:90px;color:var(--muted);font-size:.8rem;text-transform:uppercase}
.condicoes p{margin:.45rem 0}
.assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:3.5rem;text-align:center;font-size:.92rem}
.linha-ass{border-top:1px solid #333;margin-bottom:.35rem}
.rodape-prop{margin-top:2rem;padding-top:.6rem;border-top:2px solid var(--verde);text-align:center;font-size:.8rem;color:var(--muted)}
.procuracao{font-size:1.02rem;line-height:1.75;text-align:justify}
.procuracao h1{text-align:center;letter-spacing:4px;margin-bottom:1.8rem}
.procuracao .local-data{text-align:right;margin-top:2rem}
.assinatura-proc{width:60%;margin:4rem auto 0;text-align:center;line-height:1.4}
@media print{
  .proposta,.procuracao{border:0;padding:0;max-width:none}
  .falta{background:none;color:#000}
  .bloco-prop{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
