/* ============================================================
   Reflorestamento — estilos do app (M3)
   Tokens e componentes herdados do protótipo gestao_florestal_v3_F
   + layout de navegação VERTICAL (sidebar estilo GC360), login e acesso.
   ============================================================ */
:root{
  /* TEMA CLARO de alta legibilidade (foco em leitura por pessoas mais velhas):
     fundo claro suave + texto escuro forte + acentos de alto contraste. */
  --bg:#F4F1E9;--bg-card:#FFFFFF;--bg-deep:#ECE7D9;--bg-hover:#E5DECB;
  --gold:#8A6A16;--gold-l:#A6841F;--gold-d:rgba(138,106,22,.12);
  --teal:#1C7A6D;--teal-d:rgba(28,122,109,.12);
  --red:#B3261E;--red-d:rgba(179,38,30,.09);
  --warn:#9A5B12;--warn-d:rgba(154,91,18,.12);
  --green:#2E7D52;--green-d:rgba(46,125,82,.12);
  --tp:#1A2A3A;--ts:#33485C;--tm:#566678;
  --border:rgba(20,40,60,.20);--borderl:rgba(20,40,60,.09);
  --axis:#33485C;--grid:rgba(20,40,60,.10);  /* eixos/grade dos gráficos */
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--tp);min-height:100vh;font-size:15px}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:rgba(0,0,0,.1)}
::-webkit-scrollbar-thumb{background:rgba(212,168,78,.3);border-radius:3px}

/* ---- header ---- */
.hdr{background:var(--bg-deep);border-bottom:1px solid var(--border);padding:9px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;position:sticky;top:0;z-index:200;height:54px}
.hdr-title{font-family:'Playfair Display',serif;font-size:17px;color:var(--gold);letter-spacing:.02em}
.hdr-sub{font-size:9px;color:var(--tm);letter-spacing:.09em;text-transform:uppercase;margin-top:2px}
.hdr-right{display:flex;align-items:center;gap:14px}
.hdr-badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.bdghdr{font-family:'IBM Plex Mono',monospace;font-size:10px;padding:3px 8px;border-radius:3px;border:1px solid}
.b-t{color:var(--teal);background:var(--teal-d);border-color:rgba(53,181,166,.3)}
.b-g{color:var(--gold);background:var(--gold-d);border-color:rgba(212,168,78,.3)}
.b-r{color:var(--red);background:var(--red-d);border-color:rgba(232,77,90,.3)}

/* ---- user chip + logout ---- */
.user-chip{display:flex;align-items:center;gap:9px}
.user-av{width:31px;height:31px;border-radius:50%;background:var(--gold-d);border:1px solid var(--border);color:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}
.user-meta{text-align:right;line-height:1.25}
.user-name{font-size:11px;color:var(--tp);font-weight:600}
.user-role{font-size:9px;color:var(--tm);text-transform:uppercase;letter-spacing:.08em}
.btn-logout{background:none;border:1px solid var(--borderl);color:var(--tm);border-radius:4px;padding:6px 10px;font-size:10px;cursor:pointer;transition:.2s}
.btn-logout:hover{color:var(--red);border-color:rgba(232,77,90,.3)}
.hamb{display:none;background:none;border:1px solid var(--borderl);color:var(--ts);border-radius:4px;padding:5px 9px;font-size:15px;cursor:pointer;line-height:1}
/* controle de tamanho de letra (acessibilidade) */
.fs-ctl{display:flex;gap:3px;align-items:center}
.fs-ctl button{background:none;border:1px solid var(--border);color:var(--ts);border-radius:4px;padding:5px 9px;font-weight:700;cursor:pointer;line-height:1;font-family:'DM Sans',sans-serif}
.fs-ctl button:hover{border-color:var(--gold);color:var(--gold)}
.fs-ctl button[data-fs="-"]{font-size:11px}
.fs-ctl button[data-fs="0"]{font-size:13px}
.fs-ctl button[data-fs="+"]{font-size:16px}

/* ---- app shell: sidebar + content ---- */
.app{display:flex;min-height:calc(100vh - 54px)}
.sidebar{width:214px;flex-shrink:0;background:var(--bg-deep);border-right:1px solid var(--border);padding:10px 0;position:sticky;top:54px;height:calc(100vh - 54px);overflow-y:auto}
.nav-grp-btn{width:100%;display:flex;align-items:center;gap:10px;padding:11px 18px;background:none;border:none;color:var(--ts);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-align:left;border-left:3px solid transparent;transition:.15s}
.nav-grp-btn:hover{color:var(--tp);background:var(--bg-hover)}
.nav-grp-btn.on{color:var(--gold);border-left-color:var(--gold);background:rgba(212,168,78,.06)}
.nav-ico{font-size:15px;width:20px;text-align:center;flex-shrink:0}
.sidebar-foot{padding:14px 18px;margin-top:10px;border-top:1px solid var(--borderl);font-size:9px;color:var(--tm);line-height:1.6}

.content{flex:1;min-width:0;display:flex;flex-direction:column}
.subtabbar{display:flex;background:rgba(0,0,0,.18);border-bottom:1px solid var(--border);padding:0 24px;overflow-x:auto;min-height:40px}
.subtabbar::-webkit-scrollbar{height:0}
.subtab{padding:11px 17px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--tm);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:.15s}
.subtab:hover{color:var(--ts)}
.subtab.on{color:var(--gold);border-bottom-color:var(--gold)}

/* ---- filter bar ---- */
.fbar{background:var(--bg-deep);border-bottom:1px solid var(--borderl);padding:8px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:sticky;top:54px;z-index:90}
.fbar-lbl{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tm)}
.fbar select{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:5px 10px;color:var(--tp);font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;outline:none;cursor:pointer;min-width:110px}
.fbar select:focus{border-color:var(--gold)}
.fbar-sep{width:1px;height:20px;background:var(--borderl);margin:0 4px}
.fbar-reset{font-size:10px;color:var(--tm);background:none;border:1px solid var(--borderl);border-radius:3px;padding:4px 9px;cursor:pointer;transition:.2s}
.fbar-reset:hover{color:var(--gold);border-color:var(--border)}

/* ---- main + panels ---- */
.main{padding:22px 24px;max-width:1440px;margin:0 auto;width:100%}
.panel{display:none}.panel.on{display:block}
.stitle{font-family:'Playfair Display',serif;font-size:14px;color:var(--gold);margin:16px 0 14px;display:flex;align-items:center;gap:10px}
.stitle::after{content:'';flex:1;height:1px;background:var(--border)}
.kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:20px}
.kc{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:16px 18px;position:relative;overflow:hidden}
.kc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);opacity:.5}
.kc.t::before{background:var(--teal)}.kc.r::before{background:var(--red)}.kc.w::before{background:var(--warn)}.kc.gr::before{background:var(--green)}
.klbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tm);margin-bottom:6px}
.kval{font-family:'IBM Plex Mono',monospace;font-size:24px;font-weight:600;color:var(--tp);line-height:1;margin-bottom:3px}
.kval.sm{font-size:18px}.ksub{font-size:11.5px;color:var(--ts)}
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:18px;margin-bottom:18px}
.ctitle{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ts);margin-bottom:12px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.ch{position:relative;height:210px}.ch-lg{position:relative;height:290px}.ch-xl{position:relative;height:340px}
.als{display:grid;gap:8px;margin-bottom:18px}
.al{border-radius:5px;padding:11px 14px;display:flex;gap:10px;align-items:flex-start}
.al.er{background:var(--red-d);border:1px solid rgba(232,77,90,.28)}
.al.wa{background:var(--warn-d);border:1px solid rgba(245,165,90,.28)}
.al.in{background:var(--teal-d);border:1px solid rgba(53,181,166,.28)}
.al.ok{background:var(--green-d);border:1px solid rgba(76,175,125,.28)}
.al-ico{font-size:14px;margin-top:1px;flex-shrink:0}
.al-title{font-size:12.5px;font-weight:700;color:var(--tp);margin-bottom:2px}
.al-txt{font-size:12.5px;color:var(--ts);line-height:1.55}
.tbox{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;overflow:hidden;margin-bottom:18px}
.tbar{padding:11px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.tlbl{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ts)}
.tscroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:11px}
thead th{background:rgba(20,40,60,.06);padding:8px 11px;text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ts);border-bottom:1px solid var(--border);white-space:nowrap}
tbody tr{border-bottom:1px solid var(--borderl);transition:background .1s}
tbody tr:hover{background:rgba(212,168,78,.04)}
tbody tr:last-child{border-bottom:none}
tbody tr.gap-row td{background:rgba(232,77,90,.07)!important;color:var(--red)!important;font-style:italic}
td{padding:7px 11px;color:var(--tp);font-family:'IBM Plex Mono',monospace;white-space:nowrap;font-size:12.5px}
td.t{font-family:'DM Sans',sans-serif}
tfoot td{background:rgba(212,168,78,.07);font-weight:700;border-top:1px solid var(--border)}
.bdg{display:inline-block;padding:2px 6px;border-radius:3px;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.bdg-25{background:rgba(212,168,78,.2);color:var(--gold)}.bdg-15{background:rgba(53,181,166,.2);color:var(--teal)}.bdg-35{background:rgba(245,165,90,.2);color:var(--warn)}
.bdg-er{background:rgba(232,77,90,.2);color:var(--red)}.bdg-ok{background:rgba(76,175,125,.15);color:var(--green)}.bdg-wa{background:rgba(245,165,90,.15);color:var(--warn)}.bdg-miss{background:rgba(232,77,90,.25);color:var(--red)}
.bdg-admin{background:rgba(212,168,78,.2);color:var(--gold)}.bdg-familia{background:rgba(53,181,166,.2);color:var(--teal)}.bdg-convidado{background:rgba(155,89,182,.2);color:#b07cd0}
.pbar{height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.pf{height:100%;border-radius:3px;transition:width .6s ease}
.pf.g{background:linear-gradient(90deg,var(--gold),var(--gold-l))}.pf.r{background:linear-gradient(90deg,var(--red),#FF7C87)}.pf.w{background:linear-gradient(90deg,var(--warn),#FFC07A)}.pf.t{background:linear-gradient(90deg,var(--teal),#50D5C8)}
.prow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--borderl)}
.prow:last-child{border-bottom:none}
.pname{font-size:12px;color:var(--tp)}.pquota{font-size:10px;color:var(--tm)}.pval{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--gold);text-align:right}
.fg{margin-bottom:11px}
label{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tm);margin-bottom:5px}
input[type=number],input[type=text],input[type=password],input[type=email],select.cfg,textarea.cfg{width:100%;background:#FBF9F3;border:1px solid var(--border);border-radius:4px;padding:8px 11px;color:var(--tp);font-family:'IBM Plex Mono',monospace;font-size:13.5px;outline:none;transition:border-color .2s}
input:focus,select.cfg:focus,textarea.cfg:focus{border-color:var(--gold)}
input[type=range]{width:100%;accent-color:var(--gold)}.rval{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--gold);margin-top:3px}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:9px;margin-bottom:9px}
.btn{padding:7px 16px;border:none;border-radius:4px;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:.03em;transition:.2s}
.btn-p{background:var(--gold);color:var(--bg-deep)}.btn-p:hover{background:var(--gold-l)}
.btn-o{background:transparent;border:1px solid var(--border);color:var(--ts)}.btn-o:hover{border-color:var(--gold);color:var(--gold)}
.nota{background:var(--gold-d);border:1px solid var(--border);border-radius:5px;padding:10px 14px;font-size:13px;color:var(--ts);line-height:1.65;margin-bottom:14px}
.nota strong{color:var(--gold)}
.matrix-cell{padding:6px 10px;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:11px}
.matrix-hdr{padding:6px 10px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tm);background:rgba(0,0,0,.18)}
.leg{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.leg-i{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--ts)}
.leg-d{width:14px;height:8px;border-radius:2px}
.dual-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
hr.sep{border:none;border-top:1px solid var(--borderl);margin:14px 0}

/* ---- laudo ---- */
.laudo-section{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:22px;margin-bottom:18px}
.laudo-h{font-family:'Playfair Display',serif;font-size:15px;color:var(--gold);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--borderl)}
.laudo-p{font-size:12px;color:var(--ts);line-height:1.8;margin-bottom:10px}
.laudo-p strong{color:var(--tp)}
.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.risk-card{border-radius:6px;padding:14px 16px;border:1px solid}
.risk-card.hi{background:var(--red-d);border-color:rgba(232,77,90,.3)}
.risk-card.med{background:var(--warn-d);border-color:rgba(245,165,90,.3)}
.risk-card.lo{background:var(--green-d);border-color:rgba(76,175,125,.3)}
.risk-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.risk-card.hi .risk-title{color:var(--red)}.risk-card.med .risk-title{color:var(--warn)}.risk-card.lo .risk-title{color:var(--green)}
.risk-txt{font-size:11px;color:var(--ts);line-height:1.5}
.rec-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--borderl);align-items:flex-start}
.rec-item:last-child{border-bottom:none}
.rec-num{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;color:var(--gold);flex-shrink:0;width:22px}
.rec-txt{font-size:11px;color:var(--ts);line-height:1.6}
.rec-txt strong{color:var(--tp)}
.depl-box{background:linear-gradient(135deg,rgba(232,77,90,.08),rgba(232,77,90,.02));border:1px solid rgba(232,77,90,.25);border-radius:7px;padding:20px;margin-bottom:18px}
.depl-title{font-family:'Playfair Display',serif;font-size:18px;color:var(--red);margin-bottom:14px}
.depl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}
.depl-metric{text-align:center;padding:12px;background:rgba(0,0,0,.15);border-radius:6px}
.depl-val{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:500;color:var(--red);line-height:1}
.depl-lbl{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tm);margin-top:4px}

/* ---- sócio card ---- */
.socio-card{background:var(--bg-card);border-radius:7px;padding:16px;border:1px solid var(--border);position:relative;overflow:hidden}
.socio-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px}
.socio-accent-0::after{background:var(--gold)}
.socio-accent-1::after{background:var(--teal)}
.socio-accent-2::after{background:var(--warn)}
.socio-accent-3::after{background:#9B59B6}
.socio-name{font-size:11px;font-weight:600;color:var(--ts);margin-bottom:8px;line-height:1.3}
.socio-val{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--gold);font-weight:500}
.socio-sub{font-size:10px;color:var(--tm);margin-top:3px}
.socio-proj{font-size:10px;color:var(--teal);margin-top:4px;font-family:'IBM Plex Mono',monospace}

/* ---- empty / stub state ---- */
.empty-state{text-align:center;padding:60px 20px;color:var(--tm)}
.empty-state .ic{font-size:34px;margin-bottom:12px;opacity:.6}
.empty-state h3{font-family:'Playfair Display',serif;color:var(--ts);font-size:16px;margin-bottom:6px}
.empty-state p{font-size:12px;max-width:440px;margin:0 auto;line-height:1.7}

/* ---- toast ---- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:11px 18px;font-size:12px;color:var(--tp);box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:500;opacity:0;transition:.25s;max-width:90vw}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast.ok{border-color:rgba(76,175,125,.5)}.toast.err{border-color:rgba(232,77,90,.5)}

/* ---- login ---- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 30% 15%,#FBF7EC,var(--bg) 60%)}
.login-card{width:100%;max-width:384px;background:var(--bg-card);border:1px solid var(--border);border-radius:11px;padding:32px 30px;box-shadow:0 18px 55px rgba(0,0,0,.45)}
.login-logo{font-family:'Playfair Display',serif;font-size:21px;color:var(--gold);text-align:center}
.login-sub{font-size:10px;color:var(--tm);text-align:center;letter-spacing:.12em;text-transform:uppercase;margin:5px 0 24px}
.login-card .fg{margin-bottom:14px}
.login-err{background:var(--red-d);border:1px solid rgba(232,77,90,.3);color:#ff9aa3;font-size:11px;padding:9px 12px;border-radius:5px;margin-bottom:13px;display:none}
.login-foot{text-align:center;font-size:9px;color:var(--tm);margin-top:18px;letter-spacing:.06em}

@media(max-width:960px){.g2,.g3,.g4,.dual-charts{grid-template-columns:1fr!important}.kgrid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  .hamb{display:inline-flex}
  .hdr-badges{display:none}
  .sidebar{position:fixed;left:0;top:54px;z-index:150;transform:translateX(-100%);transition:transform .2s;box-shadow:4px 0 22px rgba(0,0,0,.45)}
  .sidebar.open{transform:none}
  .user-meta{display:none}
}
