/* Forest-GIS · Ferramentas — folha de estilo compartilhada pelas calculadoras */
:root{
  --bg:#f4f7f5;
  --panel:#fff;
  --ink:#1b2a22;
  --muted:#5b6b62;
  --line:#dbe3dd;
  --line2:#eef3ef;
  --green:#005a36;
  --green-d:#003d24;
  --green-l:#e6f2ea;
  --amber:#005a36;
  --amber-l:#e6f2ea;
  --red:#cf2e2e;
  --red-l:#fdf1ef;
  --r:14px;
  --shadow:0 1px 2px rgba(19,37,29,.05),0 10px 30px -24px rgba(19,37,29,.5);
}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--green)}
h1,h2,h3{line-height:1.2;margin:0 0 .4em;letter-spacing:-.015em}
h1{font-size:clamp(1.55rem,2.6vw,2.1rem);font-weight:750}
h2{font-size:1.05rem;font-weight:700}
p{margin:0 0 1em}
.wrap{max-width:1080px;margin:0 auto;padding:26px 20px 48px}

/* incorporado em página do WordPress (iframe ou ?embed=1): sem barra e sem rodapé */
html.is-embedded .tool-bar{display:none!important}
html.is-embedded .foot .no-print{display:none!important}
html.is-embedded .wrap{padding-top:18px;padding-bottom:26px}
html.is-embedded .results{top:12px}

/* trilha e ferramentas relacionadas */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.77rem;color:var(--muted);margin:0 0 10px}
.crumbs a{color:var(--green);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-hidden]{color:#a9b6ad}
.related{margin-top:34px;border-top:1px solid var(--line);padding-top:18px}
.related h2{font-size:.95rem;margin-bottom:10px}
.related ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.related a{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.81rem;text-decoration:none;background:#fff;color:var(--green-d)}
.related a:hover{background:var(--green-l);border-color:#bcd6c7}

/* barra superior */
.tool-bar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:12px 20px;background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
.brand{font-weight:750;color:var(--green-d);text-decoration:none;letter-spacing:-.02em}
.brand span{font-weight:500;color:var(--muted)}
.badge{
  display:inline-flex;align-items:center;gap:7px;font-size:.76rem;color:var(--green-d);
  background:var(--green-l);border:1px solid #cfe3d6;border-radius:999px;padding:5px 11px;white-space:nowrap;
}
.badge i{width:7px;height:7px;border-radius:50%;background:#2f9e6e;box-shadow:0 0 0 3px rgba(47,158,110,.18)}
.eyebrow{margin:0 0 6px;font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--amber)}
.lead{max-width:66ch;color:#40534a;margin-bottom:0}

/* grade principal */
.grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:18px;align-items:start;margin-top:20px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px}
.results{position:sticky;top:74px}
@media (max-width:880px){
  .grid{grid-template-columns:1fr}
  .results{position:static}
}

/* formulário */
.field{margin-bottom:14px}
.field:last-child{margin-bottom:0}
.field > label,.field > .label{display:block;font-size:.86rem;font-weight:650;margin-bottom:5px}
.hint{display:block;font-size:.77rem;color:var(--muted);margin-top:5px;line-height:1.45}
input[type=number],input[type=text],select{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;
  color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;
}
input[type=number]{-moz-appearance:textfield}
input:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #2f9e6e;outline-offset:2px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.row{grid-template-columns:1fr}}
.unit{display:flex;gap:8px;align-items:stretch}
.unit input,.unit select{flex:1;min-width:0}
.unit .suffix{
  display:grid;place-items:center;min-width:54px;padding:0 10px;border:1px solid var(--line);
  border-radius:10px;background:var(--line2);font-size:.84rem;color:var(--muted);
}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.presets button{
  font:inherit;font-size:.75rem;padding:4px 10px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--muted);cursor:pointer;
}
.presets button:hover{border-color:#bcd6c7;color:var(--green-d);background:var(--green-l)}
.btn{
  display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:.85rem;font-weight:650;
  padding:9px 14px;border-radius:10px;border:1px solid var(--green-d);background:var(--green-d);
  color:#fff;cursor:pointer;text-decoration:none;
}
.btn:hover{background:#0a3325}
.btn-ghost{background:#fff;color:var(--green-d);border-color:var(--line)}
.btn-ghost:hover{background:var(--green-l);border-color:#bcd6c7}
.btn-sm{font-size:.78rem;padding:6px 10px}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

/* resultados */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.kpi{border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fbfcf9}
.kpi .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.kpi .v{font-size:1.3rem;font-weight:720;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px}
.kpi .v small{font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:0}
.kpi.hero{grid-column:1/-1;background:var(--green-l);border-color:#cfe3d6}
.kpi.hero .v{font-size:1.85rem;color:var(--green-d)}
.kpi.warn-k{background:var(--amber-l);border-color:#f0dfc6}
.table{width:100%;border-collapse:collapse;font-size:.85rem;font-variant-numeric:tabular-nums}
.table th,.table td{text-align:right;padding:7px 8px;border-bottom:1px solid var(--line2)}
.table th:first-child,.table td:first-child{text-align:left}
.table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line)}
.table tfoot td{font-weight:700;border-bottom:none;border-top:1px solid var(--line)}
.table-wrap{overflow-x:auto;margin:0 -4px}
.table caption{caption-side:bottom;text-align:left;font-size:.74rem;color:var(--muted);padding-top:8px}
.warn,.note{border-radius:10px;padding:10px 12px;font-size:.8rem;line-height:1.45;margin:10px 0 0}
.warn{background:var(--red-l);border:1px solid #f0d2d2;color:#7c2626}
.note{background:var(--amber-l);border:1px solid #f0dfc6;color:#6b4213}
.ok{background:var(--green-l);border:1px solid #cfe3d6;color:#14503a;border-radius:10px;padding:10px 12px;font-size:.8rem}
.disclaimer{margin-top:18px;border:1px solid #f2d3ce;background:#fdf5f3;border-radius:11px;padding:12px 14px;font-size:.8rem;line-height:1.55;color:#7a2b22}
.disclaimer strong{color:#5f1f18}
.empty{color:var(--muted);font-size:.9rem}
.sub{font-size:.78rem;color:var(--muted);margin-top:2px}

/* blocos de metodologia */
.method,.sources{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:0 20px}
.method summary,.sources summary{
  cursor:pointer;padding:15px 0;font-weight:650;font-size:.9rem;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.method summary::-webkit-details-marker,.sources summary::-webkit-details-marker{display:none}
.method summary::after,.sources summary::after{content:"+";color:var(--muted);font-weight:600;font-size:1.1rem}
.method[open] summary::after,.sources[open] summary::after{content:"–"}
.method .body,.sources .body{padding:0 0 18px;font-size:.88rem;color:#3d4f46}
.method h3{font-size:.84rem;margin:14px 0 6px;color:var(--ink)}
.method ul,.sources ul{margin:0 0 10px;padding-left:20px}
.method li,.sources li{margin-bottom:5px}
.formula{
  display:block;overflow-x:auto;background:#0d3f2f;color:#d9f0e4;border-radius:9px;
  padding:10px 12px;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:8px 0;
}
.src a{word-break:break-word}
.foot{max-width:1080px;margin:0 auto;padding:0 20px 40px;font-size:.78rem;color:var(--muted);line-height:1.6}

/* aviso temporário */
.fg-toast{
  position:fixed;left:50%;bottom:22px;transform:translate(-50%,12px);background:#0d3f2f;color:#fff;
  padding:10px 16px;border-radius:10px;font-size:.85rem;box-shadow:0 8px 24px rgba(0,0,0,.24);
  opacity:0;transition:opacity .22s,transform .22s;z-index:99;pointer-events:none;
}
.fg-toast.show{opacity:1;transform:translate(-50%,0)}

@media print{
  body{background:#fff}
  .tool-bar,.actions,.presets,.no-print,.foot{display:none!important}
  .wrap{max-width:none;padding:0}
  .panel{border:none;box-shadow:none;padding:0}
  .grid{grid-template-columns:1fr}
  .results{position:static}
  .method,.sources{break-inside:avoid;border:none;padding:0}
  .kpi{border:1px solid #bbb}
  .formula{background:#f2f4ef;color:#0d3f2f}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* módulo fiscal — widget compacto (100% de largura × 250px de altura) */
body.mf-embed{margin:0;height:250px;overflow:hidden}
.mf-widget{
  position:relative;display:flex;flex-direction:column;gap:8px;width:100%;height:250px;
  padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden;
}
.mf-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mf-head h1{margin:0;font-size:.95rem;font-weight:750;letter-spacing:-.01em;line-height:1.2}
.mf-head span{display:block;font-size:.68rem;color:var(--muted);margin-top:1px}
.mf-info-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none;
  font:inherit;font-size:.72rem;font-weight:650;color:var(--green-d);
  background:var(--green-l);border:1px solid #cfe3d6;border-radius:999px;padding:5px 10px;cursor:pointer;
}
.mf-info-btn:hover{background:#dbeee2}
.mf-info-btn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mf-combo{position:relative}
.mf-widget input[type=text]{padding:8px 10px}
.mf-widget input:disabled{background:#f7faf8;color:var(--muted)}
.mf-list{
  position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 12px 30px -12px rgba(19,37,29,.35);max-height:140px;overflow:auto;
}
.mf-list li{display:flex;align-items:baseline;gap:7px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:.82rem}
.mf-list li:hover{background:var(--line2)}
.mf-list li[aria-selected="true"]{background:var(--green-l)}
.mf-nome{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf-uf{font-size:.66rem;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 4px;flex:none}
.mf-ha{margin-left:auto;font-size:.74rem;color:var(--green-d);font-variant-numeric:tabular-nums;font-weight:650;flex:none}
.mf-out{display:flex;flex-direction:column;gap:6px;min-height:0}
.mf-kpis{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;
  border:1px solid var(--line);border-radius:10px;background:#fbfcf9;padding:5px 3px;
}
.mf-kpi{min-width:0;text-align:center;padding:0 3px;border-right:1px solid var(--line2)}
.mf-kpi:last-child{border-right:0}
.mf-kpi span{display:block;font-size:.58rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.mf-kpi strong{
  display:block;font-size:.78rem;font-weight:700;color:var(--green-d);line-height:1.35;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mf-kpi strong small{font-size:.58rem;font-weight:600;color:var(--muted)}
.mf-area-row{display:flex;gap:6px;align-items:stretch}
.mf-area-row .unit{flex:1;min-width:0;gap:5px}
.mf-area-row .suffix{min-width:38px;padding:0 8px;font-size:.72rem}
.mf-area-row .btn{font-size:.72rem;padding:0 10px;flex:none;white-space:nowrap}
.btn:disabled{opacity:.45;cursor:default}
.mf-class{margin:0;font-size:.74rem;line-height:1.35;min-height:1.9em;color:#40534a;overflow:hidden}
.mf-class strong{color:var(--green-d);font-size:.8rem}
.mf-faixa{font-size:.66rem;color:var(--muted)}
.tag{display:inline-block;margin-left:5px;padding:1px 7px;border-radius:999px;font-size:.62rem;font-weight:700;vertical-align:1px;white-space:nowrap}
.tag-mini{background:var(--red-l);color:#8c2b22;border:1px solid #f2d4cf}
.tag-peq{background:var(--green-l);color:var(--green-d);border:1px solid #cfe3d6}
.tag-med{background:#fff6e5;color:#7a5210;border:1px solid #f2dfb8}
.tag-gde{background:#eef2f7;color:#33445c;border:1px solid #d7dfea}
.mf-erro{
  position:absolute;left:14px;right:14px;bottom:12px;margin:0;font-size:.72rem;line-height:1.4;
  color:#8c2b22;background:var(--red-l);border:1px solid #f2d4cf;border-radius:9px;padding:7px 9px;
}
.mf-erro a{color:inherit}

/* modal de informações do widget */
.mf-modal{position:absolute;inset:0;z-index:50;display:flex;padding:8px;background:rgba(11,30,21,.48)}
.mf-modal[hidden]{display:none}
.mf-modal-card{
  display:flex;flex-direction:column;width:100%;max-height:100%;background:#fff;
  border-radius:12px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45);overflow:hidden;
}
.mf-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);flex:none}
.mf-modal-head h2{margin:0;font-size:.84rem}
.mf-close{font:inherit;font-size:1rem;line-height:1;color:var(--muted);background:none;border:0;padding:4px 7px;border-radius:7px;cursor:pointer}
.mf-close:hover{background:var(--line2);color:var(--ink)}
.mf-modal-body{overflow:auto;padding:10px 12px 12px;font-size:.76rem;line-height:1.5;color:#3d4f46}
.mf-modal-body p{margin:0 0 .65em}
.mf-modal-body h3{font-size:.74rem;margin:.9em 0 .3em;color:var(--ink)}
.mf-modal-body ul{margin:0 0 .6em;padding-left:16px}
.mf-modal-body li{margin-bottom:3px}
.mf-modal-body .formula{padding:6px 8px;font-size:11.5px;margin:6px 0}
.mf-src{font-size:.68rem}
.mf-note{background:var(--green-l);border:1px solid #cfe3d6;border-radius:8px;padding:7px 9px;font-size:.7rem;color:#14503a}
.mf-disc{font-size:.66rem;color:var(--muted);margin-top:8px}
