/* RURÁPIDO 7.19.1.8 — external fallback for public/home base styles.
   Mirrors the inline style blocks so CSP/cache failures cannot drop the visual system. */


*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{width:100%;margin:0;padding:0;font-family:'Inter',sans-serif;background:#05080A;color:#E8F4E8;font-size:13px;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit;font-size:13px}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:#080C0A}
::-webkit-scrollbar-thumb{background:#1A3A2A;border-radius:4px}
select option{background:#0C1A10;color:#E8F4E8}
:root{
  --g0:#00FF7F;--g1:#00C853;--g2:#00832A;--g3:#00521A;--g4:#003010;
  --s0:#05080A;--s1:#0A0F0C;--s2:#101810;--s3:#162014;
  --t0:#E8F4E8;--t1:#A0C4A0;--t2:#5A8A5A;--t3:#2A4A2A;
  --ok:#00C853;--warn:#F5A623;--err:#E53935;--info:#2196F3;--speed:#AAFF00;
}
.scr{display:none;width:100%;height:100vh;height:100dvh;height:-webkit-fill-available}
.scr.on{display:flex}

/* WHATSAPP FLOAT */
.wa-float{position:fixed;bottom:24px;right:24px;z-index:9999;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#128C7E,#25D366);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.5);cursor:pointer;text-decoration:none;animation:waPulse 2.5s ease-in-out infinite;transition:transform .2s}
.wa-float:hover{transform:scale(1.1)}
.wa-float svg{width:28px;height:28px;fill:#fff}
@keyframes waPulse{0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.5)}50%{box-shadow:0 4px 32px rgba(37,211,102,.8),0 0 0 8px rgba(37,211,102,.15)}}

/* LOGIN */
#sc-login{flex-direction:column;align-items:center;justify-content:flex-start;background:var(--s0);background-image:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(0,200,83,.13),transparent),linear-gradient(rgba(0,200,83,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,200,83,.04) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;position:relative;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.speed-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.speed-bg::before{content:'';position:absolute;left:-100%;top:0;bottom:0;width:300%;background:repeating-linear-gradient(90deg,transparent,transparent 40px,rgba(0,200,83,.025) 40px,rgba(0,200,83,.025) 41px);animation:speedMove 3s linear infinite}
@keyframes speedMove{from{transform:translateX(0)}to{transform:translateX(41px)}}
.login-wrap{position:relative;z-index:2;width:100%;max-width:1040px;
  padding:calc(28px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));
  margin:0 auto;display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:start}
.login-hero{text-align:center;margin-bottom:28px}
.logo-row{display:inline-flex;align-items:center;gap:12px;margin-bottom:10px}
.logo-bolt{width:52px;height:52px;background:linear-gradient(135deg,#003010,#00C853);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 32px rgba(0,200,83,.4),0 0 0 1px rgba(0,200,83,.2)}
.logo-text{font-family:'Syne',sans-serif;font-size:36px;font-weight:800;letter-spacing:-1px;color:var(--t0);line-height:1}
.logo-text .r2{color:var(--g0);text-shadow:0 0 20px rgba(0,255,127,.4)}
.logo-tag{font-size:9px;font-weight:700;letter-spacing:3px;color:var(--g1);text-transform:uppercase;display:block;margin-top:3px}
.timer-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(170,255,0,.08);border:1px solid rgba(170,255,0,.3);border-radius:30px;padding:8px 20px;margin:14px 0}
.tb-before{font-size:12px;font-weight:700;color:var(--err)}
.tb-bolt{font-size:18px}
.tb-after{font-size:12px;font-weight:800;color:var(--speed)}
.hero-line{font-size:14px;color:var(--t1);line-height:1.6;max-width:320px;margin:0 auto}
.hero-line strong{color:var(--t0)}
.hero-line .hl{color:var(--speed);font-weight:800}
.lcard{background:rgba(10,15,12,.93);border:1px solid rgba(0,200,83,.2);border-radius:18px;padding:28px 24px;box-shadow:0 32px 80px rgba(0,0,0,.7),0 0 0 1px rgba(0,200,83,.07),inset 0 1px 0 rgba(0,200,83,.1)}
.lcard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.lcard-title{font-size:15px;font-weight:700;color:var(--t0)}
.pill{font-size:9px;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:1.5px;text-transform:uppercase}
.pill-on{background:rgba(0,200,83,.14);color:var(--g1);border:1px solid rgba(0,200,83,.3)}
.lbl{font-size:10px;font-weight:700;letter-spacing:.8px;color:var(--t2);text-transform:uppercase;margin-bottom:5px}
.inp{width:100%;padding:11px 14px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(0,200,83,.2);color:var(--t0);outline:none;margin-bottom:13px;transition:border-color .2s,box-shadow .2s}
.inp:focus{border-color:var(--g1);box-shadow:0 0 0 3px rgba(0,200,83,.1)}
#login-access-card a:focus-visible,#login-access-card button:focus-visible{outline:2px solid var(--g0);outline-offset:3px;border-radius:6px}
#login-access-card .inp[aria-invalid="true"]{border-color:#ff7b7b;box-shadow:0 0 0 3px rgba(255,123,123,.14)}
.btn-login{width:100%;padding:13px;border-radius:10px;background:linear-gradient(135deg,var(--g3),var(--g1));border:none;color:#fff;font-size:14px;font-weight:800;cursor:pointer;letter-spacing:.4px;margin-bottom:18px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 24px rgba(0,200,83,.35);transition:all .18s}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 10px 32px rgba(0,200,83,.45)}
.hint-box{background:rgba(0,200,83,.07);border:1px solid rgba(0,200,83,.18);border-radius:10px;padding:12px 14px}
.hint-t{font-size:10px;color:var(--g1);font-weight:800;margin-bottom:5px}
.hint-r{font-size:11px;color:var(--t2);margin-bottom:2px}
.hint-v{color:var(--t1);font-weight:600}
.err-box{background:rgba(229,57,53,.1);border:1px solid rgba(229,57,53,.3);color:#E87070;border-radius:8px;padding:9px 12px;margin-bottom:12px;font-size:12px;display:none}
.login-footer{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:11px;color:var(--t3);display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 20px}
.login-social{display:flex;align-items:center;gap:14px;margin-top:4px;flex-wrap:wrap;justify-content:center}
.login-social a{color:var(--t2);font-size:11px;text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .2s}
.login-social a:hover{color:var(--g1)}

/* APP */
#sc-app{flex-direction:row}
.sb{width:220px;min-width:220px;background:rgba(5,8,10,.98);border-right:1px solid var(--s3);display:flex;flex-direction:column;transition:width .22s,min-width .22s;overflow:hidden;box-shadow:4px 0 20px rgba(0,0,0,.4);flex-shrink:0}
.sb.col{width:58px;min-width:58px}
.sb-top{padding:14px 10px;border-bottom:1px solid var(--s3);display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0;transition:background .14s}
.sb-top:hover{background:rgba(0,200,83,.06)}
.sb-icon{width:36px;height:36px;min-width:36px;background:linear-gradient(135deg,var(--g3),var(--g1));border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 14px rgba(0,200,83,.3);flex-shrink:0}
.sb-brand{overflow:hidden;white-space:nowrap}
.sb-name{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:var(--t0);letter-spacing:-.5px}
.sb-name .sn-r{color:var(--g0)}
.sb-sub{font-size:8px;font-weight:700;letter-spacing:2px;color:var(--g2)}
.sb-nav{flex:1;padding:8px 6px;overflow-y:auto}
.sb-sec{font-size:8px;font-weight:700;letter-spacing:2px;color:var(--t3);text-transform:uppercase;padding:10px 8px 5px;white-space:nowrap;overflow:hidden}
.ni{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:all .12s;white-space:nowrap;overflow:hidden;color:var(--t2)}
.ni:hover{background:rgba(0,200,83,.08);color:var(--t1)}
.ni.on{background:rgba(0,200,83,.14);border-color:rgba(0,200,83,.28);color:var(--g0)}
.ni-ic{font-size:15px;min-width:20px;text-align:center;flex-shrink:0}
.ni-lb{font-size:12px;font-weight:500}
.ni.on .ni-lb{font-weight:700;color:var(--g0)}
.sb-foot{padding:10px 8px;border-top:1px solid var(--s3);flex-shrink:0}
.u-row{display:flex;align-items:center;gap:9px}
.u-av{width:30px;height:30px;min-width:30px;border-radius:50%;background:linear-gradient(135deg,var(--g3),var(--g1));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0}
.u-name{font-size:11px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-plan{font-size:9px;color:var(--g1);font-weight:700;white-space:nowrap}
.btn-out{background:none;border:none;color:var(--t3);cursor:pointer;font-size:14px;padding:4px;margin-left:auto;flex-shrink:0;transition:color .2s}
.btn-out:hover{color:var(--err)}
.main-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--s0)}
.topbar{padding:0 22px;height:54px;border-bottom:1px solid var(--s3);display:flex;align-items:center;justify-content:space-between;background:rgba(5,8,10,.95);backdrop-filter:blur(12px);flex-shrink:0;gap:12px}
.tb-l{display:flex;flex-direction:column;gap:1px}
.tb-title{font-size:15px;font-weight:800;color:var(--t0)}
.tb-sub{font-size:10px;color:var(--t2)}
.tb-r{display:flex;align-items:center;gap:8px}
.speed-pill{font-size:10px;font-weight:800;padding:4px 11px;border-radius:20px;background:rgba(170,255,0,.1);color:var(--speed);border:1px solid rgba(170,255,0,.28);display:flex;align-items:center;gap:5px;white-space:nowrap}
.online-pill{font-size:10px;font-weight:700;padding:4px 11px;border-radius:20px;background:rgba(0,200,83,.1);color:var(--g1);border:1px solid rgba(0,200,83,.25);display:flex;align-items:center;gap:5px;white-space:nowrap}
.pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--g1);animation:pulse 2s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,200,83,.7)}50%{box-shadow:0 0 0 4px rgba(0,200,83,0)}}
.page{flex:1;overflow-y:auto;padding:22px}
.card{background:var(--s1);border:1px solid var(--s3);border-radius:14px;padding:20px;transition:border-color .18s}
.card:hover{border-color:rgba(0,200,83,.2)}
.ct{font-size:10px;font-weight:800;color:var(--g1);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:14px}
.fr{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(0,200,83,.06);gap:10px}
.fr:last-child{border-bottom:none}
.fl{font-size:11px;color:var(--t2);min-width:120px;flex-shrink:0}
.fv{font-size:12px;color:var(--t1);text-align:right;font-weight:500}
.fv.mono{font-family:'Space Mono',monospace;font-size:10px;word-break:break-all}
.badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
.ok{background:rgba(0,200,83,.12);color:var(--ok);border:1px solid rgba(0,200,83,.25)}
.warn{background:rgba(245,166,35,.12);color:var(--warn);border:1px solid rgba(245,166,35,.25)}
.err{background:rgba(229,57,53,.12);color:var(--err);border:1px solid rgba(229,57,53,.25)}
.inf{background:rgba(33,150,243,.12);color:var(--info);border:1px solid rgba(33,150,243,.25)}
.btn{padding:9px 18px;border-radius:9px;border:none;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .16s;white-space:nowrap;font-size:12px}
.btn-p{background:linear-gradient(135deg,var(--g3),var(--g1));color:#fff;box-shadow:0 4px 16px rgba(0,200,83,.25)}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,200,83,.35)}
.btn-g{background:rgba(0,200,83,.1);border:1px solid rgba(0,200,83,.25);color:var(--g1)}
.btn-g:hover{background:rgba(0,200,83,.2)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.full{grid-column:1/-1}
.tab-row{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.tab{padding:6px 15px;border-radius:8px;border:1px solid rgba(0,200,83,.18);background:transparent;color:var(--t2);cursor:pointer;font-weight:500;font-size:12px;transition:all .14s}
.tab.on{background:rgba(0,200,83,.18);border-color:rgba(0,200,83,.4);color:var(--g0);font-weight:700}
.kpi{background:var(--s1);border:1px solid var(--s3);border-radius:13px;padding:18px 16px;transition:border-color .18s}
.kpi:hover{border-color:rgba(0,200,83,.25)}
.kv{font-size:26px;font-weight:800;letter-spacing:-1px;line-height:1}
.ku{font-size:10px;color:var(--t2);margin-top:2px}
.kl{font-size:11px;color:var(--t2);margin-top:8px}
.kt{font-size:10px;font-weight:700;margin-top:2px}
.res{display:none;animation:fadeUp .3s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes dot{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.3;transform:translateY(-3px)}}

/* UPLOAD DROPZONE */
.upl{border:2px dashed rgba(0,200,83,.3);border-radius:16px;padding:36px 24px;text-align:center;background:rgba(0,200,83,.03);cursor:pointer;transition:all .2s;position:relative}
.upl:hover,.upl.drag{border-color:var(--g1);background:rgba(0,200,83,.08)}
.upl-ic{font-size:44px;margin-bottom:12px;filter:grayscale(.2)}
.upl-t{font-size:15px;font-weight:800;color:var(--t0);margin-bottom:6px}
.upl-s{font-size:12px;color:var(--t2);line-height:1.5;margin-bottom:14px}
.upl-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--g3),var(--g1));color:#fff;padding:11px 22px;border-radius:10px;font-weight:800;font-size:13px;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(0,200,83,.3)}
.upl-formats{font-size:10px;color:var(--t3);margin-top:12px}
.upl-badges{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.upl-badge{font-size:9px;font-weight:700;padding:3px 9px;border-radius:20px;background:rgba(0,200,83,.1);color:var(--g1);border:1px solid rgba(0,200,83,.2)}
/* analyzing */
.analyzing{display:none;padding:28px 24px;text-align:center}
.scan-box{width:100%;max-width:340px;margin:0 auto 20px;background:var(--s2);border:1px solid rgba(0,200,83,.25);border-radius:12px;padding:18px;position:relative;overflow:hidden}
.scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--g0),transparent);animation:scan 1.6s linear infinite;box-shadow:0 0 12px var(--g0)}
@keyframes scan{0%{top:0}100%{top:100%}}
.scan-doc{display:flex;align-items:center;gap:12px;text-align:left}
.scan-doc-ic{font-size:30px}
.scan-steps{max-width:340px;margin:0 auto;text-align:left}
.scan-step{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12px;color:var(--t2);opacity:.4;transition:opacity .3s}
.scan-step.active{opacity:1;color:var(--t1)}
.scan-step.done{opacity:1;color:var(--g1)}
.scan-step-ic{width:20px;text-align:center;flex-shrink:0}
/* uploaded file chip */
.file-chip{display:inline-flex;align-items:center;gap:10px;background:var(--s2);border:1px solid rgba(0,200,83,.25);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.file-chip-ic{font-size:20px}
.file-chip-name{font-size:12px;font-weight:600;color:var(--t1)}
.file-chip-meta{font-size:10px;color:var(--t2)}
.file-chip-x{margin-left:8px;color:var(--t3);cursor:pointer;font-size:16px;background:none;border:none}
.file-chip-x:hover{color:var(--err)}
.ai-box{background:linear-gradient(135deg,rgba(0,83,41,.3),rgba(0,131,42,.12));border:1px solid rgba(0,200,83,.25);border-radius:12px;padding:16px;margin-bottom:16px}
.ai-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ai-badge{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--g3),var(--g1));display:flex;align-items:center;justify-content:center;font-size:13px}
.ai-title{font-size:12px;font-weight:800;color:var(--g0)}
.ai-text{font-size:12px;color:var(--t1);line-height:1.65}
.alert-row{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:9px;margin-bottom:8px}
.alert-ok{background:rgba(0,200,83,.08);border:1px solid rgba(0,200,83,.2)}
.alert-warn{background:rgba(245,166,35,.07);border:1px solid rgba(245,166,35,.2)}
.alert-err{background:rgba(229,57,53,.07);border:1px solid rgba(229,57,53,.2)}
.page-footer{margin-top:32px;padding:20px;background:var(--s1);border:1px solid var(--s3);border-radius:14px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.pf-name{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:var(--t0)}
.pf-name span{color:var(--g0)}
.pf-addr{font-size:11px;color:var(--t2);line-height:1.5}
.pf-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.pf-link{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--t2);text-decoration:none;transition:color .18s;padding:6px 12px;border-radius:8px;border:1px solid var(--s3)}
.pf-link:hover{color:var(--g1);border-color:rgba(0,200,83,.3);background:rgba(0,200,83,.06)}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}.kpi{padding:14px 12px}.kv{font-size:22px}.speed-pill{display:none}.page{padding:14px}}

/* ── r2.27 (r2.21 + r2.15.1) — rodapé unificado ──────────────────────────────────────
   O endereço e o aviso de build deixam de depender de <br> no HTML: cada
   linha é um bloco próprio, então o texto reflui conforme a largura em vez
   de quebrar num ponto fixo. */
.pf-addr{display:flex;flex-direction:column;gap:3px;max-width:52ch}
.pf-addr-line{display:block;overflow-wrap:break-word}

/* Temas públicos: mesma grade do restante do rodapé, sem estourar a coluna. */
.pf-temas{width:100%;margin-top:4px;padding-top:12px;border-top:1px solid var(--s3);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pf-temas-lb{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;font-weight:800;color:var(--t2);margin-right:2px}
.pf-tema{min-width:0;font-size:11.5px;color:var(--t2);text-decoration:none;padding:5px 10px;border:1px solid var(--s3);border-radius:7px;white-space:nowrap;transition:color .18s,border-color .18s,background .18s}
.pf-tema:hover,.pf-tema:focus-visible{color:var(--g1);border-color:rgba(0,200,83,.3);background:rgba(0,200,83,.06)}

/* r2.15.1 — acabamento do rodapé mobile (restaurado sobre a base r2.21):
   margens alinhadas ao contêiner, links em grade de largura igual e
   espaçamento reduzido de forma previsível. */
@media (max-width:820px){
  .page-footer{margin-top:22px;padding:14px;gap:10px;border-radius:12px;align-items:flex-start}
  .page-footer>div:first-child{width:100%}
  .pf-name{font-size:15px}
  .pf-addr{font-size:10px;line-height:1.45;max-width:100%}
  .pf-links{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pf-link{justify-content:center;padding:8px 7px;font-size:11px;min-width:0;text-align:center}
  .pf-temas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .pf-temas-lb{grid-column:1/-1;margin:0 0 1px}
  .pf-tema{text-align:center;white-space:normal;padding:7px 6px}
}
@media (max-width:390px){
  .pf-links{grid-template-columns:1fr}
  .pf-temas{grid-template-columns:1fr}
}


/* documento gerado — papel */
.doc-papel{background:#fff;color:#111;border-radius:10px;overflow:hidden}
.doc-papel .folha{background:#fff;color:#111;padding:38px 42px;font-family:Georgia,'Times New Roman',serif;font-size:12.5px;line-height:1.55;border-bottom:14px solid var(--s0)}
.doc-papel .folha:last-child{border-bottom:none}
.doc-papel h2{font-family:Georgia,serif;font-size:16px;letter-spacing:.5px}
.doc-papel h3{font-family:Georgia,serif;color:#00521A}
.doc-papel table{font-family:Georgia,serif}
.doc-papel strong{color:#000}
@media print{
  body.modo-doc .sb,body.modo-doc .topbar,body.modo-doc .wa-float,body.modo-doc .no-print,
  body.modo-doc #doc-header,body.modo-doc .card:not(#doc-saida .card),body.modo-doc .page-footer{display:none!important}
  body.modo-doc #doc-saida{display:block!important}
  body.modo-doc .doc-papel{border-radius:0}
  body.modo-doc .doc-papel .folha{page-break-after:always;border-bottom:none;padding:0}
  body.modo-doc .doc-papel .folha:last-child{page-break-after:auto}
}

/* ═══ iOS: safe-area (notch, Dynamic Island, barra inferior) ═══ */
html{-webkit-text-size-adjust:100%;height:-webkit-fill-available}
body{
  min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;
  padding:0;
  overscroll-behavior-y:none;
}
.sb{padding-bottom:env(safe-area-inset-bottom)}
.topbar{padding-left:calc(22px + env(safe-area-inset-left));padding-right:calc(22px + env(safe-area-inset-right))}
.page{padding-left:calc(22px + env(safe-area-inset-left));padding-right:calc(22px + env(safe-area-inset-right))}
/* evita zoom automático do iOS ao focar campo (fonte < 16px dispara zoom) */
input,select,textarea{font-size:16px}
/* toque confortável e sem realce cinza do iOS */
button,.btn,.ni,.tab,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button,.btn{min-height:44px}

/* ═══ MOBILE: menu vira barra inferior ═══ */
@media (max-width:820px){
  .app{flex-direction:column}
  .sb{
    position:fixed;bottom:0;left:0;right:0;top:auto;
    width:100%!important;min-width:0!important;height:auto;
    flex-direction:row;overflow-x:auto;overflow-y:hidden;
    border-right:none;border-top:1px solid var(--s3);
    box-shadow:0 -4px 20px rgba(0,0,0,.5);
    padding-bottom:env(safe-area-inset-bottom);
    z-index:900;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .sb::-webkit-scrollbar{display:none}
  .sb-top,.sb-foot,.sb-sec{display:none}
  .sb-nav{display:flex;flex-direction:row;overflow:visible;padding:0}
  .ni{
    flex-direction:column;gap:3px;min-width:70px;padding:8px 6px;
    border-left:none;border-top:2px solid transparent;justify-content:center;
  }
  .ni.on{border-left:none;border-top:2px solid var(--g0)}
  .ni-ic{font-size:17px}
  .ni-lb{font-size:8.5px;text-align:center;line-height:1.15;white-space:nowrap;
         max-width:66px;overflow:hidden;text-overflow:ellipsis}
  .main-wrap{padding-bottom:0}
  .topbar{padding:0 14px;height:50px}
  .tb-title{font-size:13.5px}
  .tb-sub{display:none}
  .page{padding:14px}
  .g2,.g3,.g4{grid-template-columns:1fr!important}
  .kpi{padding:12px}
  .kv{font-size:20px}
  .laudo-h{flex-direction:column;align-items:flex-start;gap:10px}
  .laudo-h>div:last-child{width:100%}
  .laudo-h .btn{flex:1;justify-content:center;font-size:11.5px}
  .tab-row{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}
  .tab-row::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;flex-shrink:0}
  .wa-float{bottom:calc(84px + env(safe-area-inset-bottom))!important}
  table{font-size:10.5px}
  .doc-papel .folha{padding:20px 16px}
  #mapa-car,#mapa-sigef,#mapa-kml,#mapa-diag{height:64vh!important;min-height:340px!important}
}
@media (max-width:400px){
  .ni{min-width:60px}
  .ni-lb{font-size:8px;max-width:56px}
  .page{padding:11px}
}
/* landscape em celular: barra menor */
@media (max-width:900px) and (orientation:landscape){
  .sb{max-height:64px}
  .main-wrap{padding-bottom:0}
}

/* iOS standalone: compensa a barra de status translúcida no topo */
@supports (-webkit-touch-callout:none){
  .topbar{padding-top:env(safe-area-inset-top);height:calc(54px + env(safe-area-inset-top))}
  .sb-top{padding-top:calc(14px + env(safe-area-inset-top))}
}
@media (max-width:820px){
  @supports (-webkit-touch-callout:none){
    .topbar{height:calc(50px + env(safe-area-inset-top))}
    .sb-top{padding-top:14px}
  }
}
/* impede rolagem elástica que descola o layout no iOS */
.page{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
/* corrige largura em telas estreitas: nada estoura o viewport */
img,svg,video,canvas{max-width:100%;height:auto}
table{max-width:100%}
.doc-papel,.doc-papel *{max-width:none}

/* ═══ COMPATIBILIDADE CROSS-BROWSER ═══ */
/* Safari antigo / Firefox / Edge: prefixos e fallbacks */
.g2,.g3,.g4{display:-ms-grid;display:grid}
.upl,.card,.kpi{-webkit-box-sizing:border-box;box-sizing:border-box}
.btn,button{-webkit-appearance:none;appearance:none;border:none;cursor:pointer}
input:not([type="checkbox"]):not([type="radio"]),textarea,select{-webkit-appearance:none;appearance:none;border-radius:8px}
/* backdrop-filter só onde suportado; senão, fundo sólido */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .topbar{background:#05080A!important}
}
/* dvh: fallback para navegadores sem suporte */
@supports not (height:100dvh){ .scr{height:100vh} }
/* Firefox: barra de rolagem fina */
*{scrollbar-width:thin;scrollbar-color:#254225 transparent}
/* impede seleção acidental ao tocar em botões (iOS/Android) */
.btn,.ni,.tab,.upl-btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
/* Edge/IE: imagens não estouram */
img{-ms-interpolation-mode:bicubic}
/* quebra de palavra em telas estreitas (evita layout estourado) */
.fv,.fl,.ai-text,.ct,td,th{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
/* tabelas roláveis em qualquer navegador */
.card table{display:block;overflow-x:auto;white-space:nowrap}
@media (min-width:821px){ .card table{display:table;white-space:normal} }

/* ═══ MAPAS: controles compactos, mais área útil ═══ */
.leaflet-control-layers{font-size:11px!important;padding:0!important;border-radius:8px!important;
  box-shadow:0 2px 10px rgba(0,0,0,.4)!important;border:1px solid rgba(0,200,83,.25)!important;
  background:rgba(5,8,10,.94)!important;color:#d9efd3!important;max-width:210px}
.leaflet-control-layers-toggle{width:34px!important;height:34px!important;background-size:20px 20px!important}
.leaflet-control-layers-expanded{padding:8px 10px!important;max-height:52vh;overflow-y:auto}
.leaflet-control-layers label{margin-bottom:2px!important;line-height:1.35!important;font-size:10.5px!important}
.leaflet-control-layers-separator{margin:6px 0!important;border-top:1px solid rgba(0,200,83,.2)!important}
.leaflet-control-layers input{margin-right:5px!important;transform:scale(.9)}
.leaflet-control-attribution{font-size:8.5px!important;padding:1px 5px!important;
  background:rgba(5,8,10,.7)!important;color:#5a8a5a!important;max-width:58vw;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaflet-control-attribution a{color:#7fb87f!important}
.leaflet-bar a{width:30px!important;height:30px!important;line-height:30px!important;font-size:15px!important}
.leaflet-popup-content{font-size:11.5px!important;margin:8px 10px!important}
.leaflet-tooltip{font-size:10.5px!important;padding:2px 6px!important}
/* legenda interna dos mapas (a nossa) — mais discreta */
.mapa-legenda{font-size:10px!important;padding:7px 9px!important;line-height:1.45!important;
  background:rgba(5,8,10,.86)!important;border-radius:7px!important;max-width:190px}
@media (max-width:820px){
  .leaflet-control-layers{max-width:170px;font-size:10px!important}
  .leaflet-control-layers-expanded{max-height:44vh}
  .leaflet-control-attribution{max-width:52vw;font-size:8px!important}
}

/* ── Página de entrada: proposta de valor ── */
.lp-vend{margin-top:26px;max-width:520px}
.lp-t{font-size:10px;font-weight:800;letter-spacing:1.6px;color:var(--g0);text-transform:uppercase;margin-bottom:12px}
.lp-grid{display:grid;gap:11px;margin-bottom:16px}
.lp-i{display:flex;gap:11px;align-items:flex-start}
.lp-i>span{font-size:17px;line-height:1.2;flex-shrink:0}
.lp-i>div{font-size:12px;color:var(--t2);line-height:1.55}
.lp-i b{display:block;color:var(--t1);font-size:12.5px;margin-bottom:1px}
.lp-caso{background:rgba(170,255,0,.06);border-left:3px solid var(--speed);border-radius:0 9px 9px 0;
  padding:12px 14px;font-size:12px;color:var(--t1);line-height:1.65;margin-bottom:14px}
.lp-caso-t{font-size:9.5px;font-weight:800;letter-spacing:1.4px;color:var(--speed);text-transform:uppercase;margin-bottom:5px}
.lp-caso b{color:var(--t0)}
.lp-quem{font-size:11.5px;color:var(--t2);line-height:1.65;margin-bottom:12px}
.lp-quem b{color:var(--t1)}
.lp-seg{font-size:11px;color:var(--t2);line-height:1.55;background:rgba(0,200,83,.05);
  border:1px solid rgba(0,200,83,.16);border-radius:9px;padding:10px 12px}
.lp-seg b{color:var(--t1)}
.public-pricing{width:100%;max-width:100%;margin-bottom:22px;scroll-margin-top:18px}
.public-pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.public-plan-card{min-width:0;display:flex;flex-direction:column}
.public-plan-card .btn{margin-top:auto}
@media (max-width:820px){
  .lp-vend{margin-top:20px;max-width:none}
  .lp-i>div{font-size:11.5px}
  .lp-caso{font-size:11.5px}
  .public-pricing-grid{grid-template-columns:1fr}
  .public-pricing{text-align:center;margin-top:10px!important}
  .public-plan-card{text-align:left;padding:18px!important}
}

/* ── Tela de entrada: rolagem e duas colunas no desktop ── */
#sc-login{height:auto!important;min-height:100vh;min-height:100dvh}
.login-hero{text-align:left}
.lcard{position:sticky;top:24px}
.lp-vend{max-width:none}
@media (max-width:900px){
  .login-wrap{grid-template-columns:1fr;gap:26px;max-width:560px}
  .login-hero{text-align:center}
  .lcard{position:static}
  /* No celular, a apresentação pública e os planos vêm antes do acesso. */
  .login-hero{order:1}
  .lcard{order:2}
  .lp-grid{text-align:left}
  .lp-caso,.lp-quem,.lp-seg{text-align:left}
}
@media (max-width:420px){
  .login-wrap{padding-left:calc(14px + env(safe-area-inset-left));padding-right:calc(14px + env(safe-area-inset-right))}
  .lcard{padding:22px 18px}
  .login-hero,.lp-vend,.public-pricing{min-width:0;max-width:100%}
  #planos-publicos-titulo{font-size:24px!important}
}
/* laudo */
.laudo-h{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px}
#mapa-car{height:520px;border-radius:12px;border:1px solid var(--s3);overflow:hidden}
.al{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:9px;margin-bottom:8px}
.al-ok{background:rgba(0,200,83,.07);border:1px solid rgba(0,200,83,.2)}
.al-warn{background:rgba(245,166,35,.07);border:1px solid rgba(245,166,35,.22)}
.al-err{background:rgba(229,57,53,.07);border:1px solid rgba(229,57,53,.25)}
@media print{
  body{background:#fff!important;color:#111!important;overflow:visible!important;height:auto!important}
  .sb,.topbar,.wa-float,.no-print{display:none!important}
  .page{overflow:visible!important;padding:0!important}
  .card,.kpi{border:1px solid #ccc!important;background:#fff!important;break-inside:avoid}
  .fv,.fl,.ai-text{color:#111!important}
}

/* ═══ BUILD K — VEGETAÇÃO + PEDOLOGIA IBGE REAL + DOSSIÊ MULTICAMADAS ═══ */
.dossie-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end}
.dossie-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.dossie-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dossie-kpi{background:linear-gradient(180deg,rgba(0,200,83,.07),rgba(255,255,255,.015));border:1px solid var(--s3);border-radius:12px;padding:13px}
.dossie-kpi-v{font-family:'Syne',sans-serif;font-size:20px;font-weight:800;color:var(--t0);line-height:1.15}
.dossie-kpi-l{font-size:9.5px;color:var(--t2);text-transform:uppercase;letter-spacing:.7px;margin-top:5px}
.dossie-section{margin-top:16px}
.dossie-source{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.dossie-dot{width:10px;height:10px;border-radius:3px;flex:0 0 10px;margin-top:3px;border:1px solid rgba(255,255,255,.28)}
.dossie-status{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--s3);border-radius:20px;padding:4px 8px;font-size:9.5px;font-weight:800}
.dossie-status.ok{color:var(--ok);border-color:rgba(0,200,83,.35);background:rgba(0,200,83,.07)}
.dossie-status.wait{color:var(--warn);border-color:rgba(245,166,35,.35);background:rgba(245,166,35,.06)}
.dossie-status.info{color:#79b8ff;border-color:rgba(33,150,243,.3);background:rgba(33,150,243,.06)}
#mapa-dossie{height:480px;min-height:360px;border-radius:12px;border:1px solid rgba(0,200,83,.2);overflow:hidden;background:#07100a}
.dossie-map-wrap{position:relative}
.dossie-map-note{position:absolute;left:10px;bottom:10px;z-index:500;background:rgba(5,8,10,.9);border:1px solid rgba(0,200,83,.2);border-radius:8px;padding:7px 9px;font-size:9px;color:var(--t2);max-width:270px;line-height:1.45;pointer-events:none}
.dossie-data-table{width:100%;border-collapse:collapse;font-size:11px}
.dossie-data-table th,.dossie-data-table td{padding:8px 9px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top;text-align:left}
.dossie-data-table th{color:var(--t2);font-size:9.5px;text-transform:uppercase;letter-spacing:.6px}
.dossie-data-table td{color:var(--t1)}
.dossie-theme-card{background:var(--s1);border:1px solid var(--s3);border-radius:12px;padding:14px;min-height:170px}
.dossie-theme-title{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:9px}
.dossie-theme-name{font-size:12.5px;font-weight:800;color:var(--t1)}
.dossie-theme-meta{font-size:9.5px;color:var(--t3);line-height:1.5;margin-top:2px}
.dossie-field{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.045);font-size:10.5px}
.dossie-field span:first-child{color:var(--t2)}.dossie-field span:last-child{color:var(--t1);font-weight:600;text-align:right}
.dossie-empty{border:1px dashed rgba(245,166,35,.28);background:rgba(245,166,35,.035);border-radius:10px;padding:12px;font-size:10.5px;color:var(--t2);line-height:1.6}
.dossie-warning{border-left:3px solid var(--warn);background:rgba(245,166,35,.05);padding:10px 12px;border-radius:0 9px 9px 0;font-size:10.5px;color:var(--t2);line-height:1.6}
.dossie-report-id{font-family:'Space Mono',monospace;font-size:9.5px;color:var(--t3);word-break:break-all}
.prontidao-score{font-family:'Syne',sans-serif;font-size:34px;font-weight:900;line-height:1}
.prontidao-bar{height:7px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin-top:7px}
.prontidao-bar>span{display:block;height:100%;border-radius:999px}
.prontidao-criterio{padding:8px 0;border-top:1px dashed rgba(255,255,255,.055)}
.prontidao-criterio:first-child{border-top:0}
.prontidao-crit-head{display:flex;gap:8px;align-items:flex-start}
.prontidao-crit-ic{width:18px;flex:0 0 18px;text-align:center}
.prontidao-crit-t{font-size:10.5px;font-weight:750;color:var(--t1);line-height:1.35}
.prontidao-crit-meta{font-size:9.3px;color:var(--t3);line-height:1.5;margin-top:3px}
.prontidao-pend{border-left:3px solid var(--warn);background:rgba(245,166,35,.045);border-radius:0 9px 9px 0;padding:9px 10px;margin-top:7px}

/* r2.13 — rastreabilidade de fontes e evidências */
.rastro-card{border:1px solid rgba(33,150,243,.24);background:linear-gradient(135deg,rgba(33,150,243,.055),rgba(0,200,83,.025));border-radius:11px;padding:12px 13px;margin:10px 0 15px}
.rastro-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.rastro-title{font-size:11px;font-weight:800;color:var(--t1)}
.rastro-status{font-size:8.5px;font-weight:900;letter-spacing:.55px;text-transform:uppercase;border:1px solid rgba(33,150,243,.30);border-radius:20px;padding:3px 7px;color:#79b8ff}
.rastro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.rastro-cell{min-width:0;border:1px solid rgba(255,255,255,.055);border-radius:8px;padding:7px 8px;background:rgba(0,0,0,.09)}
.rastro-l{font-size:8px;color:var(--t3);text-transform:uppercase;letter-spacing:.65px;margin-bottom:3px}
.rastro-v{font-size:9.7px;color:var(--t1);line-height:1.45;overflow-wrap:anywhere}
.rastro-note{font-size:9px;color:var(--t3);line-height:1.5;margin-top:8px}
@media(max-width:760px){.rastro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:410px){.rastro-grid{grid-template-columns:1fr}}

@media(max-width:980px){.dossie-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dossie-toolbar{grid-template-columns:1fr}.dossie-actions{justify-content:flex-start}}
@media(max-width:620px){.dossie-grid{grid-template-columns:1fr}#mapa-dossie{height:58vh;min-height:340px}.dossie-actions .btn{flex:1}.dossie-map-note{max-width:210px}}
/* R2.37.1 — impressão dedicada do DD2.0; não altera layout responsivo da aplicação */
#due-print-root{display:none}
@media print{
  body.modo-due-print{background:#fff!important;color:#111!important;overflow:visible!important}
  body.modo-due-print> *:not(#due-print-root){display:none!important}
  body.modo-due-print #due-print-root{display:block!important;background:#fff!important;color:#111!important;font-family:Arial,sans-serif;font-size:10.5pt;line-height:1.45}
  body.modo-due-print .due-print-sheet{max-width:190mm;margin:0 auto;color:#111}
  body.modo-due-print .due-print-sheet header{border-bottom:2px solid #087d3c;padding-bottom:8mm;margin-bottom:6mm}
  body.modo-due-print .due-print-brand{font-weight:900;letter-spacing:1.5px;color:#087d3c}
  body.modo-due-print h1{font-size:19pt;margin:2mm 0}body.modo-due-print h2{font-size:13pt;margin:5mm 0 2mm}body.modo-due-print h3{font-size:11pt;margin:0 0 2mm}
  body.modo-due-print p{margin:2mm 0}body.modo-due-print ul{padding-left:6mm}
  body.modo-due-print .due-print-block{break-inside:avoid;border-bottom:1px solid #ddd;padding:3mm 0}
  body.modo-due-print .due-print-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm;margin:5mm 0}
  body.modo-due-print .due-print-kpis div{border:1px solid #bbb;padding:3mm;text-align:center;break-inside:avoid}
  body.modo-due-print .due-print-kpis strong{display:block;font-size:14pt}.due-print-kpis span{display:block;font-size:8pt;margin-top:1mm}
  body.modo-due-print .due-print-decision{border:2px solid #555;padding:4mm;margin:5mm 0;break-inside:avoid}
  body.modo-due-print table{width:100%;border-collapse:collapse;font-size:8.5pt}body.modo-due-print th,body.modo-due-print td{border:1px solid #bbb;padding:2mm;text-align:left;vertical-align:top}
  body.modo-due-print .due-print-verify{display:flex;gap:5mm;align-items:flex-start;break-inside:avoid}.due-print-qr svg{width:34mm!important;height:34mm!important}
  body.modo-due-print .mono{font-family:monospace;word-break:break-all}.due-print-limit{border:1px solid #b26a00;background:#fff8e1;padding:4mm;margin-top:6mm;break-inside:avoid}
  body.modo-due-print footer{margin-top:8mm;padding-top:3mm;border-top:1px solid #bbb;font-size:8pt;color:#555}
}

@media print{
  @page{size:A4 portrait;margin:12mm 11mm 14mm}
  body.modo-dossie .sb,body.modo-dossie .topbar,body.modo-dossie .wa-float,body.modo-dossie .no-print,body.modo-dossie .page-footer,
  body.modo-dossie .mobile-bottom-nav,body.modo-dossie .mobile-sheet,body.modo-dossie .mobile-sheet-backdrop{display:none!important}
  body.modo-dossie{background:#fff!important;color:#111!important;overflow:visible!important;padding:0!important}
  body.modo-dossie #sc-app,body.modo-dossie .main-wrap,body.modo-dossie .page{display:block!important;height:auto!important;overflow:visible!important;background:#fff!important;padding:0!important;margin:0!important;width:100%!important;max-width:none!important}
  body.modo-dossie .dossie-print-area{display:block!important;background:#fff!important;color:#111!important;width:100%!important;max-width:188mm!important;margin:0 auto!important}
  body.modo-dossie .dossie-print-area .card,body.modo-dossie .dossie-theme-card,body.modo-dossie .dossie-kpi{background:#fff!important;color:#111!important;border-color:#ccc!important;box-shadow:none!important;break-inside:avoid;max-width:100%!important}
  body.modo-dossie .dossie-print-area *{color:#111!important;text-shadow:none!important;box-sizing:border-box!important}
  body.modo-dossie .dossie-data-table{width:100%!important;max-width:100%!important;table-layout:fixed!important;border-collapse:collapse!important}
  body.modo-dossie .dossie-data-table th,body.modo-dossie .dossie-data-table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;max-width:0!important;line-height:1.45!important}
  body.modo-dossie .dossie-grid,body.modo-dossie .g2,body.modo-dossie .g3,body.modo-dossie .g4{max-width:100%!important;min-width:0!important}
  body.modo-dossie #mapa-dossie{display:none!important}
  body.modo-dossie #mapa-dossie-print{display:block!important;break-inside:avoid!important;max-width:100%!important}
  body.modo-dossie .leaflet-control-container{display:none!important}
}


/* ═══ BUILD R1 HOTFIX — navegação mobile estável ═══ */
.mobile-bottom-nav,.mobile-sheet,.mobile-sheet-backdrop{display:none}
@media (max-width:820px){
  /* O sidebar completo continua disponível no desktop. No celular ele é substituído por 5 ações. */
  #sc-app .sb{display:none!important}
  #sc-app .main-wrap{width:100%;min-width:0;padding-bottom:0!important}
  #sc-app .page{padding:14px 14px calc(88px + env(safe-area-inset-bottom))!important}
  #sc-app .wa-float{display:none!important}
  .mobile-bottom-nav{
    display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;
    min-height:66px;padding:5px 5px calc(5px + env(safe-area-inset-bottom));
    background:rgba(5,8,10,.985);border-top:1px solid var(--s3);z-index:9300;
    box-shadow:0 -7px 26px rgba(0,0,0,.55);backdrop-filter:blur(14px)
  }
  .mbn-btn{appearance:none;border:0;background:transparent;color:var(--t2);font-family:inherit;min-width:0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 2px;border-radius:9px;cursor:pointer}
  .mbn-btn .ic{font-size:19px;line-height:1}.mbn-btn .lb{font-size:8.5px;font-weight:750;white-space:nowrap}
  .mbn-btn.on{color:var(--g0);background:rgba(0,200,83,.08)}
  .mobile-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:9390;backdrop-filter:blur(2px)}
  .mobile-sheet{position:fixed;left:10px;right:10px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:9400;
    max-height:72vh;overflow:auto;background:#08100d;border:1px solid rgba(0,200,83,.28);border-radius:18px;padding:13px;
    box-shadow:0 20px 55px rgba(0,0,0,.7)}
  .mobile-sheet.open,.mobile-sheet-backdrop.open{display:block}
  .msh-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 3px 11px}
  .msh-title{font-size:12px;font-weight:900;color:var(--t0)}
  .msh-close{border:0;background:var(--s2);color:var(--t1);width:36px;height:36px;border-radius:10px;font-size:18px}
  .msh-sec{font-size:9px;font-weight:850;letter-spacing:1px;color:var(--g1);margin:8px 4px 6px;text-transform:uppercase}
  .msh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .msh-item{appearance:none;border:1px solid var(--s3);background:var(--s1);color:var(--t1);border-radius:12px;
    padding:12px 10px;text-align:left;font-family:inherit;font-size:11px;font-weight:750;min-height:50px;display:flex;align-items:center;gap:8px}
  .msh-item:active{border-color:var(--g1);background:rgba(0,200,83,.09)}
  .msh-item.zarc{border-color:rgba(170,255,0,.38);background:linear-gradient(135deg,rgba(0,200,83,.12),rgba(170,255,0,.05));color:#dfffe9}
}


/* ═══ BUILD R2 — LAYOUT DEFINITIVO / SAFE-AREA / RESPONSIVIDADE ═══ */
/* A safe-area é aplicada nos componentes que tocam as bordas, nunca no body.
   Isso evita dupla margem no Safari/iPhone e mantém desktop, PWA e Android alinhados. */
html,body{width:100%;max-width:100%;margin:0;padding:0;overflow:hidden}
body{min-width:0}
.scr{width:100%;max-width:100%;min-width:0;height:100vh;height:100dvh}
#sc-login,#sc-app,.main-wrap,.page{min-width:0;max-width:100%}
#sc-app{width:100%;overflow:hidden}
.main-wrap{width:auto;min-width:0}
.page{width:100%;overflow-x:hidden}
.page>*{min-width:0}
.card,.kpi,.upl,.g2,.g3,.g4,.dossie-toolbar,.dossie-grid{min-width:0;max-width:100%}
img,svg,video,canvas{max-width:100%;height:auto}

/* login: uma única aplicação das áreas seguras */
.login-wrap{width:100%;box-sizing:border-box;
  padding-top:calc(28px + env(safe-area-inset-top));
  padding-right:calc(20px + env(safe-area-inset-right));
  padding-bottom:calc(40px + env(safe-area-inset-bottom));
  padding-left:calc(20px + env(safe-area-inset-left));
}

/* Desktop/tablet: preserva respiro sem deslocar o viewport */
@media (min-width:821px){
  .topbar{padding-left:calc(22px + env(safe-area-inset-left));padding-right:calc(22px + env(safe-area-inset-right))}
  .page{padding:22px calc(22px + env(safe-area-inset-right)) 22px calc(22px + env(safe-area-inset-left))}
}

@media (max-width:820px){
  #sc-app{height:100vh;height:100dvh}
  #sc-app .main-wrap{height:100%;min-height:0;width:100%;padding:0!important}
  #sc-app .topbar{
    box-sizing:border-box;width:100%;height:auto!important;min-height:calc(50px + env(safe-area-inset-top));
    padding-top:env(safe-area-inset-top)!important;
    padding-right:calc(14px + env(safe-area-inset-right))!important;
    padding-bottom:0!important;
    padding-left:calc(14px + env(safe-area-inset-left))!important;
  }
  #sc-app .page{
    box-sizing:border-box;width:100%;min-height:0;
    padding-top:14px!important;
    padding-right:calc(14px + env(safe-area-inset-right))!important;
    padding-bottom:calc(82px + env(safe-area-inset-bottom))!important;
    padding-left:calc(14px + env(safe-area-inset-left))!important;
    overflow-x:hidden!important;overflow-y:auto!important;
  }
  .mobile-bottom-nav{
    box-sizing:border-box;width:auto;max-width:none;
    left:0;right:0;bottom:0;
    padding-top:5px;
    padding-right:calc(5px + env(safe-area-inset-right));
    padding-bottom:calc(5px + env(safe-area-inset-bottom));
    padding-left:calc(5px + env(safe-area-inset-left));
  }
  .mobile-sheet{
    left:calc(10px + env(safe-area-inset-left));
    right:calc(10px + env(safe-area-inset-right));
    bottom:calc(74px + env(safe-area-inset-bottom));
    max-width:none;
  }
  /* O rodapé deixa de flutuar sobre o conteúdo da tela de login. */
  .login-footer{position:relative;left:auto;right:auto;bottom:auto;width:100%;box-sizing:border-box;
    padding:8px calc(14px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));
    margin-top:auto}
}

@media (max-width:420px){
  .login-wrap{
    padding-right:calc(14px + env(safe-area-inset-right));
    padding-left:calc(14px + env(safe-area-inset-left));
  }
}

/* r2.27 — alinhamento estrito da abertura em telas estreitas. */
@media (max-width:820px){
  .login-hero{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:visible}
  .logo-row{display:flex;width:100%;max-width:100%;min-width:0;box-sizing:border-box;justify-content:center;gap:10px}
  .logo-row>div:last-child{min-width:0;max-width:calc(100% - 58px)}
  .logo-bolt{width:48px;height:48px;min-width:48px;flex:0 0 48px;border-radius:13px}
  .logo-text{font-size:clamp(26px,8vw,32px);letter-spacing:-.8px;white-space:nowrap;max-width:100%}
  .logo-tag{font-size:clamp(6.5px,2vw,8px);letter-spacing:clamp(1.3px,.55vw,2.2px);white-space:nowrap;max-width:100%}
  .timer-badge{max-width:100%;box-sizing:border-box}
  .hero-actions{width:100%;max-width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px!important}
  .hero-actions .btn{width:100%;min-width:0;justify-content:center;text-align:center;white-space:normal;line-height:1.25;padding:11px 9px}
  .wa-float{width:48px;height:48px;right:10px;bottom:calc(88px + env(safe-area-inset-bottom))!important}
  .wa-float svg{width:24px;height:24px}
}
@media (max-width:350px){
  .hero-actions{grid-template-columns:1fr}
  .logo-text{font-size:25px}
  .logo-tag{font-size:6.5px;letter-spacing:1.15px}
}

/* Landscape de iPhone: respeita também os recortes laterais. */
@media (max-width:900px) and (orientation:landscape){
  #sc-app .page{padding-right:calc(12px + env(safe-area-inset-right))!important;padding-left:calc(12px + env(safe-area-inset-left))!important}
  .mobile-bottom-nav{padding-right:calc(5px + env(safe-area-inset-right));padding-left:calc(5px + env(safe-area-inset-left))}
}

/* ═══ BUILD R2.12 — PEÇAS TÉCNICAS FUNDIÁRIAS: HOMOLOGAÇÃO MOBILE ═══ */
#pecas-result{min-width:0}
#pecas-result .card{min-width:0}
#pecas-map{width:100%;overflow:hidden}
#pecas-texto{box-sizing:border-box}
@media (max-width:820px){
  /* evita a barra inferior cobrir o fim do módulo */
  .page{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
  /* iOS: campo abaixo de 16px causa zoom automático */
  #pecas-texto,
  #pecas-prop,
  #pecas-nome,#pecas-mat,#pecas-mun,#pecas-uf,#pecas-cns,#pecas-area,
  #pecas-rt-nome,#pecas-rt-conselho,#pecas-rt-registro,#pecas-art,
  input[type="file"]{font-size:16px!important}
  #pecas-texto{min-height:210px;line-height:1.45}
  #pecas-status{display:block;width:100%;line-height:1.5;margin-top:2px}
  #pecas-result .no-print{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
  #pecas-result .no-print .btn{width:100%;min-width:0;justify-content:center;text-align:center;white-space:normal;line-height:1.25;padding:9px 8px}
  #pecas-result .card>div[style*="overflow:auto"]{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:8px}
  #pecas-result table{font-size:10px!important}
  #pecas-result th,#pecas-result td{padding:7px 6px!important}
  #pecas-result table th:first-child,#pecas-result table td:first-child{position:sticky;left:0;z-index:2;background:var(--s1)}
  #pecas-result table th:first-child{z-index:3;background:var(--s2)}
  #pecas-result input{font-size:16px!important}
  #pecas-map{height:56vh!important;min-height:320px!important;max-height:480px!important}
  #pecas-result .doc-papel{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #pecas-result .doc-papel .folha{min-width:700px;transform-origin:top left}
  #pecas-historico .msh-item{min-height:48px;white-space:normal;line-height:1.35}
}
@media (max-width:420px){
  #pecas-result .no-print{grid-template-columns:1fr}
  #pecas-map{height:52vh!important;min-height:300px!important}
}

/* Demonstração pública em vídeo */
.demo-video-dialog{width:min(94vw,520px);max-height:94vh;margin:auto;padding:0;border:1px solid rgba(0,255,127,.35);border-radius:18px;background:#050a08;color:#eefaf3;box-shadow:0 24px 80px rgba(0,0,0,.75);overflow:hidden}
.demo-video-dialog::backdrop{background:rgba(0,5,3,.84);backdrop-filter:blur(5px)}
.demo-video-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid rgba(0,255,127,.16)}
.demo-video-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:800;color:#fff}
.demo-video-subtitle{font-size:10px;color:var(--t2);margin-top:2px}
.demo-video-close{width:44px;height:44px;min-width:44px;display:grid;place-items:center;border:1px solid rgba(0,255,127,.22);border-radius:10px;background:rgba(0,200,83,.08);color:#b9f6ca;font-size:24px;line-height:1;cursor:pointer}
.demo-video-close:hover,.demo-video-close:focus-visible{background:rgba(0,255,127,.16);outline:2px solid rgba(0,255,127,.35);outline-offset:2px}
.demo-video-wrap{display:grid;place-items:center;background:#000;max-height:calc(94vh - 74px);overflow:hidden}
.demo-video-wrap video{display:block;width:100%;max-height:calc(94vh - 74px);object-fit:contain;background:#000}
@media (max-width:600px){.demo-video-dialog{width:96vw;max-height:92vh;border-radius:15px}.demo-video-wrap,.demo-video-wrap video{max-height:calc(92vh - 72px)}}

/* ═══ r2.27 — LAYOUT PÚBLICO UNIFICADO: WEB, TABLET E MOBILE ═══
   Esta camada final substitui conflitos acumulados entre breakpoints antigos. */
#sc-login{
  align-items:stretch;
  min-height:100vh!important;
  min-height:100dvh!important;
  overflow-x:clip!important;
  overflow-y:auto!important;
}
#sc-login .login-wrap{
  width:min(100%,1180px);
  max-width:1180px;
  margin:0 auto;
  padding:clamp(24px,4vw,48px) clamp(16px,3vw,32px) 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,380px);
  gap:clamp(24px,4vw,48px);
  align-items:start;
}
#sc-login .login-hero,
#sc-login .lp-vend,
#sc-login .public-pricing,
#sc-login .public-pricing-grid,
#sc-login .lcard{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#sc-login .login-hero{margin:0;text-align:left}
#sc-login .logo-row{display:flex;align-items:center;max-width:100%;min-width:0}
#sc-login .logo-row>div:last-child{min-width:0;max-width:calc(100% - 64px)}
#sc-login .logo-text{font-size:clamp(30px,3.4vw,42px);white-space:nowrap;max-width:100%}
#sc-login .logo-tag{white-space:normal;overflow-wrap:anywhere}
#sc-login .hero-line{max-width:620px;margin:0;overflow-wrap:anywhere}
#sc-login .hero-actions{
  width:min(100%,500px);
  max-width:500px;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px!important;
}
#sc-login .hero-actions .btn{width:100%;min-width:0;white-space:normal;text-align:center;justify-content:center}
#sc-login .lp-vend{margin-top:24px}
#sc-login .public-pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#sc-login .public-plan-card{overflow:hidden}
#sc-login .lcard{position:sticky;top:24px;justify-self:end}
#sc-login .login-footer{
  position:relative;
  inset:auto;
  width:min(calc(100% - 32px),1116px);
  margin:8px auto max(20px,env(safe-area-inset-bottom));
  padding:16px;
  border-top:1px solid rgba(0,200,83,.12);
}
body:has(#sc-login.on)>.wa-float{
  width:50px;height:50px;right:max(14px,env(safe-area-inset-right));
  bottom:max(14px,env(safe-area-inset-bottom))!important;
}
body:has(#sc-login.on)>.wa-float svg{width:25px;height:25px}

@media (max-width:1024px){
  #sc-login .login-wrap{
    width:min(100%,760px);
    grid-template-columns:minmax(0,1fr);
    gap:24px;
  }
  #sc-login .login-hero{text-align:center}
  #sc-login .logo-row{justify-content:center}
  #sc-login .hero-line{margin:0 auto}
  #sc-login .hero-actions{margin-left:auto!important;margin-right:auto!important}
  #sc-login .lcard{position:relative;top:auto;justify-self:stretch}
  #sc-login .lp-grid,#sc-login .lp-caso,#sc-login .lp-quem,#sc-login .lp-seg{text-align:left}
}

@media (max-width:700px){
  #sc-login .login-wrap{
    width:100%;max-width:600px;
    padding-top:calc(20px + env(safe-area-inset-top));
    padding-right:calc(16px + env(safe-area-inset-right));
    padding-bottom:18px;
    padding-left:calc(16px + env(safe-area-inset-left));
    gap:20px;
  }
  #sc-login .logo-row{gap:9px}
  #sc-login .logo-bolt{width:46px;height:46px;min-width:46px;flex-basis:46px}
  #sc-login .logo-row>div:last-child{max-width:calc(100% - 55px)}
  #sc-login .logo-text{font-size:clamp(27px,8.2vw,34px);letter-spacing:-.7px}
  #sc-login .logo-tag{font-size:clamp(6.5px,1.9vw,8px);letter-spacing:clamp(1px,.45vw,1.8px)}
  #sc-login .timer-badge{padding:8px 14px;max-width:100%}
  #sc-login .hero-line{font-size:13.5px;line-height:1.55}
  #sc-login .hero-line br{display:none}
  #sc-login .hero-actions{width:100%;max-width:100%;gap:8px!important}
  #sc-login .hero-actions .btn{padding:11px 8px;font-size:12px}
  #sc-login .public-pricing-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  #sc-login .public-plan-card{padding:16px!important}
  #sc-login .lcard{padding:20px 16px;border-radius:14px}
  #sc-login .login-footer{width:calc(100% - 32px);padding:14px 8px;margin-top:4px}
}

@media (max-width:390px){
  #sc-login .login-wrap{
    padding-right:calc(12px + env(safe-area-inset-right));
    padding-left:calc(12px + env(safe-area-inset-left));
  }
  #sc-login .hero-actions{grid-template-columns:minmax(0,1fr)}
  #sc-login .logo-text{font-size:clamp(25px,8vw,30px)}
  #sc-login .logo-tag{font-size:6.4px;letter-spacing:1px}
  #sc-login .login-footer{width:calc(100% - 24px)}
}


/* ═══ R2.37.4 — SISTEMA ÚNICO DE RELATÓRIOS / IMPRESSÃO TÉCNICA ═══
   Escopo exclusivo de impressão/PDF. Não altera a interface normal. */
#rr-print-root{display:none}
@media print{
  @page{size:A4 portrait;margin:12mm 11mm 14mm}
  html,body{width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .mobile-bottom-nav,.mobile-sheet,.mobile-sheet-backdrop,.wa-float,.sb,.topbar,.no-print,.leaflet-control-container{display:none!important}
  body.modo-doc .mobile-bottom-nav,body.modo-doc .mobile-sheet,body.modo-doc .mobile-sheet-backdrop{display:none!important}

  /* Relatórios gerados pelo motor unificado */
  body.modo-rr-print> *:not(#rr-print-root){display:none!important}
  body.modo-rr-print #rr-print-root{display:block!important;width:100%!important;max-width:188mm!important;margin:0 auto!important;padding:0!important;background:#fff!important;color:#111!important;font-family:Arial,Helvetica,sans-serif!important;font-size:9.5pt!important;line-height:1.42!important}
  body.modo-rr-print #rr-print-root *{box-sizing:border-box!important;text-shadow:none!important;max-width:100%}
  body.modo-rr-print #rr-print-root .rr-print-head{border-bottom:2px solid #087d3c;padding:0 0 4mm;margin:0 0 5mm;display:flex;justify-content:space-between;gap:6mm;align-items:flex-end}
  body.modo-rr-print #rr-print-root .rr-print-brand{font-size:10pt;font-weight:900;letter-spacing:1.2px;color:#087d3c!important}
  body.modo-rr-print #rr-print-root .rr-print-meta{font-size:7.5pt;color:#555!important;text-align:right;line-height:1.35}
  body.modo-rr-print #rr-print-root .rr-print-foot{display:none!important} /* R2.37.11.5: evita página residual isolada */
  body.modo-rr-print #rr-print-root .card,body.modo-rr-print #rr-print-root .kpi,body.modo-rr-print #rr-print-root .dossie-theme-card,body.modo-rr-print #rr-print-root .dossie-kpi{background:#fff!important;color:#111!important;border:1px solid #c8c8c8!important;box-shadow:none!important;border-radius:2mm!important;break-inside:avoid;padding:3.2mm!important;margin:0 0 3mm!important}
  body.modo-rr-print #rr-print-root .g2,body.modo-rr-print #rr-print-root .g3,body.modo-rr-print #rr-print-root .g4,body.modo-rr-print #rr-print-root .dossie-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3mm!important;min-width:0!important}
  body.modo-rr-print #rr-print-root .g4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.modo-rr-print #rr-print-root .tp{display:block!important;margin:0 0 4mm!important}
  body.modo-rr-print #rr-print-root .tab-row,body.modo-rr-print #rr-print-root button,body.modo-rr-print #rr-print-root .btn{display:none!important}
  body.modo-rr-print #rr-print-root .ct{font-size:10.5pt!important;color:#164b28!important;font-weight:800!important;letter-spacing:.2px!important;margin:0 0 2mm!important}
  body.modo-rr-print #rr-print-root .kv{font-size:16pt!important;line-height:1.05!important}.ku,.kl,.kt{font-size:8pt!important}
  body.modo-rr-print #rr-print-root .fr{display:flex!important;justify-content:space-between!important;gap:5mm!important;padding:1.5mm 0!important;border-bottom:1px solid #e5e5e5!important;break-inside:avoid}
  body.modo-rr-print #rr-print-root .fl{color:#444!important;flex:1 1 55%!important}.fv{color:#111!important;flex:1 1 45%!important;text-align:right!important;overflow-wrap:anywhere!important}
  body.modo-rr-print #rr-print-root table{width:100%!important;max-width:100%!important;min-width:0!important;border-collapse:collapse!important;table-layout:auto!important;font-size:8pt!important;margin:2mm 0 4mm!important}
  body.modo-rr-print #rr-print-root thead{display:table-header-group!important}body.modo-rr-print #rr-print-root tr{break-inside:avoid!important}
  body.modo-rr-print #rr-print-root th,body.modo-rr-print #rr-print-root td{border:1px solid #bbb!important;padding:1.6mm 1.8mm!important;text-align:left!important;vertical-align:top!important;white-space:normal!important;overflow:visible!important;overflow-wrap:break-word!important;word-break:normal!important;max-width:none!important;min-width:0!important;color:#111!important}
  body.modo-rr-print #rr-print-root th{background:#eef7f1!important;color:#164b28!important;font-weight:800!important}
  body.modo-rr-print #rr-print-root [style*="min-width:1450px"],body.modo-rr-print #rr-print-root [style*="min-width: 1450px"]{min-width:0!important}
  body.modo-rr-print #rr-print-root [style*="overflow-x:auto"],body.modo-rr-print #rr-print-root [style*="overflow:auto"]{overflow:visible!important}
  body.modo-rr-print #rr-print-root h1{font-size:18pt!important;margin:0 0 3mm!important}body.modo-rr-print #rr-print-root h2{font-size:14pt!important;margin:4mm 0 2mm!important}body.modo-rr-print #rr-print-root h3{font-size:11pt!important;margin:3mm 0 1.5mm!important;color:#164b28!important}
  body.modo-rr-print #rr-print-root p,body.modo-rr-print #rr-print-root li{orphans:3;widows:3}
  body.modo-rr-print #rr-print-root img,body.modo-rr-print #rr-print-root svg,body.modo-rr-print #rr-print-root canvas{max-width:100%!important;height:auto!important;break-inside:avoid}
  body.modo-rr-print #rr-print-root [id^="mapa-"],body.modo-rr-print #rr-print-root .leaflet-container{height:105mm!important;min-height:0!important;max-height:105mm!important;overflow:hidden!important;border:1px solid #aaa!important;break-inside:avoid}
  body.modo-rr-print #rr-print-root .page-footer{display:none!important}

  /* Dossiê: corrige colapso das células no Safari/iOS */
  body.modo-dossie .dossie-data-table{table-layout:auto!important}
  body.modo-dossie .dossie-data-table th,body.modo-dossie .dossie-data-table td{max-width:none!important;min-width:0!important;overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important}
  body.modo-dossie .dossie-grid,body.modo-dossie .g2,body.modo-dossie .g3,body.modo-dossie .g4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3mm!important}

  /* Peças documentais: A4 limpo, sem interface mobile */
  body.modo-doc #doc-print,body.modo-doc .doc-papel{width:100%!important;max-width:188mm!important;margin:0 auto!important;background:#fff!important;color:#111!important}
  body.modo-doc .doc-papel .folha{width:100%!important;max-width:100%!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important;page-break-after:always!important}
  body.modo-doc .doc-papel table{width:100%!important;min-width:0!important;table-layout:auto!important;border-collapse:collapse!important}
  body.modo-doc .doc-papel th,body.modo-doc .doc-papel td{white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;max-width:none!important}
}

/* R2.37.7 — impressão cartográfica: enquadramento sem recorte */
.rr-map-svg{display:block;width:100%;height:auto;overflow:visible}
@media print{body.modo-rr-print #rr-print-root .rr-map-svg{width:100%!important;height:auto!important;max-height:92mm!important;overflow:visible!important}body.modo-rr-print #rr-print-root .doc-papel svg{overflow:visible!important}}



/* ═══ R2.28 — HOMOLOGAÇÃO UX / MOBILE ═══ */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,input,select,textarea{touch-action:manipulation}
button,.btn,.mbn-btn,.msh-item{min-height:44px}
.mbn-btn{min-width:44px}
.msh-close{min-width:44px;min-height:44px}
.card,.kpi,.upl{overflow-wrap:anywhere}
#rr-legal-dialog,.demo-video-dialog{max-width:calc(100vw - 24px)}
#rr-legal-dialog{max-height:calc(100dvh - 24px);overflow:auto}
#rr-legal-dialog::backdrop{background:rgba(0,5,3,.82);backdrop-filter:blur(4px)}
@media (max-width:820px){
  #sc-app .page{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}
  input:not([type="checkbox"]):not([type="radio"]),
  select,textarea{font-size:16px!important}
  .btn{white-space:normal;line-height:1.25}
  .g2,.g3,.g4{grid-template-columns:1fr!important}
  .mobile-bottom-nav{min-height:68px}
  .mbn-btn{padding:6px 2px}
  .mbn-btn .lb{font-size:9px}
  .mobile-sheet{max-height:min(72dvh,620px);overscroll-behavior:contain}
  #rr-legal-dialog,.demo-video-dialog{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    margin:auto!important;
  }
}
@media (max-width:390px){
  #sc-app .page{
    padding-right:calc(11px + env(safe-area-inset-right))!important;
    padding-left:calc(11px + env(safe-area-inset-left))!important;
  }
  .msh-grid{grid-template-columns:1fr!important}
  .mobile-sheet{
    left:calc(8px + env(safe-area-inset-left))!important;
    right:calc(8px + env(safe-area-inset-right))!important;
  }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}



/* ═══ r2.32.1 — HOTFIX LOGIN + ROLAGEM MOBILE ═══
   Corrige iOS/Android: a tela pública precisa ser o próprio viewport rolável,
   pois o body do app permanece travado para as telas internas. */
#sc-login.scr.on{
  height:100vh!important;
  height:100dvh!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  scroll-behavior:smooth;
}
#sc-login .login-wrap{
  flex:0 0 auto;
}
#sc-login .login-footer{
  flex:0 0 auto;
  padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
}
#login-access-card{
  scroll-margin-top:calc(16px + env(safe-area-inset-top));
}
#sc-login .btn-login-public{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  text-decoration:none;
  white-space:normal;
  color:var(--t0);
  background:rgba(0,200,83,.08);
  border:1px solid rgba(0,255,127,.32);
}
#sc-login .btn-login-public:hover,
#sc-login .btn-login-public:focus-visible{
  background:rgba(0,255,127,.14);
  outline:2px solid rgba(0,255,127,.28);
  outline-offset:2px;
}
@media (min-width:701px){
  #sc-login .hero-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:min(100%,760px)!important;
    max-width:760px!important;
  }
}
@media (max-width:700px){
  #sc-login .hero-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
  #sc-login .btn-login-public{
    min-height:48px;
    font-size:13px;
    font-weight:800;
  }
  #sc-login .login-footer{
    margin-bottom:calc(24px + env(safe-area-inset-bottom))!important;
  }
}



/* ═══ r2.32.2 — ALINHAMENTO DA BARRA SUPERIOR ═══
   A barra superior combinava um título de largura livre com duas pílulas
   `white-space:nowrap` e o botão Sair, sem `min-width:0` na coluna do título.
   Entre 821px e 1100px — tablet em paisagem e notebook pequeno, com o menu
   lateral aberto — não sobrava largura para todos: o título quebrava em duas
   linhas dentro de uma barra de altura fixa e a borda direita era cortada por
   `.main-wrap{overflow:hidden}`, levando o botão Sair para fora da margem.
   Agora o título ocupa uma única linha com reticências e as ações nunca encolhem. */
.topbar{min-width:0}
.tb-l{min-width:0;flex:1 1 auto;overflow:hidden}
.tb-title,.tb-sub{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-r{flex:0 0 auto;min-width:0}

/* As pílulas da direita são informativas, não funcionais: saem de cena antes de
   disputar espaço com o título e com o botão Sair, em vez de estourar a margem. */
@media (max-width:1100px){.speed-pill{display:none}}
@media (max-width:520px){.online-pill{display:none}}



/* ═══ R2.37.6 — MAPAS TÉCNICOS EM RELATÓRIOS / TRS1.1 ═══ */
.rr-static-print-map{display:none}
.rr-map-static{width:100%;border:1px solid rgba(74,105,82,.28);border-radius:12px;background:#fff;overflow:hidden;color:#17241b;box-sizing:border-box;margin:8px 0}
.rr-map-static *{box-sizing:border-box}
.rr-map-static-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #dce5de;background:linear-gradient(180deg,#f8fbf8,#f1f6f2)}
.rr-map-static-head strong{font-size:12px;color:#164b28;letter-spacing:.15px}
.rr-map-static-head span{font-size:8.5px;color:#5b6e60;font-weight:800;letter-spacing:.7px;text-align:right}
.rr-map-svg{display:block;width:100%;height:auto;max-height:420px;background:#f4f7f4}
.rr-map-legend{display:flex;gap:8px 14px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid #e2e8e3;background:#fafcfb}
.rr-map-legend>span{display:inline-flex;gap:6px;align-items:center;font-size:9.5px;color:#405247}
.rr-map-legend i{width:12px;height:4px;border-radius:4px;display:inline-block}
.rr-map-areas{padding:9px 12px;border-top:1px solid #e2e8e3;background:#fff}
.rr-map-areas-title{font-size:9px;font-weight:800;color:#405247;text-transform:uppercase;letter-spacing:.55px;margin-bottom:6px}
.rr-map-areas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px}
.rr-map-areas-grid>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dotted #d7dfd9;padding:3px 0;font-size:9.5px;color:#526257}
.rr-map-areas-grid strong{color:#17241b;white-space:nowrap}
.rr-map-caption{padding:8px 12px;border-top:1px solid #e2e8e3;background:#f8faf8;color:#5c685f;font-size:9px;line-height:1.45}
.rr-map-no-geometry-body{display:grid;grid-template-columns:52px 1fr;gap:13px;align-items:center;padding:18px 16px;background:repeating-linear-gradient(135deg,#f8faf8,#f8faf8 10px,#f3f6f3 10px,#f3f6f3 20px)}
.rr-map-placeholder-icon{width:48px;height:48px;border-radius:50%;border:2px dashed #799181;display:flex;align-items:center;justify-content:center;font-size:25px;color:#55705c;background:#fff}
.rr-map-placeholder-title{font-size:12px;font-weight:850;color:#223a29;margin-bottom:5px}
.rr-map-placeholder-text{font-size:10px;line-height:1.5;color:#5b685e}
.rr-map-coordinates{display:inline-block;margin-top:7px;padding:5px 8px;border-radius:6px;background:#fff;border:1px solid #d9e2db;font:9px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:#385142}
.rr-map-generic-note{min-height:110px;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;border:1px dashed #9eaba1;background:#f7f9f7;color:#56645a;font-size:10px;line-height:1.5}
.rr-map-label{background:rgba(255,255,255,.94)!important;border:1px solid #087d3c!important;border-radius:6px!important;color:#163923!important;font-size:10px!important;font-weight:800!important;box-shadow:0 1px 5px rgba(0,0,0,.18)!important;padding:4px 6px!important}
.rr-map-label:before{display:none!important}
.rr-leaflet-legend{min-width:205px;max-width:270px;background:rgba(255,255,255,.94);border:1px solid rgba(8,125,60,.28);border-radius:8px;padding:8px 9px;box-shadow:0 2px 8px rgba(0,0,0,.18);color:#25342a;font:10px/1.35 Arial,sans-serif}
.rr-leaflet-legend strong{display:block;color:#164b28;margin-bottom:4px}
.rr-leaflet-legend>div{display:flex;justify-content:space-between;gap:8px;padding:2px 0;border-bottom:1px dotted #d8e0da}.rr-leaflet-legend>div:last-of-type{border-bottom:0}
.rr-leaflet-legend b{white-space:nowrap}.rr-leaflet-legend small{display:block;color:#68756c;font-size:8.5px;line-height:1.3;margin-top:5px}
@media (max-width:620px){.rr-map-areas-grid{grid-template-columns:1fr}.rr-map-static-head{align-items:flex-start;flex-direction:column}.rr-map-static-head span{text-align:left}.rr-map-no-geometry-body{grid-template-columns:1fr}.rr-map-placeholder-icon{display:none}}
@media print{
  .rr-map-static{border:1px solid #b8c2ba!important;border-radius:2mm!important;margin:2.5mm 0 4mm!important;break-inside:avoid!important;page-break-inside:avoid!important;background:#fff!important;color:#111!important}
  .rr-map-static-head{padding:2.5mm 3mm!important;background:#f3f7f4!important;border-color:#cfd7d1!important}
  .rr-map-static-head strong{font-size:9pt!important;color:#164b28!important}.rr-map-static-head span{font-size:6.8pt!important;color:#555!important}
  .rr-map-svg{width:100%!important;height:auto!important;max-height:94mm!important}
  .rr-map-legend,.rr-map-areas,.rr-map-caption{padding:2mm 3mm!important;border-color:#d7d7d7!important;background:#fff!important}
  .rr-map-legend>span,.rr-map-areas-grid>div,.rr-map-caption{font-size:7.2pt!important;color:#444!important}
  .rr-map-areas-title{font-size:7pt!important}.rr-map-areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1mm 4mm!important}
  .rr-map-no-geometry-body{padding:5mm 4mm!important;background:#fafafa!important;grid-template-columns:14mm 1fr!important}.rr-map-placeholder-icon{display:flex!important;width:12mm!important;height:12mm!important;font-size:16pt!important}
  .rr-map-placeholder-title{font-size:9pt!important}.rr-map-placeholder-text{font-size:7.5pt!important}.rr-map-coordinates{font-size:7pt!important}
  body.modo-rr-print #rr-print-root .rr-map-static{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  body.modo-rr-print #rr-print-root .rr-map-static svg{max-height:94mm!important}
  body.modo-dossie #mapa-dossie-print{display:block!important}
}



/* ═══ R2.37.10 — SATELLITE TILE MOSAIC / CLEAN DOSSIER PRINT ═══ */
.rr-sat-map-viewport{position:relative;width:100%;aspect-ratio:1400/820;min-height:210px;overflow:hidden;background:#e7ece8;border-bottom:1px solid #dce5de;isolation:isolate}
.rr-sat-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;text-align:center;padding:22px;background:linear-gradient(135deg,#e6ece7,#f4f7f4);color:#53635a;font-size:10px;z-index:0}
.rr-sat-fallback strong{font-size:12px;color:#2d4334}.rr-sat-tiles{position:absolute;inset:0;overflow:hidden;z-index:1;background:#dfe6df}.rr-sat-tile{position:absolute;display:block;max-width:none!important;object-fit:fill}.rr-sat-tile.rr-img-error{display:none!important}.rr-sat-image{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;display:block;z-index:1}.rr-sat-image.rr-img-error{display:none!important}
.rr-sat-overlay{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;z-index:2;pointer-events:none;overflow:visible}
.rr-sat-warning{position:absolute;left:12px;top:12px;right:12px;z-index:3;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 9px;border-radius:7px;background:rgba(255,255,255,.91);border:1px solid rgba(178,106,0,.55);box-shadow:0 1px 5px rgba(0,0,0,.14);font-size:9px;color:#5d4a27}
.rr-sat-warning strong{color:#9b5b00;letter-spacing:.45px}.rr-sat-warning span{flex:1;min-width:180px}
.rr-sat-warning.is-error{border-color:rgba(198,40,40,.7);background:rgba(255,245,245,.94);color:#6d2424}.rr-sat-warning.is-error strong{color:#c62828}
.rr-sat-source{position:absolute;right:8px;bottom:7px;z-index:3;background:rgba(0,0,0,.62);color:#fff;padding:3px 6px;border-radius:4px;font-size:7.5px;letter-spacing:.1px}
.rr-sat-coords{margin:8px 12px 0}.rr-print-map-host{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
@media print{
  body.modo-rr-print #rr-print-root .dossie-map-note,body.modo-dossie .dossie-map-note,body.modo-dossie .rr-hide-on-print{display:none!important}
  .rr-sat-map-viewport{height:88mm!important;min-height:88mm!important;max-height:88mm!important;aspect-ratio:auto!important;break-inside:avoid!important;page-break-inside:avoid!important;background:#e7ece8!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .rr-sat-image{width:100%!important;height:88mm!important;object-fit:cover!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .rr-sat-overlay{height:88mm!important;max-height:none!important}
  .rr-sat-warning{font-size:6.7pt!important;left:2.5mm!important;top:2.5mm!important;right:2.5mm!important;padding:1.5mm 2mm!important}.rr-sat-source{font-size:5.8pt!important;right:1.5mm!important;bottom:1.2mm!important}
  body.modo-rr-print #rr-print-root .rr-print-map-host{break-inside:auto!important;page-break-inside:auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;position:static!important;transform:none!important}
  body.modo-rr-print #rr-print-root .rr-print-map-host>.rr-map-static,body.modo-rr-print #rr-print-root .rr-map-static{break-inside:avoid!important;page-break-inside:avoid!important}
  body.modo-rr-print #rr-print-root .tp,body.modo-rr-print #rr-print-root .g2,body.modo-rr-print #rr-print-root .g3,body.modo-rr-print #rr-print-root .g4,body.modo-rr-print #rr-print-root .dossie-grid{position:static!important;transform:none!important;overflow:visible!important;height:auto!important;min-height:0!important;max-height:none!important}
  body.modo-rr-print #rr-print-root [id^="mapa-"],body.modo-rr-print #rr-print-root .leaflet-container{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  body.modo-rr-print #rr-print-root .rr-sat-map-viewport{height:88mm!important;min-height:88mm!important;max-height:88mm!important;overflow:hidden!important}
  body.modo-rr-print #rr-print-root .rr-sat-map-viewport img{height:88mm!important;max-height:88mm!important}
  body.modo-rr-print #rr-print-root .rr-sat-map-viewport svg{height:88mm!important;max-height:none!important}
}


.err-box[hidden]{display:none!important}
