/* Marquezelli ERP — experiência v6. Escopo global e operações preservados. */
:root{
  color-scheme:light;
  --ground:#f4f6f8; --surface:#ffffff; --surface-2:#f0f3f6; --surface-3:#e3e8ee;
  --ink:#15202b; --muted:#5b6b7a; --faint:#6b7a89;
  --line:#e2e8ee; --line-strong:#c9d3dd;
  --accent:#0e6f61; --accent-ink:#ffffff; --accent-soft:rgba(14,111,97,.10); --accent-line:rgba(14,111,97,.35);
  --good:#1f7a4d; --good-soft:rgba(31,122,77,.12);
  --warn:#9a6a14; --warn-soft:rgba(154,106,20,.13);
  --crit:#b0452b; --crit-soft:rgba(176,69,43,.12);
  --info:#4a56a3; --info-soft:rgba(74,86,163,.12);
  --side:#132030; --side-2:#1b2b3f; --side-ink:#e6edf4; --side-muted:#8ea0b5; --side-on:#0e6f61;
  --shadow:0 1px 2px rgba(20,32,44,.05), 0 8px 24px -16px rgba(20,32,44,.25);
  --shadow-lg:0 12px 40px -12px rgba(20,32,44,.35);
  --r:12px;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#0f151b; --surface:#161e26; --surface-2:#1c262f; --surface-3:#25313c;
  --ink:#e6ecf1; --muted:#9dabb8; --faint:#8593a3;
  --line:#25313c; --line-strong:#354552;
  --accent:#3bb8a4; --accent-ink:#06211c; --accent-soft:rgba(59,184,164,.14); --accent-line:rgba(59,184,164,.38);
  --good:#4fbd83; --good-soft:rgba(79,189,131,.16);
  --warn:#d6a44e; --warn-soft:rgba(214,164,78,.16);
  --crit:#e28a72; --crit-soft:rgba(226,138,114,.16);
  --info:#93a0e6; --info-soft:rgba(147,160,230,.16);
  --side:#0b1118; --side-2:#141d27; --side-ink:#e6edf4; --side-muted:#7f91a4; --side-on:#3bb8a4;
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 12px 30px -18px rgba(0,0,0,.7);
  --shadow-lg:0 14px 44px -10px rgba(0,0,0,.7);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:14.5px/1.5 "IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;letter-spacing:-.01em}
h1{font-family:"Fraunces",Georgia,serif;font-weight:500}
h2,h3{font-weight:600}
a{color:var(--accent)}
button{font:inherit}
.mono,.num{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .fine{font-size:12.5px;color:var(--faint);margin:14px 0 0}
.grow{flex:1}
[hidden]{display:none!important}

/* ---------- shell ---------- */
.app{min-height:100vh;display:flex;align-items:stretch}
.side{width:240px;flex:0 0 240px;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto;z-index:30}
.side .brand{padding:18px 18px 10px}
.brand{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.brand .mark{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--accent);transform:translateY(1px)}
.brand-name{font-family:"Fraunces",serif;font-weight:600;font-size:19px;letter-spacing:-.01em}
.brand-sub{font-family:"IBM Plex Sans",sans-serif;font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--accent)}
.brand.big .brand-name{font-size:26px}
.brand-ver{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.06em;color:var(--side-muted);align-self:baseline}
.login .brand-ver{color:var(--muted);font-size:12px}
.nav{display:flex;flex-direction:column;padding:4px 10px;gap:2px}
.nav-g{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--side-muted);padding:14px 10px 6px}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--side-ink);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap}
.nav a svg{width:18px;height:18px;flex:none;opacity:.85}
.nav a:hover{background:var(--side-2)}
.nav a.on{background:var(--side-on);color:#fff}
.nav a.on svg{opacity:1}
.side-foot{margin-top:auto;padding:16px 18px;font-size:11.5px;line-height:1.45;color:var(--side-muted)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:9px 22px;background:var(--surface);border-bottom:1px solid var(--line);min-height:58px}
#btn-menu{display:none}
.btn.icon{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:17px}
.escopo{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-strong);background:var(--surface);padding:5px 12px 6px 12px;border-radius:10px;cursor:pointer;color:var(--ink);max-width:min(460px,60vw);text-align:left;min-width:0}
.escopo .e-t{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.escopo:hover{background:var(--surface-2)}
.escopo .e-k{font-size:10.5px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
.escopo .e-v{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.escopo .e-d{font-size:12px;color:var(--muted);white-space:nowrap}
.escopo .e-c{color:var(--muted);font-size:12px}
.user{display:flex;align-items:center;gap:10px}
.user-email{font-size:13px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.view{flex:1;width:100%;max-width:none;padding:22px 28px 70px}
.backdrop{position:fixed;inset:0;background:rgba(10,16,24,.45);z-index:25}

/* ---------- popovers (escopo, lançar) ---------- */
.pop{position:absolute;z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lg);min-width:300px;max-width:min(440px,92vw);padding:8px}
.pop input[type=search]{width:100%;margin-bottom:6px}
.pop-list{max-height:60vh;overflow:auto}
.pop-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:8px 10px 4px}
.pop-it{display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--ink);font-size:14px}
.pop-it:hover{background:var(--surface-2)} .pop-it.on{background:var(--accent-soft);color:var(--accent)}
.pop-it .sub{font-size:12px;color:var(--muted);white-space:nowrap}
.pop-it.ind{padding-left:24px}
.pop-it.negocio-it{padding-left:40px;flex-wrap:wrap}
.pop-it.negocio-it .sub{white-space:normal}
.pop-it.negocio-it:disabled{opacity:.7;cursor:default}
.armus-cadastro{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px}
.menu-it{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;border:none;background:transparent;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--ink);font-size:14px}
.menu-it:hover{background:var(--surface-2)}
.menu-it svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--accent)}
.menu-it b{display:block;font-weight:600} .menu-it span{display:block;font-size:12.5px;color:var(--muted)}

/* ---------- controls ---------- */
.btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:9px;cursor:pointer;font-weight:500;font-size:14px;line-height:1.3}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.06)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}
.btn:focus-visible,select:focus-visible,input:focus-visible,.nav a:focus-visible,.pop-it:focus-visible,.menu-it:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn.mini{padding:4px 9px;font-size:12.5px;border-radius:7px}
.btn.danger{color:var(--crit);border-color:var(--crit-soft)} .btn.danger:hover{background:var(--crit-soft)}
.btn.good{color:var(--good);border-color:var(--good-soft)} .btn.good:hover{background:var(--good-soft)}
select,input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],textarea{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:8px 11px;border-radius:9px;font:inherit;font-size:14px}
select[disabled],input[disabled]{background:var(--surface-2);color:var(--muted);cursor:not-allowed;border-color:var(--line)}
textarea{width:100%;min-height:64px;resize:vertical}
label{display:block;font-size:12.5px;color:var(--muted);margin:12px 0 5px;font-weight:500}
.toolbar{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;margin:0 0 14px}
.toolbar .grow{flex:1}
.f{display:flex;flex-direction:column;gap:3px}
.f > span{font-size:11.5px;color:var(--faint);letter-spacing:.04em;text-transform:uppercase}
.f input[type=search]{min-width:240px}
.periodo{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.periodo input[type=date]{padding:6px 9px;font-size:13px}
.presets{display:flex;flex-wrap:wrap;gap:4px;margin-left:4px}
.pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;font-size:13px}
.subtabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line);padding-bottom:8px}
.subtab{border:none;background:transparent;padding:7px 12px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:500;font-size:14px}
.subtab:hover{background:var(--surface-2);color:var(--ink)} .subtab.on{background:var(--accent-soft);color:var(--accent)}
.check{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted);margin:0}

/* ---------- pills / stats ---------- */
.pill{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);letter-spacing:.02em;white-space:nowrap}
.pill.good{background:var(--good-soft);color:var(--good)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.crit{background:var(--crit-soft);color:var(--crit)}
.pill.info{background:var(--info-soft);color:var(--info)}
.pill.accent{background:var(--accent-soft);color:var(--accent)}
.stat{display:inline-flex;gap:6px;align-items:baseline;padding:6px 10px;border-radius:9px;background:var(--surface-2);font-size:13px;margin:0 6px 6px 0}
.stat b{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.stat.pos b{color:var(--good)} .stat.neg b{color:var(--crit)}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- page heads & sections ---------- */
.phead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:20px}
.crumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:6px}
.phead h1{font-size:27px}
.phead .sub{color:var(--muted);margin-top:4px;max-width:70ch}
.sec{margin-top:28px}
.sec h2{font-size:17px;margin-bottom:10px}
.sec .sub{color:var(--muted);font-size:13.5px;margin:-4px 0 12px;max-width:80ch}
.acoes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}

/* ---------- KPI tiles ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.kpi .k{font-size:12.5px;color:var(--muted);font-weight:500}
.kpi .v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:clamp(15px,1.3vw,20px);font-weight:500;margin-top:4px;letter-spacing:-.02em;white-space:nowrap}
.kpi .v.pos{color:var(--good)} .kpi .v.neg{color:var(--crit)} .kpi .v.warn{color:var(--warn)}
.kpi .d{font-size:12px;color:var(--muted);margin-top:4px}
.kpi.click{cursor:pointer} .kpi.click:hover{border-color:var(--accent-line)}

/* ---------- tables ---------- */
.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:auto}
table{border-collapse:collapse;width:100%;min-width:640px}
th,td{padding:10px 14px;border-top:1px solid var(--line);text-align:left;font-size:13.5px;vertical-align:top}
thead th{position:sticky;top:0;background:var(--surface-2);border-top:none;font-size:12px;letter-spacing:.03em;color:var(--muted);font-weight:600;z-index:1}
td.num,th.num{text-align:right;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
td.pos{color:var(--good)} td.neg{color:var(--crit)}
tbody tr:nth-child(even) td{background:rgba(127,140,153,.04)}
tbody tr:hover td{background:var(--accent-soft)}
tfoot td{background:var(--surface-2);font-weight:600}
td .sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--muted);max-width:52ch}
table.dense th,table.dense td{padding:6px 10px;font-size:13px}
td.acts{white-space:nowrap;text-align:right} td.acts .btn{margin-left:4px}
tr.sel td{background:var(--accent-soft)}
tr.detail td{background:var(--surface-2);font-size:13px}
.empty{padding:34px;text-align:center;color:var(--muted)}
.matriz td.num{font-size:12.5px}
.matriz tr.nivel1 td{font-weight:600;background:var(--surface-2)}
.matriz tr.subtotal td{font-weight:700;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.matriz tr.sep td{background:var(--surface-3);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-top:10px}
.matriz tr.filho td:first-child{padding-left:26px}
.sticky-tot{position:sticky;bottom:0;background:var(--surface-2)}
details.sec summary{cursor:pointer;font-size:13.5px}

/* ---------- bars / two columns ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.half h3{font-size:15px;margin:0 0 10px}
.bars{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow)}
.brow{display:grid;grid-template-columns:minmax(120px,38%) 1fr auto;gap:10px;align-items:center;font-size:13px}
.blabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btrack{height:10px;border-radius:5px;background:var(--surface-3);overflow:hidden}
.btrack i{display:block;height:100%;background:var(--accent);border-radius:5px} .btrack i.neg{background:var(--crit)}
.bval{white-space:nowrap} .bval.neg{color:var(--crit)}

/* ---------- tree (estrutura / plano) ---------- */
.tree{display:flex;flex-direction:column;gap:10px}
.node{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.node .t{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.node .t b{font-size:15.5px}
.node .children{margin:10px 0 0 14px;padding-left:14px;border-left:2px solid var(--accent-line);display:flex;flex-direction:column;gap:8px}
.leaf{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;font-size:13.5px}
.leaf .mono{color:var(--muted);font-size:12px}
.plano-row{display:grid;grid-template-columns:150px 70px 1fr auto;gap:12px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:13.5px}
.plano-row:first-child{border-top:none}
.plano-row.l1{font-weight:600} .plano-row.l2{font-weight:500}
.plano-row .mono{color:var(--muted);font-size:12px}

/* ---------- modal / forms ---------- */
.modal-back{position:fixed;inset:0;background:rgba(10,16,24,.5);display:grid;place-items:center;z-index:40;padding:16px}
.modal{width:100%;max-width:720px;max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg)}
.modal-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 8px} .modal-h h2{font-size:19px}
.modal-b{padding:6px 20px 14px} .modal-f{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px 18px;border-top:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px} .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.field label{margin:10px 0 4px} .field input,.field select,.field textarea{width:100%} .field .hint{font-size:12px;color:var(--faint);margin-top:3px}
.msg{min-height:1.4em;font-size:13.5px;margin:12px 0 0}
.msg.err{color:var(--crit)} .msg.ok{color:var(--good)}

/* ---------- login ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 10% -10%, var(--accent-soft), transparent 60%), var(--ground)}
.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px 30px 24px;box-shadow:var(--shadow)}
.login-card h1{font-size:30px;margin-top:22px}
.login-card .row{display:flex;gap:10px;margin-top:18px}
.login-card input{width:100%}

/* ---------- toast / skeleton / importação ---------- */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow-lg);z-index:70;max-width:90vw}
.toast.err{background:var(--crit);color:#fff}
.skel{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion: reduce){.skel{animation:none}}
.skel-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:10px}
.drop{border:2px dashed var(--line-strong);border-radius:var(--r);padding:26px;text-align:center;color:var(--muted);background:var(--surface);transition:border-color .15s}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.progress{height:10px;border-radius:5px;background:var(--surface-3);overflow:hidden;margin:8px 0}
.progress i{display:block;height:100%;background:var(--accent);width:0;transition:width .2s}
.log{font-family:"IBM Plex Mono",monospace;font-size:12px;background:var(--surface-2);border-radius:9px;padding:10px 12px;max-height:240px;overflow:auto;white-space:pre-wrap}
.bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;background:var(--accent)}

/* ---------- responsivo ---------- */
@media (max-width:1100px){
  .side{width:72px;flex-basis:72px}
  .side .brand-name,.side .brand-sub,.side .brand-ver,.nav a span,.nav-g,.side-foot{display:none}
  .side .brand{padding:18px 0 8px;justify-content:center}
  .nav a{justify-content:center;padding:11px 0}
  .nav a svg{width:20px;height:20px}
  .escopo{max-width:50vw}
  .two{grid-template-columns:1fr}
}
@media (max-width:760px){
  .side{position:fixed;left:-260px;width:240px;flex-basis:240px;transition:left .18s ease}
  .side.open{left:0}
  .side.open .brand-name,.side.open .brand-sub,.side.open .brand-ver,.side.open .nav a span,.side.open .nav-g,.side.open .side-foot{display:block}
  .side.open .nav a{justify-content:flex-start;padding:9px 10px}
  .side.open .brand{padding:18px 18px 10px;justify-content:flex-start}
  #btn-menu{display:inline-flex}
  .top{padding:8px 12px;gap:6px}
  .user-email{display:none}
  .escopo{max-width:none;flex:1;min-width:0}
  .escopo .e-d{display:none}
  .view{padding:16px 12px 60px}
  .phead h1{font-size:22px}
  .grid2,.grid3{grid-template-columns:1fr}
  .plano-row{grid-template-columns:1fr auto}
  .plano-row .mono:first-child{grid-column:1/-1}
  th,td{padding:8px 10px}
}

/* ---------- v5b: ajustes do juiz ---------- */
@media (min-width:761px){.tablewrap.tall{max-height:calc(100vh - 150px)}}   /* listas longas: cabeçalho fixo dentro do contêiner que rola */
.comparativo th:first-child,.comparativo td:first-child{position:sticky;left:0;background:var(--surface);z-index:2;min-width:180px}
.comparativo thead th:first-child{z-index:3;background:var(--surface-2)}
td.forn{min-width:260px}
.toolbar.lote .msg{margin:0}
td.chk{width:34px;padding-right:0} td.chk input{margin:0;transform:translateY(2px)}
.toolbar.lote{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:10px;padding:8px 12px;margin:0 0 12px}
optgroup{font-weight:600}


/* ---------- v6 · ambiente de trabalho ---------- */
:root{
  --ground:#f3f5f7; --surface-2:#f6f8fa; --surface-3:#e7edf2;
  --ink:#172a3a; --muted:#536778; --faint:#617383;
  --line:#e0e7ed; --line-strong:#bdcbd6;
  --accent:#106b60; --accent-soft:#eaf5f1; --accent-line:#9ec9bd;
  --side:#152b3b; --side-2:#223e50; --side-muted:#adc0cc; --side-on:#286358;
  --shadow:0 3px 14px -8px rgba(25,47,64,.16); --r:16px;
}
:root[data-theme="dark"]{
  --ground:#101b24; --surface:#172631; --surface-2:#1c2e3b; --surface-3:#293d4c;
  --ink:#e7eff4; --muted:#b2c2ce; --faint:#a3b6c4;
  --line:#2b404f; --line-strong:#526a7b;
  --accent:#67d4b9; --accent-ink:#102e27; --accent-soft:#203f3b; --accent-line:#457d70;
  --side:#10212e; --side-2:#203849; --side-muted:#adc0cc; --side-on:#24594f;
}
body{font-size:15px;line-height:1.55}
a{text-underline-offset:3px}
button,input,select,textarea{touch-action:manipulation}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--surface);border:2px solid var(--accent);border-radius:8px;padding:10px 16px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.side{width:244px;flex-basis:244px;height:100dvh;border-right:1px solid rgba(255,255,255,.05)}
.side .brand{padding:24px 18px 20px;gap:7px;flex-wrap:nowrap;align-items:baseline}
.side .brand-name{font-size:19px}
.side .brand-ver{white-space:nowrap}
.side .brand-sub{color:#bedbd3;font-size:12px}
.brand .mark{width:15px;height:15px;border-radius:5px;background:#63b7a1;box-shadow:0 0 0 5px rgba(99,183,161,.1)}
.nav{padding:0 12px;gap:5px}
.nav-g{font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;padding:22px 14px 8px;color:var(--side-muted)}
.nav a{min-height:46px;gap:11px;padding:11px 12px;font-size:14px;border:1px solid transparent;border-radius:10px}
.nav a svg{width:19px;height:19px}
.nav a.on{background:var(--side-on);border-color:rgba(150,217,193,.16);box-shadow:0 3px 10px rgba(0,0,0,.08)}
.side-foot{padding:24px 22px;font-size:12px;border-top:1px solid rgba(255,255,255,.09);margin:32px 12px 0;margin-top:auto;line-height:1.65}
.top{padding:14px 30px;gap:12px;min-height:83px;box-shadow:0 2px 10px -8px rgba(20,40,55,.25)}
.escopo{min-height:50px;max-width:min(460px,42vw);gap:14px;padding:8px 14px;border-radius:12px;background:var(--surface-2)}
.escopo .e-k{font-size:11.5px;letter-spacing:0;text-transform:none;color:var(--muted);margin-bottom:3px}
.escopo .e-v{font-size:15px}
.escopo .e-d{font-size:12px}
.escopo:disabled{cursor:default;opacity:1}
.user{gap:8px;padding-left:12px;border-left:1px solid var(--line)}
.user-email{max-width:155px;font-size:12px}
.user .pill{font-size:10.5px}
.view{padding:30px 32px 64px;min-width:0}
.view > div{min-width:0}
.phead{align-items:center;margin-bottom:24px;gap:20px}
.phead h1{font-size:32px;line-height:1.22;letter-spacing:-.035em}
.phead .sub{font-size:14px;line-height:1.6;margin-top:8px}
.crumb{margin-bottom:10px;font-size:12px;flex-wrap:wrap}
.crumb .pill{background:transparent;padding:0;border-radius:0;font-size:12px;color:var(--accent)}
.crumb > span + span:before{content:"/";margin-right:8px;color:var(--faint)}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border-radius:10px;font-size:14px;line-height:1.3;transition:background-color .15s,border-color .15s}
.btn.primary{font-weight:600;box-shadow:0 3px 8px -5px rgba(11,66,53,.6)}
.btn.mini{min-height:36px;padding:7px 10px;font-size:12.5px}
.btn.icon{width:44px;height:44px;min-width:44px}
.btn svg{width:18px;height:18px;flex:none}
.btn.good{border-color:var(--accent-line)}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],select,textarea{min-height:44px;padding:10px 12px;border-radius:10px;max-width:100%}
label,.field label{font-size:13px;color:var(--ink);font-weight:500}
.toolbar{padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface);gap:12px;margin-bottom:16px}
.toolbar .f{min-width:0;gap:6px}
.f > span{font-size:12px;color:var(--muted);letter-spacing:0;text-transform:none;font-weight:500}
.f input[type=search]{min-width:220px}
.periodo{gap:8px;font-size:13px;max-width:100%}
.periodo input[type=date]{min-height:40px;padding:8px;font-size:13px;max-width:160px}
.presets{margin-left:0;gap:6px}
.subtabs{gap:6px;border:0;border-radius:12px;background:var(--surface-3);padding:5px;width:fit-content;max-width:100%;margin-bottom:22px}
.subtab{min-height:42px;padding:9px 15px}
.subtab.on{background:var(--surface);box-shadow:0 2px 6px -3px rgba(20,40,55,.2);font-weight:600}
.pager{gap:10px;padding:8px 0}
.pager select{margin-left:auto}
.pill{font-size:11.5px;letter-spacing:0;line-height:1.5}
.stat{padding:9px 12px;margin-bottom:10px;border:1px solid var(--line);background:var(--surface)}
.acoes{gap:10px;margin:0 0 24px}
.atalhos-operacao{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.kpi{padding:20px;border-radius:var(--r);position:relative;min-width:0;box-shadow:var(--shadow)}
.kpi .k{font-size:13px;font-weight:500;color:var(--muted)}
.kpi .v{font-size:clamp(18px,1.65vw,25px);margin-top:10px;letter-spacing:-.045em}
.kpi .d{font-size:12px;line-height:1.6;margin-top:8px}
.kpi.click{transition:border-color .15s,box-shadow .15s}
.kpi.click:hover{box-shadow:0 6px 18px -10px rgba(20,65,54,.3)}
.kpi.click .k:after{content:"↗";float:right;margin-left:8px;color:var(--accent);font-size:15px}
.sec{margin-top:30px;min-width:0}
.sec h2{font-size:18px;letter-spacing:-.015em;margin-bottom:13px}
.sec > .toolbar{border:0;padding:0;background:transparent;margin:0 0 13px;align-items:center}
.sec > .toolbar h2{margin-bottom:0}
.tablewrap{border-radius:14px;overscroll-behavior-x:contain}
thead th{padding:13px 16px;font-size:12px;letter-spacing:0}
th,td{padding:13px 16px;font-size:13.5px;vertical-align:middle}
table.dense th,table.dense td{padding:11px 13px;font-size:13px}
td .sub{margin-top:4px;font-size:12px;line-height:1.45}
td.acts{vertical-align:middle}
td.acts .btn{margin:3px 0 3px 5px}
.matriz tr.sep td{font-size:12px;letter-spacing:0;text-transform:none}
.tablewrap:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.empty{padding:38px 24px;line-height:1.65}
.bars{padding:18px;gap:14px}
.btrack{height:8px}
.node{padding:20px}
.node .children{margin-top:16px}
.modal-back{padding:24px;background:rgba(11,29,40,.62);backdrop-filter:blur(3px)}
.modal{border-radius:18px;max-height:calc(100dvh - 48px);box-shadow:0 24px 80px -24px rgba(0,0,0,.55)}
.modal-h{padding:20px 24px 16px;position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line)}
.modal-h h2{font-size:21px}
.modal-b{padding:12px 24px 24px}
.modal-f{padding:16px 24px;position:sticky;bottom:0;background:var(--surface);z-index:2;flex-wrap:wrap}
.field .hint{line-height:1.5}
.pop{padding:10px;border-radius:15px;max-height:calc(100dvh - 160px);overflow:auto}
.pop-h{text-transform:none;letter-spacing:0;font-weight:600;font-size:12px;padding:10px 12px 8px}
.pop-it,.menu-it{min-height:48px;padding:12px;border-radius:10px}
.pop-it{align-items:flex-start}
.pop-it > span:first-child{min-width:0;overflow-wrap:anywhere}
.pop-it .sub{font-size:11px;padding-top:2px}
.pop-list{max-height:52dvh}
.menu-it{gap:14px}
.menu-it b{font-size:14px}
.menu-it span{margin-top:3px;line-height:1.45}
.login-card{max-width:440px;padding:36px;border-radius:22px}
.login-card h1{font-size:34px}
.login-card .row .btn{flex:1}
.drop{padding:36px 24px;line-height:1.7}
.log{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:13px}
@media(min-width:1280px){.hoje-resumo{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:761px) and (max-width:1100px){
  .side{width:216px;flex-basis:216px}
  .side .brand{padding:26px 18px 18px;justify-content:flex-start}
  .side .brand-name{font-size:21px}
  .side .brand-name,.side .brand-sub,.nav a span,.nav-g,.side-foot{display:block}
  .nav{padding:0 8px}
  .nav a{justify-content:flex-start;padding:10px 9px;gap:9px;font-size:12.5px}
  .nav a svg{width:18px;height:18px}
  .side-foot{padding:20px 8px}
  .top{padding:12px 18px;flex-wrap:wrap;gap:8px}
  .top .grow{display:none}
  .escopo{max-width:none;flex:1;min-width:180px}
  .escopo .e-d,.user-email{display:none}
  .user{padding-left:0;border:0}
  .view{padding:24px 20px 56px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi .v{font-size:20px}
}
@media(max-width:760px){
  .side{left:-300px;width:280px;flex-basis:280px;height:100dvh;box-shadow:var(--shadow-lg)}
  .side.open .brand{padding:26px 22px;flex-wrap:wrap}
  .side.open .nav a{min-height:48px;padding:11px 12px;font-size:14px}
  .side.open .nav-g{padding-top:22px}
  .top{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;grid-template-areas:"menu launch theme user" "scope scope scope scope";gap:8px;padding:10px 12px;min-height:122px}
  #btn-menu{grid-area:menu}
  #btn-novo{grid-area:launch;justify-self:start;white-space:nowrap;padding:10px 13px}
  #btn-tema{grid-area:theme}
  .top .grow{display:none}
  .user{grid-area:user;gap:4px;padding:0;border:0}
  .user .pill{padding:3px 6px;font-size:10px}
  .user #btn-sair{padding:8px;font-size:12px}
  .escopo{grid-area:scope;max-width:100%;min-width:0;width:100%;min-height:50px;justify-content:space-between;padding:7px 12px;gap:8px}
  .escopo .e-t{flex:1}
  .escopo .e-v{font-size:14px}
  .view{padding:22px 14px 48px}
  .phead{margin-bottom:20px;gap:14px}
  .phead h1{font-size:29px}
  .phead .sub{font-size:13px}
  .crumb{font-size:11px;gap:6px}
  .phead > *{max-width:100%;min-width:0}
  .acoes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .acoes .btn{font-size:12px;min-height:48px;padding:10px 8px;white-space:normal}
  .atalhos-operacao{padding:10px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:14px 12px;border-radius:12px}
  .kpi .k{font-size:12px;line-height:1.4}
  .kpi .k:after{display:none}
  .kpi .v{font-size:clamp(13px,4vw,18px);letter-spacing:-.04em;margin-top:8px}
  .kpi .d{font-size:11px;line-height:1.5;margin-top:7px}
  .toolbar{padding:12px;gap:12px}
  .toolbar .f{width:100%;flex:1 1 100%}
  .toolbar .f input,.toolbar .f select{width:100%;min-width:0}
  .toolbar > input,.toolbar > select{max-width:100%;min-width:0}
  input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],select,textarea{font-size:16px}
  .periodo{gap:8px}
  .periodo input[type=date]{min-width:0;max-width:132px;font-size:14px;min-height:44px}
  .presets{flex-basis:100%}
  .btn.mini,.subtab,.check{min-height:44px}
  input[type=checkbox]{width:20px;height:20px;flex:none}
  .subtabs{width:100%;gap:4px;padding:5px;flex-wrap:nowrap;overflow-x:auto}
  .subtab{white-space:nowrap;padding:10px 13px}
  .sec{margin-top:25px}
  .sec h2{font-size:17px}
  .sec > .toolbar{gap:8px}
  .pager{gap:8px}
  .pager > span{flex-basis:100%}
  .pager select{font-size:14px}
  .table-cards{overflow:visible;border:0;box-shadow:none;background:transparent;border-radius:0}
  .table-cards table{min-width:0;display:block;background:transparent}
  .table-cards thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .table-cards tbody,.table-cards tfoot{display:block}
  .table-cards tr{display:block;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:5px 14px;margin-bottom:12px;box-shadow:var(--shadow)}
  .table-cards td,.table-cards table.dense td{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:5px 14px;width:auto;min-width:0;max-width:none;padding:9px 0;border:0;border-bottom:1px solid var(--line);font-size:13px;text-align:left;background:transparent;white-space:normal;overflow-wrap:anywhere}
  .table-cards td:last-child{border-bottom:0}
  .table-cards td[data-label]:before{content:attr(data-label);color:var(--muted);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:11.5px;font-weight:500;min-width:88px;flex-shrink:0}
  .table-cards td .sub{display:block;flex-basis:100%;width:100%;max-width:none;overflow:visible;line-clamp:unset;-webkit-line-clamp:unset}
  .table-cards td.num{font-size:15px;font-weight:500;white-space:normal}
  .table-cards td.acts{align-items:center;justify-content:flex-end;gap:8px;padding:11px 0}
  .table-cards td.acts:before{margin-right:auto}
  .table-cards td.acts .btn{margin:0;min-height:44px}
  .table-cards td.chk{justify-content:flex-start}
  .table-cards td[colspan]{display:block;padding:14px 0;line-height:1.65}
  .table-cards td[colspan]:before{display:none}
  .table-cards tr.sel{border-color:var(--accent);background:var(--accent-soft)}
  .table-cards tr.detail{background:var(--surface-2)}
  .table-cards tfoot tr{background:var(--surface-2)}
  .table-cards tbody tr:hover td{background:transparent}
  .tablewrap:not(.table-cards){border-radius:12px}
  .two{grid-template-columns:minmax(0,1fr)}
  .brow{grid-template-columns:minmax(90px,1fr) auto;gap:7px}
  .btrack{grid-column:1/-1;grid-row:2}
  .bval{font-size:12px}
  .node{padding:16px}
  .node .children{margin-left:3px;padding-left:10px}
  .modal-back{padding:8px;align-items:center;backdrop-filter:none}
  .modal{max-height:calc(100dvh - 16px);border-radius:15px}
  .modal-h{padding:15px 16px;gap:10px}
  .modal-h h2{font-size:18px;line-height:1.35}
  .modal-b{padding:8px 16px 20px}
  .modal-f{padding:12px 16px;gap:8px}
  .modal-f .btn{flex:1;min-height:46px}
  .pop{min-width:0;max-width:calc(100vw - 16px);max-height:calc(100dvh - 160px)}
  .pop-it{flex-wrap:wrap;gap:3px 8px}
  .pop-it .sub{font-size:12px}
  .login{padding:16px}
  .login-card{padding:28px 22px}
}
@media(max-width:360px){
  .user .pill{font-size:9px;padding:2px 4px}
  .top{gap:6px;padding:8px}
  .view{padding-left:10px;padding-right:10px}
  .kpis{grid-template-columns:minmax(0,1fr)}
  .kpi .v{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.btn,.kpi.click,.side{transition:none}}

/* v6 · ajustes após revisão independente: filtros recolhíveis e ações acessíveis. */
.filter-panel{margin:0 0 18px;border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:hidden}
.filter-panel > summary{min-height:48px;padding:13px 16px;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);list-style-position:inside}
.filter-panel > summary::marker{color:var(--accent)}
.filter-panel > summary:hover{background:var(--surface-2)}
.filter-panel > summary:focus-visible{outline-offset:-4px}
.filter-panel[open] > summary{border-bottom:1px solid var(--line)}
.filter-panel > .toolbar{border:0;border-radius:0;margin:0}
.table-hint{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
@media(min-width:761px){
  .titulos-table table{min-width:900px}
  .titulos-table td.forn{min-width:220px;max-width:280px}
  .titulos-table td.acts{width:180px;min-width:180px;max-width:180px;white-space:normal}
  .titulos-table td.acts .btn{margin:3px 0 3px 4px;padding-inline:8px}
}
@media(max-width:760px){
  .filter-panel{margin-bottom:16px}
  .filter-panel > summary{min-height:48px;padding:13px 14px}
  .filter-panel > .toolbar{padding:12px}
  .table-hint{font-size:12px;margin-bottom:9px}
  .subtabs{scroll-padding-inline:8px}
}

/* ---------- segundo fator (v15) ---------- */
#mfa-codigo,input.seg-codigo{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}
input[aria-invalid="true"]{border-color:var(--crit)}
.login-card .hint{font-size:13px;color:var(--muted);margin:6px 0 0}
#mfa .fine{font-size:13px;line-height:1.55}
.seg{max-width:860px}
.seg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.seg-estado{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;border-radius:8px}
.seg-estado:focus{outline:none}
.seg-estado:focus-visible{outline:none}
.seg-estado .pill{font-size:12.5px}
html[data-theme="light"] .seg-estado .pill.warn,html:not([data-theme]) .seg-estado .pill.warn{color:#6f4c0c}
html[data-theme="light"] .seg-estado .pill.good,html:not([data-theme]) .seg-estado .pill.good{filter:brightness(.88)}
.mfa-conta{font-size:13.5px;margin:10px 0 0;overflow-wrap:anywhere}
.seg-copiado{margin:8px 0 0;font-size:13.5px;min-height:1.4em}
.seg-copiado.ok{color:var(--good)} .seg-copiado.err{color:var(--crit)}
.seg-texto{margin:8px 0 0;max-width:68ch;line-height:1.6}
.seg-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.seg-acoes a.btn{text-decoration:none}
.seg-passos{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:18px;counter-reset:passo}
.seg-passos > li{counter-increment:passo;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start}
.seg-passos > li::before{content:counter(passo);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:600}
.seg-cadastro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:10px}
.seg-op{border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.seg-op-t{display:block;font-size:12.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.seg-qr{display:block;width:168px;height:168px;margin-top:10px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px}
.seg-chave-l{margin:12px 0 0;line-height:1.7}
.seg-chave{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:14px;user-select:all;overflow-wrap:anywhere}
.seg-form{max-width:340px}
.seg-form label{margin-top:8px}
.seg-form input.seg-codigo{width:100%}
.seg-form .msg{margin:8px 0 0}
.aviso-seg{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:0 0 16px;padding:10px 14px;border:1px solid var(--warn-soft);background:var(--warn-soft);border-radius:var(--r);font-size:14px;line-height:1.5}
.aviso-seg-t{flex:1 1 320px;min-width:0}
.aviso-seg-a{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1000px){.seg-cadastro{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  .seg-card{padding:16px}
  .seg-passos > li{grid-template-columns:30px minmax(0,1fr);gap:10px}
  .seg-cadastro{grid-template-columns:minmax(0,1fr)}
  .seg-cadastro .seg-op:first-child{order:2}
  .seg-acoes .btn{flex:1 1 auto}
  .aviso-seg{font-size:13.5px;padding:10px 12px}
  .aviso-seg-a{width:100%}
  .aviso-seg-a .btn{flex:1}
}

/* v17 — lista de sugestões do campo Fornecedor/Cliente (substitui o datalist nativo) */
.sug-w{position:relative}
.sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-lg);max-height:280px;overflow:auto;padding:4px}
.sug.velha .sug-i,.sug.velha .sug-n{opacity:.5}
.sug-i{display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:44px;padding:7px 10px;border-radius:8px;cursor:pointer}
.sug-i b{font-weight:600;overflow-wrap:anywhere}
.sug-d{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.sug-i:hover{background:var(--surface-2)}
.sug-i.on{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}
.sug-n{padding:8px 10px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.sug-n.err{color:var(--crit)}

/* v19 — tela Notas fiscais */
.nf-det{display:grid;gap:12px}
.nf-linha{margin:0;line-height:1.6;max-width:110ch}
.nf-chave{overflow-wrap:anywhere;font-size:12.5px}
.nf-bloco > b{display:block;margin-bottom:6px}
.nf-bloco .tablewrap{margin:0}
.nf-aviso{padding:10px 12px;border:1px solid var(--warn);border-radius:10px;background:var(--warn-soft)}
td.num.neutral{color:inherit}
.notas-table td.forn{min-width:280px}
.notas-table td.acts{white-space:normal;min-width:150px}
@media (max-width:760px){.notas-table td.forn{min-width:0}.nf-det{gap:10px}}
.nf-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.nf-velho{opacity:.5}
.notas-table tr.sel .pill.crit{background:var(--crit);color:var(--surface)}
/* fim v19 — tela Notas fiscais */

/* v21 — lista com busca */
.busca-w{position:relative;display:inline-block;vertical-align:middle;min-width:220px;max-width:100%}
.field .busca-w,.toolbar .f .busca-w{display:block;width:100%}
.busca-w .busca-in{width:100%;padding-right:30px;text-overflow:ellipsis}
.busca-seta{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted);font-size:12px}
select.busca-nativo{position:absolute!important;left:0;top:0;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0;pointer-events:none;clip-path:inset(50%)}
.busca-lista{z-index:45;width:max-content;max-width:min(560px,calc(100vw - 16px))}
.busca-lista .sug-i{min-height:38px}
.busca-lista .sug-i.atual{font-weight:600}
.busca-lista .sug-i.off{opacity:.5;cursor:default}
.sug-g{padding:8px 10px 4px;font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
@media (max-width:760px){.busca-w{min-width:0;width:100%}.busca-lista{max-width:calc(100vw - 32px)}}
.versao-nova{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;box-shadow:var(--shadow-lg);font-size:14px}
@media (max-width:760px){.versao-nova{flex-direction:column;align-items:stretch;bottom:12px}}
/* fim v21 — lista com busca */

/* v22 — Ajuda (assistente e sugestões) */
.ajuda-top{position:relative;display:inline-flex;align-items:center;gap:6px}
.ajuda-top svg{width:18px;height:18px}
.ajuda-ponto{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--crit);box-shadow:0 0 0 2px var(--surface)}
.ajuda-painel{position:fixed;top:0;right:0;z-index:36;width:min(400px,100vw);height:100dvh;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg)}
.ajuda-painel[hidden],.ajuda-painel [hidden]{display:none}
.ajuda-painel .subtabs{padding:0 16px;border-bottom:1px solid var(--line)}
.ajuda-sug{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.ajuda-h{display:flex;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.ajuda-h h2{margin:0;font-size:16px}
.ajuda-sub{margin:4px 0 0;font-size:12px;color:var(--muted);line-height:1.4}
.ajuda-h-a{display:flex;align-items:flex-start;gap:4px}
.ajuda-msgs{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.ajuda-b{max-width:88%;padding:8px 12px;border-radius:12px;background:var(--surface-2);font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.ajuda-b.usuario{align-self:flex-end;background:var(--accent-soft)}
.ajuda-b.ceo{border:1px solid var(--accent)}
.ajuda-b-q{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:2px}
.ajuda-b-d{font-size:11px;color:var(--faint);margin-top:4px}
.ajuda-b.digitando{color:var(--muted);font-style:italic}
.ajuda-nota{align-self:center;font-size:12px;color:var(--muted);text-align:center}
.ajuda-vazio{display:flex;flex-direction:column;gap:6px;align-items:flex-start;color:var(--muted);font-size:13px}
.ajuda-vazio p{margin:0 0 2px}
.ajuda-f{padding:10px 16px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.ajuda-f textarea{width:100%;resize:vertical;min-height:56px}
.ajuda-atalhos{display:flex;gap:6px;flex-wrap:wrap}
.ajuda-enviar{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ajuda-enviar .hint{font-size:11.5px;color:var(--faint)}
.sug-card{padding:14px 16px;margin-bottom:12px}
.sug-quem{font-size:12.5px;color:var(--muted);margin:6px 0}
.sug-texto{margin:8px 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere}
.sug-resp{display:flex;gap:8px;align-items:flex-end}
.sug-resp textarea{flex:1}
.sug-conv{margin-top:10px;display:flex;flex-direction:column;gap:8px}
@media (min-width:761px){.ajuda-painel{width:min(400px,42vw)}body.ajuda-aberta .app{margin-right:min(400px,42vw)}}
@media (max-width:760px){.ajuda-painel{width:100vw;border-left:0}.ajuda-top-t{display:none}.sug-resp{flex-direction:column;align-items:stretch}}
/* fim v22 — Ajuda */
.aviso-seg.forte{border-color:var(--crit);background:var(--crit-soft)}   /* v22: código obrigatório */
.aviso-consulta{margin:10px 0 0;padding:7px 12px;border-radius:9px;background:var(--crit-soft);font-size:13px;line-height:1.5}   /* v22: só consultando */

/* Revisão visual: medidas comuns sem mudar contratos ou fluxos. */
:root{--control-border:#7e919e;--warn:#805711}
:root[data-theme="dark"]{--control-border:#718c9f}
.btn{max-width:100%;min-width:0}
.btn:disabled:hover{filter:none;background:var(--surface)}
.btn.primary:disabled:hover{background:var(--accent)}
.btn.ghost:disabled:hover{background:transparent;color:var(--muted)}
.btn.danger{border-color:var(--crit)}
.btn:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.subtab:focus-visible{outline-offset:-4px}
.subtabs>.subtab{flex:0 0 auto}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],select,textarea{border-color:var(--control-border);line-height:1.3}
textarea:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}
input[readonly],textarea[readonly]{background:var(--surface-2)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.periodo input[type=date]{min-height:44px}
.field{min-width:0}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.field input[type=checkbox],.field input[type=radio]{width:20px;min-height:20px;padding:0}
.field label{line-height:1.4}
.modal-h h2{min-width:0;overflow-wrap:anywhere}
.modal-h>.btn{flex:none;width:44px;height:44px;padding:0}
.modal-f{align-items:center}
.modal-f .btn{white-space:normal}
.login-card{min-width:0}
.login-card .row{flex-wrap:wrap;align-items:stretch}
.login-card .row .btn{min-width:0;flex:1 1 150px}
#form-login .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#form-login .row>.primary,#btn-recuperar{grid-column:1/-1}
#form-login .row>.btn{min-height:44px;padding:11px 10px}
.usuarios-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:12px}
.usuarios-header h2{flex:1 1 250px;margin:0}
.usuarios-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.usuarios-painel>.sec:first-child{margin-top:0}
.usuarios-painel>.sec+.sec{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.usuarios-painel td.acts{white-space:normal;min-width:220px}
.usuarios-painel td.acts .btn{margin:4px 0 4px 6px}
.usuarios-painel td.acts .btn:first-child{margin-left:0}
.usuarios-painel details>summary{cursor:pointer;min-height:36px;align-content:center}
.usuarios-painel td{overflow-wrap:anywhere}
.usuarios-painel .table-cards td>details{min-width:0;max-width:100%}
.usuarios-painel .table-cards td>details .tablewrap{max-width:100%}
.ajuda-h{align-items:flex-start;flex-wrap:wrap}
.ajuda-h>div:first-child{flex:1 1 130px;min-width:0}
.ajuda-h-a{align-items:center}
.ajuda-h-a>.btn:last-child{width:44px;height:44px;padding:0;flex:none}
.ajuda-enviar{flex-wrap:wrap}
@media(max-width:760px){
  .top{grid-template-columns:44px minmax(0,1fr) 44px 44px;grid-template-areas:"menu launch help theme" "scope scope user user"}
  .top .ajuda-top{grid-area:help;width:44px;height:44px;padding:0;justify-content:center}
  .user{flex-wrap:wrap;justify-content:flex-end;justify-self:end;max-width:100%}
  .user .pill{white-space:normal;overflow-wrap:anywhere;text-align:center;max-width:100%;line-height:1.3}
  .grid2,.grid3{grid-template-columns:minmax(0,1fr)}
  .login{padding:20px 16px}
  .login-card{width:100%;padding:28px 22px}
  .usuarios-header{align-items:stretch}
  .usuarios-header h2{flex-basis:100%}
  .usuarios-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr)}
  .usuarios-actions>.btn{width:100%;min-height:44px}
  .usuarios-painel>.sec+.sec{margin-top:24px;padding-top:20px}
  .usuarios-painel td.acts{min-width:0}
  .usuarios-painel .table-cards td.acts{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch}
  .usuarios-painel td.acts .btn{margin:0;width:100%}
  .usuarios-painel details>summary{min-height:44px}
  .usuarios-painel .table-cards td>details{width:100%}
}
@media(prefers-reduced-motion:reduce){.btn,.kpi.click{transition:none}}

/* v23 — uso e monitor */
.field-err{margin-top:4px;font-size:12.5px;line-height:1.4;color:var(--crit)}
.field [aria-invalid="true"]{border-color:var(--crit)}
.erro-a{margin-top:12px}
.erro-tec{margin:10px auto 0;max-width:70ch;font-size:12px;color:var(--muted);text-align:left}
.erro-tec code{white-space:pre-wrap;word-break:break-word}
.menu-it.danger b{color:var(--crit)}
.btn.mais{min-width:34px;font-weight:700;letter-spacing:.08em}
@media(min-width:761px){
  .titulos-table td{padding-top:9px;padding-bottom:9px}
  .titulos-table td .sub{-webkit-line-clamp:1;line-clamp:1;margin-top:2px}
  .titulos-table td.acts{width:1%;min-width:0;max-width:none;white-space:nowrap}
}
@media(max-width:760px){.titulos-table thead input[type=checkbox]{display:none}}
.monitor{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:13.5px;line-height:1.5}
.monitor.crit{border-color:var(--crit);background:var(--crit-soft)}
.monitor.warn{border-color:var(--warn);background:var(--warn-soft)}
.monitor ul{margin:0;padding-left:18px;flex:1 1 320px}
.monitor-t{flex:1 1 100%}
.monitor-a{display:flex;gap:8px;flex-wrap:wrap}
.monitor-det h3{margin:16px 0 8px;font-size:14px}
/* fim v23 */

/* Itens de notas: preserva a descrição integral do XML. */
.nf-descricao-completa { white-space: pre-wrap; overflow-wrap: anywhere; }
.nf-servico { padding: 8px 0; border-bottom: 1px solid var(--border); }

/* Logomarca aprovada: arquivo RGBA original, proporção 2169 × 725. */
.brand.brand-logo-layout{flex-direction:column;align-items:flex-start;gap:8px;white-space:normal}
.brand-logo{display:block;flex:none;width:min(180px,100%);padding:6px 8px;border-radius:10px;background:#fff}
.brand-logo img{display:block;width:100%;height:auto}
.brand-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(180px,100%)}
.brand.big .brand-logo,.brand.big .brand-meta{width:min(210px,100%)}
.side .brand-logo-layout{padding:20px 18px 16px}
.side.open .brand-logo-layout{align-items:flex-start}

/* Responsive workspace: use available card/container space, including with Help open. */
:root{--metric-min:22rem;--panel-min:28rem}
.view{container-type:inline-size;container-name:workspace}
.top{flex-wrap:wrap}
.top .user{min-width:0;flex-wrap:wrap}
.kpis,.kpis.hoje-resumo{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--metric-min)),1fr))}
.kpi{container-type:inline-size;container-name:metric;min-width:0}
.kpi .k,.kpi .d{overflow-wrap:anywhere}
.kpi .v{display:flex;flex-wrap:wrap;align-items:baseline;white-space:normal;font-size:clamp(1.25rem,7.5cqi,1.5625rem);line-height:1.35;letter-spacing:-.045em}
.kpi-unit,.kpi-amount{white-space:nowrap}
.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--panel-min)),1fr))}
.half,.bars,.brow,.node,.grid2>*,.grid3>*{min-width:0}
.bars{container-type:inline-size;container-name:bars}
.brow{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px 12px}
.blabel{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.btrack{grid-column:1/-1;grid-row:2;min-width:0}
.bval{grid-column:2;grid-row:1}
.subtabs{overflow-x:auto}
.stat{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%;vertical-align:top}
.node .t,.leaf{overflow-wrap:anywhere}
.plano-row{grid-template-columns:150px 70px minmax(0,1fr) auto}
.plano-row>*{min-width:0;overflow-wrap:anywhere}
.modal{display:flex;flex-direction:column}
.modal-h,.modal-f{position:static;flex:none}
.modal-b{min-height:0;overflow:auto;overscroll-behavior:contain}
.modal-h h2{min-width:0;overflow-wrap:anywhere}
.ajuda-painel{overflow:auto}
.ajuda-msgs{min-height:80px}
.ajuda-h,.ajuda-f{flex-shrink:0}
.ajuda-h{position:sticky;top:0;z-index:1;background:var(--surface)}
@container bars (max-width:24rem){
  .brow{grid-template-columns:minmax(0,1fr)}
  .bval{grid-column:1;grid-row:2;justify-self:start}
  .btrack{grid-row:3}
}
@container workspace (max-width:44rem){
  .grid2,.grid3{grid-template-columns:minmax(0,1fr)}
  .plano-row{grid-template-columns:minmax(0,1fr) auto}
  .plano-row .mono:first-child{grid-column:1/-1}
}
@media(min-width:761px){.tablewrap.tall{max-height:min(42rem,max(12rem,calc(100dvh - 12rem)))}}
/* Dock Help only when the remaining workspace is wide enough; compact windows use an overlay. */
@media(max-width:960px){body.ajuda-aberta .app{margin-right:0}}
@media(min-width:761px) and (max-width:960px){.ajuda-painel{width:min(400px,100vw);box-shadow:var(--shadow-lg)}}
/* v37: negócios gerenciais e conciliação separada, com o mesmo kit do MERP. */
.spalla-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;margin:20px 0}
.spalla-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow-wrap:anywhere}
.spalla-card h2{margin:0 0 10px;font-size:18px}
.spalla-card dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;font-size:13px}
.spalla-card dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.spalla-view .kpis{margin-top:18px}
@media(max-width:480px){.spalla-card{padding:16px}.spalla-card dl{grid-template-columns:1fr}.spalla-card dd{text-align:left;margin-bottom:6px}}

/* Navegação do escopo: consolidados, consultas de negócio e PJs têm ações explícitas. */
.pop.scope-pop{width:520px;max-width:calc(100vw - 16px);padding:0;overflow:hidden;max-height:calc(100dvh - 100px)}
.scope-picker{display:flex;flex-direction:column;max-height:calc(100dvh - 110px);min-width:0}
.scope-search{padding:14px 14px 10px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}
.scope-search>b{display:block;font-size:14px;margin-bottom:9px}
.scope-search input[type=search]{margin:0}
.scope-return{margin-top:9px;min-height:38px;font-size:12px;width:100%;justify-content:center}
.scope-list{padding:6px 8px 10px;max-height:min(600px,65dvh);min-height:0;overflow-y:auto;overscroll-behavior:contain}
.scope-section+.scope-section{margin-top:8px;border-top:1px solid var(--line)}
.scope-section .pop-h{margin:0;padding:12px 10px 6px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.scope-option{display:flex;flex-wrap:nowrap!important;align-items:flex-start;gap:10px;padding:11px 10px!important;min-height:56px}
.scope-option-main{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.scope-option-name{font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.scope-option .sub{display:block;white-space:normal;line-height:1.45;font-size:12px;padding:0;overflow-wrap:anywhere}
.scope-option .scope-cnpj{display:block;white-space:nowrap;margin-top:3px;font-size:11px}
.scope-kind{display:inline-block;flex:none;align-self:flex-start;font-size:10px;line-height:1.3;color:var(--muted);background:var(--surface-2);padding:4px 6px;border:1px solid var(--line);border-radius:6px;max-width:105px;white-space:normal}
.scope-option.on .scope-kind{border-color:var(--accent);color:var(--accent)}
.scope-option:disabled{opacity:1;color:var(--muted);background:var(--surface-2);cursor:default}
.scope-option:disabled .scope-kind{color:var(--neg)}
.scope-family>summary,.scope-units>summary{cursor:pointer;min-height:44px;padding:11px 10px;font-size:13px;font-weight:600;line-height:1.5;list-style-position:inside}
.scope-family>summary:focus-visible,.scope-units>summary:focus-visible,.scope-residual>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}
.scope-family[open]>summary{color:var(--accent)}
.scope-family .scope-option{margin-left:8px;width:calc(100% - 8px)}
.scope-units{margin-left:18px;border-left:2px solid var(--line)}
.scope-units>summary{font-size:12px;font-weight:500;color:var(--muted)}
.scope-units .scope-option{margin-left:0;width:100%}
.scope-context{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px;margin:-8px 0 18px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-soft)}
.scope-context>div{flex:1;min-width:min(220px,100%)}
.scope-context b{font-size:14px}
.scope-context .sub{display:block;font-size:12px;line-height:1.5;margin-top:5px;color:var(--muted)}
.scope-context[hidden]{display:none}
.scope-perimeter{font-size:13px;line-height:1.65;color:var(--muted);max-width:850px;margin-top:-10px}
.scope-panel-nav{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.scope-card-heading{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.scope-card-heading h2{flex:1;font-size:17px;line-height:1.4}
.scope-card-cnpj{line-height:1.5;margin:8px 0 15px;font-size:11px;color:var(--muted)}
.scope-residual{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:22px 0;padding:0 18px}
.scope-residual>summary{cursor:pointer;padding:16px 0;font-size:14px;font-weight:600;line-height:1.6}
.scope-residual>p{font-size:13px;line-height:1.6}
.scope-residual .spalla-card{background:var(--surface-2)}
@media(max-width:480px){
  .pop.scope-pop{left:8px!important;max-height:calc(100dvh - 110px)}
  .scope-picker{max-height:calc(100dvh - 120px)}
  .scope-list{max-height:calc(100dvh - 260px)}
  .scope-option{gap:7px}
  .scope-kind{max-width:80px;font-size:9px}
  .scope-option-name{font-size:13px}
  .scope-option .sub{font-size:11px}
  .scope-context{padding:12px;margin-top:0;gap:9px}
  .scope-context .btn{min-height:42px;flex:1 1 100%}
  .scope-card-heading .scope-kind{max-width:85px}
  .spalla-card dl{grid-template-columns:minmax(0,1fr) auto;font-size:12px}
  .spalla-card dd{text-align:right;margin:0}
  .scope-residual{padding:0 12px}
}

