:root{
  --verde:#2e7d32; --verde-claro:#e8f5e9; --verde-cab:#43a047;
  --amarelo-cel:#fbfbcc; --amarelo:#f9a825; --vermelho:#c62828;
  --borda:#9aa0a6; --borda-forte:#5f6368; --texto:#202124; --cinza:#f1f3f4;
  --azul:#1565c0;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:Calibri,"Segoe UI",Arial,sans-serif;color:var(--texto);background:#e9eef2;font-size:14px}
button{font-family:inherit;cursor:pointer}
input,select{font-family:inherit;font-size:13px}

/* Tela de login */
.login-screen{position:fixed;inset:0;z-index:100;background:linear-gradient(160deg,#0b3d0b,#1b5e20);display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:14px;padding:28px 24px;width:100%;max-width:360px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center;display:flex;flex-direction:column;gap:10px}
.login-logo{font-size:44px}
.login-card h1{font-size:18px;margin:0;color:#0b3d0b}
.login-sub{margin:0 0 6px;color:#666;font-size:13px}
.login-card input{padding:11px 12px;border:1px solid #bbb;border-radius:8px;font-size:15px}
.login-card button{background:#2e7d32;color:#fff;border:0;border-radius:8px;padding:12px;font-size:16px;font-weight:700;cursor:pointer}
.login-msg{font-size:13px;color:#555;min-height:18px}

/* Barra superior */
.topbar{position:sticky;top:0;z-index:20;background:#0b3d0b;color:#fff;display:flex;
  align-items:center;gap:10px;padding:8px 12px;flex-wrap:wrap}
.topbar .marca{font-weight:700;letter-spacing:.5px}
.topbar .sep{flex:1}
.topbar button{background:#1b5e20;color:#fff;border:1px solid #2e7d32;border-radius:6px;padding:6px 12px}
.topbar button:hover{background:#2e7d32}
.topbar .status{font-size:12px;opacity:.9}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.dot.on{background:#69f0ae}.dot.off{background:#ff8a80}

/* seletor de tipo de ficha */
.tipo-sel{background:#1b5e20;color:#fff;border:1px solid #2e7d32;border-radius:6px;padding:6px 10px;font-weight:700}

/* modos */
.modo-switch{display:inline-flex;gap:6px}
.modo-switch button.ativo{background:#66bb6a;border-color:#66bb6a;color:#04270a;font-weight:700}

/* ficha Greening / Cancro */
.cab-quar{padding:8px 12px;border-bottom:2px solid var(--borda-forte)}
.cab-quar h1{text-align:center;font-size:16px;margin:0 0 8px;font-weight:700;text-transform:uppercase}
.totais-quar{display:flex;flex-wrap:wrap;gap:8px 22px;padding:8px 12px;background:#e8f5e9;border-bottom:1px solid var(--borda-forte);font-size:14px}
.totais-quar b{color:#0b3d0b;font-size:16px}
table.tab-quar{border-collapse:collapse;width:100%}
table.tab-quar th,table.tab-quar td{border:1px solid var(--borda);padding:3px 6px;font-size:13px;text-align:center}
table.tab-quar th{background:var(--verde-cab);color:#fff;font-size:12px}
table.tab-quar td.rnum{background:var(--verde-claro);font-weight:700;width:44px}
table.tab-quar input{width:100%;border:0;background:transparent;font-size:14px;text-align:center;padding:4px 2px}
table.tab-quar .qsub{max-width:70px}
table.tab-quar td:nth-child(5){text-align:left}   /* coluna dos nºs das plantas (após I/V) */
table.tab-quar .qplantas{text-align:left}
table.tab-quar select.qiv{width:100%;border:0;background:transparent;font-size:14px;text-align:center;padding:4px 0;font-weight:700;color:#0b3d0b}
table.tab-quar select.qinsp{width:100%;border:0;background:transparent;font-size:14px;padding:4px 2px;font-family:inherit;text-align:center}
table.tab-quar th:nth-child(2),table.tab-quar td:nth-child(2){width:46px}
.quar-obs{padding:8px 12px;display:flex;flex-direction:column;gap:4px}
.quar-obs label{font-weight:700;font-size:13px}
.quar-obs textarea{width:100%;min-height:64px;border:1px solid var(--borda);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:14px;resize:vertical}
.quar-ruas-ctrl{display:flex;gap:8px;align-items:center;padding:8px 12px;flex-wrap:wrap;border-top:1px solid var(--borda)}
.quar-ruas-ctrl button{background:#1b5e20;color:#fff;border:1px solid #2e7d32;border-radius:6px;padding:6px 12px;font-weight:600}
.quar-ruas-ctrl button:hover{background:#2e7d32}
.quar-ruas-info{font-size:13px;color:#555}
table.tab-quar td.qqtd{width:48px;font-weight:700;background:#fff8e1}
.tab-quar input:focus{outline:2px solid var(--verde)}

.folha{max-width:1400px;margin:14px auto;background:#fff;border:1px solid var(--borda-forte);
  box-shadow:0 2px 10px rgba(0,0,0,.12)}

/* Cabeçalho da ficha */
.cab{border-bottom:2px solid var(--borda-forte)}
.cab .titulo{display:flex;align-items:stretch}
.cab h1{flex:1;text-align:center;font-size:16px;margin:0;padding:8px;font-weight:700;text-transform:uppercase}
.parceria{background:#ffeb3b;color:#c62828;font-weight:800;font-size:12px;display:flex;
  align-items:center;justify-content:center;text-align:center;padding:6px 8px;width:210px;flex:0 0 210px;border-left:2px solid var(--borda-forte)}
.parceria input{background:transparent;border:0;color:#c62828;font-weight:800;font-size:12px;
  text-align:center;text-transform:uppercase;width:100%;min-width:0;padding:2px 0;font-family:inherit}
.parceria input:focus{outline:0;background:#fffde7;border-radius:4px}
.campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:12px 16px;padding:16px}
.campo{display:flex;flex-direction:column;gap:5px;border:0;padding:0;min-height:0}
.campo label{font-weight:600;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#5c6b61;margin:0;white-space:normal}
.campo input,.campo select{width:100%;min-width:0;border:1px solid #cdd6cf;border-radius:8px;padding:9px 11px;font-size:14px;background:#fff;color:var(--texto)}
.campo input:focus,.campo select:focus{outline:2px solid var(--verde);outline-offset:-1px;border-color:var(--verde)}
.campo input[readonly]{background:#f2f5f1;color:#5c6b61}
.c2,.c3,.c4,.c6{grid-column:auto}
@media screen and (max-width:520px){
  .campos{grid-template-columns:1fr;padding:12px;gap:10px}
  .cab .titulo{flex-direction:column}
  .parceria{width:100%;flex:none;border-left:0;border-top:2px solid var(--borda-forte)}
}

/* Corpo: grade + painel */
.corpo{display:flex;flex-direction:column}
.grade-wrap{width:100%;overflow-x:auto}
.painel{width:100%;border-top:2px solid var(--borda-forte)}

/* Grade pragas × plantas */
table.grade{border-collapse:collapse;width:100%}
table.grade th,table.grade td{border:1px solid var(--borda);padding:0;text-align:center;font-size:11px}
table.grade{table-layout:fixed}
table.grade .cab-plantas th{background:var(--cinza);font-weight:700;height:22px;width:24px;font-size:10px}
table.grade .cab-plantas th.cab-titulo{text-align:center;letter-spacing:2px;font-size:11px}
table.grade .rot-praga{background:var(--verde-cab);color:#fff;font-weight:700;text-transform:uppercase;
  writing-mode:horizontal-tb;font-size:10px;padding:2px 3px;width:72px;line-height:1.12;
  overflow:hidden;word-break:break-word;
  position:sticky;left:0;z-index:3}
table.grade .rot-praga .info-ico{font-size:8px}
table.grade .rot-sub{background:var(--verde-claro);font-size:10px;font-weight:700;color:#14431a;text-align:left;padding:3px 5px;width:98px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  position:sticky;left:70px;z-index:2}
table.grade .cab-plantas th:first-child{position:sticky;left:0;z-index:4}
/* limite de inspeção (item 2): número N em vermelho; plantas além de N esmaecidas */
table.grade .cab-plantas th.limite{background:#c62828;color:#fff;font-weight:800}
table.grade .cab-plantas th.fora{opacity:.35}
table.grade td.cel{width:24px}
table.grade td.cel input{width:100%;height:28px;border:0;background:var(--amarelo-cel);text-align:center;
  font-size:14px;font-weight:600;color:#222;padding:0}
table.grade td.cel.vazia{background:#eceff1}
table.grade td.cel input:focus{outline:2px solid var(--azul);background:#fffde7}
/* leprose: números em vermelho (item 9) */
table.grade td.cel input[data-praga="leprose"]{color:#c62828;font-weight:700}
table.grade .pct{background:#fff;font-weight:800;min-width:52px;width:52px}
table.grade .pct .ind-lbl{font-size:9px;color:#c62828;font-weight:800;line-height:1}
table.grade .pct .ind-val{font-size:13px;font-weight:800;color:#111;line-height:1.15}
/* coluna de limiar de ação — numeração fixa de comparação (item 10, coluna AO do Excel) */
table.grade th.lim{background:var(--cinza);font-size:9px}
table.grade td.lim{background:#fdf6d8;font-weight:800;font-size:11px;color:#222;width:44px}
table.grade td.lim div{line-height:1.15}
table.grade .risco-verde{background:var(--verde-claro)}
table.grade .risco-amarelo{background:#fff3c4}
table.grade .risco-vermelho{background:#ffcdd2}
/* caixinha clicável fruto/folha (coluna estreita ao lado do rótulo, igual à planilha) */
table.grade td.ff{background:#fff;text-align:center;padding:0;vertical-align:middle}
table.grade td.ff input{margin:0;width:15px;height:15px;cursor:pointer}
table.grade td.ff .indice-btn{border:1px solid #888;background:#fff;font-size:12px;line-height:1;cursor:pointer;padding:1px 4px;border-radius:3px}
table.grade td.ff .indice-btn:hover{background:#e8f5e9}
/* opções (Pulgão verde/preto, Tripes, Lagarta): caixinhas na coluna esquerda + rótulos ao lado */
table.grade td.opc-ff{background:#fff;text-align:center;vertical-align:middle;padding:0}
table.grade td.opc-ff input{display:block;margin:0 auto;width:14px;height:18px;cursor:pointer}
table.grade td.opc-sub{background:var(--verde-claro);padding:0 4px;white-space:normal;vertical-align:middle}
table.grade td.opc-sub div{font-size:9px;height:18px;line-height:18px}
/* Índice de Avaliação no relatório/PDF */
.rel-indice{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.rel-ind-bloco{flex:1;min-width:200px;border:0.5px solid #bbb;border-radius:4px;overflow:hidden}
.rel-ind-tit{background:#e8f5e9;font-weight:700;font-size:11px;padding:4px 8px;border-bottom:0.5px solid #bbb}
.rel-ind-item{font-size:11px;padding:3px 8px}
table.grade tr.bene td.ff{background:var(--verde-claro)}
/* faixa alternada (amarelo/branco) p/ diferenciar os blocos de presença */
table.grade tr.faixa-alt td.cel input{background:#fff}
/* bloco de inimigos naturais (benéfico) todo em verde */
table.grade tr.bene td.cel input{background:var(--verde-claro)}
/* espelho no relatório/PDF */
table.rel-grade td.faixa{background:#fffbe6}
table.rel-grade td.bene{background:#e8f5e9}
table.rel-grade td.ffr{background:#fff;font-weight:700;text-align:center}
table.rel-grade td.lm{background:#fdf6d8;font-weight:700;text-align:center}
.sec-sep td{height:4px;background:#cfd8dc;border:0}

/* Painel lateral */
.painel h3{background:var(--verde-cab);color:#fff;margin:0;padding:5px 8px;font-size:12px;text-transform:uppercase}
.painel .bloco{padding:6px 8px;border-bottom:1px solid var(--borda)}
.chk{display:flex;align-items:flex-start;gap:6px;font-size:12px;padding:2px 0}
.chk input{margin-top:2px}
.classif{padding:10px;text-align:center;font-weight:800;color:#fff}
.obs-lib select{width:100%}
.obs-livre{display:flex;gap:6px;margin-top:6px}
.obs-livre input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--borda);border-radius:6px;font-size:13px}
.obs-livre button{background:var(--verde-cab);color:#fff;border:0;border-radius:6px;padding:0 12px;font-weight:700;cursor:pointer;white-space:nowrap}
.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.tag{background:var(--verde-claro);border:1px solid var(--verde);border-radius:12px;padding:2px 8px;font-size:11px;display:flex;gap:6px;align-items:center}
.tag button{border:0;background:transparent;color:var(--vermelho);font-weight:700}
/* observações com nível de cor (🔴🟡🟢) — escolhido pelo técnico, sai no PDF na cor */
.tag-obs{flex-wrap:wrap}
.tag-obs .obs-cores{display:inline-flex;gap:1px}
.tag-obs .obs-cor{cursor:pointer;font-size:12px;opacity:.4;padding:0 1px;line-height:1;filter:grayscale(.4)}
.tag-obs .obs-cor.sel{opacity:1;filter:none;transform:scale(1.25)}
.tag-obs .obs-rm{color:var(--vermelho)}
.tag-obs.obs-vermelho .tag-txt{color:#c62828;font-weight:800}
.tag-obs.obs-amarelo .tag-txt{color:#b8860b;font-weight:800}
.tag-obs.obs-verde .tag-txt{color:#2e7d32;font-weight:800}
/* no relatório/PDF, a observação sai na cor escolhida */
.rel-obs .obs-vermelho{color:#c62828}
.rel-obs .obs-amarelo{color:#b8860b}
.rel-obs .obs-verde{color:#2e7d32}

/* fotos */
.foto-add{display:inline-block;background:var(--verde-cab);color:#fff;padding:8px 14px;border-radius:8px;font-weight:700;cursor:pointer;font-size:13px}
.quar-fotos{padding:10px 12px;border-top:1px solid var(--borda-forte)}
.fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:8px}
.foto-item{border:1px solid var(--borda);border-radius:8px;overflow:hidden;position:relative;background:#fafafa}
.foto-item img{width:100%;height:110px;object-fit:cover;display:block}
.foto-item .foto-label{width:100%;border:0;border-top:1px solid var(--borda);padding:5px 6px;font-size:12px;box-sizing:border-box}
.foto-item .foto-del{position:absolute;top:4px;right:4px;background:rgba(198,40,40,.92);color:#fff;border:0;border-radius:50%;width:24px;height:24px;font-weight:700;cursor:pointer;line-height:1}

/* rodapé */
.rodape{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-top:2px solid var(--borda-forte);flex-wrap:wrap;font-size:12px}
.rodape .ass{text-align:right}
.rodape .ass b{display:block}

/* Modo planta (celular) */
.modo-planta{padding:12px}
.mp-nav{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:12px}
.mp-nav button{font-size:18px;background:var(--verde-cab);color:#fff;border:0;border-radius:8px;width:44px;height:44px}
.mp-nav .num{font-size:20px;font-weight:800;min-width:80px;text-align:center}
.mp-praga{border:1px solid var(--borda);border-radius:8px;margin-bottom:10px;overflow:hidden}
.mp-praga>.h{background:var(--verde-cab);color:#fff;padding:6px 10px;font-weight:700;font-size:13px}
.mp-sub{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-top:1px solid var(--cinza)}
.mp-sub input{width:70px;height:38px;text-align:center;background:var(--amarelo-cel);border:1px solid var(--borda);border-radius:6px;font-size:16px}
.hidden{display:none!important}

@media screen and (max-width:820px){
  .corpo{flex-direction:column}
  .painel{width:100%;border-left:0;border-top:2px solid var(--borda-forte)}
  .campo{grid-column:span 6 !important}
  .cab h1{font-size:13px}
}

/* pular pra planta X (modo planta) */
.mp-nav .num input{width:60px;font-size:20px;font-weight:800;text-align:center;border:2px solid var(--verde);
  border-radius:6px;padding:2px 0;margin:0 2px}

/* modal lista de inspeções */
.ov-lista{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:140;display:flex;align-items:center;justify-content:center}
.ov-card{background:#fff;border-radius:10px;max-width:560px;width:92%;max-height:82vh;overflow:auto;padding:16px}
#listaBusca{width:100%;padding:9px 10px;margin-bottom:10px;border:1px solid #bbb;border-radius:8px;font-size:14px;box-sizing:border-box}
.ov-item{border:1px solid #ddd;border-radius:8px;padding:8px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.ov-badge{color:#fff;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}
.ov-btn-abrir{background:#2e7d32;color:#fff;border:0;border-radius:6px;padding:6px 10px;cursor:pointer}
.ov-btn-del{background:#c62828;color:#fff;border:0;border-radius:6px;padding:6px 10px;cursor:pointer}
.ov-btn-edit{background:#eef;border:1px solid #ccd;border-radius:6px;padding:6px 10px;cursor:pointer}
/* droplist de produtores (clica no cabeçalho e aparecem os cadastrados) */
.ov-drop{border:1px solid #ddd;border-radius:8px;overflow:hidden}
.ov-drop>summary{cursor:pointer;font-weight:700;font-size:13px;padding:8px 10px;background:#eef3ee;list-style:none}
.ov-drop>summary::-webkit-details-marker{display:none}
.ov-drop>summary::before{content:'▸ ';color:#1565c0}
.ov-drop[open]>summary::before{content:'▾ '}
.ov-drop .ov-drop-body{padding:8px}
.ov-drop .ov-item:last-child{margin-bottom:0}
.ov-rodape{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.ov-rodape button,.ov-rodape #fecharOv{padding:6px 14px;border-radius:6px;border:1px solid #ccc;background:#f5f5f5;cursor:pointer}
.ov-sec{padding:6px 12px;border-radius:6px;border:1px solid #bbb;background:#eef5ee;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:4px}
/* formulário de propriedade */
.prop-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prop-form label{display:flex;flex-direction:column;font-size:12px;font-weight:700;gap:3px}
.prop-form label:first-child{grid-column:1/-1}
.prop-form input{padding:6px 8px;border:1px solid #bbb;border-radius:6px;font-size:14px;font-weight:400}
.pf-qrow{display:flex;gap:6px;margin-bottom:5px;align-items:center}
.pf-qrow input{padding:5px 7px;border:1px solid #ccc;border-radius:6px;font-size:13px}
.pf-qrow input[data-qf="quadra"]{width:80px;flex-shrink:0}
.pf-qrow input[data-qf="variedade"]{flex:1;min-width:0}
.pf-qrow input[data-qf="amostra"]{width:64px;flex-shrink:0}
.pf-qrow button{background:#c62828;color:#fff;border:0;border-radius:6px;width:28px;height:28px;cursor:pointer;flex-shrink:0}

/* ---------- Relatório / PDF ---------- */
.rel-overlay{position:fixed;inset:0;background:#525659;z-index:130;overflow:auto}
.rel-overlay.hidden{display:none}
.rel-toolbar{position:sticky;top:0;background:#111;color:#fff;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 14px;z-index:2}
.rel-toolbar button{background:#2e7d32;color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer;font-weight:700}
.rel-toolbar #btnFecharRel{background:#555}
.rel-views{display:inline-flex;gap:4px}
.rel-views button{background:#37474f;opacity:.7}
.rel-views button.ativo{opacity:1;background:#1b5e20;outline:2px solid #66bb6a}
/* Relatório Geral fiel à aba CONTROLE */
.geral-sel{margin:6px 0 10px;font-size:13px}
.geral-sel select{padding:5px 8px;font-size:13px;border:1px solid #999;border-radius:6px;max-width:100%}
.ctr-parceria{display:inline-block;background:#ffeb3b;color:#c62828;font-weight:800;font-size:12px;padding:3px 10px;border-radius:3px;margin:2px 0 8px}
table.rel-controle{border-collapse:collapse;width:100%;font-size:8.5px;margin-top:4px}
table.rel-controle th,table.rel-controle td{border:1px solid #2e7d32;padding:2px 3px;text-align:center;vertical-align:middle}
table.rel-controle th{color:#0b3d0b;font-weight:700;background:#fff;line-height:1.1}
table.rel-controle tr.lim th{background:#e8e0c8;color:#333;font-weight:700}
table.rel-controle th.sugestao{writing-mode:vertical-rl;transform:rotate(180deg);background:#e8e0c8;font-size:8px;white-space:normal;width:22px;max-width:22px;line-height:1.1}
table.rel-controle td{color:#111;background:#f3faf3}
table.rel-controle tr.ctr-vazia td{background:#fff}   /* quadra ainda não inspecionada */
table.rel-controle tr.ctr-atual td{box-shadow:inset 0 0 0 9999px rgba(255,235,59,.12)}
table.rel-controle tr.ctr-atual td.ctr-q{outline:2px solid #f9a825}
table.rel-controle td.ctr-q{font-weight:800}
table.rel-controle td.ctr-obs{text-align:left;min-width:120px;font-size:8px}
table.rel-controle td.ctr-q,table.rel-controle td.ctr-var{background:#fff}
table.rel-controle td.ctr-inim{background:#e8f5e9;font-weight:800}
table.rel-controle .v-zero{background:#fff !important}
table.rel-controle .v-verde{background:#e8f5e9 !important}
table.rel-controle .v-amarelo{background:#fff3c4 !important}
table.rel-controle .v-vermelho{background:#ffcdd2 !important}

table.rel-geral{border-collapse:collapse;width:100%;font-size:9px;margin-top:4px}
table.rel-geral th,table.rel-geral td{border:1px solid #999;padding:2px 3px;text-align:center}
table.rel-geral th{background:#0b3d0b;color:#fff;font-size:8px;line-height:1.1}
table.rel-geral tr.lim td{background:#eee;font-style:italic;font-size:8px;color:#444}
table.rel-geral .v-verde{background:#e8f5e9}
table.rel-geral .v-amarelo{background:#fff3c4}
table.rel-geral .v-vermelho{background:#ffcdd2}
/* legenda de risco no rodapé do relatório geral */
.rel-legenda{display:flex;justify-content:space-around;gap:12px;flex-wrap:wrap;margin:8px 0 4px;font-size:11px;font-weight:700}
.rel-legenda .leg-item{display:flex;align-items:center;gap:6px}
.rel-legenda .leg-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 auto}
/* Grade LARGA do relatório (faixa única de plantas 1→70) — enche a A4 paisagem */
table.rel-grade-larga{table-layout:fixed;width:100%}
table.rel-grade-larga td.pc,table.rel-grade-larga td.lm{font-weight:800}
table.rel-grade-larga .rs{white-space:normal;font-size:7px}
/* opções no relatório: ☑/☐ na coluna esquerda + só o nome no bloco, alinhados linha a linha */
table.rel-grade-larga td.opc-r{font-size:8px;line-height:11px;vertical-align:middle;white-space:nowrap;font-weight:400}
table.rel-grade-larga td.ffr.opc-r{text-align:center}
table.rel-grade-larga .hd-plantas{text-align:left;padding-left:4px;font-size:7.5px;letter-spacing:.3px}
table.rel-grade-larga td.rs.opc-r{text-align:left}
/* fundo do relatório BRANCO — a cor vem só da coluna de % (por faixa de risco) */
table.rel-grade-larga tr.linha-amarela td.celr,
table.rel-grade-larga tr.linha-branca td.celr{background:#fff}
table.rel-grade-larga td.celr.bene{background:#e8f5e9}
/* coluna de % (quadro): 0% branco; acima colore o quadro INTEIRO pela faixa de risco */
table.rel-grade-larga td.pc,table.rel-grade-larga td.lm{padding:0}
table.rel-grade-larga td.pc div{padding:2px 1px}
table.rel-grade-larga td.pc .v-zero{background:#fff;color:#111}
table.rel-grade-larga td.pc .v-verde{background:#2e7d32;color:#fff}
table.rel-grade-larga td.pc .v-amarelo{background:#f6c026;color:#111}
table.rel-grade-larga td.pc .v-vermelho{background:#c62828;color:#fff}
/* separa um pouco mais os dois valores da ferrugem (10% / 5%) e os limiares */
table.rel-grade-larga td.pc div + div,
table.rel-grade-larga td.lm div + div{margin-top:3px;border-top:2px solid #fff}
table.rel-grade-larga td.lm div{padding:2px 1px}
table.rel-grade .pc div,table.rel-grade .lm div{line-height:1.15}
@media screen and (max-width:1100px){table.rel-grade-larga{min-width:1040px}}
.rel-body{background:#fff;max-width:1060px;margin:16px auto;padding:16px 20px;box-shadow:0 2px 12px rgba(0,0,0,.4);color:#111}
.rel-body h2{font-size:15px;margin:2px 0 8px;text-align:center;text-transform:uppercase}
.rel-sec-title{background:#0b3d0b;color:#fff;padding:4px 8px;font-size:11px;font-weight:700;margin:14px 0 6px;text-transform:uppercase}
.rel-dados{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 14px;font-size:12px}
.rel-dados b{color:#333}
/* data da próxima inspeção destacada em vermelho */
.rel-prox{color:#c62828;font-weight:800;background:#ffe3e3;padding:0 6px;border-radius:3px;border:1px solid #e57373}
/* negrito total no relatório/PDF — destaca todas as letras */
.rel-body,.rel-body *{font-weight:700}
.rel-classif{padding:8px;color:#fff;font-weight:800;text-align:center;font-size:13px;border-radius:4px}
.rel-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.rel-obs{font-size:11px;margin:2px 0}
.rel-obs div{padding:1px 0;break-inside:avoid}
.rel-vazio{font-size:11px;color:#888;margin:2px 0}
.rel-ass{margin-top:18px;text-align:right;font-size:11px}
.rel-ass b{display:block;margin-bottom:2px}
table.rel-grade{border-collapse:collapse;table-layout:fixed;width:100%;font-size:8px}
table.rel-grade td{border:0.5px solid #999;text-align:center;height:13px;overflow:hidden;padding:0}
table.rel-grade .hd{background:#eee;font-weight:700;font-size:7px}
table.rel-grade .rp{background:#43a047;color:#fff;font-weight:700;font-size:7px;padding:0 1px;line-height:1}
table.rel-grade .rs{background:#e8f5e9;font-size:7px;text-align:left;padding:1px 2px;line-height:1.05;white-space:normal}
table.rel-grade .pc{font-weight:700;font-size:7px}
table.rel-grade .v-verde{background:#e8f5e9}
table.rel-grade .v-amarelo{background:#fff3c4}
table.rel-grade .v-vermelho{background:#ffcdd2}
/* item 8: uma cor por praga (branco/amarelo alternado) na coluna de sub-rótulo */
table.rel-grade tr.pr0 .rs{background:#ffffff}
table.rel-grade tr.pr1 .rs{background:#fff8d6}
/* item 9: números da leprose em vermelho no relatório */
table.rel-grade td.lep{color:#c62828;font-weight:700}
table.rel-resumo{border-collapse:collapse;width:100%;font-size:11px}
table.rel-resumo th,table.rel-resumo td{border:1px solid #bbb;padding:3px 6px;text-align:left}
table.rel-resumo th{background:#0b3d0b;color:#fff}
/* item 4 + 8: nome da praga em negrito e zebra (uma linha branca, uma amarela) */
table.rel-resumo td.rel-praga-nome{font-weight:800}
table.rel-resumo tbody tr:nth-child(even){background:#fff8d6}
.rel-badge{padding:1px 8px;border-radius:10px;font-weight:700;font-size:10px;color:#fff;display:inline-block}
.rel-fotos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rel-fotos figure{margin:0;border:1px solid #bbb;border-radius:4px;overflow:hidden;break-inside:avoid;page-break-inside:avoid}
.rel-fotos img{width:100%;height:150px;object-fit:cover;display:block}
.rel-fotos figcaption{font-size:11px;padding:3px 6px;background:#f0f0f0;font-weight:600}

/* Orientação da página é definida dinamicamente via <style id="printPage"> (paisagem p/ pragas, retrato p/ Greening/Cancro) */
/* rolagem lateral das tabelas largas (grade e CONTROLE) na tela */
.rel-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* medição consistente da ficha p/ impressão (mesmo tamanho na tela e no papel) */
/* topo compacto na página 1 — sobra mais espaço para a grade (ficha visível) */
.ficha-core h2{font-size:13px;margin:0 0 3px}
.ficha-core .rel-dados{font-size:11px;gap:1px 12px}
.ficha-core .rel-sec-title{margin:5px 0 3px;padding:2px 8px;font-size:10px}
.ficha-core .rel-classif{padding:3px;font-size:11px}
.ficha-core .rel-ass{margin-top:6px}
.ficha-core .rel-legenda{font-size:9px;margin:3px 0}
.ficha-core .rel-legenda .leg-dot{width:10px;height:10px}

/* apresentação no CELULAR: não espremer — deixar rolar de lado, legível */
@media screen and (max-width:820px){
  .rel-body{max-width:100%;margin:8px;padding:10px}
  .rel-body h2{font-size:14px}
  .rel-dados{grid-template-columns:repeat(2,1fr);font-size:12px}
  .rel-grid2{grid-template-columns:1fr}
  table.rel-grade{min-width:1150px;font-size:10px}
  table.rel-grade td{height:16px}
  table.rel-grade .hd{font-size:9px}
  table.rel-controle{min-width:1000px;font-size:10px}
  .rel-toolbar{flex-wrap:wrap;gap:6px}
  .rel-hint{font-size:11px;flex-basis:100%;order:3}
}

@media print{
  body>*:not(.rel-overlay){display:none !important}
  .rel-overlay{position:static;background:#fff;overflow:visible}
  /* IMPRIME os fundos/cores (banner verde da classificação, células amarelas, etc.) — some o cinza */
  .rel-overlay,.rel-overlay *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;color-adjust:exact !important}
  .rel-toolbar{display:none !important}
  .geral-sel{display:none !important}
  .rel-body{box-shadow:none;margin:0;max-width:none;padding:0}
  .rel-scroll{overflow:visible}
  /* sem JS — largura FÍSICA fixa (mm) p/ o iOS não cortar (independe do viewport). Precisa imprimir em PAISAGEM. */
  .ficha-page{width:auto !important;height:auto !important;overflow:visible !important;transform:none !important}
  .ficha-core{height:auto !important;overflow:visible !important;transform:none !important;width:277mm !important;max-width:277mm !important}
  /* o min-width de celular não vale na impressão (senão estoura a página) */
  table.rel-grade,table.rel-controle{min-width:0 !important;font-size:8px}
  /* grade larga: fonte menor (70 colunas), linhas altas p/ encher a folha */
  table.rel-grade-larga{font-size:8.5px;border-collapse:collapse}
  table.rel-grade-larga td{height:26px;font-weight:600}
  table.rel-grade-larga .hd{font-size:8px}
  table.rel-grade-larga .rs{font-size:7.5px;font-weight:400}
  .ficha-core .rel-ass{margin-top:3px;font-size:10px}
  /* garante a GRADE visível (iOS às vezes some com célula vazia/borda fina) */
  table.rel-grade-larga td,table.rel-grade-larga th{border:0.7px solid #555}
  table.rel-grade-larga td:empty::after{content:"\00a0";display:inline-block}  /* célula vazia não colapsa no iOS */
  table.rel-grade tr{page-break-inside:avoid}
  .ficha-core{page-break-inside:avoid}
  /* a ficha (núcleo) fica na 1ª folha; observações/fotos vão para a próxima */
  .ficha-extra{page-break-before:always;break-before:page}
  /* PDF combinado: cada ficha selecionada começa em nova página */
  .ficha-doc{page-break-before:always;break-before:page}
  .ficha-doc:first-child{page-break-before:avoid;break-before:avoid}
}

/* Colaborador (papel limitado): esconde excluir ficha e backup na lista */
body.colaborador .ov-btn-del,
body.colaborador #btnExport,
body.colaborador label[for="fileImport"]{display:none !important}

/* PDF: observações da ficha de Greening/Cancro */
.rel-obs-txt{border:1px solid #bbb;border-radius:4px;padding:6px 8px;font-size:12px;white-space:pre-wrap;min-height:40px}

/* PDF: tabela de ruas longa (150–300) pagina bem — cabeçalho repete, linhas não cortam */
@media print{
  table.rel-resumo thead{display:table-header-group}
  table.rel-resumo tr{break-inside:avoid;page-break-inside:avoid}
}

/* Seletor de plantas com sintomas (ficha Greening/Cancro) */
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;overflow:auto;padding:4px;border:1px solid var(--borda);border-radius:8px;max-height:62vh;-webkit-overflow-scrolling:touch}
.pl-chip{border:1px solid var(--borda);background:#fff;border-radius:8px;min-height:44px;font-size:15px;font-weight:600;color:#333;cursor:pointer}
.pl-chip:hover{background:#f1f8e9}
.pl-chip.on{background:var(--verde);color:#fff;border-color:var(--verde);font-weight:800}

/* Vídeos (ficha) */
.videos-grid{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.vid-item{display:flex;align-items:center;gap:10px;justify-content:space-between;background:#f1f8e9;border:1px solid #c5e1a5;border-radius:8px;padding:8px 10px;font-size:14px}
.vid-item a{color:#1565c0;font-weight:700;text-decoration:none}
.vid-del{background:#c62828;color:#fff;border:0;border-radius:6px;padding:5px 10px;font-size:13px}
#vidPrev{outline:none}
/* PDF: vídeos */
.rel-videos{font-size:12px}
.rel-vid{margin:2px 0}
.rel-vid-url{color:#555;font-size:10px;word-break:break-all}

/* === Temas por tipo: Greening (verde) / Cancro (salmão) === */
/* Greening — listra verde clara */
.tema-greening table.tab-quar tbody tr:nth-child(even) td{background:#eef8ee}
/* Cancro — cabeçalho salmão/laranja + listra salmão */
.tema-cancro .cab-quar{border-bottom-color:#c0562a}
.tema-cancro .totais-quar{background:#fdeee6}
.tema-cancro table.tab-quar th{background:#e8964f;color:#5a2d0f}
.tema-cancro table.tab-quar td.rnum{background:#fce9dc}
.tema-cancro table.tab-quar tbody tr:nth-child(even) td{background:#fdf0e8}
.tema-cancro table.tab-quar select.qiv{color:#8a3d12}
.tema-cancro .tab-quar input:focus{outline-color:#e8964f}

/* PDF (relatório quarentena): mesmas cores */
.rel-quar.tema-cancro table.rel-resumo th{background:#c0562a}
.rel-quar.tema-cancro table.rel-resumo tbody tr:nth-child(even){background:#fdf0e8}
.rel-quar.tema-greening table.rel-resumo tbody tr:nth-child(even){background:#eef8ee}

/* PDF: marcador "inspecionar até X" — planta N em vermelho, > N esmaecidas */
table.rel-grade-larga .hd-limite{background:#c62828;color:#fff;font-weight:800}
table.rel-grade-larga .hd-fora{opacity:.45}

/* === Menu inicial === */
.menu-screen{position:fixed;inset:0;z-index:90;background:linear-gradient(160deg,#0b3d0b,#1b5e20);display:flex;align-items:center;justify-content:center;padding:20px}
.menu-card{background:#fff;border-radius:16px;padding:28px 22px;width:100%;max-width:380px;box-shadow:0 12px 44px rgba(0,0,0,.35);text-align:center;display:flex;flex-direction:column;gap:12px}
.menu-logo{font-size:52px}
.menu-card h1{margin:0;color:#0b3d0b;font-size:22px}
.menu-sub{margin:0 0 8px;color:#666;font-size:14px}
.menu-btn{background:#2e7d32;color:#fff;border:0;border-radius:12px;padding:18px;font-size:18px;font-weight:700;cursor:pointer}
.menu-btn:hover{background:#256628}

/* === Biblioteca / FAQ === */
.biblio-screen{position:fixed;inset:0;z-index:80;background:#eef3ee;display:flex;flex-direction:column}
.biblio-top{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0b3d0b;color:#fff;flex-wrap:wrap}
.biblio-top button{background:#1b5e20;color:#fff;border:1px solid #2e7d32;border-radius:6px;padding:6px 12px}
.biblio-top input{border:0;border-radius:6px;padding:8px 10px;min-width:160px;font-size:14px}
.biblio-lista{flex:1;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:14px;align-content:start}
.biblio-card{text-align:left;background:#fff;border:1px solid #cfe0cf;border-radius:12px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.biblio-card:hover{border-color:#2e7d32}
.biblio-card b{font-size:16px;color:#14431a}
.biblio-card i{font-size:12px;color:#777}
.biblio-tag{margin-top:6px;font-size:12px;font-weight:700;color:#2e7d32}

/* pop-up de info da praga */
.rot-info{cursor:pointer}
.info-ico{font-size:9px;opacity:.85}
.info-corpo h4{margin:10px 0 3px;color:#0b3d0b;font-size:14px}
.info-sec div,.info-sec li{font-size:14px;line-height:1.4}
.info-cient{color:#777;margin-bottom:6px}
.info-exemplo{background:#fff3c4;border:1px solid #f0d060;border-radius:8px;padding:6px 10px;font-size:13px;margin-bottom:8px}
.info-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:6px 0}
.info-imgs img{width:100%;border-radius:8px;border:1px solid #ccc}

/* Super-admin — cartões de empresa */
.adm-card{background:#fff;border:1px solid #cfe0cf;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.adm-top{display:flex;align-items:center;gap:10px;font-size:16px}
.adm-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;font-size:13px}
.adm-row label{display:flex;flex-direction:column;gap:2px;font-weight:600;color:#555}
.adm-row input,.adm-row select{border:1px solid #bbb;border-radius:6px;padding:6px 8px;font-size:14px}
.adm-salvar{background:#2e7d32;color:#fff}
.adm-badge{padding:2px 10px;border-radius:10px;font-size:12px;font-weight:700;color:#fff}
.adm-ativo{background:#2e7d32}.adm-teste{background:#f9a825}.adm-suspenso{background:#c62828}

/* Dashboard do produtor */
.dash-body{flex:1;overflow:auto;padding:16px 20px;width:100%}
.dash-h{margin:16px 0 8px;color:#0b3d0b;font-size:15px}
.dash-card{background:#fff;border:1px solid #cfe0cf;border-radius:12px;padding:12px 14px;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.dash-card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dash-card-top small{color:#777}
.dash-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.dash-chip{color:#fff;font-weight:700;font-size:12px;border-radius:10px;padding:3px 10px}
.dash-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px 12px;margin-bottom:6px;font-size:14px}
.dash-pdf{background:#1565c0;color:#fff;border:0;border-radius:6px;padding:5px 12px;font-size:13px;margin-left:auto}
#dashProp{border:0;border-radius:6px;padding:6px 10px;font-size:14px;max-width:230px}
body.produtor #btnLinkFicha,body.produtor #btnViewGeral{display:none !important}

/* Links de rodapé (apagar conta / privacidade / termos) */
.menu-legal{font-size:13px;color:#666;margin-top:8px}
.menu-legal a{color:#1565c0}
.menu-link{background:none;border:0;color:#c62828;text-decoration:underline;cursor:pointer;font-size:13px;padding:0;font-family:inherit}

/* Dashboard do produtor — KPIs, atenção, heatmap */
.dash-tiles{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.tile{background:#fff;border:1px solid #cfe0cf;border-radius:12px;padding:12px 16px;text-align:center;flex:1;min-width:130px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.tile-n{font-size:26px;font-weight:800;color:#0b3d0b;line-height:1.1}
.tile-l{font-size:12px;color:#777;margin-top:4px}
.tile-risk{display:flex;gap:8px;justify-content:center}
.rk{font-size:22px;font-weight:800;border-radius:8px;padding:2px 12px;color:#fff;min-width:38px}
.rk-v{background:#2e7d32}.rk-a{background:#f9a825}.rk-r{background:#c62828}
.dash-prob{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.prob-chip{font-size:13px;border-radius:10px;padding:4px 10px;color:#fff}
.prob-amarelo{background:#f9a825}.prob-vermelho{background:#c62828}
.hm-wrap{overflow-x:auto;border-radius:12px;border:1px solid #cfe0cf;background:#fff}
table.hm{border-collapse:collapse;width:100%;font-size:12px}
table.hm th,table.hm td{border:1px solid #eef2ee;padding:6px 8px;text-align:center;white-space:nowrap}
table.hm thead th{background:#0b3d0b;color:#fff;font-size:11px}
.hm-q{background:#e8f5e9;font-weight:700;text-align:left}
.hm-cell{font-weight:700}
.hm-verde{background:#e8f5e9;color:#1b5e20}
.hm-amarelo{background:#f9a825;color:#3a2b00}
.hm-vermelho{background:#c62828;color:#fff}
.hm-none{background:#f6f6f6;color:#bbb}
.gc-bar{height:14px;background:#eee;border-radius:8px;overflow:hidden;margin:8px 0 4px}
.gc-fill{height:100%;border-radius:8px}

/* Precisa de atenção — agrupado por praga */
.prob-list{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.prob-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #eee;border-left:6px solid #f9a825;border-radius:8px;padding:9px 14px}
.prob-row.prob-vermelho{border-left-color:#c62828}
.prob-row b{font-size:15px;color:#14431a}
.prob-meta{color:#555;font-size:13px}
.prob-quadras{color:#999;font-size:12px;flex-basis:100%}

/* Link "esqueci minha senha" no login */
.login-esqueci{background:none;border:0;color:#bfe3c2;text-decoration:underline;cursor:pointer;font-size:13px;padding:2px;font-family:inherit}
.login-esqueci:hover{color:#fff}

/* Topbar: menu "⋯ Mais" (agrupa ações secundárias) */
.tb-more-wrap{position:relative}
.tb-more{position:absolute;right:0;top:calc(100% + 6px);background:#0b3d0b;border:1px solid #2e7d32;border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:200px;z-index:30;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.tb-more.hidden{display:none}
.tb-more button{width:100%;text-align:left}
.tb-more-sep{height:1px;background:#2e7d32;margin:2px 0}
.tb-user{font-size:12px;color:#bfe3c2;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Onboarding no menu (empresa nova) */
.menu-onboard{background:#fff8e1;border:1px solid #ffe082;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;text-align:left;margin-bottom:4px}
.menu-onboard.hidden{display:none}
.menu-onboard b{font-size:14px;color:#7a5c00}
.ob-step{background:#fff;border:1px solid #ffe082;border-radius:8px;padding:10px 12px;text-align:left;font-size:14px;font-weight:600;color:#5a4600;cursor:pointer}
.ob-step span{font-weight:400;color:#9a7a12;font-size:12.5px}
.ob-step:hover{background:#fffde7}

/* versão do sistema no rodapé (login + menu) */
.app-versao{ text-align:center; color:#9aa0a6; font-size:11px; margin-top:8px; }

/* Splash de carregamento (evita o flash da ficha antes dos dados carregarem) */
.splash-screen{position:fixed;inset:0;z-index:180;background:linear-gradient(160deg,#0b3d0b,#1b5e20);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.splash-screen.hidden{display:none}
.splash-logo{font-size:56px;line-height:1}
.splash-spin{width:34px;height:34px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:splashspin .8s linear infinite}
@keyframes splashspin{to{transform:rotate(360deg)}}
#splashMsg{font-size:14px;opacity:.9;margin:0}

/* ===== Módulo de Estoque (portal do produtor) ===== */
.est-nav{display:flex;gap:6px;flex-wrap:wrap;padding:8px 10px;background:#dff0df;border-bottom:1px solid #cfe3cf;position:sticky;top:0;z-index:1}
.est-nav button{border:1px solid #bcd6bc;background:#fff;color:#1b5e20;border-radius:16px;padding:6px 12px;font-size:13px;font-weight:700;cursor:pointer}
.est-nav button.ativo{background:#1b5e20;color:#fff;border-color:#1b5e20}
.est-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:12px 14px;margin:10px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.est-card h3{margin:0 0 8px;font-size:15px;color:#0b3d0b}
.est-sub{font-weight:700;font-size:13px;margin:8px 0 4px}
.est-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.est-form input,.est-form select{padding:8px;border:1px solid #bbb;border-radius:6px;font-size:14px;min-width:0}
.est-pragas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 10px}
.est-chk{display:flex;gap:6px;align-items:center;font-size:13px}
.est-actions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.est-save{background:#1565c0;color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer}
.est-b{background:#eef;border:1px solid #ccd;border-radius:6px;padding:5px 9px;cursor:pointer;font-size:14px}
.est-del{background:#fdecea;border-color:#f5c6c0}
.est-msg{font-size:13px}
.est-item{display:flex;gap:8px;align-items:center;border:1px solid #eee;border-radius:8px;padding:8px;margin-bottom:6px}
.est-tag{background:#e3f2fd;color:#1565c0;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}
.est-table{border-collapse:collapse;width:100%;font-size:13px}
.est-table th,.est-table td{border:1px solid #e0e0e0;padding:6px 8px;text-align:left}
.est-table th{background:#0b3d0b;color:#fff;font-size:12px}
.est-table tr.est-baixo td{background:#fdecea}
.est-alerta{background:#fff3cd;border-color:#ffe08a;color:#7a5b00}

/* ===== Eficácia (cruzamento) ===== */
.ef-leg{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:12px}
.ef-leg span{display:flex;align-items:center;gap:5px}
.ef-leg i{width:12px;height:12px;border-radius:3px;display:inline-block}
.ef-item .ef-head{font-size:14px;margin-bottom:6px}
.ef-suc{float:right;font-weight:800;border-radius:10px;padding:1px 8px;font-size:12px;color:#fff}
.ef-suc.ok{background:#2e7d32}.ef-suc.md{background:#f9a825;color:#111}.ef-suc.ru{background:#c62828}
.ef-bar{display:flex;height:18px;border-radius:5px;overflow:hidden;background:#eee}
.ef-bar span{display:block;height:100%}
.ef-txt{font-size:12px;color:#444;margin-top:6px}

/* resumo de custos */
.est-resumo{display:flex;gap:12px;flex-wrap:wrap}
.est-resumo>div{flex:1;min-width:150px;background:#f1f8f1;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column}
.est-resumo span{font-size:12px;color:#555}
.est-resumo b{font-size:20px;color:#0b3d0b}
